📄 main.lst
字号:
1 000000 ;Note:
2 000000 ;*****************************************************************************
3 000000 ; 000000 00000 0000 0000 00000 0000 0000 *
4 000000 ; 00 00 00 00 0000 00 0 0 000 000 *
5 000000 ; 00 000 00 00 00 00 00 0 0 00 00 *
6 000000 ; 00 00 00 00 00 00 0 0 00 00 *
7 000000 ; 000000 00 00 00 00 00 0 0 000 *
8 000000 ; 000 00 00 00 00 00 00 0 0 00 00 *
9 000000 ; 00 00 00 00 00 00 00 0 0 00 00 *
10 000000 ; 00 00 00 00 00 0000 0 0 000 000 *
11 000000 ; 000000 00000 0000 0000 00000 0000 0000 *
12 000000 ; *
13 000000 ; Case Name:telecontrol bike (SONIX SN8P1602b Inside) *
14 000000 ; Purpose :RF telecontrol *
15 000000 ; Version: 1.0 *
16 000000 ; Ooooo Author: Recal Chao *
17 000000 ; ooooO ( ) E-mail: sa1@sonix.cn *
18 000000 ; ( ) ) / Tel : (86)0755-26719666-235 *
19 000000 ; \ ( (_/ Fax : (86)0755-26719786 *
20 000000 ; \_) Date : 2004/05/08 *
21 000000 ; Company: SONIX TECHNOLOGY(SHENZHEN) CO.,LTD *
22 000000 ;*****************************************************************************
23 000000 ;Fosc=8MHz(Crystal)
24 000000 ;Fcpu=2MHz
25 000000 ;***************************************
26 000000 chip SN8P1602b
27 000000 //{{SONIX_CODE_OPTION
28 000000 .Code_Option Low_Power Enable
29 000000 .Code_Option Noise_Filter Disable
30 000000 .Code_Option OSG Enable
31 000000 .Code_Option High_Clk 4M_X'tal
32 000000 .Code_Option High_Clk/2 Disable
33 000000 .Code_Option Security Enable
34 000000 .Code_Option Int_16K_RC Always_ON
35 000000 .Code_Option Watch_Dog Enable
36 000000 //}}SONIX_CODE_OPTION
37 000000
38 000000 include ram.asm ; User's RAM and Pin Definition
39 000000 ;************************************************
40 000000 ; Main Program Data Define *
41 000000 ;************************************************
42 000000 .data
43 000000 ;===================Pin Difinition====================
44 000000 ;Key
45 E 000000D2 @key1_p equ p2.0 ; |
46 E 000000C2 @key1m_p equ p2m.0 ; |
47 E 000100D2 @key2_p equ p2.1 ; |
48 E 000100C2 @key2m_p equ p2m.1 ; |
49 E 000200D2 @key3_p equ p2.2 ; |
50 E 000200C2 @key3m_p equ p2m.2 ; |
51 E 000300D2 @key4_p equ p2.3 ; |
52 E 000300C2 @key4m_p equ p2m.3 ; |
53 E 000400D2 @key5_p equ p2.4 ; |
54 E 000400C2 @key5m_p equ p2m.4 ; |
55 E 000500D2 @key6_p equ p2.5 ; |
56 E 000500C2 @key6m_p equ p2m.5 ; |
57 E 000600D2 @key7_p equ p2.6 ; |
58 E 000600C2 @key7m_p equ p2m.6 ; |
59 E 000700D2 @key8_p equ p2.7 ; |
60 E 000700C2 @key8m_p equ p2m.7 ; |
61 000000 ;RF remote pin
62 E 000000D1 O_RFremote equ p1.0
63 E 000000C1 Om_RFremote equ p1m.0
64 000000 ;=============== Usual work register =================
65 E 000000C0 ID_code_val equ #11000000b ;Note:bit[5..0]==000000,bit6 and bit7 can self select
66 0000 D remote_rambuf ds 1
67 000001 ;RF remote
68 E 00000001 RF_pilot_Lval equ #1 ;
69 E 00000010 RF_pilot_Hval equ #16 ;
70 E 00000002 RF_bit0_Lval equ #2 ;
71 E 00000002 RF_bit0_Hval equ #2 ;
72 E 00000004 RF_bit1_Lval equ #4 ;
73 E 00000004 RF_bit1_Hval equ #4 ;
74 E 00000000 RF_stop_Lval equ #0 ;
75 E 00000000 RF_stop_Hval equ #0 ;
76 E 00000008 RF_databit_val equ #8 ;
77 000001
78 0001 D RF_remotecountH ds 1
79 0002 D RF_remotecountL ds 1
80 0003 D RF_remotedata_val ds 2
81 0005 D RF_databit_count ds 1
82 0006 D RF_remote_mode ds 1
83 000007 ; 1 = remote pilot, 2 = remote data, 3 = remote stop bit
84 0007 D RF_flag ds 1
85 E 00000007 RF_remotestart_f equ RF_flag.0 ;1==satart remote
86 E 00010007 RF_remoteover_f equ RF_flag.1 ;1==remote temp over
87 E 00020007 RF_remotefinish_f equ RF_flag.2 ;1==remote finish
88 E 00030007 RF_remotelevel_f equ RF_flag.3 ;control output 0/1
89 000008 ;Key scanning
90 E 00000008 @key_num equ 8 ;
91 E 00000005 @debounce_num equ #5 ; debounce time = xx * Systime base
92 E 00000000 @keystate_set equ 0 ; 0: Low voltage detect ; 1: High voltage detect
93 E 00000000 @key_power_set equ 0 ; 0: Don't care power ; 1 : care power
94 0008 D @keyinbuf ds 1 ; store the temp key state when scanning
95 0009 D @keychkbuf ds 1 ; store the key state
96 000A D @keycvtbuf ds 1
97 000B D @keyoldbuf ds 1
98 000C D @keyflag ds 1
99 E 0000000C @keydown_f equ @keyflag.0
100 E 0001000C have_key equ @keyflag.1
101 000D D @keychat ds 1
102 000E D @aplcode ds 1
103 00000F ;================ Temp work register =================
104 000F D wk00 ds 1 ; Temp Register
105 000010 ;wk01 ds 1 ; X
106 000010 ;wk02 ds 1 ; X
107 000010 ;wk03 ds 1 ; X
108 000010 ;wk04 ds 1 ; X
109 000010 ;wk05 ds 1 ; X
110 000010 ;wk06 ds 1 ; X
111 000010 ;wk07 ds 1 ; X
112 000010 ;wk08 ds 1 ; X
113 000010 ;wk09 ds 1 ; X
114 000010 ;wk10 ds 1 ; X
115 000010 ;wk11 ds 1 ; X
116 000010 ;wk12 ds 1 ; Temp Register
117 000010 ;============================= Clear Ram =============================
118 E 00000001 @Rambank0 equ 1 ; 0: No bank0 ; 1: Have bank0
119 E 00000000 @Rambank1 equ 0 ; 0: No bank1 ; 1: Have bank1
120 E 00000000 @Rambank2 equ 0 ; 0: No bank2 ; 1: Have bank2
121 E 00000000 @Rambank3 equ 0 ; 0: No bank3 ; 1: Have bank3
122 E 00000000 @Rambank4 equ 0 ; 0: No bank4 ; 1: Have bank4
123 E 00000000 @Rambank15 equ 0 ; 0: No bank15 ; 1: Have bank15
124 E 00000030 @Rambank0_val equ #48 ; xx= 2fh,3fh,7fh...
125 000010 ;============================ Application =============================
126 000010 ; Power down
127 E 00000000 @Powerdown_set equ 0 ; 0: System not powerdown ; 1: System will power down
128 000010 ; Green mode
129 E 00000000 @GreenMode_set equ 0 ; 0: System not Greenmode ; 1: System will Greenmode
130 000010 ; Oscm setting
131 E 00000040 @Oscm_set equ #01000000b
132 000010 ; Pedge setting ; 0: Not use pedge register
133 E 00000000 @Pedge_set equ 0 ; 1: Wakeup by low level ; 2: Wakeup by falling edge
134 000010 ; 3: Wakeup by rising edge ; 4: Wakeup by change triggle
135 000010 ; A/D setting
136 E 00000000 @ADappl_set equ 0 ; 0: Not use A/D ; 1: Use A/D
137 000010 ; D/A setting
138 E 00000000 @DAappl_set equ 0 ; 0: Not use D/A ; 1: Use D/A
139 000010 ; LCD display
140 E 00000000 @Lcdappl_set equ 0 ; 0: Not use Lcd driver ; 1: Use Lcd driver
141 000010 ;============================== IO port ===============================
142 E 00000001 @ChipP0 equ 1 ; 1: P0 exist , 0: P0 not exist
143 E 00000001 @ChipP1 equ 1 ; 1: P1 exist , 0: P1 not exist
144 E 00000001 @ChipP2 equ 1 ; 1: P2 exist , 0: P2 not exist
145 E 00000000 @ChipP3 equ 0 ; 1: P3 exist , 0: P3 not exist
146 E 00000000 @ChipP4 equ 0 ; 1: P4 exist , 0: P4 not exist
147 E 00000000 @ChipP5 equ 0 ; 1: P5 exist , 0: P5 not exist
148 E 00000000 @ChipP6 equ 0 ; 1: P6 exist , 0: P6 not exist
149 E 00000000 @ChipP7 equ 0 ; 1: P7 exist , 0: P7 not exist
150 000010
151 000010 ;Pur register Set/Port Value Set/IO direction Set
152 E 00000002 @Purmode equ 2 ; 0=No Pur register ; 1=Bit set ; 2=Port set
153 000010 ;----------------------------------------------
154 E 00000005 @Pur_set equ 00000101b ; Ex. 00110001b --> p0UR&p4UR&p5UR=1
155 000010 ;----------------------------------------------
156 000010 ;--------------
157 E 00000000 @p1set equ #0 ; In/Output value
158 E 00000000 @p1Wset equ #0 ; 0: No wakeup / 1: Wakeup
159 E 00000001 @p1Mset equ #00000001b ; 0: Input / 1: Output
160 000010 ;--------------
161 E 000000FF @p2set equ #11111111b ; In/Output value
162 E 00000000 @p2Mset equ #00000000b ; 0: Input / 1: Output
163 000010 ;--------------
164 000010 ;--------------
165 000010 ;--------------
166 000010 ;--------------
167 000010 ;--------------
168 000010 ;===================== Interrupt data Define ======================
169 0010 D accbuf ds 1
170 0011 D pflagbuf ds 1
171 000012 ;ybuf ds 1
172 000012 ;zbuf ds 1
173 000012 ;rbuf ds 1
174 000012 ;xbuf ds 1
175 000012 ;hbuf ds 1
176 000012 ;lbuf ds 1
177 0012 D intwk00 ds 1 ;interrupt work register0
178 000013 ;intwk01 ds 1 ;interrupt work register1
179 000013 ;intwk02 ds 1 ;interrupt work register2
180 000013 ;intwk03 ds 1 ;interrupt work register3
181 000013 ;intwk04 ds 1 ;interrupt work register4
182 E 00000000 @ChipP00INT equ 0 ; 1: P00INT exist , 0: P00INT don't care
183 E 00000000 @ChipP01INT equ 0 ; 1: P00INT exist , 0: P00INT don't care
184 E 00000000 @ChipP02INT equ 0 ; 1: P00INT exist , 0: P00INT don't care
185 E 00000000 @ChipT0INT equ 0 ; 1: T0INT exist , 0: T0INT don't care
186 E 00000000 @ChipSIOINT equ 0 ; 1: SIOINT exist , 0: SIOINT don't care
187 E 00000001 @ChipTC0INT equ 1 ; 1: TC0INT exist , 0: TC0INT don't care
188 E 00000000 @ChipTC1INT equ 0 ; 1: TC1INT exist , 0: TC1INT don't care
189 E 00000000 @ChipADCINT equ 0 ; 1: ADINT exist , 0: ADINT don't care
190 000013 ;====================== Interrupt Interface data define =====================
191 000013
192 E 00000002 @Systimer_set equ 2 ;0: No system time base/1: T0 time base/2: Tc0 time base/3: Tc1 time base
193 000013
194 0013 D @intgnd ds 1 ;INT interface register
195 E 00000000 @SysT0 equ 0 ; 1: Use T0 / 0: Not use T0
196 E 00000001 @SysTc0 equ 1 ; 1: Use Tc0 / 0: Not use Tc0
197 E 00000000 @SysTc1 equ 0 ; 1: Use Tc1 / 0: Not use Tc1
198 000014
199 E 00000006 @SysTc0c equ #06h ; set Pre-scalar=fcpu/
200 E 00000070 @SysTc0m equ #70h ; set count steps 250us
201 E 00000000 @SysTc0R_set equ 0 ; 1: Use Tc0R / 0: Not use TC0R
202 000014
203 E 00000000 IRQ=0
204 E 00000013 @Sys5msIRQ equ @intgnd.IRQ ;IRQ 5ms flag
205 000014 ;IRQ=IRQ+1
206 000014 ;@Sys10msIRQ equ @intgnd.IRQ ;IRQ 10ms flag
207 000014 IRQ=IRQ+1
208 E 00010013 @Sys50msIRQ equ @intgnd.IRQ ;IRQ 50ms flag
209 000014 ;IRQ=IRQ+1
210 000014 ;@Sys100msIRQ equ @intgnd.IRQ ;IRQ 100ms flag
211 000014 ;IRQ=IRQ+1
212 000014 ;@Sys200msIRQ equ @intgnd.IRQ ;IRQ 200ms flag
213 000014 ;IRQ=IRQ+1
214 000014 ;@Sys300msIRQ equ @intgnd.IRQ ;IRQ 300ms flag
215 000014 ;IRQ=IRQ+1
216 000014 ;@Sys400msIRQ equ @intgnd.IRQ ;IRQ 400ms flag
217 000014 ;IRQ=IRQ+1
218 000014 ;@Sys500msIRQ equ @intgnd.IRQ ;IRQ 500ms flag
219 000014 ;IRQ=IRQ+1
220 000014 ;@Sys600msIRQQ equ @intgnd.IRQ ;IRQ 600ms flag
221 000014 ;IRQ=IRQ+1
222 000014 ;@Sys700msIRQ equ @intgnd.IRQ ;IRQ 700ms flag
223 000014 ;IRQ=IRQ+1
224 000014 ;@Sys800msIRQ equ @intgnd.IRQ ;IRQ 800ms flag
225 000014 ;IRQ=IRQ+1
226 000014 ;@Sys900msIRQ equ @intgnd.IRQ ;IRQ 900ms flag
227 000014 ;IRQ=IRQ+1
228 000014 ;@Sys1sIRQ equ @intgnd.IRQ ;IRQ 1000ms flag
229 000014 ;IRQ=IRQ+1
230 000014 ;@Sys5sIRQ equ @intgnd.IRQ ;IRQ 5000ms flag
231 000014 ;IRQ=IRQ+1
232 000014 ;@Sys10sIRQ equ @intgnd.IRQ ;IRQ 10000ms flag
233 000014 ;IRQ=IRQ+1
234 000014 ;@Sys30sIRQ equ @intgnd.IRQ ;IRQ 30000ms flag
235 000014 ;IRQ=IRQ+1
236 000014 ;@Sys60sIRQ equ @intgnd.IRQ ;IRQ 60000ms flag
237 000014 ;IRQ=IRQ+1
238 000014 ;@Sys300sIRQ equ @intgnd.IRQ ;IRQ 300000ms flag
239 000014
240 000014
241 0014 D @Sys50msC ds 1 ;count for 50ms INT
242 E 0000000A @Sys50msStep equ #10 ;count step of 5ms INT
243 000015
244 000015
245 000015
246 000015
247 000015
248 000015
249 000015
250 000015
251 000015
252 000015
253 000015
254 000015
255 000015
256 000015
257 000015
258 000015 ;Others
259 E 00000000 bit0 equ 0
260 E 00000001 bit1 equ 1
261 E 00000002 bit2 equ 2
262 E 00000003 bit3 equ 3
263 E 00000004 bit4 equ 4
264 E 00000005 bit5 equ 5
265 E 00000006 bit6 equ 6
266 E 00000007 bit7 equ 7
267 000015 ; include extern.h ; Project's Macro
268 000015 includestd macro1.h ; SONIX Standard MACRO1
269 000015 includestd macro2.h ; SONIX Standard MACRO2
270 000015 includestd macro3.h ; SONIX Standard MACRO3
271 000015 includestd macro.h ; Sonix's full macro liarbry
272 000015
273 000000 .code
274 000000 org 00h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -