(9 ꢛ
1
SEND_LOOP:
MOV
MOV
SETB
MOV
RL
C,DATA_OUT.7
DAT,C
;
j V*ꢜ+
; CLK
CLK
4CꢑLª«
;
A,DATA_OUT
A
MOV
CALL
CLR
CALL
DJNZ
CLR
RET
DATA_OUT,A
SHORT_DELAY
CLK
h1
;
;
;
j V,ꢜ+
CLK
h1
SHORT_DELAY
¥_àæ ꢛëCR
8
BIT_COUNT,SEND_LOOP ;
CR ꢚꢛ
;
DAT
;*******************************************
#eu£HI *ꢛ¢Î
;
;
HD7279
;*******************************************
jäꢛꢑꢁ
RECEIVE:
MOV
BIT_COUNT,#8
DAT
;
=8
j
;
"V*ꢜ+
SETB
P1.2(DATA)
()WX
;(
)
r1
CALL
LONG_DELAY
CLK
;
;
;
;
k V*ꢜ+
CLK
RECEIVE_LOOP:SETB
h1
CALL
MOV
RL
SHORT_DELAY
A,DATA_IN
A
ꢑLª«
MOV
MOV
MOV
CLR
CALL
DJNZ
CLR
RET
DATA_IN,A
C,DAT
NuꢛꢑL
;
DATA_IN.0,C
CLK
k V,ꢜ+
; CLK
SHORT_DELAY
àæ#e ꢛꢑL
BIT_COUNT,RECEIVE_LOOP;
8
ÿj "V,ꢜ+ (9WX
(
DAT
;
DAT
)
;*******************************************
1$5
;
;*******************************************
jä112Vi
LONG_DELAY: MOV
DELAY_LOOP: DJNZ
RET
TIMER,#25
;
50uS
8uS
TIMER,DELAY_LOOP
jä112Vi
SHORT_DELAY: MOV
TIMER,#4
;
SHORT_LP:
DJNZ
TIMER,SHORT_LP
ꢀ
ꢀ
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢁꢅꢀ
ꢀ
ꢀꢀꢀꢀ ꢀꢁꢂꢃꢄꢅꢆꢇꢂꢈꢉꢊꢋꢌꢍꢎꢏ
ꢀꢁꢁꢂꢃꢄꢄꢅꢅꢅꢆꢇꢈꢁꢉꢊꢋꢌꢆꢉꢊꢍꢆꢉꢎ