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

📄 main.lst

📁 153按收红外遥控码源码,大edsafasfas
💻 LST
📖 第 1 页 / 共 3 页
字号:
     1                    ;==========================================================
     2                    ;
     3                    ;	模块:	FM发射模块控制代码
     4                    ;
     5                    ;	版本:	1.01
     6                    ;
     7                    ;	日期:	2007-7-28
     8                    ;
     9                    ;	作者:	施探宇
    10                    ;
    11                    ;	说明:	Zi2020 应用图
    12                    ;
    13                    ;                   +-----+
    14                    ;    (106.7)P5.0 ===|     |=== P5.1(PREV KEY)(POWER KEY)
    15                    ;    (107.1)P6.7 ===|     |=== P5.2(NEXT KEY)
    16                    ;    (107.5)P6.6 ===|     |=== P5.3(CE,Zi2020 高打开)
    17                    ;               Vdd ===|     |=== Vss
    18                    ;    (107.9)P6.5 ===|     |=== P6.0(音频检测)
    19                    ;   FM LED)P6.4 ===|     |=== P6.1(SDA,Zi2020)
    20                    ;        (NC)P6.3 ===|     |=== P6.2(SCL,Zi2020)
    21                    ;                   +-----+
    22                    ;
    23                    ;==========================================================
    24                    include	"reg.inc"
     1           C        ;=====================================================
     2           C        ;	寄存器
     3           C        ;=====================================================
     4      0000 C        R0          	equ	 	0X00
     5      0001 C        R1          	equ 		0x01
     6      0001 C        TIME_COUNT	equ		0x01
     7      0002 C        PC          	equ 		0x02
     8      0003 C        FLAG		equ 		0x03
     9      0004 C        R4          	equ 		0x04
    10      0005 C        P5          	equ 		0x05
    11      0006 C        P6          	equ 		0x06
    12      000F C        INT_STATU	equ		0x0f
    13           C        ;----------------------------------------------------------
    14           C        ;AUX REG
    15           C        
    16      0001 C        INTCON		equ		0x01
    17      0005 C        P5CON		equ		0x05
    18      0006 C        P6CON		equ		0x06
    19      000B C        IOCB		equ 		0x0B
    20      000B C        IO_DOWN		equ		0x0B
    21      000C C        IOCC		equ 		0x0C
    22      000D C        IOCD		equ 		0x0D
    23      000D C        IO_UP		equ		0x0D
    24      000E C        WTDCON 		equ 		0x0E
    25      000F C        INT_MAST       	equ 		0x0F
    26           C        
    27           C        
    28           C        
    29           C        ;---------------------------------------------------------
    30      0000 C        C           	equ 		0x00
    31      0001 C        DC          	equ 		0x01
    32      0002 C        Z           	equ 		0x02
    33           C        
    34      0007 C        WTD_BIT		equ		0x07
    35      0006 C        P60_BIT		equ		0x06
    36           C        
    37           C        ;中断标志位
    38      0000 C        TC_FLAG_BIT		equ		0x00
    39      0001 C        P6_FLAG_BIT		equ		0x01
    40      0002 C        EX_FLAG_BIT		equ		0x02
    41           C        
    42           C        
    43           C        
    44           C        ;	自定义的变量
    45      0010 C        A_buff		equ 0x10	;A寄存器备份
    46           C        
    47           C        
    48           C        
    49           C        ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    50           C        ;遥控
    51      0011 C        Remote_Address_Start		equ		0x11
    52           C        
    53      0011 C        Status_1			equ		Remote_Address_Start
    54      0012 C        Time_Int_Count			equ		Remote_Address_Start+1
    55      0013 C        Remote_Bit_Count		equ		Remote_Address_Start+2
    56      0014 C        Remote_Cmd_Code1		equ		Remote_Address_Start+3
    57      0015 C        Remote_Cmd_Code0		equ		Remote_Address_Start+4
    58      0016 C        Remote_Sys_Code1		equ		Remote_Address_Start+5
    59      0017 C        Remote_Sys_Code0		equ		Remote_Address_Start+6
    60      0018 C        Time_Delay			equ		Remote_Address_Start+7
    61      0019 C        Time_Delay1			equ		Remote_Address_Start+8
    62      001A C        Ir_Repeat_Times			equ		Remote_Address_Start+9
    63      001B C        Current_Key			equ		Remote_Address_Start+10
    64           C        
    65           C        
    66      0000 C        STATE_9M_BIT		equ		0x00
    67      0001 C        STATE_2M_BIT		equ		0x01
    68      0003 C        KEY_VALID_BIT		equ		0x03
    69      0004 C        IR_KEY_OK_BIT		equ		0x04
    70      0005 C        IR_KEY_DOWN_UP_BIT	equ		0x05
    71           C        
    72           C        ;*************************************************************************************
    73           C        ;ones 200us
    74      005A C        IR_TIME_9000US		equ	90
    75      002D C        IR_TIME_4500US		equ	45
    76      0016 C        IR_TIME_2250US		equ	22
    77      000B C        IR_TIME_1125US		equ	11
    78      0006 C        IR_TIME_560US		equ	6
    79      0001 C        IR_TIME_MARGIN		equ	1
    80           C        ;*************************************************************************************
    81           C        
    82           C        
    83      002D C        AudCnt3		equ	0x2d
    84           C        
    85      002E C        pop_statu	equ	0x2e
    86      002F C        pop_a		equ	0x2f
    87           C        
    25                    include "ir_code.inc"
     1      0060 C        HOLD_KEY_ADDR		equ		0x60
     2           C        
     3           C        
     4      0000 C        IR_VOL_UP		equ		0x00
     5      0000 C        IR_VOL_DOWN		equ		0x00
     6      0000 C        IR_VOL_FF		equ		0x00
     7           C        
     8           C        
     9           C        
    10           C        
    11           C        
    26                    ;===========================================================
    27                    ;	Start()
    28                    ;===========================================================
    29                    		ORG		0x00
    30 0000 1420          		jmp		Start
    31                    
    32                    		ORG		0x01
    33 0001 0013          		reti
    34                    		ORG		0x08
    35 0008 0011          		DISI
    36 0009 0C0F          		jbc		INT_STATU,@TC_FLAG_BIT		;计时中断
    37 000A 1427          		jmp		Time_Int
    38 000B 0C8F          		jbc		INT_STATU,@EX_FLAG_BIT		;外部中断p60
    39 000C 144C          		jmp		Exent_Int0
    40 000D 0C4F          		jbc		INT_STATU,@P6_FLAG_BIT		;脚位变化中断
    41 000E 1444          		jmp		Exent_Int1
    42 000F 0013          		reti
    43                    		
    44                    		
    45                    		;------------------------------
    46                    		;	程序开始
    47                    		;------------------------------
    48                    		ORG		0x20
    49 0020               Start:
    50 0020 0011          		DISI					;禁止中断
    51 0021 1098          		call		Init_Con_reg		;初始化控制寄存器
    52 0022 1086          		call		CleanRam		;清除寄存器
    53 0023 1091          		call		Init_Ioport		;初始化输入输出口
    54 0024 0010          		ENI					;开中断
    55                    ;===========================================================
    56                    ;	main()
    57                    ;===========================================================
    58 0025               main:
    59                    
    60                    
    61                    
    62 0025 10B4          		call		Get_Remote_Key		;获得遥控按键
    63                    
    64                    		;call		delay_1s
    65                    		;mov		a,@0x80
    66                    		;xor		P6,a
    67                    
    68                    
    69                    
    70                    
    71                    
    72                    		
    73                    
    74 0026 1425          		jmp		main
    75                    ;===========================================================
    76                    ;	main end
    77                    ;===========================================================
    78                    
    79                    
    80                    
    81                    		
    82                    ;==============================================================================================
    83                    ;计时中断时间==		(4*(256-TIME_COUNT)*时钟周期)/fos(晶振频率)
    84                    ;100us   int ones
    85                    ;==============================================================================================
    86 0027               Time_Int:
    87                    		;------------------------------
    88                    		;	保存状态寄存器
    89                    		;------------------------------
    90 0027 006F          		mov		pop_a,a
    91 0028 0403          		mov		a,FLAG
    92 0029 006E          		mov		pop_statu,a
    93                    		
    94                    		;------------------------------
    95                    		;	设定每次中断时长
    96                    		;------------------------------
    97 002A 18D1          		mov		a,@209d
    98 002B 0041          		mov		TIME_COUNT,a
    99                    		;------------------------------
   100                    		;超过120毫秒后表示遥控按键己弹起
   101                    		;------------------------------
   102 002C 0552          		inc		Time_Int_Count
   103 002D 0558          		inc             Time_Delay
   104 002E 0418          		mov		a,Time_Delay
   105 002F 1D3C          		sub		a,@60d
   106 0030 0E83          		jbs		FLAG,@Z
   107 0031 143F          		jmp		return_t_int
   108 0032 0559          		inc             Time_Delay1
   109 0033 00D8          		clr		Time_Delay
   110                    
   111 0034 0419          		mov		a,Time_Delay1
   112 0035 1D14          		sub		a,@20d
   113 0036 0E83          		jbs		FLAG,@Z
   114 0037 143F          		jmp		return_t_int
   115 0038 00D9          		clr             Time_Delay1
   116 0039 00D8          		clr             Time_Delay
   117 003A 0411          		mov		a,Status_1
   118 003B 1AFC          		and		a,@0xFC
   119 003C 0051          		mov		Status_1,a
   120                    		;clr		Ir_Repeat_Times
   121 003D 0951          		bc		Status_1,@IR_KEY_DOWN_UP_BIT		;按键弹起
   122 003E 0811          		bc		Status_1,@STATE_9M_BIT			;
   123                    
   124 003F               return_t_int:	
   125                    
   126                    		

⌨️ 快捷键说明

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