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

📄 wnl.lst

📁 万年历 megal128 iccavr开发平台
💻 LST
📖 第 1 页 / 共 4 页
字号:
    0394 3000      CPI	R16,0
    0395 0701      CPC	R16,R17
    0396 F411      BNE	0x0399
    0397 E14D      LDI	R20,0x1D
    0398 C001      RJMP	0x039A
    0399 E14C      LDI	R20,0x1C
(0166)       default:break;
(0167)      }
(0168)      return  tian;
    039A 2F04      MOV	R16,R20
    039B 940E067F  CALL	pop_gset1
    039D 9508      RET
(0169) }
(0170) /**********************************************/
(0171) 	 /* 定时器初始化 1秒*/
(0172) /**********************************************/
(0173) void timer0_init(void)
(0174) {
(0175)  TCCR0 = 0x00; //stop
_timer0_init:
    039E 2422      CLR	R2
    039F BE23      OUT	0x33,R2
(0176)  ASSR = 0x08; //set async mode
    03A0 E088      LDI	R24,0x8
    03A1 BF80      OUT	0x30,R24
(0177)  TCNT0 = 0x00; //set count
    03A2 BE22      OUT	0x32,R2
(0178)  TCCR0 = 0x05; //start timer
    03A3 E085      LDI	R24,5
    03A4 BF83      OUT	0x33,R24
    03A5 9508      RET
_timer0_ovf_isr:
    03A6 940E0693  CALL	push_lset
(0179) }
(0180) /**********************************************/
(0181) 	 /* 定时器中断服务程序*/
(0182) /**********************************************/
(0183) #pragma interrupt_handler timer0_ovf_isr:17
(0184) void timer0_ovf_isr(void)
(0185) {
(0186)  second=second+1;
    03A8 91800100  LDS	R24,second
    03AA 5F8F      SUBI	R24,0xFF
    03AB 93800100  STS	second,R24
(0187)  if(second==60)
    03AD 338C      CPI	R24,0x3C
    03AE F009      BEQ	0x03B0
    03AF C048      RJMP	0x03F8
(0188)  {
(0189)     second=0;
    03B0 2422      CLR	R2
    03B1 92200100  STS	second,R2
(0190) 	minute=minute+1;
    03B3 91800101  LDS	R24,minute
    03B5 5F8F      SUBI	R24,0xFF
    03B6 93800101  STS	minute,R24
(0191) 	if(minute==60)
    03B8 338C      CPI	R24,0x3C
    03B9 F009      BEQ	0x03BB
    03BA C03D      RJMP	0x03F8
(0192) 	{
(0193) 	   minute=0;
    03BB 92200101  STS	minute,R2
(0194) 	   hour=hour+1;
    03BD 91800102  LDS	R24,hour
    03BF 5F8F      SUBI	R24,0xFF
    03C0 93800102  STS	hour,R24
(0195) 	   if(hour==24)
    03C2 3188      CPI	R24,0x18
    03C3 F5A1      BNE	0x03F8
(0196) 	   {
(0197) 		 hour=0;
    03C4 92200102  STS	hour,R2
(0198) 		 day=day+1;
    03C6 91800103  LDS	R24,day
    03C8 5F8F      SUBI	R24,0xFF
    03C9 93800103  STS	day,R24
(0199) 		 if(day>7)
    03CB E087      LDI	R24,7
    03CC 90200103  LDS	R2,day
    03CE 1582      CP	R24,R2
    03CF F418      BCC	0x03D3
(0200) 		  day=1;
    03D0 E081      LDI	R24,1
    03D1 93800103  STS	day,R24
(0201) 		  days=days+1;
    03D3 91800104  LDS	R24,days
    03D5 5F8F      SUBI	R24,0xFF
    03D6 93800104  STS	days,R24
(0202) 		  if(days>get_days(month))
    03D8 91000105  LDS	R16,month
    03DA DF64      RCALL	_get_days
    03DB 90200104  LDS	R2,days
    03DD 1502      CP	R16,R2
    03DE F4C8      BCC	0x03F8
(0203) 		   {
(0204) 		    days=1;
    03DF E081      LDI	R24,1
    03E0 93800104  STS	days,R24
(0205) 		    month=month+1;
    03E2 91800105  LDS	R24,month
    03E4 5F8F      SUBI	R24,0xFF
    03E5 93800105  STS	month,R24
(0206) 			if(month>12)
    03E7 E08C      LDI	R24,0xC
    03E8 90200105  LDS	R2,month
    03EA 1582      CP	R24,R2
    03EB F460      BCC	0x03F8
(0207) 			 {
(0208) 			  month=1;
    03EC E081      LDI	R24,1
    03ED 93800105  STS	month,R24
(0209) 			  year=year+1;
    03EF 91800106  LDS	R24,year
    03F1 91900107  LDS	R25,year+1
    03F3 9601      ADIW	R24,1
    03F4 93900107  STS	year+1,R25
    03F6 93800106  STS	year,R24
(0210) 			 }
(0211) 		   }
(0212) 		
(0213) 	   }
(0214)     }
(0215)   }
(0216)   time_display();//显示小时,分钟
    03F8 DD46      RCALL	_time_display
(0217)   if(flag==0)     //与最后面相照应 //如果没有标志位就不能起缓冲作用,边化快
    03F9 90200108  LDS	R2,flag
    03FB 2022      TST	R2
    03FC F409      BNE	0x03FE
(0218)   {
(0219)   day_display();//显示年月日
    03FD DDEE      RCALL	_day_display
(0220)   }			
    03FE 940E06AA  CALL	pop_lset
    0400 9518      RETI
_lcd_time:
    0401 9724      SBIW	R28,4
(0221) }
(0222) /**********************************************/
(0223) 	 /*写显示*/
(0224) /**********************************************/
(0225) void lcd_time(void)
(0226) {
(0227) write_ASCII(0xf9,4,0,table[lcd_buff[0]]);//小时高位
    0402 EA84      LDI	R24,0xA4
    0403 E090      LDI	R25,0
    0404 91E00109  LDS	R30,lcd_buff
    0406 27FF      CLR	R31
    0407 0FE8      ADD	R30,R24
    0408 1FF9      ADC	R31,R25
    0409 9024      LPM	R2,0(Z)
    040A 2433      CLR	R3
    040B 823B      STD	Y+3,R3
    040C 822A      STD	Y+2,R2
    040D 2422      CLR	R2
    040E 8239      STD	Y+1,R3
    040F 8228      STD	Y+0,R2
    0410 E024      LDI	R18,4
    0411 E030      LDI	R19,0
    0412 EF09      LDI	R16,0xF9
    0413 E010      LDI	R17,0
    0414 DC9D      RCALL	_write_ASCII
(0228) write_ASCII(0xf9,5,0,table[lcd_buff[1]]);//小时地位
    0415 EA84      LDI	R24,0xA4
    0416 E090      LDI	R25,0
    0417 91E0010A  LDS	R30,lcd_buff+1
    0419 27FF      CLR	R31
    041A 0FE8      ADD	R30,R24
    041B 1FF9      ADC	R31,R25
    041C 9024      LPM	R2,0(Z)
    041D 2433      CLR	R3
    041E 823B      STD	Y+3,R3
    041F 822A      STD	Y+2,R2
    0420 2422      CLR	R2
    0421 8239      STD	Y+1,R3
    0422 8228      STD	Y+0,R2
    0423 E025      LDI	R18,5
    0424 E030      LDI	R19,0
    0425 EF09      LDI	R16,0xF9
    0426 E010      LDI	R17,0
    0427 DC8A      RCALL	_write_ASCII
(0229) write_ASCII(0xf9,6,0,58); //:
    0428 E38A      LDI	R24,0x3A
    0429 E090      LDI	R25,0
    042A 839B      STD	Y+3,R25
    042B 838A      STD	Y+2,R24
    042C 2422      CLR	R2
    042D 2433      CLR	R3
    042E 8239      STD	Y+1,R3
    042F 8228      STD	Y+0,R2
    0430 E026      LDI	R18,6
    0431 E030      LDI	R19,0
    0432 EF09      LDI	R16,0xF9
    0433 E010      LDI	R17,0
    0434 DC7D      RCALL	_write_ASCII
(0230) write_ASCII(0xf9,7,0,table[lcd_buff[2]]);//分钟高位	
    0435 EA84      LDI	R24,0xA4
    0436 E090      LDI	R25,0
    0437 91E0010B  LDS	R30,lcd_buff+2
    0439 27FF      CLR	R31
    043A 0FE8      ADD	R30,R24
    043B 1FF9      ADC	R31,R25
    043C 9024      LPM	R2,0(Z)
    043D 2433      CLR	R3
    043E 823B      STD	Y+3,R3
    043F 822A      STD	Y+2,R2
    0440 2422      CLR	R2
    0441 8239      STD	Y+1,R3
    0442 8228      STD	Y+0,R2
    0443 E027      LDI	R18,7
    0444 E030      LDI	R19,0
    0445 EF09      LDI	R16,0xF9
    0446 E010      LDI	R17,0
    0447 DC6A      RCALL	_write_ASCII
(0231) write_ASCII(0xf9,8,0,table[lcd_buff[3]]); //分钟地位
    0448 EA84      LDI	R24,0xA4
    0449 E090      LDI	R25,0
    044A 91E0010C  LDS	R30,lcd_buff+3
    044C 27FF      CLR	R31
    044D 0FE8      ADD	R30,R24
    044E 1FF9      ADC	R31,R25
    044F 9024      LPM	R2,0(Z)
    0450 2433      CLR	R3
    0451 823B      STD	Y+3,R3
    0452 822A      STD	Y+2,R2
    0453 2422      CLR	R2
    0454 8239      STD	Y+1,R3
    0455 8228      STD	Y+0,R2
    0456 E028      LDI	R18,0x8
    0457 E030      LDI	R19,0
    0458 EF09      LDI	R16,0xF9
    0459 E010      LDI	R17,0
    045A DC57      RCALL	_write_ASCII
(0232) write_ASCII(0xf9,10,0,48);// 0
    045B E380      LDI	R24,0x30
    045C E090      LDI	R25,0
    045D 839B      STD	Y+3,R25
    045E 838A      STD	Y+2,R24
    045F 2422      CLR	R2
    0460 2433      CLR	R3
    0461 8239      STD	Y+1,R3
    0462 8228      STD	Y+0,R2
    0463 E02A      LDI	R18,0xA
    0464 E030      LDI	R19,0
    0465 EF09      LDI	R16,0xF9
    0466 E010      LDI	R17,0
    0467 DC4A      RCALL	_write_ASCII
(0233) write_ASCII(0xf9,11,0,48);//0
    0468 E380      LDI	R24,0x30
    0469 E090      LDI	R25,0
    046A 839B      STD	Y+3,R25
    046B 838A      STD	Y+2,R24
    046C 2422      CLR	R2
    046D 2433      CLR	R3
    046E 8239      STD	Y+1,R3
    046F 8228      STD	Y+0,R2
    0470 E02B      LDI	R18,0xB
    0471 E030      LDI	R19,0
    0472 EF09      LDI	R16,0xF9
    0473 E010      LDI	R17,0
    0474 DC3D      RCALL	_write_ASCII
    0475 9624      ADIW	R28,4
    0476 9508      RET
_lcd_time1:
    0477 9724      SBIW	R28,4
(0234) }
(0235) void lcd_time1(void)
(0236) {
(0237) write_hazi(9,0,biao1[lcd_buff1[8]-1],biao2[lcd_buff1[8]-1]);//一,二,三,四,五,六,日
    0478 E987      LDI	R24,0x97
    0479 E090      LDI	R25,0
    047A 91E00115  LDS	R30,0x115
    047C 27FF      CLR	R31
    047D 0FE8      ADD	R30,R24
    047E 1FF9      ADC	R31,R25
    047F 9024      LPM	R2,0(Z)
    0480 2433      CLR	R3
    0481 823B      STD	Y+3,R3
    0482 822A      STD	Y+2,R2
    0483 E88B      LDI	R24,0x8B
    0484 E090      LDI	R25,0
    0485 91E00115  LDS	R30,0x115
    0487 27FF      CLR	R31
    0488 0FE8      ADD	R30,R24
    0489 1FF9      ADC	R31,R25
    048A 9024      LPM	R2,0(Z)
    048B 2433      CLR	R3
    048C 8239      STD	Y+1,R3
    048D 8228      STD	Y+0,R2
    048E 2722      CLR	R18
    048F 2733      CLR	R19
    0490 E009      LDI	R16,0x9
    0491 E010      LDI	R17,0
    0492 DC30      RCALL	_write_hazi
(0238) write_ASCII(0xf9,4,16,table[lcd_buff1[0]]);//年第四位
    0493 EA84      LDI	R24,0xA4
    0494 E090      LDI	R25,0
    0495 91E0010D  LDS	R30,lcd_buff1
    0497 27FF      CLR	R31
    0498 0FE8      ADD	R30,R24
    0499 1FF9      ADC	R31,R25
    049A 9024      LPM	R2,0(Z)
    049B 2433      CLR	R3
    049C 823B      STD	Y+3,R3
    049D 822A      STD	Y+2,R2
    049E E180      LDI	R24,0x10
    049F E090      LDI	R25,0
    04A0 8399      STD	Y+1,R25
    04A1 8388      STD	Y+0,R24
    04A2 E024      LDI	R18,4
    04A3 E030      LDI	R19,0
    04A4 EF09      LDI	R16,0xF9
    04A5 E010      LDI	R17,0
    04A6 DC0B      RCALL	_write_ASCII
(0239) write_ASCII(0xf9,5,16,table[lcd_buff1[1]]);//年第三位		
    04A7 EA84      LDI	R24,0xA4
    04A8 E090      LDI	R25,0
    04A9 91E0010E  LDS	R30,lcd_buff1+1
    04AB 27FF      CLR	R31
    04AC 0FE8      ADD	R30,R24
    04AD 1FF9      ADC	R31,R25
    04AE 9024      LPM	R2,0(Z)
    04AF 2433      CLR	R3
    04B0 823B      STD	Y+3,R3
    04B1 822A      STD	Y+2,R2
    04B2 E180      LDI	R24,0x10
    04B3 E090      LDI	R25,0
    04B4 8399      STD	Y+1,R25
    04B5 8388      STD	Y+0,R24
    04B6 E025      LDI	R18,5
    04B7 E030      LDI	R19,0
    04B8 EF09      LDI	R16,0xF9
    04B9 E010      LDI	R17,0
    04BA DBF7      RCALL	_write_ASCII
(0240) write_ASCII(0xf9,6,16,table[lcd_buff1[2]]);//年第二位
    04BB EA84      LDI	R24,0xA4
    04BC E090      LDI	R25,0
    04BD 91E0010F  LDS	R30,lcd_buff1+2
    04BF 27FF      CLR	R31
    04C0 0FE8      ADD	R30,R24
    04C1 1FF9      ADC	R31,R25
    04C2 9024      LPM	R2,0(Z)
    04C3 2433      CLR	R3
    04C4 823B      STD	Y+3,R3
    04C5 822A      STD	Y+2,R2
    04C6 E180      LDI	R24,0x10
    04C7 E090      LDI	R25,0
    04C8 8399      STD	Y+1,R25
    04C9 8388      STD	Y+0,R24
    04CA E026      LDI	R18,6
    04CB E030      LDI	R19,0
    04CC EF09      LDI	R16,0xF9
    04CD E010      LDI	R17,0
    04CE DBE3      RCALL	_write_ASCII
(0241) write_ASCII(0xf9,7,16,table[lcd_buff1[3]]);//年第一位
    04CF EA84      LDI	R24,0xA4
    04D0 E090      LDI	R25,0
    04D1 91E00110  LDS	R30,lcd_buff1+3
    04D3 27FF      CLR	R31
    04D4 0FE8      ADD	R30,R24
    04D5 1FF9      ADC	R31,R25
    04D6 9024      LPM	R2,0(Z)
    04D7 2433      CLR	R3
    04D8 823B      STD	Y+3,R3
    04D9 822A      STD	Y+2,R2
    04DA E180      LDI	R24,0x10
    04DB E090      LDI	R25,0
    04DC 8399      STD	Y+1,R25
    04DD 8388      STD	Y+0,R24
    04DE E027      LDI	R18,7
    04DF E030      LDI	R19,0
    04E0 EF09      LDI	R16,0xF9
    04E1 E010      LDI	R17,0
    04E2 DBCF      RCALL	_write_ASCII
(0242) write_ASCII(0xf9,10,16,table[lcd_buff1[4]]);//月份高位
    04E3 EA84      LDI	R24,0xA4
    04E4 E090      LDI	R25,0
    04E5 91E00111  LDS	R30,0x111
    04E7 27FF      CLR	R31
    04E8 0FE8      ADD	R30,R24
    04E9 1FF9      ADC	R31,R25
    04EA 9024      LPM	R2,0(Z)
    04EB 2433      CLR	R3
    04EC 823B      STD	Y+3,R3
    04ED 822A      STD	Y+2,R2
    04EE E180      LDI	R24,0x10
    04EF E090      LDI	R25,0
    04F0 8399      STD	Y+1,R25
    04F1 8388      STD	Y+0,R24
    04F2 E02A      LDI	R18,0xA
    04F3 E030      LDI	R19,0
    04F4 EF09      LDI	R16,0xF9
    04F5 E010      LDI	R17,0
    04F6 DBBB      RCALL	_write_ASCII
(0243) write_ASCII(0xf9,11,16,table[lcd_buff1[5]]);//月份低位
    04F7 EA84      LDI	R24,0xA4
    04F8 E090      LDI	R25,0
    04F9 91E00112  LDS	R30,0x112
    04FB 27FF      CLR	R31
    04FC 0FE8      ADD	R30,R24
    04FD 1FF9      ADC	R31,R25
    04FE 9024      LPM	R2,0(Z)
    04FF 2433      CLR	R3
    0500 823B      STD	Y+3,R3
    0501 822A      STD	Y+2,R2
    0502 E180      LDI	R24,0x10
    0503 E090      LDI	R25,0
    0504 8399      STD	Y+1,R25
    0505 8388      STD	Y+0,R24
    0506 E02B      LDI	R18,0xB
    0507 E030      LDI	R19,0
    0508 EF09      LDI	R16,0xF9
    0509 E010      LDI	R17,0
    050A DBA7      RCALL	_write_ASCII
(0244) write_ASCII(0xf9,14,16,table[lcd_buff1[6]]);//日期高位
    050B EA84      LDI	R24,0xA4
    050C E090      LDI	R25,0
    050D 91E00113  LDS	R30,0x113
    050F 27FF      CLR	R31
    0510 0FE8      ADD	R30,R24
    0511 1FF9      ADC	R31,R25
    0512 9024      LPM	R2,0(Z)
    0513 2433      CLR	R3
    0514 823B      STD	Y+3,R3
    0515 822A      STD	Y+2,R2
    0516 E180      LDI	R24,0x10
    0517 E090      LDI	R25,0
    0518 8399      STD	Y+1,R25
    0519 8388      STD	Y+0,R24
    051A E02E      LDI	R18,0xE
    051B E030      LDI	R19,0
    051C EF09      LDI	R16,0xF9
    051D E010      LDI	R17,0
    051E DB93      RCALL	_write_ASCII
(0245) write_ASCII(0xf9,15,16,table[lcd_buff1[7]]);//日期低位
    051F EA84      LDI	R24,0xA4
    0520 E090      LDI	R25,0
    0521 91E00114  LDS	R30,0x114
    0523 27FF      CLR	R31
    0524 0FE8      ADD	R30,R24
    0525 1FF9      ADC	R31,R25
    0526 9024      LPM	R2,0(Z)
    0527 2433      CLR	R3
    0528 823B      STD	Y+3,R3
    0529 822A      STD	Y+2,R2
    052A E180      LDI	R24,0x10
    052B E090      LDI	R25,0
    052C 8399      STD	Y+1,R25
    052D 8388      STD	Y+0,R24
    052E E02F      LDI	R18,0xF
    052F E030      LDI	R19,0
    0530 EF09      LDI	R16,0xF9
    0531 E010      LDI	R17,0
    0532 DB7F      RCALL	_write_ASCII
    0533 9624      ADIW	R28,4
    0534 9508      RET
_ks:
  m                    --> R20
  j                    --> R22
    0535 940E067A  CALL	push_gset2
(0246) }
(0247) /**********************************************/
(0248) 	 /*查键盘*/
(0249) /**********************************************/	
(0250) unsigned char ks(void)
(0251) {
(0252)  unsigned char m,j;
(0253)  DDRB=0x0f;	
    0537 E08F      LDI	R24,0xF
    0538 BB87      OUT	0x17,R24
(0254)  PORTB=0xff;
    0539 EF8F      LDI	R24,0xFF
    053A BB88      OUT	0x18,R24
(0255)  for(j=0;j<4;j++)

⌨️ 快捷键说明

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