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

📄 6t.asm

📁 非常实用的电子单片机设计程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		LJMP		KEYFUN06      ;跳到键号6对应功能程序标号
		LJMP		KEYFUN07      ;跳到键号7对应功能程序标号
		LJMP		KEYFUN08      ;跳到键号8对应功能程序标号
		LJMP		KEYFUN09      ;跳到键号9对应功能程序标号
		LJMP		KEYFUN10      ;跳到键号10对应功能程序标号
		LJMP		KEYFUN11      ;跳到键号11对应功能程序标号
		LJMP		KEYFUN12      ;跳到键号12对应功能程序标号
		LJMP		KEYFUN13      ;跳到键号13对应功能程序标号
		LJMP		KEYFUN14      ;跳到键号14对应功能程序标号
		LJMP		KEYFUN15      ;跳到键号15对应功能程序标号
		LJMP		KEYFUN16      ;跳到键号16对应功能程序标号
		LJMP		KEYFUN17      ;跳到键号17对应功能程序标号
		LJMP		KEYFUN18      ;跳到键号18对应功能程序标号
		LJMP		KEYFUN19      ;跳到键号19对应功能程序标号
		LJMP		KEYFUN20      ;跳到键号20对应功能程序标号
		LJMP		KEYFUN21      ;跳到键号21对应功能程序标号
		LJMP		KEYFUN22      ;跳到键号22对应功能程序标号
		LJMP		KEYFUN23      ;跳到键号23对应功能程序标号
		LJMP		KEYFUN24      ;跳到键号24对应功能程序标号
		LJMP		KEYFUN25      ;跳到键号25对应功能程序标号
		LJMP		KEYFUN26      ;跳到键号26对应功能程序标号
		LJMP		KEYFUN27      ;跳到键号27对应功能程序标号
		LJMP		KEYFUN28      ;跳到键号28对应功能程序标号
		LJMP		KEYFUN29      ;跳到键号29对应功能程序标号
		LJMP		KEYFUN30      ;跳到键号30对应功能程序标号
		LJMP		KEYFUN31      ;跳到键号31对应功能程序标号
		RET
;列号对应数据表
KEYVALTAB:	DB	0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
;对应列号:  	  0    1    2    3    4    5    6   7
		RET
;
KEYFUN00:       MOV     A,#02H     ;发2个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN01:       MOV     A,#03H     ;发3个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN02:       MOV     A,#04H     ;发4个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN03:       MOV     A,#05H     ;发5个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN04:       MOV     A,#06H     ;发6个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN05:       MOV     A,#07H     ;发7个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN06:       MOV     A,#08H     ;发8个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN07:       MOV     A,#09H     ;发9个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
;
KEYFUN08:       MOV     A,#0AH     ;发10个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN09:       MOV     A,#0BH     ;发11个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN10:       MOV     A,#0CH     ;发12个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN11:       MOV     A,#0DH     ;发13个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN12:       MOV     A,#0EH     ;发14个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN13:       MOV     A,#0FH     ;发15个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN14:       MOV     A,#10H     ;发16个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
;
KEYFUN15:       MOV     A,#11H     ;发17个脉冲
                LJMP    REMOTE     ;转发送程序
                RET
KEYFUN16:       RET 			   ;备用功能
KEYFUN17:       RET 			   ;备用功能
KEYFUN18:       RET 			   ;备用功能
KEYFUN19:       RET 			   ;备用功能
KEYFUN20:       RET 			   ;备用功能
KEYFUN21:       RET 			   ;备用功能
KEYFUN22:       RET
KEYFUN23:       RET
KEYFUN24:       RET
KEYFUN25:       RET
KEYFUN26:       RET
KEYFUN27:       RET
KEYFUN28:       RET
KEYFUN29:       RET
KEYFUN30:       RET
KEYFUN31:       RET 			   ;备用功能
;
;
;*************************************
;*                                   *
;*         编 码 发 射 程 序         *
;*                                   *
;*************************************
;
REMOTE:         MOV     R1,A	   ;装入发射脉冲个数
                LJMP    OUT3	   ;转第一个码发射处理
OUT:            MOV     R0,#55H	     ;1MS宽低电平发射控制数据
OUT1:           SETB    ET1	  	 	 ;开T1中断
                SETB    TR1	   		 ;开启定时器T1
                NOP	   				 ;延时
                NOP
                NOP
                NOP
                NOP
                DJNZ    R0,OUT1	     ;时间不到转OUT1再循环
                MOV     R0,#32H	     ;1MS高电平间隙控制数据
OUT2:           CLR     TR1	  	     ;关定时器T1
                CLR     ET1	  	     ;关T1中断
                CLR     P3.5	   	 ;关脉冲输出
                NOP	   		    	 ;空操作延时
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                DJNZ    R0,OUT2	  	 ;时间不到转OUT2再循环
                DJNZ    R1,OUT	  	 ;脉冲未发完,转OUT再循环发射
                LCALL   DL500MS	  	 ;
                RET	  				 ;
OUT3:           MOV     R0,#0FFH	 ;装发谢3MS宽控制数据
                LJMP    OUT1	   	 ;转OUT1
;
;*************************************
;*                                   *
;*          延时513 us              *
;*                                   *
;*************************************
;
;513微秒延时程序
DELAY:          MOV     R2,#0FFH
DELAY1:         DJNZ    R2,DELAY1
				RET
;
;
;
;*************************************
;*                                   *
;*             延时10ms             *
;*                                   *
;*************************************
;
;10毫秒延时程序
DL10MS:         MOV     R3,#14H
DL10MS1:        LCALL   DELAY
                DJNZ    R3,DL10MS1
		        RET
;500毫秒延时程序
DL500MS:        MOV     R4,#32H
DL500MS1:       LCALL   DL10MS
                DJNZ    R4,DL500MS1
                RET
;
		        END	   				;程序结束

⌨️ 快捷键说明

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