⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8563.s

📁 基于ATMEGA16的时钟芯片原代码
💻 S
📖 第 1 页 / 共 3 页
字号:
	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 + -