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

📄 ds1302.lst

📁 我自己编写的atmega16的ds1302源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0118)   W1302(0x90,0x00);	    //写充电寄存器
    00DB 2722      CLR	R18
    00DC E900      LDI	R16,0x90
    00DD DFD8      RCALL	_W1302
(0119)   W1302(0x80,0x00);      //秒寄存器停止位置0,时钟启动,初值设为0
    00DE 2722      CLR	R18
    00DF E800      LDI	R16,0x80
    00E0 DFD5      RCALL	_W1302
(0120)   
(0121)     //设置时间
(0122)     W1302(0x80,INITDATE[0]);
    00E1 91200060  LDS	R18,0x60
    00E3 E800      LDI	R16,0x80
    00E4 DFD1      RCALL	_W1302
(0123)     W1302(0x82,INITDATE[1]);
    00E5 91200061  LDS	R18,0x61
    00E7 E802      LDI	R16,0x82
    00E8 DFCD      RCALL	_W1302
(0124)     W1302(0x84,INITDATE[2]);
    00E9 91200062  LDS	R18,0x62
    00EB E804      LDI	R16,0x84
    00EC DFC9      RCALL	_W1302
(0125)     W1302(0x86,INITDATE[3]);
    00ED 91200063  LDS	R18,0x63
    00EF E806      LDI	R16,0x86
    00F0 DFC5      RCALL	_W1302
(0126)     W1302(0x88,INITDATE[4]);
    00F1 91200064  LDS	R18,0x64
    00F3 E808      LDI	R16,0x88
    00F4 DFC1      RCALL	_W1302
(0127)     W1302(0x8a,INITDATE[5]);
    00F5 91200065  LDS	R18,0x65
    00F7 E80A      LDI	R16,0x8A
    00F8 DFBD      RCALL	_W1302
(0128) 	W1302(0x8c,INITDATE[6]);
    00F9 91200066  LDS	R18,0x66
    00FB E80C      LDI	R16,0x8C
    00FC DFB9      RCALL	_W1302
(0129) 	W1302(0x8e,INITDATE[7]);
    00FD 91200067  LDS	R18,0x67
    00FF E80E      LDI	R16,0x8E
(0130) 	 //设置时间
(0131) }
    0100 CFB5      RJMP	_W1302
FILE: F:\自编程序\M16\ds1302\UART.C
(0001) #include <iom16v.h> 
(0002) #pragma interrupt_handler	USART_Recive_Complete_handler:12
(0003) #pragma interrupt_handler	USART_Data_Register_Empty_handler:13
(0004) #pragma interrupt_handler	USART_Transmit_Complete_handler:14
(0005) void USART_Init(void)
(0006) {
(0007)  //{{WIZARD_MAP(UART)
(0008)     // crystal: 8M
(0009) 	// Baud Rate: 9600
(0010) 	// Character Size: 8-bit
(0011) 	// Mode: Asynchronous
(0012) 	// Parity: Disabled
(0013) 	// Stop Bit: 1-bit
(0014) 	UBRRL = 0x33;
(0015) 	UBRRH = 0x00;
_USART_Init:
    0101 E383      LDI	R24,0x33
    0102 B989      OUT	0x09,R24
(0016) 	UCSRA = 0x00;
    0103 2422      CLR	R2
    0104 BC20      OUT	0x20,R2
(0017) 	UCSRC = 0x86;
    0105 B82B      OUT	0x0B,R2
(0018) 	UCSRB = 0x18;
    0106 E886      LDI	R24,0x86
    0107 BD80      OUT	0x20,R24
(0019) 	//UCSRB|=0X80;//开接收结束中断
    0108 E188      LDI	R24,0x18
    0109 B98A      OUT	0x0A,R24
(0020) 	//UCSRB|=0X40;//开发送结束中断
(0021)     //UCSRB|=0X20;//开数据寄存器空中断
(0022) }
(0023) void USART_Transmit(unsigned char data)
    010A 9508      RET
(0024) {
(0025)    /* 等待发送缓冲器为空 */
(0026)    while ( !( UCSRA & (1<<UDRE)) );
(0027)   /* 将数据放入缓冲器,发送数据 */
_USART_Transmit:
  data                 --> R16
    010B 9B5D      SBIS	0x0B,5
    010C CFFE      RJMP	_USART_Transmit
(0028)   UDR = data;
(0029) }
    010D B90C      OUT	0x0C,R16
(0030) unsigned char USART_Recive(void)
    010E 9508      RET
(0031) {
(0032)  	/* 等待接收数据*/
(0033) 	while ( !(UCSRA & (1<<RXC)) );
(0034) 	/* 从缓冲器中获取并返回数据*/
_USART_Recive:
    010F 9B5F      SBIS	0x0B,7
    0110 CFFE      RJMP	_USART_Recive
(0035) 	return UDR;
(0036) }
    0111 B10C      IN	R16,0x0C
    0112 9508      RET
(0037) void USART_Recive_Complete_handler(void)
(0038) {
(0039) 
(0040) }
(0041) void USART_Data_Register_Empty_handler(void)
_USART_Recive_Complete_handler:
    0113 9518      RETI
(0042) {
(0043) 
(0044) }void USART_Transmit_Complete_handler(void)
(0045) {
_USART_Data_Register_Empty_handler:
    0114 9518      RETI
(0046) 
(0047) }
(0048) 
_USART_Transmit_Complete_handler:
    0115 9518      RETI
_kk:
  comand               --> R20
    0116 940E0182  CALL	push_gset1
    0118 2F40      MOV	R20,R16
FILE: F:\自编程序\M16\ds1302\main.c
(0001) #include<iom16v.h>
(0002) #include<macros.h>
(0003) unsigned char data[2];
(0004) void kk(unsigned char comand)
(0005) {
(0006)    BCDtoASCII(R1302(comand),data);
    0119 2F04      MOV	R16,R20
    011A 2711      CLR	R17
    011B 940E00C6  CALL	_R1302
    011D E628      LDI	R18,0x68
    011E E030      LDI	R19,0
    011F 940E00A4  CALL	_BCDtoASCII
(0007)    USART_Transmit(data[0]);
    0121 91000068  LDS	R16,_data
    0123 2711      CLR	R17
    0124 940E010B  CALL	_USART_Transmit
(0008)    USART_Transmit(data[1]);
    0126 91000069  LDS	R16,_data+1
    0128 2711      CLR	R17
    0129 940E010B  CALL	_USART_Transmit
(0009) }
    012B 940E0185  CALL	pop_gset1
    012D 9508      RET
(0010) void main(void)
(0011) {
(0012)  unsigned int i,j;
(0013)  
(0014)  USART_Init();
_main:
  j                    --> R20
  i                    --> R22
    012E 940E0101  CALL	_USART_Init
(0015)  init_1302();
    0130 940E00D5  CALL	_init_1302
(0016)  USART_Transmit('d');
    0132 E604      LDI	R16,0x64
    0133 E010      LDI	R17,0
    0134 940E010B  CALL	_USART_Transmit
    0136 C040      RJMP	0x0177
(0017)  while(1)
(0018)   {
(0019)  
(0020)    for(j=0;j<10;j++){
    0137 2744      CLR	R20
    0138 2755      CLR	R21
    0139 C00B      RJMP	0x0145
(0021)    for(i=0;i<60000;i++);}
    013A 2766      CLR	R22
    013B 2777      CLR	R23
    013C C002      RJMP	0x013F
    013D 5F6F      SUBI	R22,0xFF
    013E 4F7F      SBCI	R23,0xFF
    013F 3660      CPI	R22,0x60
    0140 EEEA      LDI	R30,0xEA
    0141 077E      CPC	R23,R30
    0142 F3D0      BCS	0x013D
    0143 5F4F      SUBI	R20,0xFF
    0144 4F5F      SBCI	R21,0xFF
    0145 304A      CPI	R20,0xA
    0146 E0E0      LDI	R30,0
    0147 075E      CPC	R21,R30
    0148 F388      BCS	0x013A
(0022)    kk(0x8d);
    0149 E80D      LDI	R16,0x8D
    014A DFCB      RCALL	_kk
(0023)    USART_Transmit(':');
    014B E30A      LDI	R16,0x3A
    014C E010      LDI	R17,0
    014D 940E010B  CALL	_USART_Transmit
(0024)    kk(0x8b);
    014F E80B      LDI	R16,0x8B
    0150 DFC5      RCALL	_kk
(0025)    USART_Transmit(':');
    0151 E30A      LDI	R16,0x3A
    0152 E010      LDI	R17,0
    0153 940E010B  CALL	_USART_Transmit
(0026)    kk(0x89);
    0155 E809      LDI	R16,0x89
    0156 DFBF      RCALL	_kk
(0027)    USART_Transmit(':');
    0157 E30A      LDI	R16,0x3A
    0158 E010      LDI	R17,0
    0159 940E010B  CALL	_USART_Transmit
(0028)    kk(0x87);
    015B E807      LDI	R16,0x87
    015C DFB9      RCALL	_kk
(0029)    USART_Transmit(':');
    015D E30A      LDI	R16,0x3A
    015E E010      LDI	R17,0
    015F 940E010B  CALL	_USART_Transmit
(0030)    USART_Transmit(' ');
    0161 E200      LDI	R16,0x20
    0162 E010      LDI	R17,0
    0163 940E010B  CALL	_USART_Transmit
(0031)    kk(0x85);
    0165 E805      LDI	R16,0x85
    0166 DFAF      RCALL	_kk
(0032)    USART_Transmit(':');
    0167 E30A      LDI	R16,0x3A
    0168 E010      LDI	R17,0
    0169 940E010B  CALL	_USART_Transmit
(0033)    kk(0x83);
    016B E803      LDI	R16,0x83
    016C DFA9      RCALL	_kk
(0034)    USART_Transmit(':');
    016D E30A      LDI	R16,0x3A
    016E E010      LDI	R17,0
    016F 940E010B  CALL	_USART_Transmit
(0035)    kk(0x81);
    0171 E801      LDI	R16,0x81
    0172 DFA3      RCALL	_kk
(0036)    USART_Transmit('\n');
    0173 E00A      LDI	R16,0xA
    0174 E010      LDI	R17,0
    0175 940E010B  CALL	_USART_Transmit
    0177 CFBF      RJMP	0x0137
(0037)   }
(0038)  }
FILE: <library>
    0178 9508      RET
pop_gset2:
    0179 E0E2      LDI	R30,2
    017A 940C0186  JMP	pop
pop_gset3:
    017C E0E4      LDI	R30,4
    017D 940C0186  JMP	pop
pop_gset4:
    017F E0E8      LDI	R30,0x8
    0180 940C0186  JMP	pop
push_gset1:
    0182 935A      ST	R21,-Y
    0183 934A      ST	R20,-Y
    0184 9508      RET
pop_gset1:
    0185 E0E1      LDI	R30,1
pop:
    0186 9149      LD	R20,Y+
    0187 9159      LD	R21,Y+
    0188 FDE0      SBRC	R30,0
    0189 9508      RET
    018A 9169      LD	R22,Y+
    018B 9179      LD	R23,Y+
    018C FDE1      SBRC	R30,1
    018D 9508      RET
    018E 90A9      LD	R10,Y+
    018F 90B9      LD	R11,Y+
    0190 FDE2      SBRC	R30,2
    0191 9508      RET
    0192 90C9      LD	R12,Y+
    0193 90D9      LD	R13,Y+
    0194 FDE3      SBRC	R30,3
    0195 9508      RET
    0196 90E9      LD	R14,Y+
    0197 90F9      LD	R15,Y+
    0198 9508      RET
push_gset2:
    0199 937A      ST	R23,-Y
    019A 936A      ST	R22,-Y
    019B 940C0182  JMP	push_gset1
push_gset3:
    019D 92BA      ST	R11,-Y
    019E 92AA      ST	R10,-Y
    019F 940C0199  JMP	push_gset2
push_gset4:
    01A1 92DA      ST	R13,-Y
    01A2 92CA      ST	R12,-Y
    01A3 940C019D  JMP	push_gset3
lsl8:
    01A5 2311      TST	R17
    01A6 F019      BEQ	0x01AA
    01A7 0F00      LSL	R16
    01A8 951A      DEC	R17
    01A9 CFFB      RJMP	lsl8
    01AA 9508      RET

⌨️ 快捷键说明

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