📄 2ifinput.lst
字号:
00001 .chip TM87P08
00002 ;FM-AM Radio TM87P08+Tr1002+2111
00003 ;Author:江振/2005.12.22
00004 ;Power Source:3V
00005 ;Clock Source:Dual Clock
00006 ;FM:87M-108.0M 步进0.1M (中频信号从IFIN1输入)
00007 ;AM:522K-1710K 步进9K (中频信号从IFIN2输入)
00008 ;************************************************************
00009 .HEAD
00010 ; Display address
11 000E COM1 equ 00001110B
12 000D COM2 equ 00001101B
13 000B COM3 equ 00001011B
14 0007 COM4 equ 00000111B
15 000F None equ 00001111B
0016
17 00E0 SEG2 equ 0e0h
18 00E1 SEG1 equ 0e1h
19 00E2 SEG4 equ 0e2h
20 00E3 SEG3 equ 0e3h
21 00E4 SEG6 equ 0e4h
22 00E5 SEG5 equ 0e5h
23 00E6 SEG8 equ 0e6h
24 00E7 SEG7 equ 0e7h
25 00E8 SEG10 equ 0e8h
26 00E9 SEG9 equ 0e9h
27 00EA SEG12 equ 0eah
28 00EB SEG11 equ 0ebh
29 00EC SEG14 equ 0ech
30 00ED SEG13 equ 0edh
31 00EE SEG16 equ 0eeh
32 00EF SEG15 equ 0efh
0033
34 00F0 SEG18 equ 0f0h
35 00F1 SEG17 equ 0f1h
36 00F2 SEG20 equ 0f2h
37 00F3 SEG19 equ 0f3h
38 00F4 SEG22 equ 0f4h
39 00F5 SEG21 equ 0f5h
40 00F6 SEG24 equ 0f6h
41 00F7 SEG23 equ 0f7h
42 00F8 SEG26 equ 0f8h
43 00F9 SEG25 equ 0f9h
44 00FA SEG28 equ 0fah
45 00FB SEG27 equ 0fbh
46 00FC SEG31 equ 0fch
47 00FD SEG29 equ 0fdh
48 00FE SEG41 equ 0feh
49 00FF SEG40 equ 0ffh
00050 ;*********************************
51 0001 FMDispFreqUMax equ 1
52 0000 FMDispFreqHMax equ 0
53 0008 FMDispFreqMMax equ 8
54 0000 FMDispFreqLMax equ 0
55 0000 FMDispFreqUMin equ 0
56 0008 FMDispFreqHMin equ 8
57 0007 FMDispFreqMMin equ 7
58 0000 FMDispFreqLMin equ 0
0059
60 0004 FMBottomPrgCountU equ 04h ;87.0MHz Hex format
61 000C FMBottomPrgCountH equ 0Ch ;
62 0005 FMBottomPrgCountM equ 05h ;87.0M+10.7M/5K=(19540)d=(4C54)h
63 0004 FMBottomPrgCountL equ 04h
0064
65 0005 FMTopPrgCountU equ 05h ;108.0MHz Hex format
66 000C FMTopPrgCountH equ 0Ch ;108.0M+10.7M/5K=(23740)d=(5CBC)h
67 000B FMTopPrgCountM equ 0Bh
68 000C FMTopPrgCountL equ 0Ch
0069
70 0000 FMOneStepCountU equ 00h
71 0000 FMOneStepCountH equ 00h
72 0001 FMOneStepCountM equ 01h ;FM步进=0.1M/5K=(20)d=(14)h
73 0004 FMOneStepCountL equ 04h
00074 ;*******************************
75 0001 AMDispFreqUMax equ 1
76 0007 AMDispFreqHMax equ 7
77 0001 AMDispFreqMMax equ 1
78 0000 AMDispFreqLMax equ 0
79 0000 AMDispFreqUMin equ 0
80 0005 AMDispFreqHMin equ 5
81 0002 AMDispFreqMMin equ 2
82 0002 AMDispFreqLMin equ 2
0083
84 0001 AMBottomPrgCountU equ 01h
85 0004 AMBottomPrgCountH equ 04h
86 0004 AMBottomPrgCountM equ 04h ;(522K+450K)*16/3K=(5184)d=(1440)h
87 0000 AMBottomPrgCountL equ 00h
0088
89 0002 AMTopPrgCountU equ 02h
90 000D AMTopPrgCountH equ 0Dh ;(1710K+450K)*16/3K=(11520)d=(2D00)h
91 0000 AMTopPrgCountM equ 00h
92 0000 AMTopPrgCountL equ 00h
0093
94 0000 AMOneStepCountU equ 00h
95 0000 AMOneStepCountH equ 00h
96 0003 AMOneStepCountM equ 03h ;AM步进=9K*16/3K=(48)d=(30)h
97 0000 AMOneStepCountL equ 00h
00098 ;***********************************
99 000E DA_Low equ 1110B ;IOA1
100 0001 DA_High equ 0001B ;IOA1
0101
102 000D CK_Low equ 1101B ;IOA2
103 0002 CK_High equ 0010B ;IOA2
0104
105 000B CE_Low equ 1011B ;IOA3
106 0004 CE_High equ 0100B ;IOA3
0107
108 0007 Mute_Low equ 0111B ;IOA4
109 0008 Mute_High equ 1000B ;IOA4
0110
111 000B BandSwitch_Low equ 1011B ;IOB3
112 0004 BandSwitch_High equ 0100B ;IOB3
0113
114 000D IO1_Low equ 1101B ;IOB2
115 0002 IO1_High equ 0010B ;IOB2
0116
117 000E Power_Low equ 1110B ;IOB1
118 0001 Power_High equ 0001B ;IOB1
0119
00120 .ENDH
00121 .DATA
00122 ;**************************************************************************
00123 org 00H
00124 AddrL dn 1 ;00h ;AM FM data register
00125 AddrH dn 1 ;01h
00126 PrgCountL dn 1 ;02h
00127 PrgCountM dn 1 ;03h
00128 PrgCountH dn 1 ;04h
00129 PrgCountU dn 1 ;05h
00130 Freq0 dn 1 ;06h
00131 Freq1 dn 1 ;07h
00132 DispFreqL dn 1 ;08h
00133 DispFreqM dn 1 ;09h
00134 DispFreqH dn 1 ;0Ah
00135 DispFreqU dn 1 ;0Bh
00136 DispSaveL dn 1 ;0Ch
00137 DispSaveM dn 1 ;0Dh
00138 DispSaveH dn 1 ;0Eh
00139 DispSaveU dn 1 ;0Fh
00140 Counter1 dn 1 ;10h;125MS计时
00141 Counter2 dn 1 ;11h;常按键计时
00142 AutoScanFlag dn 1 ;12h
00143 KeyHoldFlag dn 1 ;13h
00144 CycScanKeyFlag dn 1 ;14h
00145 EverHoldFlag dn 1 ;15h
00146 KeyValue dn 1 ;16h
00147 KeySave dn 1 ;17h
00148 ;=======================
00149 IC24C02Addr1 dn 1 ;18h
00150 IC24C02Addr2 dn 1 ;19h
00151 IC24C02Buff1 dn 1 ;1Ah
00152 IC24C02Buff2 dn 1 ;1Bh
00153 ReceiveData dn 1 ;1Ch
00154 ReceiveTime dn 1 ;1Dh
00155 MemoryNum dn 1 ;1Eh
00156 ;=======================
00157 FixZero dn 1 ;1Fh
00158 RAMROMFlag dn 1 ;20h ; "1"=> read RAM "0"=> read ROM
00159 GlobalTemp0 dn 1 ;21h
00160 GlobalTemp1 dn 1 ;22h
00161 GlobalTemp2 dn 1 ;23h
00162 GlobalTemp3 dn 1 ;24h
00163 SysModeFlag dn 1 ;25h ;"0"=>FM "1"=>AM
00164 ;=======================
00165 AMPrgCountL dn 1 ;26h
00166 AMPrgCountM dn 1 ;27h
00167 AMPrgCountH dn 1 ;28h
00168 AMPrgCountU dn 1 ;29h
00169 AMDispFreqL dn 1 ;2Ah
00170 AMDispFreqM dn 1 ;2Bh
00171 AMDispFreqH dn 1 ;2Ch
00172 AMDispFreqU dn 1 ;2Dh
00173 FMPrgCountL dn 1 ;2Eh
00174 FMPrgCountM dn 1 ;2Fh
00175 FMPrgCountH dn 1 ;30h
00176 FMPrgCountU dn 1 ;31h
00177 FMDispFreqL dn 1 ;32h
00178 FMDispFreqM dn 1 ;33h
00179 FMDispFreqH dn 1 ;34h
00180 FMDispFreqU dn 1 ;35h
00181 ;**************************************************************************
00182 org 70H
00183 WorkReg dn 7
00184 Halt15ms dn 1 ;77h
00185 PortAState dn 1 ;78h
00186 PortBState dn 1 ;79h
00187 HaltPortC dn 1 ;7Ah
00188 ;**************************************************************************
00189 .ENDD
00190 ;**************************************************************************
00191 ; program
00192 ;**************************************************************************
00193 .CODE
00194 ;*****************************************************************************
00195 ;*****************************************************************************
196 0000 **** NEW ADDR **** org 00h
197 00197 0000 D001 jmp Initialize
00198 Initialize:
199 00199 0001 FE84 rf2 04h ;Open LCD Segment OutPut
200 00200 0002 F500 sca 000000B ;prevent port A and C halt release
201 00201 0003 E900 sie* 0000000B ;prevent all interrupts
202 00202 0004 ED00 sre 0000000B ;prevent all stop release source
203 00203 0005 EB2F plc 100101111B ;clear all the halt release flags
204 00204 0006 F5D0 spc 10000b ;enable ioc port output and pull-low
205 00205 0007 F510 sca 10h ;enable ioc halt release
206 00206 0008 E67F tm2x 01111111B ;64*8/32.768=15.625ms
00207 ;tm2x 100111111B ;64*32/32768=62.5ms
208 00208 0009 E800 she 0000000B ;prevent tmr1,2 int 0.5s RFC call InitRAM
209 00209 000A C01F call ClearLCD
210 00210 000B C249 call InitRAM
211 00211 000C C028 call InitIO
212 00212 000D F602 sf 02H ;SET BCF=1
213 00213 000E EE00 fast
214 00214 000F C18A call TransDataControlByD0
215 00215 0010 C31B call Display
216 00216 0011 EE80 slow
217 00217 0012 F702 rf 02H ;SET BCF=0
00218 ;****************************************
00219 MainHalt:
220 00220 0013 E67F tm2x 01111111B ;64*8/32.768=15.625ms
221 00221 0014 E810 she 10h
222 00222 0015 6C7A lda HaltPortC ;Key halt release
223 00223 0016 88A6 jb1 HaltPortCPro
224 00224 0017 6C77 lda Halt15ms
225 00225 0018 8863 jb1 Halt15msPro ;62.5 ms halt release
226 00226 0019 FF00 halt
227 00227 001A 0000 nop
228 00228 001B 0000 nop
229 00229 001C 4B7A msb HaltPortC
230 00230 001D 4D77 mcx Halt15ms
231 00231 001E D013 jmp MainHalt
00232 ;===============================
00233 ClearLCD:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -