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 led_do equ p0.1 led_xanh equ p0.0 ;--------------------- org 0 mov dptr,#bang_ma mov r0,#0 SETB led_do ; ban dau hien thi so 00 nen cho led do tat, led xanh sang CLR led_xanh main: call hien_thi jb p3.0,kt1 call delay jnb p3.0,$ cpl led_do ; dao trang thai 2 led cpl led_xanh inc r0 cjne r0,#100,main mov r0,#0 jmp main kt1: jb p3.1,main call delay jnb p3.1,$ cpl led_do cpl led_xanh 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