MOV A,@8
MOV COUNTER,A
MOV A,CODE3
MOV SEND_DATA,A
RLC SEND_DATA
CYCLE_2:
JBS SEND_DATA,7
JMP SEND_Q_0
JMP SEND_Q_1
SEND_Q_1:
CALL SEND_CODE_1
JMP EXIT_4
SEND_Q_0:
CALL SEND_CODE_0
JMP EXIT_4
EXIT_4:
RLC SEND_DATA
DJZ COUNTER
JMP CYCLE_2
RET
;***************发送数据"1"子程序********************
SEND_CODE_1:
MOV A,@0B00100000
CONTW ;停止记数
MOV A,@0B00000001 ;允许TCC中断
IOW IOCF0
MOV A,@35 ;引导脉冲的预置值
MOV TCC,A
MOV A,@0B00000001 ;选择预分频比为1:4
CONTW
BC PORT6,OUTPUT
WAIT_1:
JBS RF,TCIF
JMP WAIT_1
MOV A,@0B00100000
CONTW ;停止记数
BC RF,TCIF
MOV A,@32 ;代码"1"的预置值
MOV TCC,A
MOV A,@0B00000101 ;选择预分频比为1:64
CONTW
BS PORT6,OUTPUT
WAIT_2:
JBS RF,TCIF
JMP WAIT_2
BC RF,TCIF
MOV A,@0B00100000
CONTW ;停止记数
RET
;***************发送数据"0"子程序********************
SEND_CODE_0:
MOV A,@0B00100000
CONTW ;停止记数
MOV A,@0B00000001 ;允许TCC中断
IOW IOCF0
MOV A,@35 ;引导脉冲的预置值
MOV TCC,A
MOV A,@0B00000001 ;选择预分频比为1:4
CONTW
BC PORT6,OUTPUT
WAIT_3:
JBS RF,TCIF
JMP WAIT_3
MOV A,@0B00100000
CONTW ;停止记数
BC RF,TCIF
MOV A,@114 ;代码"0"的预置值
MOV TCC,A
MOV A,@0B00000101 ;选择预分频比为1:64
CONTW
BS PORT6,OUTPUT
WAIT_4:
JBS RF,TCIF
JMP WAIT_4
NOP
BC RF,TCIF
MOV A,@0B00100000
CONTW ;停止记数
RET
;****************重复码的检测子程序******************
JUDGE_REPEAT_CODE:
CLR COUNTER ;清计数器
CLR FLAG
JUDGE_REPEAT_CODE_0:
JBC PORT6,INPUT
JMP JUDGE_REPEAT_CODE_0
SS:
JBC PORT6,INPUT
JMP JUDGE_REPEAT_CODE_1
CALL DELAY0.5MS
JBC PORT6,INPUT
JMP JUDGE_REPEAT_CODE_1
INC COUNTER
JMP SS
JUDGE_REPEAT_CODE_1:
MOV A,COUNTER
BC PSW,C
SUB A,@20 ;20-A
JBS PSW,C
本文关键字:程序 义隆单片机,单片机-工控设备 - 义隆单片机
上一篇:EM78系列8位单片机指令集