cũng k cần thiết phải dùng lệnh so sánh phức tạp như vậy đâu
bạn chỉ cần dùng lệnh CPL để đảo 2 bit điều khiển 2 led là được rồi
bạn chỉ cần dùng lệnh CPL để đảo 2 bit điều khiển 2 led là được rồi
Code:
; cac led tich cuc muc 0
[COLOR=#ff0000]led_do equ p0.1[/COLOR]
[COLOR=#ff0000] led_xanh equ p0.0[/COLOR]
;---------------------
org 0
mov dptr,#bang_ma
mov r0,#0
[COLOR=#ff0000]SETB led_do ; ban dau hien thi so 00 nen cho led do tat, led xanh sang[/COLOR]
[COLOR=#ff0000] CLR led_xanh[/COLOR]
main:
call hien_thi
jb p3.0,kt1
call delay
jnb p3.0,$
[COLOR=#ff0000]cpl led_do ; dao trang thai 2 led[/COLOR]
[COLOR=#ff0000] cpl led_xanh[/COLOR]
inc r0
cjne r0,#100,main
mov r0,#0
jmp main
kt1:
jb p3.1,main
call delay
jnb p3.1,$
[COLOR=#ff0000]cpl led_do[/COLOR]
[COLOR=#ff0000] cpl led_xanh[/COLOR]
dec r0
cjne r0,#255,main
mov r0,#99
jmp main
;=================
hien_thi:
mov a,r0
mov b,#10
div ab
movc a,@a+dptr ;lay ma led chuc
mov 30h,a ;cat ma led chuc
mov a,b
movc a,@a+dptr ;lay ma led don vi
mov 31h,a ;cat ma led don vi
;-------------
mov p2,31h ;chuyen ma led don vi giay
mov p1,#11111110b ;cho led don vi giay sang
call delay1 ;chong lem
mov p1,#0ffh
;-------------
mov p2,30h ;chuyen ma led chuc giay
mov p1,#11111101b ;cho led chuc giay sang
call delay1 ;chong lem
mov p1,#0ffh
ret
;================
delay1:
mov r1,#50
djnz r1,$
ret
;================
delay:
mov r6,#40
lap4:
mov r7,#250
djnz r7,$
djnz r6,lap4
ret
;================
bang_ma:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end




Comment