📄 test.lst
字号:
21D 9120 0065 LDS R18,0x0065
21F 2733 CLR R19
220 702F ANDI R18,0xF
221 7030 ANDI R19,0
222 940E 034D CALL 0x034D
224 DE8B RCALL _LCD_write_char
225 940E 0370 CALL 0x0370
(0117) LCD_write_char(0,'/');
227 DE88 RCALL _LCD_write_char
(0118) LCD_write_char(0,(timer[3]>>4)+0x30); //显示日
228 9120 0063 LDS R18,timer+3
22A 940E 033F CALL <created procedures>
22C DE83 RCALL _LCD_write_char
(0119) LCD_write_char(0,(timer[3]&0x0f)+0x30);
22D 9120 0063 LDS R18,timer+3
22F 2733 CLR R19
230 702F ANDI R18,0xF
231 7030 ANDI R19,0
232 940E 034D CALL 0x034D
234 DE7B RCALL _LCD_write_char
(0120)
(0121) LCD_set_xy(2,1); //写指令:第2行地址
235 E021 LDI R18,1
236 E002 LDI R16,2
237 DE62 RCALL _LCD_set_xy
(0122)
(0123) LCD_write_char(0,(timer[2]>>4)+0x30); //时
238 9120 0062 LDS R18,timer+2
23A 940E 033F CALL <created procedures>
23C DE73 RCALL _LCD_write_char
(0124) LCD_write_char(0,(timer[2]&0x0f)+0x30);
23D 9120 0062 LDS R18,timer+2
23F 2733 CLR R19
240 702F ANDI R18,0xF
241 7030 ANDI R19,0
242 940E 034D CALL 0x034D
244 DE6B RCALL _LCD_write_char
245 940E 0389 CALL 0x0389
(0125) LCD_write_char(0,':');
247 DE68 RCALL _LCD_write_char
(0126) LCD_write_char(0,(timer[1]>>4)+0x30); //分
248 9120 0061 LDS R18,timer+1
24A 940E 033F CALL <created procedures>
24C DE63 RCALL _LCD_write_char
(0127) LCD_write_char(0,(timer[1]&0x0f)+0x30);
24D 9120 0061 LDS R18,timer+1
24F 2733 CLR R19
250 702F ANDI R18,0xF
251 7030 ANDI R19,0
252 940E 034D CALL 0x034D
254 DE5B RCALL _LCD_write_char
255 940E 0389 CALL 0x0389
(0128) LCD_write_char(0,':');
257 DE58 RCALL _LCD_write_char
(0129) LCD_write_char(0,(timer[0]>>4)+0x30); //秒
258 9120 0060 LDS R18,timer
25A 940E 033F CALL <created procedures>
25C DE53 RCALL _LCD_write_char
(0130) LCD_write_char(0,(timer[0]&0x0f)+0x30);
25D 9120 0060 LDS R18,timer
25F 2733 CLR R19
260 702F ANDI R18,0xF
261 7030 ANDI R19,0
262 940E 034D CALL 0x034D
264 DE4B RCALL _LCD_write_char
265 940E 0366 CALL 0x0366
(0131) LCD_write_char(0,' ');
267 DE48 RCALL _LCD_write_char
(0132) LCD_write_char(0,'W'); LCD_write_char(0,'e'); //星期的前导字
268 E527 LDI R18,0x57
269 E030 LDI R19,0
26A 2700 CLR R16
26B 2711 CLR R17
26C DE43 RCALL _LCD_write_char
26D 940E 0384 CALL 0x0384
26F DE40 RCALL _LCD_write_char
270 940E 0384 CALL 0x0384
(0133) LCD_write_char(0,'e'); LCD_write_char(0,'k');
272 DE3D RCALL _LCD_write_char
273 E62B LDI R18,0x6B
274 E030 LDI R19,0
275 2700 CLR R16
276 2711 CLR R17
277 DE38 RCALL _LCD_write_char
(0134) LCD_write_char(0,(timer[4]&0x0f)+0x30); //星期数据
278 9120 0064 LDS R18,0x0064
27A 2733 CLR R19
27B 702F ANDI R18,0xF
27C 7030 ANDI R19,0
27D 940E 034D CALL 0x034D
27F DE30 RCALL _LCD_write_char
280 9508 RET
(0135) }
(0136)
(0137) //定时器1:每秒从8563中读取4次数据,更新显示
(0138) void timer1_init(void) //定时器1初始化:250毫秒定时,预分频256
(0139) {
(0140) TCCR1B=0x00; //停止定时器
_timer1_init:
281 2422 CLR R2
282 BC2E OUT 0x2E,R2
283 940E 037F CALL 0x037F
(0141) TCNT1H=0x8F; //初值高字节
(0142) TCNT1L=0x81; //定时初值低字节
(0143) TCCR1A=0x00;
285 BC2F OUT 0x2F,R2
(0144) TCCR1B=0x03; //启动定时器
286 E083 LDI R24,3
287 BD8E OUT 0x2E,R24
288 9508 RET
_timer1_ovf_isr:
289 920A ST R0,-Y
28A 921A ST R1,-Y
28B 922A ST R2,-Y
28C 923A ST R3,-Y
28D 924A ST R4,-Y
28E 925A ST R5,-Y
28F 926A ST R6,-Y
290 927A ST R7,-Y
291 928A ST R8,-Y
292 929A ST R9,-Y
293 930A ST R16,-Y
294 931A ST R17,-Y
295 932A ST R18,-Y
296 933A ST R19,-Y
297 938A ST R24,-Y
298 939A ST R25,-Y
299 93AA ST R26,-Y
29A 93BA ST R27,-Y
29B 93EA ST R30,-Y
29C 93FA ST R31,-Y
29D B60F IN R0,0x3F
29E 920A ST R0,-Y
29F 940E 037F CALL 0x037F
(0145) }
(0146)
(0147) #pragma interrupt_handler timer1_ovf_isr:9
(0148) void timer1_ovf_isr(void) //定时器1中断入口:250MS中断一次
(0149) {
(0150) TCNT1H = 0x8F; //重装初值
(0151) TCNT1L = 0x81;
(0152) read_timer(); //读出当前时钟
2A1 DEC5 RCALL _read_timer
(0153) timer_lcd(); //显示数据转换
2A2 DF55 RCALL _timer_lcd
2A3 9009 LD R0,Y+
2A4 BE0F OUT 0x3F,R0
2A5 91F9 LD R31,Y+
2A6 91E9 LD R30,Y+
2A7 91B9 LD R27,Y+
2A8 91A9 LD R26,Y+
2A9 9199 LD R25,Y+
2AA 9189 LD R24,Y+
2AB 9139 LD R19,Y+
2AC 9129 LD R18,Y+
2AD 9119 LD R17,Y+
2AE 9109 LD R16,Y+
2AF 9099 LD R9,Y+
2B0 9089 LD R8,Y+
2B1 9079 LD R7,Y+
2B2 9069 LD R6,Y+
2B3 9059 LD R5,Y+
2B4 9049 LD R4,Y+
2B5 9039 LD R3,Y+
2B6 9029 LD R2,Y+
2B7 9019 LD R1,Y+
2B8 9009 LD R0,Y+
2B9 9518 RETI
FILE: D:\mega16_32实验板资料\ICCAVR源程序\twi\pcf8563\pcf8563_test.c
(0001) //ICC-AVR application builder : 2008-11-10 11:10:06
(0002) // Target : M16
(0003) // Crystal: 8.0000Mhz
(0004)
(0005) #include <iom16v.h>
(0006) #include <macros.h>
(0007)
(0008)
(0009) #include "delay.h"
(0010) #include "twi.h"
(0011) #include "lcd1602.h"
(0012) #include "pcf8563.h"
(0013)
(0014) /**********************************
(0015) * 端口设置函数 *
(0016) **********************************/
(0017) void port_init(void)
(0018) {
(0019) DDRC=0x00;
_port_init:
2BA 2422 CLR R2
2BB BA24 OUT 0x14,R2
(0020) PORTC=0xFF;
2BC EF8F LDI R24,0xFF
2BD BB85 OUT 0x15,R24
2BE 9508 RET
(0021) }
(0022)
(0023)
(0024) void main(void)
(0025) {
(0026) port_init();
_main:
2BF DFFA RCALL _port_init
(0027) LCD_init();
2C0 DDBA RCALL _LCD_init
(0028) delay_ms(50);
2C1 E302 LDI R16,0x32
2C2 E010 LDI R17,0
2C3 DDA3 RCALL _delay_ms
(0029) Twi_Init();
2C4 DDB1 RCALL _Twi_Init
(0030) delay_ms(100);
2C5 E604 LDI R16,0x64
2C6 E010 LDI R17,0
2C7 DD9F RCALL _delay_ms
(0031) CLI();
2C8 94F8 BCLR 7
(0032) timer1_init(); //定时器1初始化
2C9 DFB7 RCALL _timer1_init
(0033) MCUCR = 0x00;
2CA 2422 CLR R2
2CB BE25 OUT 0x35,R2
(0034) GICR = 0x00;
2CC BE2B OUT 0x3B,R2
(0035) TIMSK = 0x04; //开放定时器1中断和比较中断
2CD E084 LDI R24,4
2CE BF89 OUT 0x39,R24
(0036) SEI(); //开总中断
2CF 9478 BSET 7
(0037) while(1)
FILE: <library>
2D0 CFFF RJMP 0x02D0
2D1 9508 RET
mod16s:
2D2 9468 BSET 6
2D3 92DA ST R13,-Y
2D4 2ED1 MOV R13,R17
2D5 C004 RJMP 0x02DA
div16s:
2D6 94E8 BCLR 6
2D7 92DA ST R13,-Y
2D8 2ED1 MOV R13,R17
2D9 26D3 EOR R13,R19
2DA FF17 SBRS R17,7
2DB C002 RJMP 0x02DE
2DC 940E 037A CALL 0x037A
2DE FF37 SBRS R19,7
2DF C004 RJMP 0x02E4
2E0 9530 COM R19
2E1 9520 COM R18
2E2 5F2F SUBI R18,0xFF
2E3 4F3F SBCI R19,0xFF
2E4 D009 RCALL xdiv16u
2E5 FED7 SBRS R13,7
2E6 C002 RJMP 0x02E9
2E7 940E 037A CALL 0x037A
2E9 90D9 LD R13,Y+
2EA 9508 RET
mod16u:
2EB 9468 BSET 6
2EC C001 RJMP xdiv16u
div16u:
2ED 94E8 BCLR 6
xdiv16u:
2EE 92EA ST R14,-Y
2EF 92FA ST R15,-Y
2F0 938A ST R24,-Y
2F1 24EE CLR R14
2F2 24FF CLR R15
2F3 E180 LDI R24,0x10
2F4 0F00 LSL R16
2F5 1F11 ROL R17
2F6 1CEE ROL R14
2F7 1CFF ROL R15
2F8 16E2 CP R14,R18
2F9 06F3 CPC R15,R19
2FA F018 BCS 0x02FE
2FB 1AE2 SUB R14,R18
2FC 0AF3 SBC R15,R19
2FD 9503 INC R16
2FE 958A DEC R24
2FF F7A1 BNE 0x02F4
300 F416 BRTC 0x0303
301 2D0E MOV R16,R14
302 2D1F MOV R17,R15
303 9189 LD R24,Y+
304 90F9 LD R15,Y+
305 90E9 LD R14,Y+
306 9508 RET
pop_xgset30FC:
307 940E 0361 CALL 0x0361
309 90E9 LD R14,Y+
30A 90F9 LD R15,Y+
30B 9149 LD R20,Y+
30C 9159 LD R21,Y+
30D 9508 RET
push_xgsetF0FC:
30E 937A ST R23,-Y
30F 936A ST R22,-Y
push_xgset30FC:
310 935A ST R21,-Y
311 934A ST R20,-Y
push_xgset00FC:
312 92FA ST R15,-Y
313 92EA ST R14,-Y
push_xgset003C:
314 92DA ST R13,-Y
315 92CA ST R12,-Y
316 92BA ST R11,-Y
317 92AA ST R10,-Y
318 9508 RET
push_xgsetF00C:
319 940E 036B CALL 0x036B
31B 92BA ST R11,-Y
31C 92AA ST R10,-Y
31D 9508 RET
pop_xgsetF00C:
31E 90A9 LD R10,Y+
31F 90B9 LD R11,Y+
320 9149 LD R20,Y+
321 9159 LD R21,Y+
322 9169 LD R22,Y+
323 9179 LD R23,Y+
324 9508 RET
push_xgset303C:
325 935A ST R21,-Y
326 934A ST R20,-Y
327 92DA ST R13,-Y
328 92CA ST R12,-Y
329 92BA ST R11,-Y
32A 92AA ST R10,-Y
32B 9508 RET
pop_xgset303C:
32C 940E 0361 CALL 0x0361
32E 9149 LD R20,Y+
32F 9159 LD R21,Y+
330 9508 RET
push_xgsetF03C:
331 940E 036B CALL 0x036B
333 92DA ST R13,-Y
334 92CA ST R12,-Y
335 92BA ST R11,-Y
336 92AA ST R10,-Y
337 9508 RET
pop_xgsetF03C:
338 940E 0361 CALL 0x0361
33A 9149 LD R20,Y+
33B 9159 LD R21,Y+
33C 9169 LD R22,Y+
33D 9179 LD R23,Y+
33E 9508 RET
<created procedures>:
33F 2733 CLR R19
340 9535 ASR R19
341 9527 ROR R18
342 9535 ASR R19
343 9527 ROR R18
344 9535 ASR R19
345 9527 ROR R18
346 9535 ASR R19
347 9527 ROR R18
348 5D20 SUBI R18,0xD0
349 4F3F SBCI R19,0xFF
34A 2700 CLR R16
34B 2711 CLR R17
34C 9508 RET
34D 5D20 SUBI R18,0xD0
34E 4F3F SBCI R19,0xFF
34F 2700 CLR R16
350 2711 CLR R17
351 9508 RET
352 BF86 OUT 0x36,R24
353 B626 IN R2,0x36
354 FE27 SBRS R2,7
355 CFFD RJMP 0x0353
356 B181 IN R24,0x01
357 7F88 ANDI R24,0xF8
358 9508 RET
359 7F80 ANDI R24,0xF0
35A 7090 ANDI R25,0
35B B225 IN R2,0x15
35C 2433 CLR R3
35D 2A28 OR R2,R24
35E 2A39 OR R3,R25
35F BA25 OUT 0x15,R2
360 9508 RET
361 90A9 LD R10,Y+
362 90B9 LD R11,Y+
363 90C9 LD R12,Y+
364 90D9 LD R13,Y+
365 9508 RET
366 E220 LDI R18,0x20
367 E030 LDI R19,0
368 2700 CLR R16
369 2711 CLR R17
36A 9508 RET
36B 937A ST R23,-Y
36C 936A ST R22,-Y
36D 935A ST R21,-Y
36E 934A ST R20,-Y
36F 9508 RET
370 E22F LDI R18,0x2F
371 E030 LDI R19,0
372 2700 CLR R16
373 2711 CLR R17
374 9508 RET
375 8120 LDD R18,Z+0
376 2733 CLR R19
377 2700 CLR R16
378 2711 CLR R17
379 9508 RET
37A 9510 COM R17
37B 9500 COM R16
37C 5F0F SUBI R16,0xFF
37D 4F1F SBCI R17,0xFF
37E 9508 RET
37F E88F LDI R24,0x8F
380 BD8D OUT 0x2D,R24
381 E881 LDI R24,0x81
382 BD8C OUT 0x2C,R24
383 9508 RET
384 E625 LDI R18,0x65
385 E030 LDI R19,0
386 2700 CLR R16
387 2711 CLR R17
388 9508 RET
389 E32A LDI R18,0x3A
38A E030 LDI R19,0
38B 2700 CLR R16
38C 2711 CLR R17
38D 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -