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

📄 fm_transmitter.lst

📁 FMSCR是用汇编语言编写的车载MP3源程序。
💻 LST
📖 第 1 页 / 共 4 页
字号:
0001   .include macro.asm (F:\proj\tenx\ref\Fm src\MACRO.ASM)
0001+  
00002+              ld_pa	.macro	 arg1
00003+              	lds	mtemp,arg1
00004+              	opa	mtemp
00005+              	.endm
0006+  
00007+              ld_pb    .macro   arg1
00008+              	lds	mtemp,arg1
00009+              	opb	mtemp
00010+              	.endm
0011+  
00012+              ld_pc	.macro	arg1
00013+              	lds	mtemp,arg1
00014+              	opc	mtemp
00015+              	.endm
0016+  
00017+              ld_pd	.macro	arg1
00018+              	lds	mtemp,arg1
00019+              	opd	mtemp
00020+              	.endm
0021+  
00022+              tog_pa	.macro	arg1
00023+              	lds	mtemp,1<<arg1
00024+              	ipa	mtemp1
00025+              	eor	mtemp
00026+              	sta	mtemp
00027+              	opa	mtemp
00028+              	.endm
0029+  
00030+              tog_pb	.macro	arg1
00031+              	lds	mtemp,1<<arg1
00032+              	ipb	mtemp1
00033+              	eor	mtemp
00034+              	sta	mtemp
00035+              	opb	mtemp
00036+              	.endm
0037+  
00002              .chip TM87P08
00003              .data
    4 0000               data0           equ 00h
    5 0001               data1           equ 01h
    6 0002               data2           equ 02h
    7 0003               data3           equ 03h
0008   
    9 0005               radio_num0      equ 05h     ;radio count register
   10 0006               radio_num1      equ 06h
0011   
   12 0008               disp0           equ 08h     ; display register
   13 0009               disp1           equ 09h
   14 000A               disp2           equ 0ah
   15 000B               disp3           equ 0bh
0016   
   17 000C               force_zero      equ 0ch
   18 000D               force_one       equ 0dh
0019   
   20 000E               reg_cf          equ 0eh
   21 000F               reg_acc         equ 0fh      ;ac register
0022   
   23 0011               up_down_flag    equ 11h      ; "1"=> down count "0"=> up count
   24 0012               add_sub_flag    equ 12h      ; FM => +- 1
   25 0013               add_sub_num     equ 13h
0026   
   27 0014               global_buf0     equ 14h      ; global buffer register
   28 0015               global_buf1     equ 15h
   29 0016               global_buf2     equ 16h
   30 0017               global_buf3     equ 17h
   31 0018               global_buf4     equ 18h
   32 0019               global_buf5     equ 19h
   33 001A               global_buf6     equ 1ah
   34 001B               global_buf7     equ 1bh
0035   
   36 001C               radio_signal    equ 1ch
   37 001D               first_flag      equ 1dh      ; "1"=> radio first data flag
   38 001E               final_flag      equ 1eh      ; "1"=> radio final data flag
   39 001F               key_signal      equ 1fh
   40 0020               power_signal    equ 20h      ; "1"=> open radio  "0"=> close radio
0041   
   42 0021               i2c_addr0       equ 21h
   43 0022               i2c_addr1       equ 22h
   44 0023               i2c_data0       equ 23h
   45 0024               i2c_data1       equ 24h
   46 0025               i2c_data2       equ 25h
   47 0026               i2c_data3       equ 26h
   48 0027               i2c_sbopcode    equ 27h       ;110=>read mode; 101=> write mode
   49 0028               i2c_buff0       equ 28h
   50 0029               i2c_buff1       equ 29h
   51 002A               bat_flag        equ 2ah
   52 002B               delay_buff0     equ 2bh
   53 002C               delay_buff1     equ 2ch
   54 002D               halt_release    equ 2dh
   55 002E               led_flag        equ 2eh
0056   
   57 0076               mtemp		equ	76h
   58 0077               mtemp1		equ	77h
0059   
   60 0000               pb0		equ	0
0061   
0062   
00063              .endd
0064   
00065              .code
   66 0000 **** NEW ADDR ****              org  00h
  104 00067 0000 D030              jmp  start
0068   
00069              ;********************************************
00070              ;             interrupt area                *
00071              ;********************************************
   72 001C **** NEW ADDR ****              org    1ch
  110 00073 001C EB7F              plc    17fh
  111 00074 001D E908              sie*   08h
  112 00075 001E D241              jmp    predivider_int
0076   
0077   
   78 0030 **** NEW ADDR ****              org  30h
00079              start:
  117 00080 0030 58F0           lds    70h,01h
  118 00081 0031 07F0           lcp    1fh,00h
0082   
  120 00083 0032 5870           lds    70h,00h
  121 00084 0033 0A70           opa    70h
  122 00085 0034 F58F           spa    0fh
  123 00086 0035 0C70           opb    70h
  124 00087 0036 F5B7           spb    17h
  125 00088 0037 0D70           opc    70h
  126 00089 0038 F5D8           spc    18h
  127 00090 0039 0E70           opd    70h
  128 00091 003A F5EF           spd    0fh
0092   
  130 00093 003B C300           call  clear_lcd
  131 00094 003C C282           call  i2c_write_enable
  132 00095 003D C0CC           call  code_initial
  133 00096 003E C22F           call  read_i2c_radio_num
00097                       ;call  power_on_off
  135 00098 003F EB7F           plc   17fh
  136 00099 0040 E908           sie*  08h
00100              ;*******************************************
00101              ;         key scan ioc1,ioc2,ioc3
00102              ;*******************************************
00103              keyscan:
00104                       tog_pb	pb0
;****************************************
;*** CALL MACRO : tog_pb ***
;****************************************
  145 00104 0041 58F6  	lds	mtemp,1<<pb0  ; lds	mtemp,1<<arg1
  146 00104 0042 4477  	ipb	mtemp1
  147 00104 0043 2C76  	eor	mtemp
  148 00104 0044 6876  	sta	mtemp
  149 00104 0045 0C76  	opb	mtemp
00104              	.endm
  151 00105 0046 582D           lds    halt_release,00h
  152 00106 0047 EB7F           plc    17fh
  153 00107 0048 F510           sca    10h
  154 00108 0049 FF00           halt
0109   
  156 00110 004A F500           sca    00h
  157 00111 004B F500           sca    00h
0112   
  159 00113 004C 4770           ipc    70h
  160 00114 004D 9056           jb2    key_release
0115   
  162 00116 004E 5D2E           lds    led_flag,0ah
  163 00117 004F 5CF0           lds    70h,09h
  164 00118 0050 07F0           lcp    1fh,00h
  165 00119 0051 58AD           lds    halt_release,01h
  166 00120 0052 4770           ipc    70h
  167 00121 0053 805B           jb0    up_key
  168 00122 0054 885E           jb1    dn_key
  169 00123 0055 D041           jmp    keyscan
0124   
00125              key_release:
  172 00126 0056 582E           lds    led_flag,00h
  173 00127 0057 58F0           lds    70h,01h
  174 00128 0058 07F0           lcp    1fh,00h
  175 00129 0059 C061           call   power_on_off
  176 00130 005A D041           jmp    keyscan
00131              up_key:
  178 00132 005B 5811           lds    up_down_flag,00h
  179 00133 005C C081           call   up_dn_keys
  180 00134 005D D041           jmp    keyscan
00135              dn_key:
  182 00136 005E 5891           lds    up_down_flag,01h
  183 00137 005F C081           call   up_dn_keys
  184 00138 0060 D041           jmp    keyscan
0139   
00140              power_on_off:
  187 00141 0061 E900           sie*   00h
  188 00142 0062 0A0C           opa    force_zero
  189 00143 0063 0C0C           opb    force_zero
  190 00144 0064 0D0C           opc    force_zero
  191 00145 0065 C300           call   clear_lcd
0146   
00147              power_on_off0:
  194 00148 0066 4770           ipc    70h
  195 00149 0067 9066           jb2    power_on_off0
0150   
  197 00151 0068 EB7F           plc    17fh
  198 00152 0069 F510           sca    10h
  199 00153 006A ED10           sre    10h
  200 00154 006B FF80           stop
0155   
  202 00156 006C F500           sca    00h
  203 00157 006D F500           sca    00h
  204 00158 006E 4770           ipc    70h
  205 00159 006F 9071           jb2    power_on_off1
  206 00160 0070 D066           jmp    power_on_off0
00161              power_on_off1:
  208 00162 0071 5C70           lds    70h,08h
  209 00163 0072 0A70           opa    70h
0164   
  211 00165 0073 C1B3           call   count_radio_data
  212 00166 0074 C1E4           call   count_radio_disp
  213 00167 0075 5812           lds    add_sub_flag,00h
  214 00168 0076 C093           call   radio_protocol
  215 00169 0077 C174           call   disp_add_sub
  216 00170 0078 C307           call   radio_display
  217 00171 0079 5D2E           lds    led_flag,0ah
  218 00172 007A 5CF0           lds    70h,09h
  219 00173 007B 07F0           lcp    1fh,00h
  220 00174 007C EB7F           plc    17fh
  221 00175 007D E908           sie*   08h
0176   
00177              power_on_off2:
  224 00178 007E 4770           ipc    70h
  225 00179 007F 907E           jb2    power_on_off2
  226 00180 0080 F400           rts
00181              ;*******************************************
00182              up_dn_keys:
  229 00183 0081 5B14           lds    global_buf0,06h
00184              up_dn_keys0:
  231 00185 0082 C334           call   delay_100ms
  232 00186 0083 4114           dec*   global_buf0
  233 00187 0084 B08D           jz     up_dn_keys2
  234 00188 0085 4770           ipc    70h
  235 00189 0086 A082           jnz    up_dn_keys0
0190   
  237 00191 0087 6C11           lda    up_down_flag      ;singal scan
  238 00192 0088 B08B           jz     up_dn_keys1
  239 00193 0089 C13D           call   radio_dn_single
  240 00194 008A F400           rts
00195              up_dn_keys1:
  242 00196 008B C119           call   radio_up_single
  243 00197 008C F400           rts
0198   
00199              up_dn_keys2:
  246 00200 008D 6C11           lda    up_down_flag      ;auto scan
  247 00201 008E B091           jz     up_dn_keys3
  248 00202 008F C147           call   radio_dn_sequ
  249 00203 0090 D092           jmp    up_dn_keys_end
00204              up_dn_keys3:
  251 00205 0091 C123           call   radio_up_sequ
00206              up_dn_keys_end:
  253 00207 0092 F400           rts
00208              ;*******************************************
00209              ;         radio protocol subroutine
00210              ;*******************************************
00211              radio_protocol:
  258 00212 0093 6C0C           lda    force_zero
  259 00213 0094 1C0C           mvl    force_zero
  260 00214 0095 1D0C           mvh    force_zero
  261 00215 0096 1E0C           mvu    force_zero    ;for tm87p08 mcu
  262 00216 0097 6C80           lda    @hl
  263 00217 0098 6816           sta    global_buf2
0218   
  265 00219 0099 F58F           spa    0fh
  266 00220 009A 5C1C           lds    radio_signal,08h
  267 00221 009B 0A1C           opa    radio_signal
0222   
  269 00223 009C 5814           lds    global_buf0,00h
  270 00224 009D 5A17           lds    global_buf3,04h
00225              radio_protocol0:
  272 00226 009E 6C16           lda    global_buf2
  273 00227 009F 80A4           jb0    radio_protocol1
  274 00228 00A0 5E1C           lds    radio_signal,0ch
  275 00229 00A1 0A1C           opa    radio_signal
  276 00230 00A2 5F1C           lds    radio_signal,0eh
  277 00231 00A3 D0A8           jmp    radio_protocol2
00232              radio_protocol1:
  279 00233 00A4 5E9C           lds    radio_signal,0dh
  280 00234 00A5 0A1C           opa    radio_signal
  281 00235 00A6 5F9C           lds    radio_signal,0fh
  282 00236 00A7 0000           nop
00237              radio_protocol2:
  284 00238 00A8 4117        	 dec*   global_buf3
  285 00239 00A9 B0B2         	 jz     radio_protocol3
  286 00240 00AA 0000         	 nop
  287 00241 00AB 0000         	 nop
  288 00242 00AC 0000         	 nop
  289 00243 00AD 0A1C         	 opa    radio_signal
  290 00244 00AE 5016         	 sr0    global_buf2
  291 00245 00AF 0000         	 nop
  292 00246 00B0 0000         	 nop
  293 00247 00B1 D09E        	 jmp    radio_protocol0
00248              radio_protocol3:
  295 00249 00B2 5A17           lds    global_buf3,04h
  296 00250 00B3 4014           inc*   global_buf0
  297 00251 00B4 90BA        	 jb2    radio_protocol4
  298 00252 00B5 0A1C           opa    radio_signal
  299 00253 00B6 1C14        	 mvl    global_buf0
  300 00254 00B7 6C80        	 lda    @hl
  301 00255 00B8 6816        	 sta    global_buf2
  302 00256 00B9 D09E        	 jmp    radio_protocol0

⌨️ 快捷键说明

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