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

📄 rtc.lst

📁 AtMega169芯片连接RTC的测试程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
     3DA 9140 010A LDS	R20,adc_old
     3DC 9150 010B LDS	R21,adc_old+1
     3DE E880      LDI	R24,0x80
     3DF E091      LDI	R25,1
     3E0 1784      CP	R24,R20
     3E1 0795      CPC	R25,R21
     3E2 F008      BCS	0x03E4
     3E3 C051      RJMP	0x0435
     3E4 3240      CPI	R20,0x20
     3E5 E0E2      LDI	R30,2
     3E6 075E      CPC	R21,R30
     3E7 F008      BCS	0x03E9
     3E8 C04C      RJMP	0x0435
(0233) 						   {
(0234) 						    int x;
(0235) 						    for(x=50;x>0;x--) 						
     3E9 E342      LDI	R20,0x32
     3EA E050      LDI	R21,0
(0236) 							  {
(0237) 							   PORTE=seg_table[i];              //点亮个位及其小数点      
     3EB E58C      LDI	R24,0x5C
     3EC E090      LDI	R25,0
     3ED 91E0 0104 LDS	R30,i
     3EF 91F0 0105 LDS	R31,i+1
     3F1 0FE8      ADD	R30,R24
     3F2 1FF9      ADC	R31,R25
     3F3 9024      LPM	R2,261(Z)
     3F4 B82E      OUT	0x0E,R2
(0238) 						       PORTB=0xef;                      //点亮个位                
     3F5 EE8F      LDI	R24,0xEF
     3F6 B985      OUT	0x05,R24
(0239) 						       delay_ms(1);                                               
     3F7 E001      LDI	R16,1
     3F8 E010      LDI	R17,0
     3F9 940E 0064 CALL	_delay_ms
(0240)                                PORTE=seg_table[j];              //点亮十位                
     3FB E58C      LDI	R24,0x5C
     3FC E090      LDI	R25,0
     3FD 91E0 0106 LDS	R30,j
     3FF 91F0 0107 LDS	R31,j+1
     401 0FE8      ADD	R30,R24
     402 1FF9      ADC	R31,R25
     403 9024      LPM	R2,263(Z)
     404 B82E      OUT	0x0E,R2
(0241) 						       PORTB=0XDF;                      //点亮十位                
     405 ED8F      LDI	R24,0xDF
     406 B985      OUT	0x05,R24
(0242) 						       delay_ms(1);                                               
     407 E001      LDI	R16,1
     408 E010      LDI	R17,0
     409 940E 0064 CALL	_delay_ms
(0243)                                PORTE=seg_table[k]&0x7f;         //点亮百位                
     40B E58C      LDI	R24,0x5C
     40C E090      LDI	R25,0
     40D 91E0 0108 LDS	R30,k
     40F 91F0 0109 LDS	R31,k+1
     411 0FE8      ADD	R30,R24
     412 1FF9      ADC	R31,R25
     413 9184      LPM	R24,265(Z)
     414 778F      ANDI	R24,0x7F
     415 B98E      OUT	0x0E,R24
(0244) 						       PORTB=0XBF;                      //点亮百位                
     416 EB8F      LDI	R24,0xBF
     417 B985      OUT	0x05,R24
(0245) 						       delay_ms(1);
     418 E001      LDI	R16,1
     419 E010      LDI	R17,0
     41A 940E 0064 CALL	_delay_ms
     41C 5041      SUBI	R20,1
     41D 4050      SBCI	R21,0
     41E 2422      CLR	R2
     41F 2433      CLR	R3
     420 1624      CP	R2,R20
     421 0635      CPC	R3,R21
     422 F40C      BGE	0x0424
     423 CFC7      RJMP	0x03EB
(0246) 							  }							
(0247) 						    k++;                          //加1     
     424 9180 0108 LDS	R24,k
     426 9190 0109 LDS	R25,k+1
     428 9601      ADIW	R24,1
     429 9390 0109 STS	k+1,R25
     42B 9380 0108 STS	k,R24
(0248) 						    if(k==10)
     42D 308A      CPI	R24,0xA
     42E E0E0      LDI	R30,0
     42F 079E      CPC	R25,R30
     430 F421      BNE	0x0435
(0249)                  {
(0250) 	                 k=0;
     431 9230 0109 STS	k+1,R3
     433 9220 0108 STS	k,R2
(0251) 	               }
(0252) 						   }
(0253) 						 if(s4)
     435 9140 010A LDS	R20,adc_old
     437 9150 010B LDS	R21,adc_old+1
     439 ED80      LDI	R24,0xD0
     43A E092      LDI	R25,2
     43B 1784      CP	R24,R20
     43C 0795      CPC	R25,R21
     43D F008      BCS	0x043F
     43E C053      RJMP	0x0492
     43F 3140      CPI	R20,0x10
     440 E0E3      LDI	R30,3
     441 075E      CPC	R21,R30
     442 F008      BCS	0x0444
     443 C04E      RJMP	0x0492
(0254) 						   {int x;
(0255) 						    for(x=50;x>0;x--)   						    
     444 E342      LDI	R20,0x32
     445 E050      LDI	R21,0
(0256) 							  {
(0257) 							   PORTE=seg_table[i];           //点亮个位及其小数点            
     446 E58C      LDI	R24,0x5C
     447 E090      LDI	R25,0
     448 91E0 0104 LDS	R30,i
     44A 91F0 0105 LDS	R31,i+1
     44C 0FE8      ADD	R30,R24
     44D 1FF9      ADC	R31,R25
     44E 9024      LPM	R2,261(Z)
     44F B82E      OUT	0x0E,R2
(0258) 						     PORTB=0xef;                   //点亮个位                
     450 EE8F      LDI	R24,0xEF
     451 B985      OUT	0x05,R24
(0259) 						     delay_ms(1);                                            
     452 E001      LDI	R16,1
     453 E010      LDI	R17,0
     454 940E 0064 CALL	_delay_ms
(0260)                  PORTE=seg_table[j];           //点亮十位                
     456 E58C      LDI	R24,0x5C
     457 E090      LDI	R25,0
     458 91E0 0106 LDS	R30,j
     45A 91F0 0107 LDS	R31,j+1
     45C 0FE8      ADD	R30,R24
     45D 1FF9      ADC	R31,R25
     45E 9024      LPM	R2,263(Z)
     45F B82E      OUT	0x0E,R2
(0261) 						     PORTB=0XDF;                   //点亮十位                
     460 ED8F      LDI	R24,0xDF
     461 B985      OUT	0x05,R24
(0262) 						     delay_ms(1);                                            
     462 E001      LDI	R16,1
     463 E010      LDI	R17,0
     464 940E 0064 CALL	_delay_ms
(0263)                  PORTE=seg_table[k]&0x7f;      //点亮百位                
     466 E58C      LDI	R24,0x5C
     467 E090      LDI	R25,0
     468 91E0 0108 LDS	R30,k
     46A 91F0 0109 LDS	R31,k+1
     46C 0FE8      ADD	R30,R24
     46D 1FF9      ADC	R31,R25
     46E 9184      LPM	R24,265(Z)
     46F 778F      ANDI	R24,0x7F
     470 B98E      OUT	0x0E,R24
(0264) 						     PORTB=0XBF;                   //点亮百位                
     471 EB8F      LDI	R24,0xBF
     472 B985      OUT	0x05,R24
(0265) 						     delay_ms(1);
     473 E001      LDI	R16,1
     474 E010      LDI	R17,0
     475 940E 0064 CALL	_delay_ms
     477 5041      SUBI	R20,1
     478 4050      SBCI	R21,0
     479 2422      CLR	R2
     47A 2433      CLR	R3
     47B 1624      CP	R2,R20
     47C 0635      CPC	R3,R21
     47D F40C      BGE	0x047F
     47E CFC7      RJMP	0x0446
(0266) 							  }
(0267) 						    k--;                                   //减1 
     47F 9180 0108 LDS	R24,k
     481 9190 0109 LDS	R25,k+1
     483 9701      SBIW	R24,1
     484 9390 0109 STS	k+1,R25
     486 9380 0108 STS	k,R24
(0268) 						    if(k==-1)
     488 3F8F      CPI	R24,0xFF
     489 EFEF      LDI	R30,0xFF
     48A 079E      CPC	R25,R30
     48B F431      BNE	0x0492
(0269)                   {
(0270) 	                 k=9;
     48C E089      LDI	R24,0x9
     48D E090      LDI	R25,0
     48E 9390 0109 STS	k+1,R25
     490 9380 0108 STS	k,R24
     492 9180 010A LDS	R24,adc_old
     494 9190 010B LDS	R25,adc_old+1
     496 3083      CPI	R24,3
     497 E0E0      LDI	R30,0
     498 079E      CPC	R25,R30
     499 F008      BCS	0x049B
     49A CEFB      RJMP	0x0396
     49B C008      RJMP	0x04A4
(0271) 	                }
(0272) 						   }
(0273) 						 }
(0274) 						 //***********
(0275) 						while(s1){adc_old=adc_rel;} //跳出
     49C 9020 010C LDS	R2,adc_rel
     49E 9030 010D LDS	R3,adc_rel+1
     4A0 9230 010B STS	adc_old+1,R3
     4A2 9220 010A STS	adc_old,R2
     4A4 9180 010A LDS	R24,adc_old
     4A6 9190 010B LDS	R25,adc_old+1
     4A8 3083      CPI	R24,3
     4A9 E0E0      LDI	R30,0
     4AA 079E      CPC	R25,R30
     4AB F380      BCS	0x049C
     4AC 9180 010A LDS	R24,adc_old
     4AE 9190 010B LDS	R25,adc_old+1
     4B0 3083      CPI	R24,3
     4B1 E0E0      LDI	R30,0
     4B2 079E      CPC	R25,R30
     4B3 F408      BCC	0x04B5
     4B4 CCAC      RJMP	0x0161
     4B5 9159      LD	R21,Y+
     4B6 9149      LD	R20,Y+
     4B7 9508      RET
(0276)            }
(0277) }
(0278) void main(void)
(0279) { 
(0280)     adc_init();//AD初始化
_main:
     4B8 DBF2      RCALL	_adc_init
(0281) 	  timer2_init();//定时器初始化
     4B9 DBFD      RCALL	_timer2_init
(0282)     portE_B();
     4BA DBE6      RCALL	_portE_B
(0283) 	  TIMSK2=1;    
     4BB E081      LDI	R24,1
     4BC 9380 0070 STS	0x0070,R24
(0284)     SEI();//使能全局中断
     4BE 9478      BSET	7
     4BF C006      RJMP	0x04C6
(0285)     while(1)
(0286)     { 
(0287) 	   TIMSK2=1;	
     4C0 E081      LDI	R24,1
     4C1 9380 0070 STS	0x0070,R24
(0288) 	   display();	          //显示
     4C3 940E 0073 CALL	_display
(0289) 	   keyScan();      		 //键值扫描
     4C5 DC87      RCALL	_keyScan
     4C6 CFF9      RJMP	0x04C0
     4C7 9508      RET
FILE: C:\TDdownload\zxy\169demo\169RTC\uart.c
(0001) #include <iom169v.h>
(0002) #include <macros.h>
(0003) #define fosc 1000000 //晶振1MHZ
(0004) #define baud 19200	 //波特率
(0005) /*  		字符输出函数 		 */
(0006) void putchar(unsigned char c)
(0007) 	{	 
(0008)      while (!(UCSRA&(1<<UDRE)));
_putchar:
  c                    --> R16
     4C8 9020 00C0 LDS	R2,0x00C0
     4CA FE25      SBRS	R2,5
     4CB CFFC      RJMP	_putchar
(0009) 	 UDR=c;    
     4CC 9300 00C6 STS	0x00C6,R16
     4CE 9508      RET
(0010) 	}
(0011) /*  		字符输入函数 		 */	
(0012) unsigned char getchar(void)
(0013)   	{
(0014) 	 while(!(UCSRA&(1<<RXC)));
_getchar:
     4CF 9020 00C0 LDS	R2,0x00C0
     4D1 FE27      SBRS	R2,7
     4D2 CFFC      RJMP	_getchar
(0015)      return UDR;
     4D3 9100 00C6 LDS	R16,0x00C6
     4D5 9508      RET
_puts:
  s                    --> R20
     4D6 934A      ST	R20,-Y
     4D7 935A      ST	R21,-Y
     4D8 01A8      MOVW	R20,R16
(0016) 	}		
(0017) /*			字符串输出函数	   	 */	
(0018) void puts(char *s)
(0019) 	{
     4D9 C005      RJMP	0x04DF
(0020) 	while (*s)
(0021) 		{
(0022) 		putchar(*s);
     4DA 01FA      MOVW	R30,R20
     4DB 8100      LDD	R16,Z+0
     4DC DFEB      RCALL	_putchar
(0023) 		s++;
     4DD 5F4F      SUBI	R20,0xFF
     4DE 4F5F      SBCI	R21,0xFF
     4DF 01FA      MOVW	R30,R20
     4E0 8020      LDD	R2,Z+0
     4E1 2022      TST	R2
     4E2 F7B9      BNE	0x04DA
(0024) 		}	
(0025)     putchar(0x0a);//回车换行
     4E3 E00A      LDI	R16,0xA
     4E4 DFE3      RCALL	_putchar
(0026) 	putchar(0x0d);
     4E5 E00D      LDI	R16,0xD
     4E6 DFE1      RCALL	_putchar
     4E7 9159      LD	R21,Y+
     4E8 9149      LD	R20,Y+
     4E9 9508      RET
(0027) 	}
(0028) /*			UART初始化				*/	
(0029) void uart_init(void)
(0030) {
(0031)  UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许发送和接收
_uart_init:
     4EA E988      LDI	R24,0x98
     4EB 9380 00C1 STS	0x00C1,R24
(0032)  UBRRL=(fosc/16/(baud+1))%256;
     4ED E083      LDI	R24,3
     4EE 9380 00C4 STS	0x00C4,R24
(0033)  UBRRH=(fosc/16/(baud+1))/256;
     4F0 2422      CLR	R2
     4F1 9220 00C5 STS	0x00C5,R2
(0034)  UCSRC=(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
FILE: <library>
     4F3 E086      LDI	R24,6
     4F4 9380 00C2 STS	0x00C2,R24
     4F6 9508      RET
lsl8:
     4F7 2311      TST	R17
     4F8 F019      BEQ	0x04FC
     4F9 0F00      LSL	R16
     4FA 951A      DEC	R17
     4FB CFFB      RJMP	lsl8
     4FC 9508      RET

⌨️ 快捷键说明

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