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

📄 main.s

📁 ATMEGA128的PCF8536驱动程序
💻 S
字号:
	.module main.c
	.area lit(rom, con, rel)
L4:
	.byte 0,0
	.byte 0,1
	.byte 2,1
	.byte 8
	.area text(rom, con, rel)
	.dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
	.dbfunc e main _main fV
;            tmp -> R20
;       sec_flag -> R22
;           time -> R10,R11
;       Set_time -> y+2
	.even
_main::
	sbiw R28,9
	.dbline -1
	.dbline 12
; /************************************************
; 文件:main.c
; 用途:
; 注意:内部8M晶振
; 创建:2008.4.1
; 修改:2008.4.1
; Copy Right  (c)  www.avrvi.com  AVR与虚拟仪器
; ************************************************/
; 
; #include "config.h"
; void main(void)
; {
	.dbline 13
;  unsigned char *time="2008-01-01 00:00:00";
	ldi R24,<L3
	ldi R25,>L3
	movw R10,R24
	.dbline 14
;  unsigned char sec_flag=0,tmp=0;
	clr R22
	.dbline 14
	clr R20
	.dbline 15
;  unsigned char Set_time[7]={
	ldi R24,<L4
	ldi R25,>L4
	movw R30,R28
	adiw R30,2
	ldi R16,7
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	.dbline 25
; 		 	  		   		0x00/*秒*/,
; 					   		0x00/*分*/,
; 							0x00/*时*/,
; 					   		0x01/*天*/,
; 					   		0x02/*星期*/,
; 					   		0x01/*月/世纪*/,
; 					   		0x08/*年*/
; 					   	   };
;  
;  CLI();
	cli
	.dbline 26
;  Com_init();
	xcall _Com_init
	.dbline 27
;  twi_init();
	xcall _twi_init
	.dbline 28
;  PCF8563_init();
	xcall _PCF8563_init
	.dbline 29
;  SEI();
	sei
	.dbline 31
;  
;  Com_putstring ("PCF8563 Set Time: ",18,&RTbuf_UART0);
	ldi R24,<_RTbuf_UART0
	ldi R25,>_RTbuf_UART0
	std y+1,R25
	std y+0,R24
	ldi R18,18
	ldi R16,<L5
	ldi R17,>L5
	xcall _Com_putstring
	.dbline 32
;  Com_putstring (time,19,&RTbuf_UART0);
	ldi R24,<_RTbuf_UART0
	ldi R25,>_RTbuf_UART0
	std y+1,R25
	std y+0,R24
	ldi R18,19
	movw R16,R10
	xcall _Com_putstring
	.dbline 33
;  Com_putstring ("\n\n",2,&RTbuf_UART0);
	ldi R24,<_RTbuf_UART0
	ldi R25,>_RTbuf_UART0
	std y+1,R25
	std y+0,R24
	ldi R18,2
	ldi R16,<L6
	ldi R17,>L6
	xcall _Com_putstring
	.dbline 34
;  PCF8536_wt_p(0x02,Set_time,7);
	ldi R24,7
	std y+0,R24
	movw R18,R28
	subi R18,254  ; offset = 2
	sbci R19,255
	ldi R16,2
	ldi R17,0
	xcall _PCF8536_wt_p
	xjmp L8
L7:
	.dbline 36
;  while(1)
;  	{
	.dbline 37
; 		 PCF8536_rd(0x02,Set_time,7);
	ldi R24,7
	std y+0,R24
	movw R18,R28
	subi R18,254  ; offset = 2
	sbci R19,255
	ldi R16,2
	ldi R17,0
	xcall _PCF8536_rd
	.dbline 38
;          Set_time[0] &= 0x7F;
	ldd R24,y+2
	andi R24,127
	std y+2,R24
	.dbline 39
; 		 Set_time[1] &= 0x7F;
	ldd R24,y+3
	andi R24,127
	std y+3,R24
	.dbline 40
; 		 Set_time[2] &= 0x3F;
	ldd R24,y+4
	andi R24,63
	std y+4,R24
	.dbline 41
; 		 Set_time[3] &= 0x3F;
	ldd R24,y+5
	andi R24,63
	std y+5,R24
	.dbline 42
; 		 Set_time[4] &= 0x07;
	ldd R24,y+6
	andi R24,7
	std y+6,R24
	.dbline 43
; 		 Set_time[5] &= 0x1F;
	ldd R24,y+7
	andi R24,31
	std y+7,R24
	.dbline 44
; 		 time[5] = (Set_time[5]>>4)+0x30;
	swap R24
	andi R24,#0x0F
	subi R24,208    ; addi 48
	movw R30,R10
	std z+5,R24
	.dbline 45
; 		 time[6] = (Set_time[5]&0x0F)+0x30;
	ldd R24,y+7
	andi R24,15
	subi R24,208    ; addi 48
	movw R30,R10
	std z+6,R24
	.dbline 46
; 		 time[8] = (Set_time[3]>>4)+0x30;
	ldd R24,y+5
	swap R24
	andi R24,#0x0F
	subi R24,208    ; addi 48
	movw R30,R10
	std z+8,R24
	.dbline 47
; 		 time[9] = (Set_time[3]&0x0F)+0x30;
	ldd R24,y+5
	andi R24,15
	subi R24,208    ; addi 48
	movw R30,R10
	std z+9,R24
	.dbline 48
; 		 time[11] = (Set_time[2]>>4)+0x30;
	ldd R24,y+4
	swap R24
	andi R24,#0x0F
	subi R24,208    ; addi 48
	movw R30,R10
	std z+11,R24
	.dbline 49
; 		 time[12] = (Set_time[2]&0x0F)+0x30;
	ldd R24,y+4
	andi R24,15
	subi R24,208    ; addi 48
	movw R30,R10
	std z+12,R24
	.dbline 50
; 		 time[14] = (Set_time[1]>>4)+0x30;
	ldd R24,y+3
	swap R24
	andi R24,#0x0F
	subi R24,208    ; addi 48
	movw R30,R10
	std z+14,R24
	.dbline 51
; 		 time[15] = (Set_time[1]&0x0F)+0x30;
	ldd R24,y+3
	andi R24,15
	subi R24,208    ; addi 48
	movw R30,R10
	std z+15,R24
	.dbline 52
; 		 time[17] = (Set_time[0]>>4)+0x30;
	ldd R24,y+2
	swap R24
	andi R24,#0x0F
	subi R24,208    ; addi 48
	movw R30,R10
	std z+17,R24
	.dbline 53
; 		 time[18] = (Set_time[0]&0x0F)+0x30;
	ldd R24,y+2
	andi R24,15
	subi R24,208    ; addi 48
	movw R30,R10
	std z+18,R24
	.dbline 55
; 		 
; 		 tmp=sec_flag;
	mov R20,R22
	.dbline 57
; 		 
; 		 if(Set_time[0]%2)
	ldi R17,2
	ldd R16,y+2
	xcall mod8u
	tst R16
	breq L23
	.dbline 58
; 		 				  {
	.dbline 59
; 						   sec_flag=0;
	clr R22
	.dbline 60
; 		 				  }		 
	xjmp L24
L23:
	.dbline 61
; 		 else sec_flag=1;
	ldi R22,1
L24:
	.dbline 63
; 		 
; 		 if(sec_flag!=tmp)
	cp R22,R20
	breq L25
	.dbline 64
; 		 				  {
	.dbline 65
; 						   Com_putstring ("PCF8563 Read Time: ",19,&RTbuf_UART0);		 
	ldi R24,<_RTbuf_UART0
	ldi R25,>_RTbuf_UART0
	std y+1,R25
	std y+0,R24
	ldi R18,19
	ldi R16,<L27
	ldi R17,>L27
	xcall _Com_putstring
	.dbline 66
; 		 				   Com_putstring (time,19,&RTbuf_UART0);
	ldi R24,<_RTbuf_UART0
	ldi R25,>_RTbuf_UART0
	std y+1,R25
	std y+0,R24
	ldi R18,19
	movw R16,R10
	xcall _Com_putstring
	.dbline 67
; 		 				   Com_putstring ("\n\n",2,&RTbuf_UART0);
	ldi R24,<_RTbuf_UART0
	ldi R25,>_RTbuf_UART0
	std y+1,R25
	std y+0,R24
	ldi R18,2
	ldi R16,<L6
	ldi R17,>L6
	xcall _Com_putstring
	.dbline 68
; 						  }		 
L25:
	.dbline 71
L8:
	.dbline 35
	xjmp L7
X0:
	.dbline -2
L2:
	adiw R28,9
	.dbline 0 ; func end
	ret
	.dbsym r tmp 20 c
	.dbsym r sec_flag 22 c
	.dbsym r time 10 pc
	.dbsym l Set_time 2 A[7:7]c
	.dbend
	.area data(ram, con, rel)
	.dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
L27:
	.blkb 20
	.area idata
	.byte 'P,'C,'F,56,53,54,51,32,'R,'e,'a,'d,32,'T,'i,'m
	.byte 'e,58,32,0
	.area data(ram, con, rel)
	.dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
L6:
	.blkb 3
	.area idata
	.byte 10,10,0
	.area data(ram, con, rel)
	.dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
L5:
	.blkb 19
	.area idata
	.byte 'P,'C,'F,56,53,54,51,32,'S,'e,'t,32,'T,'i,'m,'e
	.byte 58,32,0
	.area data(ram, con, rel)
	.dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
L3:
	.blkb 20
	.area idata
	.byte 50,48,48,56,45,48,49,45,48,49,32,48,48,58,48,48
	.byte 58,48,48,0
	.area data(ram, con, rel)
	.dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -