ir_tx.asm

来自「Infra Red Transmit coding for 8 bit addr」· 汇编 代码 · 共 91 行

ASM
91
字号
$MOD51
		ORG 00H
		AJMP START
		ORG 1BH
		CPL P1.0
		RETI
				
START:	MOV TMOD,#00100000B
		MOV TH1,#244
		MOV IE,#10001000B
		SETB TR1
		CLR P1.1
		
STB:	MOV A,P2                      ; WAITING FOR SEND BUTTON SIGNAL
		MOV B,A
		JNB P1.2, TX_D
		AJMP STB
                                     
TX_D:	ACALL ST                              
		MOV R5,#2
		MOV R4,#8
NEXT:	NOP
		NOP
		NOP
		NOP
		NOP
NEXT1:	CLR C
		RLC A
		JC BIT_1
		AJMP BIT_0
NEXTB:	DJNZ R4,NEXT
		MOV R4,#8
		MOV A,B
		CPL A
		DJNZ R5,NEXT1
		ACALL ED
		AJMP STB

ST:                                   ;START BIT PATTERN
		SETB P1.1                     ;_________8mS_________
		MOV R6,#80                    ;                     |____4mS____
D1:		ACALL DEL0_1                  ; DELAY 8mS
		DJNZ R6,D1
		CLR P1.1
		MOV R6,#40
D2:		ACALL DEL0_1                  ; DELAY 4mS
		DJNZ R6,D2
		RET

BIT_1:  
		NOP
        NOP                          ;1 BIT PATTERN
   		SETB P1.1                    ;_0.8mS_
		MOV R6,#8                    ;       |_______1.6mS_______
D3:		ACALL DEL0_1                 ; DELAY 0.8mS
		DJNZ R6,D3
		CLR P1.1
		MOV R6,#16
D4:		ACALL DEL0_1                 ; DELAY 1.6mS
		DJNZ R6,D4
		AJMP NEXTB		

BIT_0:	                             ;0 BIT PATTERN
		SETB P1.1                    ;_0.8mS_
		MOV R6,#8                            |_0.4mS_
D5:		ACALL DEL0_1                 ; DELAY 0.8mS
		DJNZ R6,D5
		CLR P1.1
		MOV R6,#4
D6:		ACALL DEL0_1                 ; DELAY 0.4mS
		DJNZ R6,D6
		AJMP NEXTB

ED:                                  ;END BIT PATTERN
		SETB P1.1                    ;______4mS______
		MOV R6,#40                   ;               |_2mS_
D7:		ACALL DEL0_1
		DJNZ R6,D7		
		CLR P1.1
		MOV R6,#20
D8:		ACALL DEL0_1		
		DJNZ R6,D8
		RET
	
DEL0_1:	MOV R7, #23          		 ; 23 decimal
DL: 	NOP                          ; inserted NOPs to cause delay 
		NOP
		DJNZ R7, DL                  ; decrement R7, if not zero loop back
		RET  	

		END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?