📄 pcf8563.lst
字号:
(0025) 圆版时间: 2005-03-25
(0026) ----------------------------------------------------------------------
(0027) 接入模块: PCF8563
(0028) 接口说明: 见程序
(0029) ----------------------------------------------------------------------
(0030) 注意事项:
(0031) *
(0032) ----------------------------------------------------------------------
(0033) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0034)
(0035) #include <iom16v.h>
(0036)
(0037) #define WR_DADR 0xA2
(0038) #define RD_DADR 0xA3
(0039) #include "D:\ICC_H\PCF8563.H"
(0040)
(0041) #define DISP_DDR DDRA
(0042) #define DISP_PORT PORTA
(0043)
(0044) /*--------------------------------------------------------------------
(0045) 函数全称:
(0046) 函数功能:
(0047) 注意事项:
(0048) 提示说明:
(0049) 输 入:
(0050) 返 回:
(0051) --------------------------------------------------------------------*/
(0052) void errDisp() //错误显示
(0053) {
(0054) DISP_PORT = 0XAA;
_errDisp:
02BD EA8A LDI R24,0xAA
02BE BB8B OUT 0x1B,R24
(0055) delay50ms(2);
02BF E002 LDI R16,2
02C0 E010 LDI R17,0
02C1 DF24 RCALL _delay50ms
(0056) DISP_PORT = 0X00;
02C2 2422 CLR R2
02C3 BA2B OUT 0x1B,R2
(0057) delay50ms(2);
02C4 E002 LDI R16,2
02C5 E010 LDI R17,0
02C6 DF1F RCALL _delay50ms
(0058) DISP_PORT = 0X55;
02C7 E585 LDI R24,0x55
02C8 BB8B OUT 0x1B,R24
(0059) delay50ms(2);
02C9 E002 LDI R16,2
02CA E010 LDI R17,0
02CB DF1A RCALL _delay50ms
(0060) DISP_PORT = 0X00;
02CC 2422 CLR R2
02CD BA2B OUT 0x1B,R2
(0061) delay50ms(2);
02CE E002 LDI R16,2
02CF E010 LDI R17,0
(0062) }
02D0 CF15 RJMP _delay50ms
(0063) /*--------------------------------------------------------------------
(0064) 函数全称:
(0065) 函数功能:
(0066) 注意事项:
(0067) 提示说明:假设系统时钟为16M,则TWI波特率=CLK/(16+2*(TWBR)*4)=400K
(0068) 输 入:
(0069) 返 回:
(0070) --------------------------------------------------------------------*/
(0071) void twi_init() //TWI(I2C)初始化
(0072) {
(0073) TWBR = 0X03; //设置TWI波特率
_twi_init:
02D1 E083 LDI R24,3
02D2 B980 OUT 0x00,R24
(0074) TWSR &= 0XFC; //设置TWI预分频 为 1
02D3 B181 IN R24,0x01
02D4 7F8C ANDI R24,0xFC
02D5 B981 OUT 0x01,R24
(0075) }
02D6 9508 RET
_main:
time --> Y+1
02D7 9724 SBIW R28,4
(0076) /*--------------------------------------------------------------------
(0077) 函数全称:
(0078) 函数功能:
(0079) 注意事项:
(0080) 提示说明:
(0081) 输 入:
(0082) 返 回:
(0083) --------------------------------------------------------------------*/
(0084) void main()
(0085) {
(0086) uint8 time[3]={0,1,2};
02D8 E584 LDI R24,0x54
02D9 E090 LDI R25,0
02DA 01FE MOVW R30,R28
02DB 9631 ADIW R30,1
02DC E003 LDI R16,3
02DD E010 LDI R17,0
02DE 93FA ST R31,-Y
02DF 93EA ST R30,-Y
02E0 939A ST R25,-Y
02E1 938A ST R24,-Y
02E2 940E0406 CALL asgncblk
(0087)
(0088) DISP_DDR = 0XFF;
02E4 EF8F LDI R24,0xFF
02E5 BB8A OUT 0x1A,R24
(0089) twi_init();
02E6 DFEA RCALL _twi_init
(0090) PCF8563_init();
02E7 DFCF RCALL _PCF8563_init
(0091) PCF8563_setTime(9,32,16);
02E8 E180 LDI R24,0x10
02E9 8388 STD Y+0,R24
02EA E220 LDI R18,0x20
02EB E009 LDI R16,0x9
02EC DF91 RCALL _PCF8563_setTime
02ED C006 RJMP 0x02F4
(0092)
(0093) while(1)
(0094) {
(0095) PCF8563_getTime(time);
02EE 018E MOVW R16,R28
02EF 5F0F SUBI R16,0xFF
02F0 4F1F SBCI R17,0xFF
02F1 DF35 RCALL _PCF8563_getTime
(0096) DISP_PORT = time[0];
02F2 8029 LDD R2,Y+1
02F3 BA2B OUT 0x1B,R2
02F4 CFF9 RJMP 0x02EE
(0097) }
(0098) }
FILE: <library>
02F5 9624 ADIW R28,4
02F6 9508 RET
push_arg4:
02F7 933A ST R19,-Y
02F8 932A ST R18,-Y
push_arg2:
02F9 931A ST R17,-Y
02FA 930A ST R16,-Y
02FB 9508 RET
div32u:
02FC 94E8 BCLR 6
02FD C001 RJMP 0x02FF
mod32u:
02FE 9468 BSET 6
02FF D02F RCALL long_div_prolog
0300 24CC CLR R12
0301 C008 RJMP 0x030A
div32s:
0302 94E8 BCLR 6
0303 C001 RJMP 0x0305
mod32s:
0304 9468 BSET 6
0305 D029 RCALL long_div_prolog
0306 FD37 SBRC R19,7
0307 D053 RCALL neg_R16_R19
0308 FDB7 SBRC R27,7
0309 D05A RCALL neg_R24_R27
030A 2477 CLR R7
030B 2488 CLR R8
030C 2499 CLR R9
030D 24AA CLR R10
030E 24BB CLR R11
030F D041 RCALL tst_R16_R19
0310 F0C1 BEQ 0x0329
0311 D044 RCALL tst_R24_R27
0312 F0B1 BEQ 0x0329
0313 E2E8 LDI R30,0x28
0314 0F00 LSL R16
0315 1F11 ROL R17
0316 1F22 ROL R18
0317 1F33 ROL R19
0318 1C77 ROL R7
0319 1C88 ROL R8
031A 1C99 ROL R9
031B 1CAA ROL R10
031C 1CBB ROL R11
031D 1688 CP R8,R24
031E 0699 CPC R9,R25
031F 06AA CPC R10,R26
0320 06BB CPC R11,R27
0321 F028 BCS 0x0327
0322 1A88 SUB R8,R24
0323 0A99 SBC R9,R25
0324 0AAA SBC R10,R26
0325 0ABB SBC R11,R27
0326 9503 INC R16
0327 95EA DEC R30
0328 F759 BNE 0x0314
0329 F426 BRTC 0x032E
032A 2D08 MOV R16,R8
032B 2D19 MOV R17,R9
032C 2D2A MOV R18,R10
032D 2D3B MOV R19,R11
032E C013 RJMP long_div_epilog
long_div_prolog:
032F 927A ST R7,-Y
0330 928A ST R8,-Y
0331 929A ST R9,-Y
0332 92AA ST R10,-Y
0333 92BA ST R11,-Y
0334 92CA ST R12,-Y
0335 93EA ST R30,-Y
0336 938A ST R24,-Y
0337 939A ST R25,-Y
0338 93AA ST R26,-Y
0339 93BA ST R27,-Y
033A 858B LDD R24,Y+11
033B 859C LDD R25,Y+12
033C 85AD LDD R26,Y+13
033D 85BE LDD R27,Y+14
033E 2EC3 MOV R12,R19
033F F00E BRTS 0x0341
0340 26CB EOR R12,R27
0341 9508 RET
long_div_epilog:
0342 FCC7 SBRC R12,7
0343 D017 RCALL neg_R16_R19
0344 91B9 LD R27,Y+
0345 91A9 LD R26,Y+
0346 9199 LD R25,Y+
0347 9189 LD R24,Y+
0348 91E9 LD R30,Y+
0349 90C9 LD R12,Y+
034A 90B9 LD R11,Y+
034B 90A9 LD R10,Y+
034C 9099 LD R9,Y+
034D 9089 LD R8,Y+
034E 9079 LD R7,Y+
034F 9624 ADIW R28,4
0350 9508 RET
tst_R16_R19:
0351 2FE0 MOV R30,R16
0352 2BE1 OR R30,R17
0353 2BE2 OR R30,R18
0354 2BE3 OR R30,R19
0355 9508 RET
tst_R24_R27:
0356 2FE8 MOV R30,R24
0357 2BE9 OR R30,R25
0358 2BEA OR R30,R26
0359 2BEB OR R30,R27
035A 9508 RET
neg_R16_R19:
035B 9500 COM R16
035C 9510 COM R17
035D 9520 COM R18
035E 9530 COM R19
035F 5F0F SUBI R16,0xFF
0360 4F1F SBCI R17,0xFF
0361 4F2F SBCI R18,0xFF
0362 4F3F SBCI R19,0xFF
0363 9508 RET
neg_R24_R27:
0364 9580 COM R24
0365 9590 COM R25
0366 95A0 COM R26
0367 95B0 COM R27
0368 5F8F SUBI R24,0xFF
0369 4F9F SBCI R25,0xFF
036A 4FAF SBCI R26,0xFF
036B 4FBF SBCI R27,0xFF
036C 9508 RET
mod8u:
036D 9468 BSET 6
036E C001 RJMP xdiv8u
div8u:
036F 94E8 BCLR 6
xdiv8u:
0370 932A ST R18,-Y
0371 92FA ST R15,-Y
0372 92EA ST R14,-Y
0373 24FF CLR R15
0374 24EE CLR R14
0375 E120 LDI R18,0x10
0376 0F00 LSL R16
0377 1CFF ROL R15
0378 1CEE ROL R14
0379 16E1 CP R14,R17
037A F010 BCS 0x037D
037B 1AE1 SUB R14,R17
037C 9503 INC R16
037D 952A DEC R18
037E F7B9 BNE 0x0376
037F F40E BRTC 0x0381
0380 2D0E MOV R16,R14
0381 90E9 LD R14,Y+
0382 90F9 LD R15,Y+
0383 9129 LD R18,Y+
0384 9508 RET
empy32s:
empy32u:
0385 940E03E1 CALL long_prolog
0387 927F PUSH R7
0388 940E03FA CALL tstzero1
038A F139 BEQ 0x03B2
038B 2477 CLR R7
038C 940E0400 CALL tstzero2
038E F419 BNE 0x0392
038F 018C MOVW R16,R24
0390 019D MOVW R18,R26
0391 C020 RJMP 0x03B2
0392 9F08 MUL R16,R24
0393 2CB0 MOV R11,R0
0394 2CA1 MOV R10,R1
0395 9F28 MUL R18,R24
0396 2C90 MOV R9,R0
0397 2C81 MOV R8,R1
0398 9F18 MUL R17,R24
0399 0CA0 ADD R10,R0
039A 1C91 ADC R9,R1
039B 1C87 ADC R8,R7
039C 9F09 MUL R16,R25
039D 0CA0 ADD R10,R0
039E 1C91 ADC R9,R1
039F 1C87 ADC R8,R7
03A0 9F19 MUL R17,R25
03A1 0C90 ADD R9,R0
03A2 1C81 ADC R8,R1
03A3 9F0A MUL R16,R26
03A4 0C90 ADD R9,R0
03A5 1C81 ADC R8,R1
03A6 9F38 MUL R19,R24
03A7 0C80 ADD R8,R0
03A8 9F29 MUL R18,R25
03A9 0C80 ADD R8,R0
03AA 9F1A MUL R17,R26
03AB 0C80 ADD R8,R0
03AC 9F0B MUL R16,R27
03AD 0C80 ADD R8,R0
03AE 2D0B MOV R16,R11
03AF 2D1A MOV R17,R10
03B0 2D29 MOV R18,R9
03B1 2D38 MOV R19,R8
03B2 907F POP R7
03B3 940C03EF JMP long_epilog
pop_gset2:
03B5 E0E2 LDI R30,2
03B6 940C03C2 JMP pop
pop_gset3:
03B8 E0E4 LDI R30,4
03B9 940C03C2 JMP pop
pop_gset4:
03BB E0E8 LDI R30,0x8
03BC 940C03C2 JMP pop
push_gset1:
03BE 935A ST R21,-Y
03BF 934A ST R20,-Y
03C0 9508 RET
pop_gset1:
03C1 E0E1 LDI R30,1
pop:
03C2 9149 LD R20,Y+
03C3 9159 LD R21,Y+
03C4 FDE0 SBRC R30,0
03C5 9508 RET
03C6 9169 LD R22,Y+
03C7 9179 LD R23,Y+
03C8 FDE1 SBRC R30,1
03C9 9508 RET
03CA 90A9 LD R10,Y+
03CB 90B9 LD R11,Y+
03CC FDE2 SBRC R30,2
03CD 9508 RET
03CE 90C9 LD R12,Y+
03CF 90D9 LD R13,Y+
03D0 FDE3 SBRC R30,3
03D1 9508 RET
03D2 90E9 LD R14,Y+
03D3 90F9 LD R15,Y+
03D4 9508 RET
push_gset2:
03D5 937A ST R23,-Y
03D6 936A ST R22,-Y
03D7 940C03BE JMP push_gset1
push_gset3:
03D9 92BA ST R11,-Y
03DA 92AA ST R10,-Y
03DB 940C03D5 JMP push_gset2
push_gset4:
03DD 92DA ST R13,-Y
03DE 92CA ST R12,-Y
03DF 940C03D9 JMP push_gset3
long_prolog:
03E1 928A ST R8,-Y
03E2 929A ST R9,-Y
03E3 92AA ST R10,-Y
03E4 92BA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -