📄 8563.lis
字号:
03B6 21E0 ldi R18,1
03B8 01E8 ldi R16,129
03BA 3BDF xcall _i2c_Write
03BC .dbline 176
03BC ; i2c_Write(0x50,0x02);
03BC 22E0 ldi R18,2
03BE 00E5 ldi R16,80
03C0 38DF xcall _i2c_Write
03C2 .dbline 177
03C2 ; i2c_Write(0x04,0x03);
03C2 23E0 ldi R18,3
03C4 04E0 ldi R16,4
03C6 35DF xcall _i2c_Write
03C8 .dbline 178
03C8 ; i2c_Write(0x09,0x04);
03C8 24E0 ldi R18,4
03CA 09E0 ldi R16,9
03CC 32DF xcall _i2c_Write
03CE .dbline 179
03CE ; i2c_Write(0x01,0x05);
03CE 25E0 ldi R18,5
03D0 01E0 ldi R16,1
03D2 2FDF xcall _i2c_Write
03D4 .dbline 180
03D4 ; i2c_Write(0x05,0x06);
03D4 26E0 ldi R18,6
03D6 05E0 ldi R16,5
03D8 2CDF xcall _i2c_Write
03DA .dbline 181
03DA ; i2c_Write(0x08,0x07);
03DA 27E0 ldi R18,7
03DC 08E0 ldi R16,8
03DE 29DF xcall _i2c_Write
03E0 .dbline 182
03E0 ; i2c_Write(0x08,0x02);
03E0 22E0 ldi R18,2
03E2 08E0 ldi R16,8
03E4 26DF xcall _i2c_Write
03E6 .dbline -2
03E6 L104:
03E6 .dbline 0 ; func end
03E6 0895 ret
03E8 .dbend
03E8 .dbfunc e main _main fV
.even
03E8 _main::
03E8 2297 sbiw R28,2
03EA .dbline -1
03EA .dbline 192
03EA ;
03EA ; }
03EA ; /*******************************************************/
03EA ; /****** 函数名称: main() ******/
03EA ; /****** 功 能: 在液晶屏显示时间 ******/
03EA ; /****** 参 数: 无 ******/
03EA ; /****** 返回值 : 无 ******/
03EA ; /*******************************************************/
03EA ; void main(void)
03EA ; { CLI();
03EA .dbline 192
03EA F894 cli
03EC .dbline 193
03EC ; Lcd_INT();
03EC B9DE xcall _Lcd_INT
03EE .dbline 194
03EE ; lcd_clear();
03EE 55DE xcall _lcd_clear
03F0 .dbline 195
03F0 ; delay_nms(500); //延时
03F0 04EF ldi R16,500
03F2 11E0 ldi R17,1
03F4 F2DE xcall _delay_nms
03F6 .dbline 196
03F6 ; Twi_Init(); //初始化TWI总线
03F6 CFDF xcall _Twi_Init
03F8 .dbline 197
03F8 ; LCD_Write_string(0,0,"AVR_XQV1.2开发板");//向液晶屏写入初始数据
03F8 80E0 ldi R24,<L106
03FA 90E0 ldi R25,>L106
03FC 9983 std y+1,R25
03FE 8883 std y+0,R24
0400 2227 clr R18
0402 0027 clr R16
0404 83DE xcall _LCD_Write_string
0406 .dbline 198
0406 ; LCD_Write_string(1,0,"20");
0406 80E0 ldi R24,<L107
0408 90E0 ldi R25,>L107
040A 9983 std y+1,R25
040C 8883 std y+0,R24
040E 2227 clr R18
0410 01E0 ldi R16,1
0412 7CDE xcall _LCD_Write_string
0414 .dbline 199
0414 ; LCD_Write_string(1,2,"年");
0414 80E0 ldi R24,<L108
0416 90E0 ldi R25,>L108
0418 9983 std y+1,R25
041A 8883 std y+0,R24
041C 22E0 ldi R18,2
041E 01E0 ldi R16,1
0420 75DE xcall _LCD_Write_string
0422 .dbline 200
0422 ; LCD_Write_string(1,4,"月");
0422 80E0 ldi R24,<L109
0424 90E0 ldi R25,>L109
0426 9983 std y+1,R25
0428 8883 std y+0,R24
042A 24E0 ldi R18,4
042C 01E0 ldi R16,1
042E 6EDE xcall _LCD_Write_string
0430 .dbline 201
0430 ; LCD_Write_string(1,6,"日");
0430 80E0 ldi R24,<L110
0432 90E0 ldi R25,>L110
0434 9983 std y+1,R25
0436 8883 std y+0,R24
0438 26E0 ldi R18,6
043A 01E0 ldi R16,1
043C 67DE xcall _LCD_Write_string
043E .dbline 202
043E ; LCD_Write_string(2,0,"星");
043E 80E0 ldi R24,<L111
0440 90E0 ldi R25,>L111
0442 9983 std y+1,R25
0444 8883 std y+0,R24
0446 2227 clr R18
0448 02E0 ldi R16,2
044A 60DE xcall _LCD_Write_string
044C .dbline 203
044C ; LCD_Write_string(2,1,"期");
044C 80E0 ldi R24,<L112
044E 90E0 ldi R25,>L112
0450 9983 std y+1,R25
0452 8883 std y+0,R24
0454 21E0 ldi R18,1
0456 02E0 ldi R16,2
0458 59DE xcall _LCD_Write_string
045A .dbline 204
045A ; LCD_Write_string(3,1,"时");
045A 80E0 ldi R24,<L113
045C 90E0 ldi R25,>L113
045E 9983 std y+1,R25
0460 8883 std y+0,R24
0462 21E0 ldi R18,1
0464 03E0 ldi R16,3
0466 52DE xcall _LCD_Write_string
0468 .dbline 205
0468 ; LCD_Write_string(3,3,"分");
0468 80E0 ldi R24,<L114
046A 90E0 ldi R25,>L114
046C 9983 std y+1,R25
046E 8883 std y+0,R24
0470 23E0 ldi R18,3
0472 03E0 ldi R16,3
0474 4BDE xcall _LCD_Write_string
0476 .dbline 206
0476 ; LCD_Write_string(3,5,"秒");
0476 80E0 ldi R24,<L115
0478 90E0 ldi R25,>L115
047A 9983 std y+1,R25
047C 8883 std y+0,R24
047E 25E0 ldi R18,5
0480 03E0 ldi R16,3
0482 44DE xcall _LCD_Write_string
0484 .dbline 207
0484 ; SEI(); //开中断
0484 7894 sei
0486 9EC0 xjmp L117
0488 L116:
0488 .dbline 209
0488 ; while(1)
0488 ; {
0488 .dbline 210
0488 ; i2c_Write(0x19,0x01); //向PCF8563写命令
0488 21E0 ldi R18,1
048A 09E1 ldi R16,25
048C D2DE xcall _i2c_Write
048E .dbline 211
048E ; i2c_Read(0x02); //读取时间数据
048E 02E0 ldi R16,2
0490 30DF xcall _i2c_Read
0492 .dbline 212
0492 ; ToStr(read_shijian[0]&0x7f); //转换成字符串
0492 00910000 lds R16,_read_shijian
0496 0F77 andi R16,127
0498 6EDF xcall _ToStr
049A .dbline 213
049A ; LCD_Write_string(3,4,temp); //刷新时间
049A 80E0 ldi R24,<_temp
049C 90E0 ldi R25,>_temp
049E 9983 std y+1,R25
04A0 8883 std y+0,R24
04A2 24E0 ldi R18,4
04A4 03E0 ldi R16,3
04A6 32DE xcall _LCD_Write_string
04A8 .dbline 214
04A8 ; ToStr(read_shijian[1]&0x7f); //转换成字符串
04A8 00910100 lds R16,_read_shijian+1
04AC 0F77 andi R16,127
04AE 63DF xcall _ToStr
04B0 .dbline 215
04B0 ; LCD_Write_string(3,2,temp); //刷新时间
04B0 80E0 ldi R24,<_temp
04B2 90E0 ldi R25,>_temp
04B4 9983 std y+1,R25
04B6 8883 std y+0,R24
04B8 22E0 ldi R18,2
04BA 03E0 ldi R16,3
04BC 27DE xcall _LCD_Write_string
04BE .dbline 216
04BE ; ToStr(read_shijian[2]&0x3f); //转换成字符串
04BE 00910200 lds R16,_read_shijian+2
04C2 0F73 andi R16,63
04C4 58DF xcall _ToStr
04C6 .dbline 217
04C6 ; LCD_Write_string(3,0,temp); //刷新时间
04C6 80E0 ldi R24,<_temp
04C8 90E0 ldi R25,>_temp
04CA 9983 std y+1,R25
04CC 8883 std y+0,R24
04CE 2227 clr R18
04D0 03E0 ldi R16,3
04D2 1CDE xcall _LCD_Write_string
04D4 .dbline 218
04D4 ; ToStr(read_shijian[3]&0x3f); //转换成字符串
04D4 00910300 lds R16,_read_shijian+3
04D8 0F73 andi R16,63
04DA 4DDF xcall _ToStr
04DC .dbline 219
04DC ; LCD_Write_string(1,5,temp); //刷新时间
04DC 80E0 ldi R24,<_temp
04DE 90E0 ldi R25,>_temp
04E0 9983 std y+1,R25
04E2 8883 std y+0,R24
04E4 25E0 ldi R18,5
04E6 01E0 ldi R16,1
04E8 11DE xcall _LCD_Write_string
04EA .dbline 220
04EA ; switch(read_shijian[4]&0x07) //转换成字符串
04EA 40910400 lds R20,_read_shijian+4
04EE 5527 clr R21
04F0 4770 andi R20,7
04F2 5070 andi R21,0
04F4 4030 cpi R20,0
04F6 4507 cpc R20,R21
04F8 C9F0 breq L126
04FA X4:
04FA 4130 cpi R20,1
04FC E0E0 ldi R30,0
04FE 5E07 cpc R21,R30
0500 E9F0 breq L127
0502 4230 cpi R20,2
0504 E0E0 ldi R30,0
0506 5E07 cpc R21,R30
0508 09F1 breq L129
050A 4330 cpi R20,3
050C E0E0 ldi R30,0
050E 5E07 cpc R21,R30
0510 29F1 breq L131
0512 4430 cpi R20,4
0514 E0E0 ldi R30,0
0516 5E07 cpc R21,R30
0518 49F1 breq L133
051A 4530 cpi R20,5
051C E0E0 ldi R30,0
051E 5E07 cpc R21,R30
0520 69F1 breq L135
0522 4630 cpi R20,6
0524 E0E0 ldi R30,0
0526 5E07 cpc R21,R30
0528 89F1 breq L137
052A 37C0 xjmp L122
052C X5:
052C .dbline 221
052C ; {
052C L126:
052C .dbline 222
052C ; case 0:LCD_Write_string(2,2,"日");break;//刷新时间
052C 80E0 ldi R24,<L110
052E 90E0 ldi R25,>L110
0530 9983 std y+1,R25
0532 8883 std y+0,R24
0534 22E0 ldi R18,2
0536 02E0 ldi R16,2
0538 E9DD xcall _LCD_Write_string
053A .dbline 222
053A 2FC0 xjmp L123
053C L127:
053C .dbline 223
053C ; case 1:LCD_Write_string(2,2,"一");break;//刷新时间
053C 80E0 ldi R24,<L128
053E 90E0 ldi R25,>L128
0540 9983 std y+1,R25
0542 8883 std y+0,R24
0544 22E0 ldi R18,2
0546 02E0 ldi R16,2
0548 E1DD xcall _LCD_Write_string
054A .dbline 223
054A 27C0 xjmp L123
054C L129:
054C .dbline 224
054C ; case 2:LCD_Write_string(2,2,"二");break;//刷新时间
054C 80E0 ldi R24,<L130
054E 90E0 ldi R25,>L130
05
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -