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

📄 ac15-4.lst

📁 AVR学习资料
💻 LST
📖 第 1 页 / 共 3 页
字号:
    0256 F409      BNE	0x0258
    0257 C041      RJMP	0x0299
    0258 ED8F      LDI	R24,0xDF
    0259 E090      LDI	R25,0
    025A 1784      CP	R24,R20
    025B 0795      CPC	R25,R21
    025C F084      BLT	0x026D
    025D 374F      CPI	R20,0x7F
    025E E0E0      LDI	R30,0
    025F 075E      CPC	R21,R30
    0260 F409      BNE	0x0262
    0261 C05D      RJMP	0x02BF
    0262 374F      CPI	R20,0x7F
    0263 E0E0      LDI	R30,0
    0264 075E      CPC	R21,R30
    0265 F40C      BGE	0x0267
    0266 C093      RJMP	0x02FA
    0267 3B4F      CPI	R20,0xBF
    0268 E0E0      LDI	R30,0
    0269 075E      CPC	R21,R30
    026A F409      BNE	0x026C
    026B C03C      RJMP	0x02A8
    026C C08D      RJMP	0x02FA
    026D 3F47      CPI	R20,0xF7
    026E E0E0      LDI	R30,0
    026F 075E      CPC	R21,R30
    0270 F409      BNE	0x0272
    0271 C072      RJMP	0x02E4
    0272 EF87      LDI	R24,0xF7
    0273 E090      LDI	R25,0
    0274 1784      CP	R24,R20
    0275 0795      CPC	R25,R21
    0276 F02C      BLT	0x027C
    0277 3E4F      CPI	R20,0xEF
    0278 E0E0      LDI	R30,0
    0279 075E      CPC	R21,R30
    027A F039      BEQ	0x0282
    027B C07E      RJMP	0x02FA
    027C 3F4B      CPI	R20,0xFB
    027D E0E0      LDI	R30,0
    027E 075E      CPC	R21,R30
    027F F409      BNE	0x0281
    0280 C04C      RJMP	0x02CD
    0281 C078      RJMP	0x02FA
(0275) 	   	   {				
(0276) 	   	   	case 0xef:time1.min++;
    0282 91800065  LDS	R24,time1+1
    0284 5F8F      SUBI	R24,0xFF
    0285 93800065  STS	time1+1,R24
(0277) 			          if(time1.min>59){time1.min=0;
    0287 E38B      LDI	R24,0x3B
    0288 90200065  LDS	R2,time1+1
    028A 1582      CP	R24,R2
    028B F008      BCS	0x028D
    028C C06D      RJMP	0x02FA
    028D 2422      CLR	R2
    028E 92200065  STS	time1+1,R2
(0278) 					                  if(time1.hour<23)time1.hour++;
    0290 91800064  LDS	R24,time1
    0292 3187      CPI	R24,0x17
    0293 F008      BCS	0x0295
    0294 C065      RJMP	0x02FA
    0295 5F8F      SUBI	R24,0xFF
    0296 93800064  STS	time1,R24
(0279) 								      }break; 
    0298 C061      RJMP	0x02FA
(0280) 	   		case 0xdf:time1.hour++;if(time1.hour>23)time1.hour=0;break;	
    0299 91800064  LDS	R24,time1
    029B 5F8F      SUBI	R24,0xFF
    029C 93800064  STS	time1,R24
    029E E187      LDI	R24,0x17
    029F 90200064  LDS	R2,time1
    02A1 1582      CP	R24,R2
    02A2 F008      BCS	0x02A4
    02A3 C056      RJMP	0x02FA
    02A4 2422      CLR	R2
    02A5 92200064  STS	time1,R2
    02A7 C052      RJMP	0x02FA
(0281) 											
(0282) 	   		case 0xbf:time2.min++;
    02A8 91800061  LDS	R24,time2+1
    02AA 5F8F      SUBI	R24,0xFF
    02AB 93800061  STS	time2+1,R24
(0283) 			          if(time2.min>59){time2.min=0;
    02AD E38B      LDI	R24,0x3B
    02AE 90200061  LDS	R2,time2+1
    02B0 1582      CP	R24,R2
    02B1 F008      BCS	0x02B3
    02B2 C047      RJMP	0x02FA
    02B3 2422      CLR	R2
    02B4 92200061  STS	time2+1,R2
(0284) 					                  if(time2.hour<23)time2.hour++;
    02B6 91800060  LDS	R24,time2
    02B8 3187      CPI	R24,0x17
    02B9 F008      BCS	0x02BB
    02BA C03F      RJMP	0x02FA
    02BB 5F8F      SUBI	R24,0xFF
    02BC 93800060  STS	time2,R24
(0285) 								      }break; 
    02BE C03B      RJMP	0x02FA
(0286) 	   		case 0x7f:time2.hour++;if(time2.hour>23)time2.hour=0;break;	
    02BF 91800060  LDS	R24,time2
    02C1 5F8F      SUBI	R24,0xFF
    02C2 93800060  STS	time2,R24
    02C4 E187      LDI	R24,0x17
    02C5 90200060  LDS	R2,time2
    02C7 1582      CP	R24,R2
    02C8 F588      BCC	0x02FA
    02C9 2422      CLR	R2
    02CA 92200060  STS	time2,R2
    02CC C02D      RJMP	0x02FA
(0287) 											
(0288) 			//*************************
(0289) 			case 0xfb:i2c_Write(11,time2.hour); 
    02CD 91200060  LDS	R18,time2
    02CF E00B      LDI	R16,0xB
    02D0 DE8D      RCALL	_i2c_Write
(0290) 				 delay_ms(10);
    02D1 E00A      LDI	R16,0xA
    02D2 E010      LDI	R17,0
    02D3 D08D      RCALL	_delay_ms
(0291) 				 i2c_Write(12,time2.min);		
    02D4 91200061  LDS	R18,time2+1
    02D6 E00C      LDI	R16,0xC
    02D7 DE86      RCALL	_i2c_Write
(0292) 				 delay_ms(10);
    02D8 E00A      LDI	R16,0xA
    02D9 E010      LDI	R17,0
    02DA D086      RCALL	_delay_ms
(0293) 				 DisplayOneChar(13,1,0x57); 
    02DB E587      LDI	R24,0x57
    02DC 8388      STD	Y+0,R24
    02DD E021      LDI	R18,1
    02DE E00D      LDI	R16,0xD
    02DF DDBB      RCALL	_DisplayOneChar
(0294) 				 delay_ms(10);break;	
    02E0 E00A      LDI	R16,0xA
    02E1 E010      LDI	R17,0
    02E2 D07E      RCALL	_delay_ms
    02E3 C016      RJMP	0x02FA
(0295) 	   		case 0xf7:time2.hour=i2c_Read(11); 
    02E4 E00B      LDI	R16,0xB
    02E5 DE28      RCALL	_i2c_Read
    02E6 93000060  STS	time2,R16
(0296) 				 delay_ms(10);
    02E8 E00A      LDI	R16,0xA
    02E9 E010      LDI	R17,0
    02EA D076      RCALL	_delay_ms
(0297) 				 time2.min=i2c_Read(12);
    02EB E00C      LDI	R16,0xC
    02EC DE21      RCALL	_i2c_Read
    02ED 93000061  STS	time2+1,R16
(0298) 				 delay_ms(10);
    02EF E00A      LDI	R16,0xA
    02F0 E010      LDI	R17,0
    02F1 D06F      RCALL	_delay_ms
(0299) 				 DisplayOneChar(13,1,0x52); 
    02F2 E582      LDI	R24,0x52
    02F3 8388      STD	Y+0,R24
    02F4 E021      LDI	R18,1
    02F5 E00D      LDI	R16,0xD
    02F6 DDA4      RCALL	_DisplayOneChar
(0300) 				 delay_ms(10);break;	
    02F7 E00A      LDI	R16,0xA
    02F8 E010      LDI	R17,0
    02F9 D067      RCALL	_delay_ms
(0301) 	   		default:break;		
(0302) 	   		}					
(0303) 			delay_ms(300); 
    02FA E20C      LDI	R16,0x2C
    02FB E011      LDI	R17,1
    02FC D064      RCALL	_delay_ms
(0304) 			DisplayOneChar(13,1,0x20); 
    02FD E280      LDI	R24,0x20
    02FE 8388      STD	Y+0,R24
    02FF E021      LDI	R18,1
    0300 E00D      LDI	R16,0xD
    0301 DD99      RCALL	_DisplayOneChar
(0305) 			delay_ms(10);
    0302 E00A      LDI	R16,0xA
    0303 E010      LDI	R17,0
    0304 D05C      RCALL	_delay_ms
    0305 CEBD      RJMP	0x01C3
    0306 9622      ADIW	R28,2
    0307 9508      RET
_timer1_ovf_isr:
    0308 922A      ST	R2,-Y
    0309 923A      ST	R3,-Y
    030A 938A      ST	R24,-Y
    030B 939A      ST	R25,-Y
    030C B62F      IN	R2,0x3F
    030D 922A      ST	R2,-Y
(0306) 						
(0307)   		 }				
(0308) }		   
(0309) /***********************定时器T1中断子函数**********************/
(0310) #pragma interrupt_handler timer1_ovf_isr:9
(0311) void timer1_ovf_isr(void)
(0312) {
(0313)  //TIMER1 has overflowed
(0314)  TCNT1H = 0xF3; //reload counter high value
    030E EF83      LDI	R24,0xF3
    030F BD8D      OUT	0x2D,R24
(0315)  TCNT1L = 0xCB; //reload counter low value
    0310 EC8B      LDI	R24,0xCB
    0311 BD8C      OUT	0x2C,R24
(0316)  if(++time1.dida>=10){time1.dida=0;time1.sec++;}
    0312 91800067  LDS	R24,time1+3
    0314 5F8F      SUBI	R24,0xFF
    0315 2E28      MOV	R2,R24
    0316 92200067  STS	time1+3,R2
    0318 308A      CPI	R24,0xA
    0319 F040      BCS	0x0322
    031A 2422      CLR	R2
    031B 92200067  STS	time1+3,R2
    031D 91800066  LDS	R24,time1+2
    031F 5F8F      SUBI	R24,0xFF
    0320 93800066  STS	time1+2,R24
(0317)  if(time1.sec>=60){time1.sec=0;time1.min++;}
    0322 91800066  LDS	R24,time1+2
    0324 338C      CPI	R24,0x3C
    0325 F040      BCS	0x032E
    0326 2422      CLR	R2
    0327 92200066  STS	time1+2,R2
    0329 91800065  LDS	R24,time1+1
    032B 5F8F      SUBI	R24,0xFF
    032C 93800065  STS	time1+1,R24
(0318)  if(time1.min>=60){time1.min=0;time1.hour++;}
    032E 91800065  LDS	R24,time1+1
    0330 338C      CPI	R24,0x3C
    0331 F040      BCS	0x033A
    0332 2422      CLR	R2
    0333 92200065  STS	time1+1,R2
    0335 91800064  LDS	R24,time1
    0337 5F8F      SUBI	R24,0xFF
    0338 93800064  STS	time1,R24
(0319)  if(time1.hour>=24){time1.hour=0;}
    033A 91800064  LDS	R24,time1
    033C 3188      CPI	R24,0x18
    033D F018      BCS	0x0341
    033E 2422      CLR	R2
    033F 92200064  STS	time1,R2
(0320)  //-------------------
(0321)  if((time1.hour==time2.hour)&&(time1.min==time2.min))LED_0; 
    0341 90200060  LDS	R2,time2
    0343 90300064  LDS	R3,time1
    0345 1432      CP	R3,R2
    0346 F441      BNE	0x034F
    0347 90200061  LDS	R2,time2+1
    0349 90300065  LDS	R3,time1+1
    034B 1432      CP	R3,R2
    034C F411      BNE	0x034F
    034D 98C7      CBI	0x18,7
    034E C001      RJMP	0x0350
(0322)  else LED_1;
    034F 9AC7      SBI	0x18,7
    0350 9029      LD	R2,Y+
    0351 BE2F      OUT	0x3F,R2
    0352 9199      LD	R25,Y+
    0353 9189      LD	R24,Y+
    0354 9039      LD	R3,Y+
    0355 9029      LD	R2,Y+
    0356 9518      RETI
(0323) }
(0324) /*********************************************/
(0325) void init_devices(void)
(0326) {
(0327)  //stop errant interrupts until set up
(0328)  CLI(); //disable all interrupts
_init_devices:
    0357 94F8      BCLR	7
(0329)  port_init();
    0358 DDA6      RCALL	_port_init
(0330)  timer1_init();
    0359 DE41      RCALL	_timer1_init
(0331)  MCUCR = 0x00;
    035A 2422      CLR	R2
    035B BE25      OUT	0x35,R2
(0332)  GICR  = 0x00;
    035C BE2B      OUT	0x3B,R2
(0333)  TIMSK = 0x04; //timer interrupt sources
    035D E084      LDI	R24,4
    035E BF89      OUT	0x39,R24
(0334)  SEI(); //re-enable interrupts
    035F 9478      BSET	7
    0360 9508      RET
_delay_ms:
  time                 --> R20
    0361 940E03A1  CALL	push_gset1
    0363 01A8      MOVW	R20,R16
(0335)  //all peripherals are now initialized
(0336) }
(0337) 
(0338) /*******************器件初始化********************/
(0339) void delay_ms(unsigned int time)
(0340) 	 {
    0364 C005      RJMP	0x036A
(0341) 	  while(time!=0)
(0342) 	  	  {		
(0343) 		   delay_us(1000);
    0365 EE08      LDI	R16,0xE8
    0366 E013      LDI	R17,3
    0367 D008      RCALL	_delay_us
(0344) 		   time--;
    0368 5041      SUBI	R20,1
    0369 4050      SBCI	R21,0
    036A 3040      CPI	R20,0
    036B 0745      CPC	R20,R21
    036C F7C1      BNE	0x0365
    036D 940E03A4  CALL	pop_gset1
    036F 9508      RET
(0345) 		  }
(0346) 	 }
(0347) 	 					
(0348) /*****************廷时子函数************************/
(0349) void delay_us(int time)
(0350) 	 {     
(0351)   	  do
(0352) 	  	{
(0353) 		 time--;
_delay_us:
  time                 --> R16
    0370 5001      SUBI	R16,1
    0371 4010      SBCI	R17,0
(0354) 		}	
(0355)   	  while (time>1);
FILE: <library>
    0372 E081      LDI	R24,1
    0373 E090      LDI	R25,0
    0374 1780      CP	R24,R16
    0375 0791      CPC	R25,R17
    0376 F3CC      BLT	0x0370
    0377 9508      RET
mod8u:
    0378 9468      BSET	6
    0379 C001      RJMP	xdiv8u
div8u:
    037A 94E8      BCLR	6
xdiv8u:
    037B 932A      ST	R18,-Y
    037C 92FA      ST	R15,-Y
    037D 92EA      ST	R14,-Y
    037E 24FF      CLR	R15
    037F 24EE      CLR	R14
    0380 E120      LDI	R18,0x10
    0381 0F00      LSL	R16
    0382 1CFF      ROL	R15
    0383 1CEE      ROL	R14
    0384 16E1      CP	R14,R17
    0385 F010      BCS	0x0388
    0386 1AE1      SUB	R14,R17
    0387 9503      INC	R16
    0388 952A      DEC	R18
    0389 F7B9      BNE	0x0381
    038A F40E      BRTC	0x038C
    038B 2D0E      MOV	R16,R14
    038C 90E9      LD	R14,Y+
    038D 90F9      LD	R15,Y+
    038E 9129      LD	R18,Y+
    038F 9508      RET
pop_gset2:
    0390 E0E2      LDI	R30,2
    0391 940C03A5  JMP	pop
pop_gset3:
    0393 E0E4      LDI	R30,4
    0394 940C03A5  JMP	pop
pop_gset5:
    0396 27EE      CLR	R30
    0397 940C03A5  JMP	pop
push_gset5:
    0399 92FA      ST	R15,-Y
    039A 92EA      ST	R14,-Y
push_gset4:
    039B 92DA      ST	R13,-Y
    039C 92CA      ST	R12,-Y
push_gset3:
    039D 92BA      ST	R11,-Y
    039E 92AA      ST	R10,-Y
push_gset2:
    039F 937A      ST	R23,-Y
    03A0 936A      ST	R22,-Y
push_gset1:
    03A1 935A      ST	R21,-Y
    03A2 934A      ST	R20,-Y
    03A3 9508      RET
pop_gset1:
    03A4 E0E1      LDI	R30,1
pop:
    03A5 9149      LD	R20,Y+
    03A6 9159      LD	R21,Y+
    03A7 FDE0      SBRC	R30,0
    03A8 9508      RET
    03A9 9169      LD	R22,Y+
    03AA 9179      LD	R23,Y+
    03AB FDE1      SBRC	R30,1
    03AC 9508      RET
    03AD 90A9      LD	R10,Y+
    03AE 90B9      LD	R11,Y+
    03AF FDE2      SBRC	R30,2
    03B0 9508      RET
    03B1 90C9      LD	R12,Y+
    03B2 90D9      LD	R13,Y+
    03B3 FDE3      SBRC	R30,3
    03B4 9508      RET
    03B5 90E9      LD	R14,Y+
    03B6 90F9      LD	R15,Y+
    03B7 9508      RET

⌨️ 快捷键说明

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