đây là đoạn code mình đã làm để điều khiển 1 led 7 đoạn dùng 2 nút bấm, nút bấm 1 tăng 1 đơn vị còn nút bấm 2 giảm 1 đơn vị...cho mình hỏi là vì sao khi tăng đến 10 thì led ko trả về giá trị 0 được
mov 30h,#0
sjmp hienthi
main:
jnb p3.0,sw1
jnb p3.1,sw2
sjmp main
sw1:
wait: jnb p3.0,wait
inc 30h
mov a,30h
cjne a,#10,hienthi
mov a,#0
sjmp hienthi
sw2:
wait1: jnb p3.1,wait1
dec 30h
mov a,30h
cjne a,#255,hienthi
mov 30h,#9
sjmp hienthi
hienthi:
mov a,30h
mov dptr,#maled7
movc a,@a+dptr
mov p2,a
sjmp main
org 300h
maled7:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
delay:
mov r0,#0ffh
loop1:
mov r1,#0ffh
loop2:
nop
nop
djnz r1,loop2
djnz r0,loop1
ret
end
hình ảnh mô phỏng ở dưới
mov 30h,#0
sjmp hienthi
main:
jnb p3.0,sw1
jnb p3.1,sw2
sjmp main
sw1:
wait: jnb p3.0,wait
inc 30h
mov a,30h
cjne a,#10,hienthi
mov a,#0
sjmp hienthi
sw2:
wait1: jnb p3.1,wait1
dec 30h
mov a,30h
cjne a,#255,hienthi
mov 30h,#9
sjmp hienthi
hienthi:
mov a,30h
mov dptr,#maled7
movc a,@a+dptr
mov p2,a
sjmp main
org 300h
maled7:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
delay:
mov r0,#0ffh
loop1:
mov r1,#0ffh
loop2:
nop
nop
djnz r1,loop2
djnz r0,loop1
ret
end
hình ảnh mô phỏng ở dưới
Comment