Hiện tại mình đang làm đề tài mạch đếm sản phẩm dùng 8051
Sơ đồ nguyên lí
Code
khi chạy thì báo lỗi mô phỏng không chạy do CPU quá tải , các bạn có thể giúp mình với không ? đoạn Code trên có gì sai sót không vì mình nghĩ là do code . Thanks nhiều
Sơ đồ nguyên lí
Code
co_phim equ 20h
en_dem equ p3.3
donvi equ 21h
chuc equ 22h
tram equ 23h
nghin equ 24h
org 100h
mov sp,#50h
mov psw,#00h
mov r0,#0
mov nghin,#0
mov tram,#0
mov chuc,#0
mov donvi,#0
mov r6,#4
clr co_phim
call hien_thi
lap_chinh:
nhan_gia_tri:
call ban_phim
jnb co_phim,cho_dem_lui
clr co_phim
cjne r0,#10,h_nghin;nhan phim enter
jmp dem_lui
h_nghin:
cjne r6,#4,h_tram;nhap gia tri hang nghin
call truyen_gt_r
jmp cho_dem_lui
h_tram:
cjne r6,#3,h_chuc
call truyen_gt_r
jmp cho_dem_lui
h_chuc:
cjne r6,#2,h_donvi
call truyen_gt_r
jmp cho_dem_lui
h_donvi:
cjne,#1,cho_dem_lui
call truyen_gt_r
jmp cho_dem_lui
cho_dem_lui:
call hien_thi
cjne r6,#0,nhan_gia_tri
mov r6,#4
jmp nhan_gia_tri
dem_lui:
clr p3.7
lap_nghin:
lap_tram:
lap_chuc:
lap_donvi:
call hien_thi
jnb en_dem,dem_lui
ldl: jb en_dem,ldl
dec donvi
mov a,donvi
cjne a,#0ffh,lap_donvi
mov donvi,#9
dec chuc
mov a,chuc
cjne a,#0ffh,lap_chuc
mov chuc,#9
dec tram
mov a,tram
cjne a,#0ffh,lap_tram
mov tram,#9
dec nghin
mov a,nghin
cjne a,#0ffh,lap_nghin
mov nghin,#0
mov tram,#0
mov chuc,#0
mov donvi,#0
setb p3.7
jmp lap_chinh
;tryen gia tri vao r
truyen_gt_r:
mov a,tram
mov nghin,a
mov a,chuc
mov tram,a
mov a,donvi
mov chuc,a
mov a,r0
mov donvi,a
dec r6
ret
;chuong trinh con nham phim
ban_phim:
mov p1,#0f0h;day 1 ra nua cao
nop
nop
mov a,p1;nhan du lieu ve
cjne a,#0f0h,co_phim_nhan
jmp thoat
co_phim_nhan:
mov p1,#0fh;day 1 ra nua thap
mov r0,p1
orl a,r0
mov r0,a
setb co_phim
;cho phim tha
cho_tha_phim:
mov p1,#0fh
nop
nop
mov a,p1
cjne a,#0fh,cho_tha_phim
phim0:
cjne r0,#7eh,phim1
mov r0,#0
jmp thoat
phim1:
cjne r0,#0beh,phim2
mov r0,#1
jmp thoat
phim2:
cjne r0,#0deh,phim3
mov r0,#2
jmp thoat
phim3:
cjne r0,#0eeh,phim4
mov r0,#3
jmp thoat
phim4:
cjne r0,#7dh,phim5
mov r0,#4
jmp thoat
phim5:
cjne r0,#0bdh,phim6
mov r0,#5
jmp thoat
phim6:
cjne r0,#0ddh,phim7
mov r0,#6
jmp thoat
phim7:
cjne r0,#0edh,phim8
mov r0,#7
jmp thoat
phim8:
cjne r0,#7bh,phim9
mov r0,#8
jmp thoat
phim9:
cjne r0,#0bbh,enter
mov r0,#9
jmp thoat
enter:
cjne r0,#0dbh,thoat
mov r0,#10
thoat:
ret
;ket thuc chuong trinh con bat phim
;chuong trinh con hien thi so ra led 7 thanh
hien_thi:
;hang nghin
mov p2,nghin
mov p0,#01h
call delay
;hang tram
mov p2,tram
mov p0,#02h
call delay
;hang chuc
mov p2,chuc
mov p0,#04h
call delay
;hang don vi
mov p2,donvi
mov p0,#08h
call delay
ret
;ket thuc chuong trinh con hien thi
;chuong trinh tre
delay:
push psw
mov psw,#08h;bank 1
mov r0,#10
dl1: mov r1,#60
dl2: djnz r1,dl2
djnz r0,dl1
pop psw
ret
end
en_dem equ p3.3
donvi equ 21h
chuc equ 22h
tram equ 23h
nghin equ 24h
org 100h
mov sp,#50h
mov psw,#00h
mov r0,#0
mov nghin,#0
mov tram,#0
mov chuc,#0
mov donvi,#0
mov r6,#4
clr co_phim
call hien_thi
lap_chinh:
nhan_gia_tri:
call ban_phim
jnb co_phim,cho_dem_lui
clr co_phim
cjne r0,#10,h_nghin;nhan phim enter
jmp dem_lui
h_nghin:
cjne r6,#4,h_tram;nhap gia tri hang nghin
call truyen_gt_r
jmp cho_dem_lui
h_tram:
cjne r6,#3,h_chuc
call truyen_gt_r
jmp cho_dem_lui
h_chuc:
cjne r6,#2,h_donvi
call truyen_gt_r
jmp cho_dem_lui
h_donvi:
cjne,#1,cho_dem_lui
call truyen_gt_r
jmp cho_dem_lui
cho_dem_lui:
call hien_thi
cjne r6,#0,nhan_gia_tri
mov r6,#4
jmp nhan_gia_tri
dem_lui:
clr p3.7
lap_nghin:
lap_tram:
lap_chuc:
lap_donvi:
call hien_thi
jnb en_dem,dem_lui
ldl: jb en_dem,ldl
dec donvi
mov a,donvi
cjne a,#0ffh,lap_donvi
mov donvi,#9
dec chuc
mov a,chuc
cjne a,#0ffh,lap_chuc
mov chuc,#9
dec tram
mov a,tram
cjne a,#0ffh,lap_tram
mov tram,#9
dec nghin
mov a,nghin
cjne a,#0ffh,lap_nghin
mov nghin,#0
mov tram,#0
mov chuc,#0
mov donvi,#0
setb p3.7
jmp lap_chinh
;tryen gia tri vao r
truyen_gt_r:
mov a,tram
mov nghin,a
mov a,chuc
mov tram,a
mov a,donvi
mov chuc,a
mov a,r0
mov donvi,a
dec r6
ret
;chuong trinh con nham phim
ban_phim:
mov p1,#0f0h;day 1 ra nua cao
nop
nop
mov a,p1;nhan du lieu ve
cjne a,#0f0h,co_phim_nhan
jmp thoat
co_phim_nhan:
mov p1,#0fh;day 1 ra nua thap
mov r0,p1
orl a,r0
mov r0,a
setb co_phim
;cho phim tha
cho_tha_phim:
mov p1,#0fh
nop
nop
mov a,p1
cjne a,#0fh,cho_tha_phim
phim0:
cjne r0,#7eh,phim1
mov r0,#0
jmp thoat
phim1:
cjne r0,#0beh,phim2
mov r0,#1
jmp thoat
phim2:
cjne r0,#0deh,phim3
mov r0,#2
jmp thoat
phim3:
cjne r0,#0eeh,phim4
mov r0,#3
jmp thoat
phim4:
cjne r0,#7dh,phim5
mov r0,#4
jmp thoat
phim5:
cjne r0,#0bdh,phim6
mov r0,#5
jmp thoat
phim6:
cjne r0,#0ddh,phim7
mov r0,#6
jmp thoat
phim7:
cjne r0,#0edh,phim8
mov r0,#7
jmp thoat
phim8:
cjne r0,#7bh,phim9
mov r0,#8
jmp thoat
phim9:
cjne r0,#0bbh,enter
mov r0,#9
jmp thoat
enter:
cjne r0,#0dbh,thoat
mov r0,#10
thoat:
ret
;ket thuc chuong trinh con bat phim
;chuong trinh con hien thi so ra led 7 thanh
hien_thi:
;hang nghin
mov p2,nghin
mov p0,#01h
call delay
;hang tram
mov p2,tram
mov p0,#02h
call delay
;hang chuc
mov p2,chuc
mov p0,#04h
call delay
;hang don vi
mov p2,donvi
mov p0,#08h
call delay
ret
;ket thuc chuong trinh con hien thi
;chuong trinh tre
delay:
push psw
mov psw,#08h;bank 1
mov r0,#10
dl1: mov r1,#60
dl2: djnz r1,dl2
djnz r0,dl1
pop psw
ret
end
bạn kiểm tra lỗi giùm mình

Comment