zzw0504121v01.asm

来自「万能遥控器:此遥控器是由TENX单片机编写程序所写的」· 汇编 代码 · 共 2,697 行 · 第 1/5 页

ASM
2,697
字号
	RTCC	EQU  01H
	PC	EQU  02H
	STATUS	EQU  03H
	FSR	EQU  04H
	RA	EQU  05H
	RB	EQU  06H
	RC	EQU  07H
	
	BUFFER1		EQU  08H
	BUFFER2		EQU  09H
	KEY_COUNT	EQU  0AH
	KEY_LINE	EQU  0BH
	KEY_DATA	EQU  0CH
	R_COUNT1	EQU  0DH
	R_COUNT2	EQU  0EH
	COUNT1		EQU  1DH
	COUNT2		EQU  10H
	LEAD_CODE1	EQU  11H
	LEAD_CODE2	EQU  12H
	SIGN		EQU  13H
	TV_SIGN		EQU  14H
	LEAD_3010_CODE	EQU  16H
	LEAD_3010_CODE2	EQU  17H
	DATA1		EQU  1BH
	DATA2		EQU  1CH
	K		EQU  18H
	LEAD_3004_CODE	EQU  0FH
	;LEAD_3004_CODE2	EQU  1FH
	DATA3		EQU  19H
	DATA4		EQU  1AH
	MODE_COUNT	EQU  15H
	SET_SIGN	EQU  17H;30H
	
	TM58PC20	EQU  7FFH
	ORG	TM58PC20
	LGOTO   F_MAIN
	ORG	0
;;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TAB_TV_MODE
	ADDAM	PC,1
	NOP
	RETLA   01H
	RETLA   02H
	RETLA   04H
	RETLA   08H
	RETLA   10H
	RETLA   20H
;;*****************************************************
;;                         模式1
;;*****************************************************
;M001:	3010	Custom Code: 11X  00000(M070
;;*****************************************************
TAB_M001
		ADDAM   PC,1
		NOP
		RETLA	0CH	;K1:电源
		RETLA	0EH    ;K2:TV/AV
		RETLA	26H    ;K3:睡眠
		RETLA	01H    ;K4:1
		RETLA	02H    ;K5:2
		RETLA	03H    ;K6:3
		RETLA	04H    ;K7:4
		RETLA	05H    ;K8:5
                
		RETLA	06H    ;K9:6
		RETLA	07H    ;K10:7
		RETLA	08H    ;K11:8
		RETLA	09H    ;K12:9
		RETLA	00H    ;K13:0
		RETLA	0AH    ;K14:跳播
		RETLA	22H    ;K15:往复
		RETLA	0BH    ;K16:制式
                
		RETLA	23H    ;K17:丽音
		RETLA	2EH    ;K18:正常
		RETLA	2AH    ;K19:伴音
		RETLA	2BH    ;K20:画中画
		RETLA	3FH    ;K21:上
		RETLA	38H    ;K22:菜单
		RETLA	11H    ;K23:左
		RETLA	3CH    ;K24:下
                
		RETLA	10H    ;K25:右
		RETLA	3BH    ;K26:OK
		RETLA	0FH    ;K27:屏显
		RETLA	0DH    ;K28:静音
		RETLA	10H    ;K29:音量+
		RETLA	11H    ;K30:音量-
		RETLA	20H    ;K31:频道+
		RETLA	21H    ;K32:频道-   
		RETLA   0FFH   ;K33
;;***********************************************************
;M002:	50462	Custom Code: 47(M011
;;***********************************************************
TAB_M002
		ADDAM   PC,1
		NOP
		RETLA	02H	;K1:电源
		RETLA	3AH    ;K2:TV/AV
		RETLA	17H    ;K3:睡眠
		RETLA	00H    ;K4:1
		RETLA	08H    ;K5:2
		RETLA	10H    ;K6:3
		RETLA	18H    ;K7:4
		RETLA	20H    ;K8:5
                
		RETLA	28H    ;K9:6
		RETLA	30H    ;K10:7
		RETLA	38H    ;K11:8
		RETLA	01H    ;K12:9
		RETLA	09H    ;K13:0
		RETLA	11H    ;K14:跳播
		RETLA	0FH    ;K15:往复
		RETLA	97H    ;K16:制式
                
		RETLA	03H    ;K17:丽音
		RETLA	0BH    ;K18:正常
		RETLA	87H    ;K19:伴音
		RETLA	29H    ;K20:画中画
		RETLA	33H    ;K21:上
		RETLA	34H    ;K22:菜单
		RETLA	2BH    ;K23:左
		RETLA	3BH    ;K24:下
                
		RETLA	23H    ;K25:右
		RETLA	3CH    ;K26:OK
		RETLA	1BH    ;K27:屏显
		RETLA	32H    ;K28:静音
		RETLA	22H    ;K29:音量+
		RETLA	2AH    ;K30:音量-
		RETLA	0AH    ;K31:频道+
		RETLA	12H    ;K32:频道-
		RETLA   0FFH   ;K33
;;*******************************************************************
;;M003:	6122	Custom Code: 03 FC(M190)
;;*******************************************************************
TAB_M003
		ADDAM   PC,1
		NOP
		RETLA	0BH    ;K1:电源
		RETLA	1DH    ;K2:TV/AV
		RETLA	0DH    ;K3:睡眠
		RETLA	00H    ;K4:1
		RETLA	10H    ;K5:2
		RETLA	11H    ;K6:3
		RETLA	13H    ;K7:4
		RETLA	14H    ;K8:5
                
		RETLA	15H    ;K9:6
		RETLA	17H    ;K10:7
		RETLA	18H    ;K11:8
		RETLA	19H    ;K12:9
		RETLA	1CH    ;K13:0
		RETLA	1BH    ;K14:跳播
		RETLA	4CH    ;K15:往复
		RETLA	08H    ;K16:制式
                
		RETLA	4EH    ;K17:丽音
		RETLA	46H    ;K18:正常
		RETLA	48H    ;K19:伴音
		RETLA	4EH    ;K20:画中画
		RETLA	47H    ;K21:上
		RETLA	4AH    ;K22:菜单
		RETLA	49H    ;K23:左
		RETLA	4DH    ;K24:下
                
		RETLA	4BH    ;K25:右
		RETLA	4EH    ;K26:OK
		RETLA	4EH    ;K27:屏显
		RETLA	0AH    ;K28:静音
		RETLA	4BH    ;K29:音量+
		RETLA	49H    ;K30:音量-
		RETLA	47H    ;K31:频道+
		RETLA	4DH    ;K32:频道-
		RETLA   0FFH   ;K33
;;**************************************************************
;M004:	6122	Custom Code:01 FC(M242
;;**************************************************************
TAB_M004
		ADDAM   PC,1
		NOP
		RETLA	0DCH    ;K1:电源
		RETLA	0C0H    ;K2:TV/AV
		RETLA	8CH    ;K3:睡眠
		RETLA	92H    ;K4:1
		RETLA	93H    ;K5:2
		RETLA	0CCH    ;K6:3
		RETLA	8EH    ;K7:4
		RETLA	8FH    ;K8:5
                
		RETLA	0C8H    ;K9:6
		RETLA	8AH    ;K10:7
		RETLA	8BH    ;K11:8
		RETLA	0C4H    ;K12:9
		RETLA	87H    ;K13:0
		RETLA	86H    ;K14:跳播
		RETLA	0DAH    ;K15:往复
		RETLA	0DFH    ;K16:制式
                
		RETLA	8DH    ;K17:丽音
		RETLA	85H    ;K18:正常
		RETLA	0C2H    ;K19:伴音
		RETLA	95H    ;K20:画中画
		RETLA	0DDH    ;K21:上
		RETLA	0CEH    ;K22:菜单
		RETLA	0D6H    ;K23:左
		RETLA	0CDH    ;K24:下
                
		RETLA	89H    ;K25:右
		RETLA	0D1H    ;K26:OK
		RETLA	0D9H    ;K27:屏显
		RETLA	9CH    ;K28:静音
		RETLA	0C1H    ;K29:音量+
		RETLA	99H    ;K30:音量-
		RETLA	0CAH    ;K31:频道+
		RETLA	0D2H    ;K32:频道- 
		RETLA   0FFH   ;K33
;;*****************************************************************
;M005:	6122	Custom Code:00 FE(M241
;;*****************************************************************
TAB_M005
		ADDAM   PC,1
		NOP
		RETLA	0DCH    ;K1:电源
		RETLA	0C0H    ;K2:TV/AV
		RETLA	0D4H    ;K3:睡眠
		RETLA	92H    ;K4:1
		RETLA	93H    ;K5:2
		RETLA	0CCH    ;K6:3
		RETLA	8EH    ;K7:4
		RETLA	8FH    ;K8:5
                
		RETLA	0C8H    ;K9:6
		RETLA	8AH    ;K10:7
		RETLA	8BH    ;K11:8
		RETLA	0C4H    ;K12:9
		RETLA	87H    ;K13:0
		RETLA	86H    ;K14:跳播
		RETLA	8CH    ;K15:往复
		RETLA	00H    ;K16:制式
                
		RETLA	9BH    ;K17:丽音
		RETLA	81H    ;K18:正常
		RETLA	0D9H    ;K19:伴音
		RETLA	00H    ;K20:画中画
		RETLA	0CAH    ;K21:上
		RETLA	0CEH    ;K22:菜单
		RETLA	99H    ;K23:左
		RETLA	0D2H    ;K24:下
                
		RETLA	0C1H    ;K25:右
		RETLA	00H    ;K26:OK
		RETLA	00H    ;K27:屏显
		RETLA	9CH    ;K28:静音
		RETLA	0C1H    ;K29:音量+
		RETLA	99H    ;K30:音量-
		RETLA	0CAH    ;K31:频道+
		RETLA	0D2H    ;K32:频道- 
		RETLA   0FFH   ;K33
;;*************************************************************** 
;;M006:6122	Custom Code:08  F7 (M260)
;;***************************************************************
TAB_M006
		ADDAM   PC,1
		NOP
		RETLA	03H    ;K1:电源
		RETLA	08H    ;K2:TV/AV
		RETLA	0DH    ;K3:睡眠
		RETLA	12H    ;K4:1
		RETLA	11H    ;K5:2
		RETLA	10H    ;K6:3
		RETLA	16H    ;K7:4
		RETLA	15H    ;K8:5
                
		RETLA	14H    ;K9:6
		RETLA	1AH    ;K10:7
		RETLA	19H    ;K11:8
		RETLA	18H    ;K12:9
		RETLA	1DH    ;K13:0
		RETLA	1EH    ;K14:跳播
		RETLA	1CH    ;K15:往复
		RETLA	53H    ;K16:制式
                
		RETLA	07H    ;K17:丽音
		RETLA	55H    ;K18:正常
		RETLA	57H    ;K19:伴音
		RETLA	0FH    ;K20:画中画
		RETLA	02H    ;K21:上
		RETLA	04H    ;K22:菜单
		RETLA	06H    ;K23:左
		RETLA	05H    ;K24:下
                
		RETLA	01H    ;K25:右
		RETLA	09H    ;K26:OK ;
		RETLA	0AH    ;K27:屏显
		RETLA	00H    ;K28:静音
		RETLA	01H    ;K29:音量+
		RETLA	06H    ;K30:音量-
		RETLA	02H    ;K31:频道+
		RETLA	05H    ;K32:频道-
		RETLA   0FFH   ;K33
;;******************************************************************
;M007:	50560	Custom Code: 02(M025
;;******************************************************************
TAB_M007
		ADDAM   PC,1
		NOP
		RETLA	0EH	;K1:电源
		RETLA	0DH    ;K2:TV/AV
		RETLA	36H    ;K3:睡眠
		RETLA	10H    ;K4:1
		RETLA	11H    ;K5:2
		RETLA	12H    ;K6:3
		RETLA	13H    ;K7:4
		RETLA	14H    ;K8:5
                
		RETLA	15H    ;K9:6
		RETLA	16H    ;K10:7
		RETLA	17H    ;K11:8
		RETLA	18H    ;K12:9
		RETLA	19H    ;K13:0
		RETLA	1AH    ;K14:跳播
		RETLA	0AH    ;K15:往复
		RETLA	37H    ;K16:制式
                
		RETLA	0CH    ;K17:丽音
		RETLA	0BH    ;K18:正常
		RETLA	1BH    ;K19:伴音
		RETLA	00H    ;K20:画中画
		RETLA	05H    ;K21:上
		RETLA	35H    ;K22:菜单
		RETLA	08H    ;K23:左
		RETLA	06H    ;K24:下
                
		RETLA	07H    ;K25:右
		RETLA	36H    ;K26:OK
		RETLA	0FH    ;K27:屏显
		RETLA	09H    ;K28:静音
		RETLA	03H    ;K29:音量+
		RETLA	04H    ;K30:音量-
		RETLA	01H    ;K31:频道+
		RETLA	02H    ;K32:频道- 
		RETLA   0FFH   ;K33
;;**************************************************
;;名称:SCAN_KEY
;;功能:按键扫描
;;入口:无
;;出口:无
;;**************************************************
SCAN_KEY
	MOVLA	00H
	MOVAM   RA
	MOVLA   00H
	IODIR	RA
	BTMSS   SET_SIGN,0
	BSM     RA,1
	BTMSC   SET_SIGN,1
	BCM     RA,1
	MOVLA   0FFH
	MOVAM   RB
	MOVLA   0FH
	IODIR   RB
	MOVLA   00H
	IODIR   RC
	MOVLA   0FFH
	MOVAM   RC
	CLRM    KEY_LINE
	CLRM    KEY_COUNT
	CLRM    BUFFER2
	MOVLA   0F0H
	ANDAM   SIGN,1
	CLRM    COUNT2
	MOVLA   0EFH
	MOVAM   BUFFER1
SCAN_KEY1
	MOVM    BUFFER1,0
	MOVAM   RB
	INCM    KEY_LINE,1
SCAN_KEY2
	MOVM    RB,0
	MOVAM   BUFFER2
	MOVLA   04H
	LCALL   DELAY_26US
	MOVM    RB,0
	XORAM   BUFFER2,0
	BTMSS   STATUS,2
	LGOTO   SCAN_KEY2
	MOVLA   04H
	MOVAM   COUNT1
SCAN_KEY3
	INCM    COUNT2,1
	BCM     STATUS,0
	RRM     BUFFER2,1
	BTMSS   STATUS,0
	LCALL   HAVE_KEY
	MOVLA   04H
	SUBAM   COUNT1,0
	BTMSC   STATUS,0
	INCM    COUNT2,1
	DECMSZ  COUNT1,1
	LGOTO   SCAN_KEY3
	MOVLA   04H
	SUBAM   KEY_LINE,0
	BTMSC   STATUS,0
	LGOTO   SCAN_KEY4
	BSM     STATUS,0
	RLM     BUFFER1,1
	LGOTO   SCAN_KEY1
SCAN_KEY4
	MOVLA   04H
	XORAM   KEY_LINE,0
	BTMSS   STATUS,2
	LGOTO   SCAN_KEY5
	INCM    KEY_LINE,1
	MOVLA   0DFH
	MOVAM   BUFFER1
	MOVAM   RC
	LGOTO   SCAN_KEY2
SCAN_KEY5
	BSM     STATUS,0
	RLM     BUFFER1,1
	MOVLA   07H
	SUBAM   KEY_LINE,0
	BTMSC   STATUS,0
	RETLA   0
	INCM    KEY_LINE,1
	MOVM	BUFFER1,0
	MOVAM   RC
	LGOTO   SCAN_KEY2
	
HAVE_KEY
	BTMSS   SIGN,0
	LGOTO   HAVE_KEY_1
	MOVLA   22H
	SUBAM   COUNT2,0
	BTMSS   STATUS,0
	LGOTO   EXIT_HAVE_KEY
TEST_FUNCTION
	MOVLA   12H;0AH
	XORAM   KEY_COUNT,0
	BTMSC   STATUS,2
	LGOTO   ADD_LOCK
	MOVLA   1BH;05H
	XORAM   KEY_COUNT,0
	BTMSC   STATUS,2
	LGOTO   DISPLAY_MODE
	RETLA   0
EXIT_HAVE_KEY
	RETLA   0
ADD_LOCK
	BTMSC   SET_SIGN,7
	LGOTO   $+5
	BSM     SET_SIGN,7
	BTMSC   SET_SIGN,0
	LGOTO   ADD_LOCK1
	BSM     SET_SIGN,0
	RETLA   0
ADD_LOCK1
	BSM     SET_SIGN,7
	BCM     SET_SIGN,0
	RETLA   0
DISPLAY_MODE
	BSM     SET_SIGN,1
	RETLA   0
HAVE_KEY_1
	MOVLA   04H
	SUBAM   COUNT1,0
	BTMSS   STATUS,0
	LGOTO   HAVE_KEY_2
	BTMSC   BUFFER2,0
	LGOTO   HAVE_KEY_2
	INCM    COUNT2,0
	MOVAM   KEY_COUNT
	BSM     SIGN,0
	RETLA   0
HAVE_KEY_2
	MOVM    COUNT2,0
	MOVAM   KEY_COUNT
	BSM     SIGN,0
	RETLA   0
;;************************************************
;;名称:DELAY_26US
;;功能:延时26微秒,发射头不发码(不通电)
;;入口:无
;;出口:无
;;说明:该子程序用到了R_COUNT1和R_COUNT2两个寄存器
;;	每种格式的码都需要这个子程序
;;************************************************
DELAY_26US		;需要延时多少个26微秒
	MOVAM   R_COUNT1
DELAY_1			;以下是26微秒延时
	MOVLA   04H
	MOVAM   R_COUNT2
DELAY_2
	NOP
	NOP
	DECMSZ  R_COUNT2,1
	LGOTO    DELAY_2
	NOP
	DECMSZ  R_COUNT1,1
	LGOTO    DELAY_1
	RETLA   0
;;************************************************
;;名称:DELAY_0.5MS
;;功能:延时0.5毫秒,发射头不发码(不通电)
;;入口:无
;;出口:无
;;说明:该子程序用到了R_COUNT1和R_COUNT2两个寄存器
;;	每种格式的码都需要这个子程序
;;************************************************
DELAY_0.5MS
	MOVAM   R_COUNT1
DELAY1
	MOVLA   62H;7MS
	MOVAM   R_COUNT2
DELAY2
	NOP
	NOP
	DECMSZ  R_COUNT2,1
	LGOTO    DELAY2
	NOP
	NOP
	NOP
	NOP
	DECMSZ  R_COUNT1,1
	LGOTO    DELAY1
	RETLA   0
;;**************************************************
;;名称:PLAY_WAVE_38K
;;功能:在发射头上加载38K的载波
;;入口:无
;;出口:无
;;说明:该子程序中用到了COUNT1和COUNT2两个子程序
;;	每种格式的码都需要这个子程序
;;**************************************************
PLAY_WAVE_38K
	MOVAM  COUNT1
WAVE_38K
	BSM    RA,0

⌨️ 快捷键说明

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