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

📄 main.lst

📁 153控制收音5800的源码
💻 LST
📖 第 1 页 / 共 4 页
字号:
     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       0011 C        IO_buff			equ 		0x11	;A寄存器备份
    48       0012 C        I2cDevId		equ 		0x12	;I2c器件
    49       0013 C        I2cAddr			equ 		0x13	;I2c地址
    50       0014 C        I2cData			equ 		0x14	;I2c数据
    51       0015 C        Count			equ		0x15
    52       0016 C        Rd5800_addr		equ		0x16
    53       0016 C        Rd5800_Reg_02H		equ		Rd5800_addr
    54       0017 C        Rd5800_Reg_02L		equ		Rd5800_addr+1
    55       0018 C        Rd5800_Channel		equ		Rd5800_addr+2
    56       0019 C        Rd5800_Reg_03L		equ		Rd5800_addr+3
    57            C        ;*************************************************************************************
    58            C        
    59       0000 C        FM_MUTE			equ		0x00
    60            C        
    61       0020 C        FM_STATUS		equ		0x20
    62            C        
    63       0021 C        RSSI_BAK		equ		0x21
    64            C        
    65       001A C        RSSI			equ		0x1a
    66       001B C        channel_cnt		equ		0x1b
    67            C        
    68            C        
    69       001C C        time_delay1		equ		0x1c
    70       001D C        time_delay		equ		0x1d
    71       001E C        pop_statu		equ		0x1e
    72       001F C        pop_a			equ		0x1f
    73            C        
    25                     
    26                     ;===========================================================
    27                     ;	Start()
    28                     ;===========================================================
    29                     		ORG		0x00
    30 00000 1500          		jmp		Start
    31                     
    32                     		ORG		0x01
    33 00001 0013          		reti
    34                     		ORG		0x08
    35 00008 084F          		bc		INT_STATU,@P6_FLAG_BIT
    36 00009 088F          		bc		INT_STATU,@EX_FLAG_BIT
    37 0000A 0013          		reti
    38                     		
    39                     
    40                     
    41                     
    42                     
    43                     
    44                     ;===============================================
    45                     ;	Function:TblFmModeHi(A)
    46 0000B               TblFmDefault_bal:
    47 0000B 03C2          		ADD	 	PC, A
    48 0000C 1CD8          		RETL 		@FM_Default_02H	 		
    49 0000D 1C81          		RETL 		@FM_Default_02L	 		
    50 0000E 1C63          		RETL 		@FM_Default_03H	 		
    51 0000F 1C00          		RETL 		@FM_Default_03L	 		
    52 00010 1C44          		RETL 		@FM_Default_04H	 		
    53 00011 1C00          		RETL 		@FM_Default_04L	 		
    54 00012 1C10          		RETL 		@FM_Default_05H	 		
    55 00013 1CFF          		RETL 		@FM_Default_05L	 		
    56 00014 1C00          		RETL 		@FM_Default_06H	 		
    57 00015 1C00          		RETL 		@FM_Default_06L	 		
    58 00016 1C00          		RETL 		@FM_Default_07H	 		
    59 00017 1CCD          		RETL 		@FM_Default_07L	 		
    60 00018 1C00          		RETL 		@FM_Default_08H	 		
    61 00019 1C96          		RETL 		@FM_Default_08L	 		
    62 0001A 1C00          		RETL 		@FM_Default_09H	 		
    63 0001B 1C20          		RETL 		@FM_Default_09L
    64                     
    65                     
    66                     		
    67 0001C 1C41          		RETL 		@FM_Default_10H	 		
    68 0001D 1C63          		RETL 		@FM_Default_10L	 		
    69 0001E 1C08          		RETL 		@FM_Default_11H	 		
    70 0001F 1C06          		RETL 		@FM_Default_11L	 		
    71 00020 1C58          		RETL 		@FM_Default_12H	 		
    72 00021 1C00          		RETL 		@FM_Default_12L	 		
    73 00022 1C58          		RETL 		@FM_Default_13H	 		
    74 00023 1C00          		RETL 		@FM_Default_13L	 		
    75 00024 1C58          		RETL 		@FM_Default_14H	 		
    76 00025 1C00          		RETL 		@FM_Default_14L	 		
    77 00026 1C58          		RETL 		@FM_Default_15H	 		
    78 00027 1C00          		RETL 		@FM_Default_15L	 		
    79 00028 1C4C          		RETL 		@FM_Default_16H	 		
    80 00029 1C17          		RETL 		@FM_Default_16L	 		
    81 0002A 1C20          		RETL 		@FM_Default_17H	 		
    82 0002B 1CA2          		RETL 		@FM_Default_17L	 		
    83 0002C 1C00          		RETL 		@FM_Default_18H	 		
    84 0002D 1C00          		RETL 		@FM_Default_18L	 		
    85 0002E 1C00          		RETL 		@FM_Default_19H	 		
    86 0002F 1C0F          		RETL 		@FM_Default_19L
    87                     		
    88 00030 1C06          		RETL 		@FM_Default_20H	 		
    89 00031 1CDE          		RETL 		@FM_Default_20L	 		
    90 00032 1CEC          		RETL 		@FM_Default_21H	 		
    91 00033 1CC0          		RETL 		@FM_Default_21L	 		
    92 00034 1C02          		RETL 		@FM_Default_22H	 		
    93 00035 1C00          		RETL 		@FM_Default_22L	 		
    94 00036 1C53          		RETL 		@FM_Default_23H	 		
    95 00037 1C83          		RETL 		@FM_Default_23L	 		
    96 00038 1C95          		RETL 		@FM_Default_24H	 		
    97 00039 1CA4          		RETL 		@FM_Default_24L	 		
    98 0003A 1CE8          		RETL 		@FM_Default_25H	 		
    99 0003B 1C48          		RETL 		@FM_Default_25L	 		
   100 0003C 1C05          		RETL 		@FM_Default_26H	 		
   101 0003D 1C00          		RETL 		@FM_Default_26L	 		
   102 0003E 1C00          		RETL 		@FM_Default_27H	 		
   103 0003F 1CA4          		RETL 		@FM_Default_27L	 		
   104 00040 1C88          		RETL 		@FM_Default_28H	 		
   105 00041 1C9B          		RETL 		@FM_Default_28L	 		
   106 00042 1C0D          		RETL 		@FM_Default_29H	 		
   107 00043 1C84          		RETL 		@FM_Default_29L
   108                     	 		
   109 00044 1C4F          		RETL 		@FM_Default_30H	 		
   110 00045 1C04          		RETL 		@FM_Default_30L	 		
   111 00046 1C88          		RETL 		@FM_Default_31H	 		
   112 00047 1C32          		RETL 		@FM_Default_31L	 		
   113 00048 1C7F          		RETL 		@FM_Default_32H	 		
   114 00049 1C71          		RETL 		@FM_Default_32L	 		
   115 0004A 1C06          		RETL 		@FM_Default_33H	 		
   116 0004B 1C60          		RETL 		@FM_Default_33L	 		
   117 0004C 1C40          		RETL 		@FM_Default_34H	 		
   118 0004D 1C10          		RETL 		@FM_Default_34L	 		
   119 0004E 1C60          		RETL 		@FM_Default_35H	 		
   120 0004F 1C02          		RETL 		@FM_Default_35L	 		
   121 00050 1C18          		RETL 		@FM_Default_36H	 		
   122 00051 1C08          		RETL 		@FM_Default_36L	 		
   123 00052 1C64          		RETL 		@FM_Default_37H	 		
   124 00053 1C58          		RETL 		@FM_Default_37L	 		
   125 00054 1C78          		RETL 		@FM_Default_38H	 		
   126 00055 1C7F          		RETL 		@FM_Default_38L	 		
   127 00056 1C01          		RETL 		@FM_Default_39H	 		
   128 00057 1C00          		RETL 		@FM_Default_39L
   129                     	 		
   130                     
   131 00058 1CC0          		RETL 		@FM_Default_40H	 		
   132 00059 1C40          		RETL 		@FM_Default_40L	 		
   133 0005A 1CC0          		RETL 		@FM_Default_41H	 		
   134 0005B 1C20          		RETL 		@FM_Default_41L	 		
   135 0005C 1C00          		RETL 		@FM_Default_42H	 		
   136 0005D 1C24          		RETL 		@FM_Default_42L	 		
   137 0005E 1C04          		RETL 		@FM_Default_43H	 		
   138 0005F 1C00          		RETL 		@FM_Default_43L	 		
   139 00060 1C00          		RETL 		@FM_Default_44H	 		
   140 00061 1C20          		RETL 		@FM_Default_44L
   141                     
   142                     		;------------------------------
   143                     		;	程序开始
   144                     		;------------------------------
   145                     		ORG		0x100
   146 00100               Start:
   147 00100 0011          		DISI						;禁止中断
   148 00101 118B          		call		Init_Con_reg			;初始化控制寄存器
   149 00102 1170          		call		CleanRam			;清除寄存器
   150 00103 117B          		call		Init_Ioport			;初始化输入输出口
   151                     		;ENI		;开中断
   152                     
   153                     ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   154                     		;初始化5800
   155 00104 11B8          		call		delay_500ms	
   156 00105 11FA          		call		I2cStop
   157 00106 11BF          		call		delay_50ms	
   158 00107 18D8          		mov		a,@0xd8
   159 00108 0056          		mov		Rd5800_Reg_02H,a
   160 00109 1881          		mov		a,@0x81
   161 0010A 0057          		mov		Rd5800_Reg_02L,a
   162 0010B 11F0          		call		I2cStart
   163                     		; Device Id : (A = I2cDevId)
   164 0010C 1820          		mov		A,@0x20
   165 0010D 1231          		call 		I2cSendByte
   166 0010E 1205          		call		I2cGetAck
   167 0010F 0E10          		jbs		A_buff,ACK
   168 00110 151B          		jmp		FmTuneDonem
   169                     
   170                     
   171 00111 0416          		mov		a,Rd5800_Reg_02H
   172 00112 1231          		call 		I2cSendByte
   173 00113 1205          		call		I2cGetAck
   174 00114 0E10          		jbs		A_buff,ACK
   175 00115 151B          		jmp		FmTuneDonem
   176                     
   177 00116 0417          		mov		a,Rd5800_Reg_02L
   178 00117 1231          		call 		I2cSendByte
   179 00118 1205          		call		I2cGetAck
   180 00119 0E10          		jbs		A_buff,ACK
   181 0011A 151B          		jmp		FmTuneDonem
   182                     
   183 0011B               FmTuneDonem:
   184                     
   185 0011B 11FA          		call		I2cStop
   186 0011C 0410          		mov		A,A_buff
   187                     ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   188                     	
   189 0011D 11B8          		call		delay_500ms	
   190 0011E 11BF          		call		delay_50ms
   191 0011F 12A5          		call		R5800_Init_I2c
   192 00120 11B8          		call		delay_500ms
   193                     ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   194 00121 18D0          		mov		a,@0xd0
   195 00122 0056          		mov		Rd5800_Reg_02H,a
   196 00123 1802          		mov		a,@0x02
   197 00124 0058          		mov		Rd5800_Channel,a			;设置初初始频率为87.7---87.5 step 100k
   198 00125 1800          		mov		a,@0x00
   199 00126 0059          		mov		Rd5800_Reg_03L,a
   200 00127 11BF          		call		delay_50ms	
   201 00128 1288          		call		FmTune
   202 00129 0000          		nop
   203                     	
   204                     ;===========================================================
   205                     ;	main()
   206                     ;===========================================================
   207 0012A               main:
   208                     		;判断FM信号强度
   209                     		;jmp		Judgment_Rssi				;判断信号的强度大小,而决定是否静音
   210 0012A               Judgment_Rssi_end:
   211                     
   212 0012A 154C          		jmp		Judgment_Sleep				;判断是否需要进入睡眠
   213 0012B               Judgment_Sleep_End:
   214                     
   215                     
   216 0012B 152A          		jmp		main
   217                     
   218                     		
   219                     ;===========================================================
   220                     ;	main end
   221                     ;===========================================================
   222                     
   223                     
   224                     
   225 0012C               Judgment_Rssi:
   226                     		;等待一秒判断信号强度
   227 0012C 11B8          		call		delay_500ms
   228 0012D 11B8          		call		delay_500ms
   229                     
   230 0012E 1272          		call		I2cRead
   231 0012F 041A          		mov		a,RSSI
   232 00130 1A3F          		and		a,@0x3f
   233 00131 1D0C          		sub		a,@Rssi_MidPoint			;如果信号 强度小于0x10就静音
   234 00132 0E03          		jbs		FLAG,@C
   235 00133 153B          		jmp		fm_unmute
   236 00134               fm_mute_:
   237 00134 0C20          		jbc		FM_STATUS,@FM_MUTE
   238 00135 1542          		jmp		Judgment_Rssi_muting
   239                     		
   240 00136 0A20          		bs		FM_STATUS,@FM_MUTE			;置收音状态为静音
   241 00137 0996          		bc		Rd5800_Reg_02H,@DMUTE			;静音
   242 00138 1288          		call		FmTune
   243 00139 11BF          		call		delay_50ms
   244 0013A 154B          		jmp		Judgment_Rssi_ret
   245 0013B               fm_unmute:
   246 0013B 0E20          		jbs		FM_STATUS,@FM_MUTE
   247 0013C 154B          		jmp		Judgment_Rssi_ret
   248 0013D 0820          		bc		FM_STATUS,@FM_MUTE			;置收音状态为开起音量
   249 0013E 0B96          		bs		Rd5800_Reg_02H,@DMUTE			;开音量
   250 0013F 1288          		call		FmTune
   251 00140 11BF          		call		delay_50ms

⌨️ 快捷键说明

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