📄 boot.ls1
字号:
166 ;
167 ; /*************2002年12月13日*******************/
168 ;
169 ; /************AUTHOR BY WANGSW********************/
170 ;
171 ;
172 ; #include "reg52x2.h"
173 ;
174 ; #include "define.h"
175 ;
176 ;
177 ; #include "led_key.h"
178 ; #include "iic.h"
179 ;
180 ; #include "init.h"
181 ; #include "lcd.h"
182 ; #include "bitmap.h"
183 ; #include "uart.h"
184 ; #include "timer.h"
185 ; #include "rtc.h"
A51 MACRO ASSEMBLER BOOT 10/31/2003 02:22:23 PAGE 4
186 ; #include "smart_timer.h"
187 ;
188 ; #include "boot.h"
189 ;
190 ; static byte i = 0;
191 ;
192 ; /****************************************************************************************
**
193 ; *函数名: main
194 ; *参数: 无
195 ; *返回值: 无
196 ; *描述:
197 ; *编写: 王绍伟
198 ; *版本信息: V1.0 2003年8月15日
199 ; *****************************************************************************************
*/
200 ;
201 ; main(void)
202
---- 203 RSEG ?PR?main?BOOT
0000 204 main:
205 USING 0
206 ; SOURCE LINE # 63
207 ; {
208 ; SOURCE LINE # 64
209 ; init_process(); /*r初始化进程*/
210 ; SOURCE LINE # 65
0000 120000 F 211 LCALL init_process
212 ;
213 ; lcd_display_graphic(0,0,32,16,FALSE,SEND);
214 ; SOURCE LINE # 67
0003 900000 F 215 MOV DPTR,#?_lcd_display_graphic?BYTE+03H
0006 7410 216 MOV A,#010H
0008 F0 217 MOVX @DPTR,A
0009 C200 F 218 CLR ?_lcd_display_graphic?BIT
000B E4 219 CLR A
000C A3 220 INC DPTR
000D F0 221 MOVX @DPTR,A
000E 7B20 222 MOV R3,#020H
0010 FD 223 MOV R5,A
0011 FF 224 MOV R7,A
0012 120000 F 225 LCALL _lcd_display_graphic
226 ; lcd_display_graphic(0,16,32,16,FALSE,RECEIVE);
227 ; SOURCE LINE # 68
0015 900000 F 228 MOV DPTR,#?_lcd_display_graphic?BYTE+03H
0018 7410 229 MOV A,#010H
001A F0 230 MOVX @DPTR,A
001B C200 F 231 CLR ?_lcd_display_graphic?BIT
001D A3 232 INC DPTR
001E 7401 233 MOV A,#01H
0020 F0 234 MOVX @DPTR,A
0021 7B20 235 MOV R3,#020H
0023 7D10 236 MOV R5,#010H
0025 E4 237 CLR A
0026 FF 238 MOV R7,A
0027 120000 F 239 LCALL _lcd_display_graphic
002A 240 ?C0001:
241 ; /****************************************************/
242 ; while(TRUE)
243 ; SOURCE LINE # 70
244 ; {
245 ; SOURCE LINE # 71
246 ; switch(msg_queue_out()) /*r根据消息
队列的取值进行处理*/
247 ; SOURCE LINE # 72
002A 120000 F 248 LCALL msg_queue_out
A51 MACRO ASSEMBLER BOOT 10/31/2003 02:22:23 PAGE 5
002D EF 249 MOV A,R7
002E 24FE 250 ADD A,#0FEH
0030 604B 251 JZ ?C0007
0032 14 252 DEC A
0033 604F 253 JZ ?C0010
0035 14 254 DEC A
0036 604A 255 JZ ?C0008
0038 2403 256 ADD A,#03H
003A 70EE 257 JNZ ?C0001
258 ; {
259 ; SOURCE LINE # 73
260 ; case MSG_KEY: /*r若是按键
消息*/
261 ; SOURCE LINE # 74
003C 262 ?C0004:
263 ; g_KeyStore = g_MsgReturnValue;
264 ; SOURCE LINE # 75
003C 850000 F 265 MOV g_KeyStore,g_MsgReturnValue
266 ; lcd_display_byte(40, 0, TRUE, FALSE, g_MsgReturnValue);
267 ; SOURCE LINE # 76
003F D200 F 268 SETB ?_lcd_display_byte?BIT
0041 C200 F 269 CLR ?_lcd_display_byte?BIT+01H
0043 900000 F 270 MOV DPTR,#?_lcd_display_byte?BYTE+02H
0046 E500 F 271 MOV A,g_MsgReturnValue
0048 F0 272 MOVX @DPTR,A
0049 E4 273 CLR A
004A FD 274 MOV R5,A
004B 7F28 275 MOV R7,#028H
004D 120000 F 276 LCALL _lcd_display_byte
277 ; DEBUG(printf("wangsw = %d", (word)g_MsgReturnValue));
278 ; SOURCE LINE # 77
0050 300012 F 279 JNB g_bDebug,?C0005
0053 7BFF 280 MOV R3,#0FFH
0055 7A00 F 281 MOV R2,#HIGH (?SC_0)
0057 7900 F 282 MOV R1,#LOW (?SC_0)
0059 900000 F 283 MOV DPTR,#?_printf?BYTE+03H
005C E4 284 CLR A
005D F0 285 MOVX @DPTR,A
005E A3 286 INC DPTR
005F E500 F 287 MOV A,g_MsgReturnValue
0061 F0 288 MOVX @DPTR,A
0062 120000 F 289 LCALL _printf
0065 290 ?C0005:
291 ; if(g_KeyStore == 8)
292 ; SOURCE LINE # 78
0065 E500 F 293 MOV A,g_KeyStore
0067 B408C0 294 CJNE A,#08H,?C0001
295 ; {
296 ; SOURCE LINE # 79
297 ; smart_timer_start(MSG_DATA, 2, 1000, 1);
298 ; SOURCE LINE # 80
006A 900000 F 299 MOV DPTR,#?_smart_timer_start?BYTE+04H
006D 7401 300 MOV A,#01H
006F F0 301 MOVX @DPTR,A
0070 7BE8 302 MOV R3,#0E8H
0072 7A03 303 MOV R2,#03H
0074 7D02 304 MOV R5,#02H
0076 7F04 305 MOV R7,#04H
0078 120000 F 306 LCALL _smart_timer_start
307 ; }
308 ; SOURCE LINE # 81
309 ; break;
310 ; SOURCE LINE # 82
007B 80AD 311 SJMP ?C0001
312 ; case MSG_UART: /*r若是串口
通信消息,则进行串口通信处理*/
A51 MACRO ASSEMBLER BOOT 10/31/2003 02:22:23 PAGE 6
313 ; SOURCE LINE # 83
007D 314 ?C0007:
315 ; uart_process();
316 ; SOURCE LINE # 84
007D 120000 F 317 LCALL uart_process
318 ; break;
319 ; SOURCE LINE # 85
0080 80A8 320 SJMP ?C0001
321 ; case MSG_DATA:
322 ; SOURCE LINE # 86
0082 323 ?C0008:
324 ; switch(g_MsgReturnValue)
325 ; SOURCE LINE # 87
0082 80A6 326 SJMP ?C0001
327 ;
328 ; lcd_display_byte(40, 48, TRUE, FALSE, g_MsgReturnValue);
329 ; SOURCE LINE # 89
330 ; break;
331 ; SOURCE LINE # 90
332 ; case MSG_RTC:
333 ; SOURCE LINE # 91
0084 334 ?C0010:
335 ; #ifdef SOFT_RTC
336 ; rtc_soft_process(g_MsgReturnValue);
337 ; SOURCE LINE # 93
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -