mọi người giúp em với mạch em sử dụng 1 nút nhấn từ remote tivi để điều khiển 3 led đơn như sau: nhấn 1 lần thì led 1 sáng , nhấn 2 lần liên tục thì led 2 sáng, nhấn 3 lần liên tục thì led 3 sáng ( muốn tắt đi bằng cách nhấn tương tự như mở thêm 1 lần thì tắt). ai chỉ em viết code với ạ.. em cám ơn nhiều -em viết code vậy mọi người coi đúng không ạ em cám ơn....giúp em với em cám ơn
DEM EQU 50H ; Gán giá trị cho nút nhấn
LED1 BIT P0.0
LED2 BIT P0.1
LED3 BIT P0.2
ORG 000H
JMP MAIN
ORG 000BH
JMP NGATTIMER0
MAIN: SETB LED1
SETB LED2
SETB LED3
MOV DEM,#0
MOV R0,#40
MOV TMOD,#01H
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB EA
SETB ET0
SETB TR0
LOOP: JNB DEM,LOOP ;HOI XEM CO BAM REMOTE KHONG
KT_PN: JB DEM,KT_PN
INC DEM
JMP LOOP
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX NGATTIMER0: MOV TL0,#LOW(-50000) MOV TL0,#HIGH(-50000) DJNZ R0,EXIT MOV R0,#40 KT_L1:
MOV A,DEM
CJNE A,#1,KT_L2
CPL LED1
MOV DEM,#0
JMP EXIT
KT_L2:
MOV A,DEM
CJNE A,#2,KT_L3
CPL LED2
MOV DEM,#0
JMP EXIT
KT_L3:
MOV A,DEM
CJNE A,#3,
EXIT_DEM
CPL LED3
MOV DEM,#0
JMP EXIT
EXIT_DEM:
EXIT: RETI
;===========================================
DELAY: MOV R2,#200
D1: MOV R3,#250
DJNZ R3,$
DJNZ R2,D1
RET
;================================================= ==========
DELAY500:
MOV R7,#200 D2:
DJNZ R7,$
RET
END
DEM EQU 50H ; Gán giá trị cho nút nhấn
LED1 BIT P0.0
LED2 BIT P0.1
LED3 BIT P0.2
ORG 000H
JMP MAIN
ORG 000BH
JMP NGATTIMER0
MAIN: SETB LED1
SETB LED2
SETB LED3
MOV DEM,#0
MOV R0,#40
MOV TMOD,#01H
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB EA
SETB ET0
SETB TR0
LOOP: JNB DEM,LOOP ;HOI XEM CO BAM REMOTE KHONG
KT_PN: JB DEM,KT_PN
INC DEM
JMP LOOP
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX NGATTIMER0: MOV TL0,#LOW(-50000) MOV TL0,#HIGH(-50000) DJNZ R0,EXIT MOV R0,#40 KT_L1:
MOV A,DEM
CJNE A,#1,KT_L2
CPL LED1
MOV DEM,#0
JMP EXIT
KT_L2:
MOV A,DEM
CJNE A,#2,KT_L3
CPL LED2
MOV DEM,#0
JMP EXIT
KT_L3:
MOV A,DEM
CJNE A,#3,
EXIT_DEM
CPL LED3
MOV DEM,#0
JMP EXIT
EXIT_DEM:
EXIT: RETI
;===========================================
DELAY: MOV R2,#200
D1: MOV R3,#250
DJNZ R3,$
DJNZ R2,D1
RET
;================================================= ==========
DELAY500:
MOV R7,#200 D2:
DJNZ R7,$
RET
END
Comment