⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yaokong.a51

📁 单片机通信程序
💻 A51
字号:
;用来进行遥控程序的产生,效果很好      4M晶振 AT89C2051
;里面有各个遥控码的遥控显示表
;$NOMOD51

NAME	YAOKONG

P2_0	BIT	0B0H.5
IRdata  EQU     20H
IRdir   EQU     21H
IRda     equ     22h

?PR?_yaokong?YAOKONG SEGMENT CODE     
	PUBLIC	_yaokong	      
				      
	RSEG ?PR?_yaokong?YAOKONG    
_yaokong:
        CLR  EA           ;;;;			      
	USING	0
        MOV IRdata,R7
	MOV IRdir,R5
        mov IRda  ,R3
send:	
A0:	SETB P2_0	       ;P30
        LCALL DLY400	      ;同步码
	CLR P2_0
	LCALL DLY11600
        MOV R1,#08H	     ;8位地址
        MOV A,IRdata       ;将地址码送入A
    	ACALL A2	 ;发8位地址
	MOV R1,#08H 	;发4个数据脉冲
    	MOV A, IRdir     ;数据码送入A
    	ACALL A2
	MOV R1,#08H
	MOV A,IRda
	ACALL A2
	SETB  EA            ;;;;;
    	RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 A2:	RLC A	        ;经过进位位的累加器循环左移
    	JC A3	       ;如果进位位为1则转移
    	LCALL show0
    	SJMP A4
 A3:	LCALL show1
 A4:	DJNZ R1,A2      ;寄存器减1,不为0则转移
    	RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 DLY11600: ;延时11600us
	MOV R4,#37;3US
  DLY900:   
        MOV R3,#50;3US
        NOP;3US
  DLY901:
        DJNZ  R3,DLY901;6US
        DJNZ  R4,DLY900;(50*6+6+6)*37=11544us 
        MOV   R3,#6;3US
  DLY902:
        DJNZ  R3,DLY902;6*6+3=39;
	RET
 
 DLY400:  ;延时400微秒
        MOV R4,#4;3US 
 DLY560:   
        MOV R3,#14
	NOP
 DLY561:
        DJNZ  R3,DLY561
        DJNZ  R4,DLY560;(14*6+6+6)*4=384us 
	RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 DLY1200:;延时1200微秒
        MOV R4,#12;1US
 DLY1690:
        MOV R3,#14
	NOP
 DLY1691:
        DJNZ R3,DLY1691
	DJNZ R4,DLY1690;(14*6+6+6)*12=1152us
        MOV  R3,#6;3US
 DLY1692:
        DJNZ  R3,DLY1692;6*6+3=39;
	RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 show1: ;总共3.2ms	  ;输出"1"码,两个宽脉冲
        SETB  P2_0
        LCALL  DLY1200    ;高电平1.2MS
        CLR   P2_0
	LCALL DLY400      ;低电平0.4MS
	;SETB  P2_0
	;LCALL DLY1200
	;CLR   P2_0
	;LCALL DLY400
	RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 show0: 		  ;输出"0"码,两个窄脉冲
        SETB  P2_0 
        LCALL  DLY400
        CLR   P2_0
	LCALL DLY1200
	;SETB  P2_0
	;LCALL DLY400
	;CLR   P2_0
	;LCALL DLY1200
	RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	END

⌨️ 快捷键说明

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