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

📄 1302-162.lst

📁 有遥控的温度计,用dS1302做时钟芯片
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0254 F409      BNE	0x0256
    0255 C042      RJMP	0x0298
    0256 3064      CPI	R22,4
    0257 E0E0      LDI	R30,0
    0258 077E      CPC	R23,R30
    0259 F409      BNE	0x025B
    025A C045      RJMP	0x02A0
    025B 3065      CPI	R22,5
    025C E0E0      LDI	R30,0
    025D 077E      CPC	R23,R30
    025E F409      BNE	0x0260
    025F C04B      RJMP	0x02AB
    0260 3066      CPI	R22,6
    0261 E0E0      LDI	R30,0
    0262 077E      CPC	R23,R30
    0263 F409      BNE	0x0265
    0264 C04E      RJMP	0x02B3
    0265 3067      CPI	R22,7
    0266 E0E0      LDI	R30,0
    0267 077E      CPC	R23,R30
    0268 F409      BNE	0x026A
    0269 C054      RJMP	0x02BE
    026A 3068      CPI	R22,0x8
    026B E0E0      LDI	R30,0
    026C 077E      CPC	R23,R30
    026D F409      BNE	0x026F
    026E C057      RJMP	0x02C6
    026F 3069      CPI	R22,0x9
    0270 E0E0      LDI	R30,0
    0271 077E      CPC	R23,R30
    0272 F409      BNE	0x0274
    0273 C05D      RJMP	0x02D1
    0274 306A      CPI	R22,0xA
    0275 E0E0      LDI	R30,0
    0276 077E      CPC	R23,R30
    0277 F409      BNE	0x0279
    0278 C060      RJMP	0x02D9
    0279 C062      RJMP	0x02DC
(0133) 	  {
(0134) 		case 0 :write_data(0x88,((read_data(0x89))&0x0f)|(t<<4));;break;//0
    027A E809      LDI	R16,0x89
    027B DE0F      RCALL	_read_data
    027C 2F84      MOV	R24,R20
    027D 708F      ANDI	R24,0xF
    027E 9582      SWAP	R24
    027F 2F20      MOV	R18,R16
    0280 702F      ANDI	R18,0xF
    0281 2B28      OR	R18,R24
    0282 E808      LDI	R16,0x88
    0283 DDD1      RCALL	_write_data
    0284 C057      RJMP	0x02DC
(0135) 		case 1 :write_data(0x88,((read_data(0x89))&0xf0)|t);;break;
    0285 E809      LDI	R16,0x89
    0286 DE04      RCALL	_read_data
    0287 2F20      MOV	R18,R16
    0288 7F20      ANDI	R18,0xF0
    0289 2B24      OR	R18,R20
    028A E808      LDI	R16,0x88
    028B DDC9      RCALL	_write_data
    028C C04F      RJMP	0x02DC
(0136) 		case 2 :write_data(0x86,((read_data(0x87))&0x0f)|(t<<4));;break;
    028D E807      LDI	R16,0x87
    028E DDFC      RCALL	_read_data
    028F 2F84      MOV	R24,R20
    0290 708F      ANDI	R24,0xF
    0291 9582      SWAP	R24
    0292 2F20      MOV	R18,R16
    0293 702F      ANDI	R18,0xF
    0294 2B28      OR	R18,R24
    0295 E806      LDI	R16,0x86
    0296 DDBE      RCALL	_write_data
    0297 C044      RJMP	0x02DC
(0137) 		case 3 :write_data(0x86,((read_data(0x87))&0xf0)|t);;break;
    0298 E807      LDI	R16,0x87
    0299 DDF1      RCALL	_read_data
    029A 2F20      MOV	R18,R16
    029B 7F20      ANDI	R18,0xF0
    029C 2B24      OR	R18,R20
    029D E806      LDI	R16,0x86
    029E DDB6      RCALL	_write_data
    029F C03C      RJMP	0x02DC
(0138) 		case 4 :write_data(0x84,((read_data(0x85))&0x0f)|(t<<4));;break;
    02A0 E805      LDI	R16,0x85
    02A1 DDE9      RCALL	_read_data
    02A2 2F84      MOV	R24,R20
    02A3 708F      ANDI	R24,0xF
    02A4 9582      SWAP	R24
    02A5 2F20      MOV	R18,R16
    02A6 702F      ANDI	R18,0xF
    02A7 2B28      OR	R18,R24
    02A8 E804      LDI	R16,0x84
    02A9 DDAB      RCALL	_write_data
    02AA C031      RJMP	0x02DC
(0139) 		case 5 :write_data(0x84,((read_data(0x85))&0xf0)|t);;break;
    02AB E805      LDI	R16,0x85
    02AC DDDE      RCALL	_read_data
    02AD 2F20      MOV	R18,R16
    02AE 7F20      ANDI	R18,0xF0
    02AF 2B24      OR	R18,R20
    02B0 E804      LDI	R16,0x84
    02B1 DDA3      RCALL	_write_data
    02B2 C029      RJMP	0x02DC
(0140) 		case 6 :write_data(0x82,((read_data(0x83))&0x0f)|(t<<4));;break;
    02B3 E803      LDI	R16,0x83
    02B4 DDD6      RCALL	_read_data
    02B5 2F84      MOV	R24,R20
    02B6 708F      ANDI	R24,0xF
    02B7 9582      SWAP	R24
    02B8 2F20      MOV	R18,R16
    02B9 702F      ANDI	R18,0xF
    02BA 2B28      OR	R18,R24
    02BB E802      LDI	R16,0x82
    02BC DD98      RCALL	_write_data
    02BD C01E      RJMP	0x02DC
(0141) 		case 7 :write_data(0x82,((read_data(0x83))&0xf0)|t);;break;
    02BE E803      LDI	R16,0x83
    02BF DDCB      RCALL	_read_data
    02C0 2F20      MOV	R18,R16
    02C1 7F20      ANDI	R18,0xF0
    02C2 2B24      OR	R18,R20
    02C3 E802      LDI	R16,0x82
    02C4 DD90      RCALL	_write_data
    02C5 C016      RJMP	0x02DC
(0142) 		case 8 :write_data(0x80,((read_data(0x81))&0x0f)|(t<<4));;break;
    02C6 E801      LDI	R16,0x81
    02C7 DDC3      RCALL	_read_data
    02C8 2F84      MOV	R24,R20
    02C9 708F      ANDI	R24,0xF
    02CA 9582      SWAP	R24
    02CB 2F20      MOV	R18,R16
    02CC 702F      ANDI	R18,0xF
    02CD 2B28      OR	R18,R24
    02CE E800      LDI	R16,0x80
    02CF DD85      RCALL	_write_data
    02D0 C00B      RJMP	0x02DC
(0143) 		case 9 :write_data(0x80,((read_data(0x81))&0xf0)|t);;break;
    02D1 E801      LDI	R16,0x81
    02D2 DDB8      RCALL	_read_data
    02D3 2F20      MOV	R18,R16
    02D4 7F20      ANDI	R18,0xF0
    02D5 2B24      OR	R18,R20
    02D6 E800      LDI	R16,0x80
    02D7 DD7D      RCALL	_write_data
    02D8 C003      RJMP	0x02DC
(0144) 		case 10 :write_data(0x8a,t);;break;
    02D9 2F24      MOV	R18,R20
    02DA E80A      LDI	R16,0x8A
    02DB DD79      RCALL	_write_data
(0145) 	  }
(0146) 	LCD_set_xy(9,1);            //这一位抗干拢
    02DC E021      LDI	R18,1
    02DD E009      LDI	R16,0x9
    02DE D176      RCALL	_LCD_set_xy
(0147) 	  LCD_write_char(n+48); 
    02DF 91000061  LDS	R16,n
    02E1 5D00      SUBI	R16,0xD0
    02E2 D182      RCALL	_LCD_write_char
(0148) 	 }
    02E3 C005      RJMP	0x02E9
(0149) 	else
(0150) 	  {
(0151)      LCD_DATA_PORT=0x01;     		//清屏
    02E4 E081      LDI	R24,1
    02E5 BB8B      OUT	0x1B,R24
(0152)      command_enable();
    02E6 D161      RCALL	_command_enable
(0153)      delay_ms(10);					//等待1.53ms以上
    02E7 E00A      LDI	R16,0xA
    02E8 D133      RCALL	_delay_ms
(0154) 	  }
(0155)  ret:SEI();
    02E9 9478      BSET	7
    02EA 9622      ADIW	R28,2
    02EB D26B      RCALL	pop_gset4
    02EC D2A2      RCALL	pop_lset
    02ED 9518      RETI
_main:
  a                    --> Y,+10
  temm                 --> R10
  count                --> R12
  temh                 --> R14
  teml                 --> R20
  th                   --> Y,+9
  tl                   --> Y,+8
  s                    --> Y,+7
  i                    --> R22
    02EE 972D      SBIW	R28,0xD
(0156) }
(0157) /******************************************************
(0158)                          主程序
(0159) ******************************************************/		               
(0160) void main(void)
(0161) {
(0162) 
(0163) uchar s,i,th,tl;
(0164)  uchar temh,teml,a,count,temm; 
(0165) init_devices();
    02EF DE06      RCALL	_init_devices
(0166) init_1302();
    02F0 DDD9      RCALL	_init_1302
(0167) init_1302();
    02F1 DDD8      RCALL	_init_1302
(0168) init_lcd() ;
    02F2 D190      RCALL	_init_lcd
(0169) init_lcd() ;
    02F3 D18F      RCALL	_init_lcd
(0170) init_time(0x00,0x01,0x02,0x03,0x04,0x05);
    02F4 E085      LDI	R24,5
    02F5 838E      STD	Y+6,R24
    02F6 E084      LDI	R24,4
    02F7 838C      STD	Y+4,R24
    02F8 E083      LDI	R24,3
    02F9 838A      STD	Y+2,R24
    02FA E082      LDI	R24,2
    02FB 8388      STD	Y+0,R24
    02FC E021      LDI	R18,1
    02FD 2700      CLR	R16
    02FE DDD5      RCALL	_init_time
    02FF C119      RJMP	0x0419
(0171)    while(1)
(0172)     {
(0173) 	 //1302
(0174) 	  LCD_set_xy(0,0);
    0300 2722      CLR	R18
    0301 2700      CLR	R16
    0302 D152      RCALL	_LCD_set_xy
(0175) 	  //month
(0176)    	  s=read_data(0x89);
    0303 E809      LDI	R16,0x89
    0304 DD86      RCALL	_read_data
    0305 830F      STD	Y+7,R16
(0177) 	  tl=s&0x0f;
    0306 2F80      MOV	R24,R16
    0307 708F      ANDI	R24,0xF
    0308 8788      STD	Y+8,R24
(0178)    	  th=(s>>4);
    0309 818F      LDD	R24,Y+7
    030A 9582      SWAP	R24
    030B 708F      ANDI	R24,0xF
    030C 8789      STD	Y+9,R24
(0179)    	  LCD_write_char(th+48);
    030D 2F08      MOV	R16,R24
    030E 5D00      SUBI	R16,0xD0
    030F D155      RCALL	_LCD_write_char
(0180)       LCD_write_char(tl+48);
    0310 8508      LDD	R16,Y+8
    0311 5D00      SUBI	R16,0xD0
    0312 D152      RCALL	_LCD_write_char
(0181) 	  LCD_write_char(':');
    0313 E30A      LDI	R16,0x3A
    0314 D150      RCALL	_LCD_write_char
(0182) 	  //day
(0183)    	  s=read_data(0x87);
    0315 E807      LDI	R16,0x87
    0316 DD74      RCALL	_read_data
    0317 830F      STD	Y+7,R16
(0184) 	  tl=s&0x0f;
    0318 2F80      MOV	R24,R16
    0319 708F      ANDI	R24,0xF
    031A 8788      STD	Y+8,R24
(0185)    	  th=(s>>4);
    031B 818F      LDD	R24,Y+7
    031C 9582      SWAP	R24
    031D 708F      ANDI	R24,0xF
    031E 8789      STD	Y+9,R24
(0186)    	  LCD_write_char(th+48);
    031F 2F08      MOV	R16,R24
    0320 5D00      SUBI	R16,0xD0
    0321 D143      RCALL	_LCD_write_char
(0187)       LCD_write_char(tl+48);
    0322 8508      LDD	R16,Y+8
    0323 5D00      SUBI	R16,0xD0
    0324 D140      RCALL	_LCD_write_char
(0188) 	  LCD_write_char(' ');
    0325 E200      LDI	R16,0x20
    0326 D13E      RCALL	_LCD_write_char
(0189) 	  LCD_write_char(' ');
    0327 E200      LDI	R16,0x20
    0328 D13C      RCALL	_LCD_write_char
(0190) 	  //hour
(0191)    	  s=read_data(0x85);
    0329 E805      LDI	R16,0x85
    032A DD60      RCALL	_read_data
    032B 830F      STD	Y+7,R16
(0192) 	  tl=s&0x0f;
    032C 2F80      MOV	R24,R16
    032D 708F      ANDI	R24,0xF
    032E 8788      STD	Y+8,R24
(0193)    	  th=(s>>4);
    032F 818F      LDD	R24,Y+7
    0330 9582      SWAP	R24
    0331 708F      ANDI	R24,0xF
    0332 8789      STD	Y+9,R24
(0194)    	  LCD_write_char(th+48);
    0333 2F08      MOV	R16,R24
    0334 5D00      SUBI	R16,0xD0
    0335 D12F      RCALL	_LCD_write_char
(0195)       LCD_write_char(tl+48);
    0336 8508      LDD	R16,Y+8
    0337 5D00      SUBI	R16,0xD0
    0338 D12C      RCALL	_LCD_write_char
(0196) 	  LCD_write_char(':');
    0339 E30A      LDI	R16,0x3A
    033A D12A      RCALL	_LCD_write_char
(0197) 	  //min
(0198)    	  s=read_data(0x83);
    033B E803      LDI	R16,0x83
    033C DD4E      RCALL	_read_data
    033D 830F      STD	Y+7,R16
(0199) 	  tl=s&0x0f;
    033E 2F80      MOV	R24,R16
    033F 708F      ANDI	R24,0xF
    0340 8788      STD	Y+8,R24
(0200)    	  th=(s>>4);
    0341 818F      LDD	R24,Y+7
    0342 9582      SWAP	R24
    0343 708F      ANDI	R24,0xF
    0344 8789      STD	Y+9,R24
(0201)    	  LCD_write_char(th+48);
    0345 2F08      MOV	R16,R24
    0346 5D00      SUBI	R16,0xD0
    0347 D11D      RCALL	_LCD_write_char
(0202)       LCD_write_char(tl+48);
    0348 8508      LDD	R16,Y+8
    0349 5D00      SUBI	R16,0xD0
    034A D11A      RCALL	_LCD_write_char
(0203) 	  LCD_write_char(':');
    034B E30A      LDI	R16,0x3A
    034C D118      RCALL	_LCD_write_char
(0204) 	  //sec
(0205)    	  s=read_data(0x81);
    034D E801      LDI	R16,0x81
    034E DD3C      RCALL	_read_data
    034F 830F      STD	Y+7,R16
(0206) 	  tl=s&0x0f;
    0350 2F80      MOV	R24,R16
    0351 708F      ANDI	R24,0xF
    0352 8788      STD	Y+8,R24
(0207)    	  th=(s>>4);
    0353 818F      LDD	R24,Y+7
    0354 9582      SWAP	R24
    0355 708F      ANDI	R24,0xF
    0356 8789      STD	Y+9,R24
(0208)    	  LCD_write_char(th+48);
    0357 2F08      MOV	R16,R24
    0358 5D00      SUBI	R16,0xD0
    0359 D10B      RCALL	_LCD_write_char
(0209)       LCD_write_char(tl+48);
    035A 8508      LDD	R16,Y+8
    035B 5D00      SUBI	R16,0xD0
    035C D108      RCALL	_LCD_write_char
(0210)      //date
(0211) 	 s=read_data(0x8b);
    035D E80B      LDI	R16,0x8B
    035E DD2C      RCALL	_read_data
    035F 830F      STD	Y+7,R16
(0212) 	 tl=s&0x0f;
    0360 2F80      MOV	R24,R16
    0361 708F      ANDI	R24,0xF
    0362 8788      STD	Y+8,R24
(0213) 	  switch(tl)
    0363 2E28      MOV	R2,R24
    0364 2433      CLR	R3
    0365 863C      STD	Y+12,R3
    0366 862B      STD	Y+11,R2
    0367 2D82      MOV	R24,R2
    0368 2D93      MOV	R25,R3
    0369 3081      CPI	R24,1
    036A E0E0      LDI	R30,0
    036B 079E      CPC	R25,R30
    036C F0C9      BEQ	0x0386
    036D 3082      CPI	R24,2
    036E E0E0      LDI	R30,0
    036F 079E      CPC	R25,R30
    0370 F0E9      BEQ	0x038E
    0371 3083      CPI	R24,3
    0372 E0E0      LDI	R30,0
    0373 079E      CPC	R25,R30
    0374 F109      BEQ	0x0396
    0375 3084      CPI	R24,4
    0376 E0E0      LDI	R30,0
    0377 079E      CPC	R25,R30
    0378 F129      BEQ	0x039E
    0379 3085      CPI	R24,5
    037A E0E0      LDI	R30,0
    037B 079E      CPC	R25,R30
    037C F149      BEQ	0x03A6
    037D 3086      CPI	R24,6
    037E E0E0      LDI	R30,0
    037F 079E      CPC	R25,R30
    0380 F169      BEQ	0x03AE
    0381 3087      CPI	R24,7
    0382 E0E0      LDI	R30,0
    0383 079E      CPC	R25,R30
    0384 F189      BEQ	0x03B6
    0385 C037      RJMP	0x03BD
(0214) 	  		{
(0215) 			case 1:LCD_write_string(0,1,"monday");break;
    0386 E987      LDI	R24,0x97
    0387 E090      LDI	R25,0
    0388 8399      STD	Y+1,R25
    0389 8388      STD	Y+0,R24
    038A E021      LDI	R18,1
    038B 2700      CLR	R16
    038C D0E0      RCALL	_LCD_write_string
    038D C02F      RJMP	0x03BD
(0216) 			case 2:LCD_write_string(0,1,"tuesday");break;
    038E E88F      LDI	R24,0x8F
    038F E090      LDI	R25,0
    0390 8399      STD	Y+1,R25
    0391 8388      STD	Y+0,R24
    0392 E021      LDI	R18,1
    0393 2700      CLR	R16

⌨️ 快捷键说明

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