Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

ORG 00

MOV P1,#0
MOV P2,#00000111B
LCALL LONG_DELAY ; cho tn hi?u d?u tin nh?n du?c nh?n du?c ko b? sai
MAIN:
SETB P3.3 ; P3.3 lm d?u vo nh?n tn hi?u
MOV A,#01000000B ; sau 7 l?n quay ph?i A th C=1 d? ki?m tra
RP1: JB P3.3, RP1 ; ch? cho tn hi?u di xu?ng
RP2: JNB P3.3, RP2 ; ch? cho tn hi?u di ln
RP3: JB P3.3, RP3 ; ch? cho tn hi?u di xu?ng
LCALL DELAY ; t?o tr? 900 us
MOV C,P3.3 ; Ghi tn hi?u thu du?c vo C d? do
JC BIT0 ; n?u tn hi?u l bit cao th bit nh?n du?c l bit 0
SETB C ; tn hi?u m?c th?p , bit nh?n du?c l bit 1
RRC A ; ghi t?ng bit m l?nh vo trong A
JC END_SIGNAL ; n?u C =1 th nh?n d? 7 bit m l?nh , k?t thc
; nh?n
; k?t thc qu trnh nh?n tn hi?u
SJMP RP2 ; n?u C=0 th quay l?i nhn RP2
BIT0:
CLR C ; tn hi?u m?c cao bit nh?n du?c l bit 0
RRC A
JC END_SIGNAL ; n?u C =1 th nh?n d? 7 bit m l?nh , k?t thc
; k?t thc qu trnh nh?n tn hi?u
SJMP RP3 ; n?u C=0 th quay l?i nhn RP3
BIT0:
END_SIGNAL: ; k?t thc qu trnh nh?n tn hi?u
LCALL LONG_DELAY ; t?o tr? d? ch?ng nhi?u
; 7 bit tri c?a A dang ch?a m l?nh , bit LSB = 0
RR A ; 7 bit ph?i c?a A dang ch?a m l?nh, bit MSB = 0

MOV P1, A ; hi?n th? m l?nh ra c?ng P1


KEY_1:
CJNE A,#00000000B,KEY_2 ; b?m phm 1
;---KEY = 1--CPL P2.0 ; d?o bit sau d
SJMP MAIN ; quay l?i t? d?u
;------------KEY_2: CJNE A,#1,KEY_3 ; b?m phm 2
;------------;---KEY = 2--CPL P2.1
SJMP MAIN
;------------KEY_3:
CJNE A,#2,KEY_4 ; b?m phm 3
;------------;---KEY = 3--CPL P2.2
SJMP MAIN
;------------KEY_4:
CJNE A,#3,KEY_5 ; b?m phm 4
;------------;---KEY = 4--CPL P2.3
SJMP MAIN
;------------KEY_5:
CJNE A,#4,KEY_6 ; b?m phm 5
;-------------

;---KEY = 2--CPL P2.4


LJMP MAIN
;------------KEY_6:
CJNE A,#5,KEY_7 ; b?m phm 6
;------------;---KEY = 6--CPL P2.5
LJMP MAIN
;------------KEY_7:
CJNE A,#6,KEY_8 ; b?m phm 7
;------------;---KEY = 7--CPL P2.6
LJMP MAIN
;------------KEY_8:
CJNE A,#7,OTHER_KEY ; b?m phm 8
;------------;---KEY = 8--CPL P2.7
LJMP MAIN
;----------------------------------OTHER_KEY: ; b?m cc phm khc th khng lm g
LJMP MAIN
;----------------------------------; t?o tr?
;-----------------------------------

DELAY: ; t?o tr? 900 ms


MOV R5,#165 ; Th?i gian t?o tr? 165 x 5 x 1.085 ms = 900 ms
AGAIN: NOP
NOP
NOP
DJNZ R5,AGAIN
RET
;----------------------------------LONG_DELAY: ; t?o tr? di d? ch?ng nhi?u
MOV R5,#50
REPEAT:
MOV R6,#255
HERE:
DJNZ R6,HERE
DJNZ R5,REPEAT
RET
END

You might also like