📄 8563.s
字号:
clr R16
.dbline -2
L84:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r RomAddress 20 c
.dbend
.dbfunc e ToStr _ToStr fV
; c -> R16
.even
_ToStr::
.dbline -1
.dbline 156
.dbline 157
clr R2
sts _temp+2,R2
.dbline 158
mov R24,R16
andi R24,15
subi R24,208 ; addi 48
sts _temp+1,R24
.dbline 159
mov R24,R16
andi R24,240
swap R24
andi R24,#0x0F
subi R24,208 ; addi 48
sts _temp,R24
.dbline -2
L101:
.dbline 0 ; func end
ret
.dbsym r c 16 c
.dbend
.dbfunc e Twi_Init _Twi_Init fV
.even
_Twi_Init::
.dbline -1
.dbline 168
; /****** 参 数: 无 ******/
; /****** 返回值 : 无 ******/
; /*******************************************************/
; void Twi_Init(void)
; {
.dbline 169
; TWBR=32; //设置波特率
ldi R24,32
out 0x0,R24
.dbline 170
; TWSR=0; //复位TWI总线
clr R2
out 0x1,R2
.dbline 171
; i2c_Write(0,0); //设置时钟状态
clr R18
clr R16
xcall _i2c_Write
.dbline 172
; i2c_Write(0x81,0x0d);
ldi R18,13
ldi R16,129
xcall _i2c_Write
.dbline 173
; i2c_Write(0x82,0x0e);
ldi R18,14
ldi R16,130
xcall _i2c_Write
.dbline 174
; i2c_Write(1,0x0f);
ldi R18,15
ldi R16,1
xcall _i2c_Write
.dbline 175
; i2c_Write(0x81,0x01);
ldi R18,1
ldi R16,129
xcall _i2c_Write
.dbline 176
; i2c_Write(0x50,0x02);
ldi R18,2
ldi R16,80
xcall _i2c_Write
.dbline 177
; i2c_Write(0x04,0x03);
ldi R18,3
ldi R16,4
xcall _i2c_Write
.dbline 178
; i2c_Write(0x09,0x04);
ldi R18,4
ldi R16,9
xcall _i2c_Write
.dbline 179
; i2c_Write(0x01,0x05);
ldi R18,5
ldi R16,1
xcall _i2c_Write
.dbline 180
; i2c_Write(0x05,0x06);
ldi R18,6
ldi R16,5
xcall _i2c_Write
.dbline 181
; i2c_Write(0x08,0x07);
ldi R18,7
ldi R16,8
xcall _i2c_Write
.dbline 182
; i2c_Write(0x08,0x02);
ldi R18,2
ldi R16,8
xcall _i2c_Write
.dbline -2
L104:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
.even
_main::
sbiw R28,2
.dbline -1
.dbline 192
;
; }
; /*******************************************************/
; /****** 函数名称: main() ******/
; /****** 功 能: 在液晶屏显示时间 ******/
; /****** 参 数: 无 ******/
; /****** 返回值 : 无 ******/
; /*******************************************************/
; void main(void)
; { CLI();
.dbline 192
cli
.dbline 193
; Lcd_INT();
xcall _Lcd_INT
.dbline 194
; lcd_clear();
xcall _lcd_clear
.dbline 195
; delay_nms(500); //延时
ldi R16,500
ldi R17,1
xcall _delay_nms
.dbline 196
; Twi_Init(); //初始化TWI总线
xcall _Twi_Init
.dbline 197
; LCD_Write_string(0,0,"AVR_XQV1.2开发板");//向液晶屏写入初始数据
ldi R24,<L106
ldi R25,>L106
std y+1,R25
std y+0,R24
clr R18
clr R16
xcall _LCD_Write_string
.dbline 198
; LCD_Write_string(1,0,"20");
ldi R24,<L107
ldi R25,>L107
std y+1,R25
std y+0,R24
clr R18
ldi R16,1
xcall _LCD_Write_string
.dbline 199
; LCD_Write_string(1,2,"年");
ldi R24,<L108
ldi R25,>L108
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,1
xcall _LCD_Write_string
.dbline 200
; LCD_Write_string(1,4,"月");
ldi R24,<L109
ldi R25,>L109
std y+1,R25
std y+0,R24
ldi R18,4
ldi R16,1
xcall _LCD_Write_string
.dbline 201
; LCD_Write_string(1,6,"日");
ldi R24,<L110
ldi R25,>L110
std y+1,R25
std y+0,R24
ldi R18,6
ldi R16,1
xcall _LCD_Write_string
.dbline 202
; LCD_Write_string(2,0,"星");
ldi R24,<L111
ldi R25,>L111
std y+1,R25
std y+0,R24
clr R18
ldi R16,2
xcall _LCD_Write_string
.dbline 203
; LCD_Write_string(2,1,"期");
ldi R24,<L112
ldi R25,>L112
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,2
xcall _LCD_Write_string
.dbline 204
; LCD_Write_string(3,1,"时");
ldi R24,<L113
ldi R25,>L113
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,3
xcall _LCD_Write_string
.dbline 205
; LCD_Write_string(3,3,"分");
ldi R24,<L114
ldi R25,>L114
std y+1,R25
std y+0,R24
ldi R18,3
ldi R16,3
xcall _LCD_Write_string
.dbline 206
; LCD_Write_string(3,5,"秒");
ldi R24,<L115
ldi R25,>L115
std y+1,R25
std y+0,R24
ldi R18,5
ldi R16,3
xcall _LCD_Write_string
.dbline 207
; SEI(); //开中断
sei
xjmp L117
L116:
.dbline 209
; while(1)
; {
.dbline 210
; i2c_Write(0x19,0x01); //向PCF8563写命令
ldi R18,1
ldi R16,25
xcall _i2c_Write
.dbline 211
; i2c_Read(0x02); //读取时间数据
ldi R16,2
xcall _i2c_Read
.dbline 212
; ToStr(read_shijian[0]&0x7f); //转换成字符串
lds R16,_read_shijian
andi R16,127
xcall _ToStr
.dbline 213
; LCD_Write_string(3,4,temp); //刷新时间
ldi R24,<_temp
ldi R25,>_temp
std y+1,R25
std y+0,R24
ldi R18,4
ldi R16,3
xcall _LCD_Write_string
.dbline 214
; ToStr(read_shijian[1]&0x7f); //转换成字符串
lds R16,_read_shijian+1
andi R16,127
xcall _ToStr
.dbline 215
; LCD_Write_string(3,2,temp); //刷新时间
ldi R24,<_temp
ldi R25,>_temp
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,3
xcall _LCD_Write_string
.dbline 216
; ToStr(read_shijian[2]&0x3f); //转换成字符串
lds R16,_read_shijian+2
andi R16,63
xcall _ToStr
.dbline 217
; LCD_Write_string(3,0,temp); //刷新时间
ldi R24,<_temp
ldi R25,>_temp
std y+1,R25
std y+0,R24
clr R18
ldi R16,3
xcall _LCD_Write_string
.dbline 218
; ToStr(read_shijian[3]&0x3f); //转换成字符串
lds R16,_read_shijian+3
andi R16,63
xcall _ToStr
.dbline 219
; LCD_Write_string(1,5,temp); //刷新时间
ldi R24,<_temp
ldi R25,>_temp
std y+1,R25
std y+0,R24
ldi R18,5
ldi R16,1
xcall _LCD_Write_string
.dbline 220
; switch(read_shijian[4]&0x07) //转换成字符串
lds R20,_read_shijian+4
clr R21
andi R20,7
andi R21,0
cpi R20,0
cpc R20,R21
breq L126
X4:
cpi R20,1
ldi R30,0
cpc R21,R30
breq L127
cpi R20,2
ldi R30,0
cpc R21,R30
breq L129
cpi R20,3
ldi R30,0
cpc R21,R30
breq L131
cpi R20,4
ldi R30,0
cpc R21,R30
breq L133
cpi R20,5
ldi R30,0
cpc R21,R30
breq L135
cpi R20,6
ldi R30,0
cpc R21,R30
breq L137
xjmp L122
X5:
.dbline 221
; {
L126:
.dbline 222
; case 0:LCD_Write_string(2,2,"日");break;//刷新时间
ldi R24,<L110
ldi R25,>L110
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,2
xcall _LCD_Write_string
.dbline 222
xjmp L123
L127:
.dbline 223
; case 1:LCD_Write_string(2,2,"一");break;//刷新时间
ldi R24,<L128
ldi R25,>L128
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,2
xcall _LCD_Write_string
.dbline 223
xjmp L123
L129:
.dbline 224
; case 2:LCD_Write_string(2,2,"二");break;//刷新时间
ldi R24,<L130
ldi R25,>L130
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,2
xcall _LCD_Write_string
.dbline 224
xjmp L123
L131:
.dbline 225
; case 3:LCD_Write_string(2,2,"三");break;//刷新时间
ldi R24,<L132
ldi R25,>L132
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,2
xcall _LCD_Write_string
.dbline 225
xjmp L123
L133:
.dbline 226
; case 4:LCD_Write_string(2,2,"四");break;//刷新时间
ldi R24,<L134
ldi R25,>L134
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,2
xcall _LCD_Write_string
.dbline 226
xjmp L123
L135:
.dbline 227
; case 5:LCD_Write_string(2,2,"五");break;//刷新时间
ldi R24,<L136
ldi R25,>L136
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,2
xcall _LCD_Write_string
.dbline 227
xjmp L123
L137:
.dbline 228
; case 6:LCD_Write_string(2,2,"六");break;//刷新时间
ldi R24,<L138
ldi R25,>L138
std y+1,R25
std y+0,R24
ldi R18,2
ldi R16,2
xcall _LCD_Write_string
.dbline 228
L122:
L123:
.dbline 230
lds R16,_read_shijian+5
andi R16,31
xcall _ToStr
.dbline 231
ldi R24,<_temp
ldi R25,>_temp
std y+1,R25
std y+0,R24
ldi R18,3
ldi R16,1
xcall _LCD_Write_string
.dbline 232
lds R16,_read_shijian+6
xcall _ToStr
.dbline 233
ldi R24,<_temp
ldi R25,>_temp
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,1
xcall _LCD_Write_string
.dbline 234
L117:
.dbline 208
xjmp L116
X6:
.dbline -2
L105:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
_temp::
.blkb 3
.dbsym e temp _temp A[3:3]c
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L138:
.blkb 3
.area idata
.byte 193,249,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L136:
.blkb 3
.area idata
.byte 206,229,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L134:
.blkb 3
.area idata
.byte 203,196,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L132:
.blkb 3
.area idata
.byte 200,253,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L130:
.blkb 3
.area idata
.byte 182,254,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L128:
.blkb 3
.area idata
.byte 210,187,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L115:
.blkb 3
.area idata
.byte 195,235,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L114:
.blkb 3
.area idata
.byte 183,214,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L113:
.blkb 3
.area idata
.byte 202,177,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L112:
.blkb 3
.area idata
.byte 198,218,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L111:
.blkb 3
.area idata
.byte 208,199,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L110:
.blkb 3
.area idata
.byte 200,213,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L109:
.blkb 3
.area idata
.byte 212,194,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L108:
.blkb 3
.area idata
.byte 196,234,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L107:
.blkb 3
.area idata
.byte 50,48,0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
L106:
.blkb 17
.area idata
.byte 'A,'V,'R,95,'X,'Q,'V,49,46,50,191,170,183,162,176,229
.byte 0
.area data(ram, con, rel)
.dbfile H:\bbi项目源程序\8563时钟芯片\8563.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -