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

📄 test.lst

📁 mega128+时实时钟日期芯片ds1307的例子
💻 LST
📖 第 1 页 / 共 3 页
字号:
(0015) {
(0016)    unsigned char t=2;
_delay_us:
  t                    --> R16
    030D E002      LDI	R16,2
(0017)    t--;
    030E 950A      DEC	R16
    030F 9508      RET
_delay_nus:
  t                    --> R20
    0310 940E03F0  CALL	push_gset1
    0312 01A8      MOVW	R20,R16
(0018) }
(0019) 
(0020) /*-----------------------------------------------------------------------
(0021) delay_nus          :长延时函数
(0022) 
(0023) 输入参数: t        :延时时间 us
(0024) -----------------------------------------------------------------------*/
(0025) void delay_nus(unsigned int t)
(0026) {
    0313 C001      RJMP	0x0315
(0027)     while (t--)
(0028)        delay_us();
    0314 DFF8      RCALL	_delay_us
    0315 011A      MOVW	R2,R20
    0316 5041      SUBI	R20,1
    0317 4050      SBCI	R21,0
    0318 2022      TST	R2
    0319 F7D1      BNE	0x0314
    031A 2033      TST	R3
    031B F7C1      BNE	0x0314
    031C 940E03F3  CALL	pop_gset1
    031E 9508      RET
(0029) }
(0030) 
(0031) /*-----------------------------------------------------------------------
(0032) delay_ms	   :1ms延时函数
(0033) -----------------------------------------------------------------------*/
(0034) void delay_ms(void)
(0035) {
(0036)    delay_nus(1000);
_delay_ms:
    031F EE08      LDI	R16,0xE8
    0320 E013      LDI	R17,3
    0321 DFEE      RCALL	_delay_nus
    0322 9508      RET
_delay_nms:
  t                    --> R20
    0323 940E03F0  CALL	push_gset1
    0325 01A8      MOVW	R20,R16
(0037) }
(0038) 
(0039) /*-----------------------------------------------------------------------
(0040) delay_nms          :长延时函数
(0041) 
(0042) 输入参数: t        :延时时间 ms
(0043) -----------------------------------------------------------------------*/
(0044) void delay_nms(unsigned int t)
(0045) {
    0326 C001      RJMP	0x0328
(0046)     while (t--)
(0047)        delay_ms();
    0327 DFF7      RCALL	_delay_ms
    0328 011A      MOVW	R2,R20
    0329 5041      SUBI	R20,1
    032A 4050      SBCI	R21,0
    032B 2022      TST	R2
    032C F7D1      BNE	0x0327
    032D 2033      TST	R3
    032E F7C1      BNE	0x0327
    032F 940E03F3  CALL	pop_gset1
    0331 9508      RET
FILE: F:\cdy笔记本资料\E\工程\五星\设计文档\程序设计\ds1307\ocmj_lcd.c
(0001) #include <iom128v.h>
(0002) #include "ocmj_lcd.h" 
(0003) #include "delay.h"
(0004) /*     OCMJ4X8LCD初始化    */
(0005)  void ocmj_init(void)
(0006)     {
(0007) 	 MCUCR=0;
_ocmj_init:
    0332 2422      CLR	R2
    0333 BE25      OUT	0x35,R2
(0008) 	 DDRA=0xff;
    0334 EF8F      LDI	R24,0xFF
    0335 BB8A      OUT	0x1A,R24
(0009) 	 PORTA=0xff;
    0336 BB8B      OUT	0x1B,R24
(0010) 	 DDRE=0b10000000;
    0337 E880      LDI	R24,0x80
    0338 B982      OUT	0x02,R24
(0011) 	 PORTE=0xff;
    0339 EF8F      LDI	R24,0xFF
    033A B983      OUT	0x03,R24
(0012) 	 clr_reset;//LCD复位
    033B 98AB      CBI	0x15,3
(0013) 	 delay_nms(10);
    033C E00A      LDI	R16,0xA
    033D E010      LDI	R17,0
    033E 940E0323  CALL	_delay_nms
(0014) 	 set_reset;
    0340 9AAB      SBI	0x15,3
(0015) 	 clr_answer;
    0341 981F      CBI	0x03,7
(0016) 	 delay_nms(10);
    0342 E00A      LDI	R16,0xA
    0343 E010      LDI	R17,0
    0344 940E0323  CALL	_delay_nms
    0346 9508      RET
(0017) 	 }
(0018) /*            写数据到LCD        */
(0019)  void ocmj_write(unsigned char data)
(0020)     {
(0021) 	 while(ask!=0)
_ocmj_write:
  data                 --> R16
    0347 990E      SBIC	0x01,6
    0348 CFFE      RJMP	_ocmj_write
(0022) 	      ;
(0023)      data_port=data;
    0349 BB0B      OUT	0x1B,R16
(0024)    	 wait;
    034A 0000      NOP
    034B 0000      NOP
(0025) 	 set_answer;
    034C 9A1F      SBI	0x03,7
(0026) 	 wait;
    034D 0000      NOP
    034E 0000      NOP
(0027) 	 while(ask==0)
    034F 9B0E      SBIS	0x01,6
    0350 CFFE      RJMP	0x034F
(0028) 	      ;		  
(0029) 	 clr_answer; 
    0351 981F      CBI	0x03,7
    0352 9508      RET
_asc_tran:
  asc_p                --> R20
  y                    --> R22
  x                    --> R10
    0353 940E03EC  CALL	push_gset3
    0355 2F62      MOV	R22,R18
    0356 2EA0      MOV	R10,R16
    0357 814E      LDD	R20,Y+6
    0358 815F      LDD	R21,Y+7
(0030)     }
(0031) /*          传送ASCII字母到LCD            */
(0032) /*          x:0x00~0x0f y:0~64            */	
(0033) void asc_tran(unsigned char x,unsigned char y,unsigned char *asc_p)
(0034)     {
(0035) 	 x+=4;
    0359 2D8A      MOV	R24,R10
    035A 5F8C      SUBI	R24,0xFC
    035B 2EA8      MOV	R10,R24
    035C C013      RJMP	0x0370
(0036) 	 while((*asc_p)!=0)
(0037) 	    {
(0038) 		 ocmj_write(0xf1);
    035D EF01      LDI	R16,0xF1
    035E DFE8      RCALL	_ocmj_write
(0039) 		 ocmj_write(x);
    035F 2D0A      MOV	R16,R10
    0360 DFE6      RCALL	_ocmj_write
(0040) 		 ocmj_write(y);
    0361 2F06      MOV	R16,R22
    0362 DFE4      RCALL	_ocmj_write
(0041) 		 ocmj_write(*asc_p);
    0363 01FA      MOVW	R30,R20
    0364 8100      LDD	R16,Z+0
    0365 DFE1      RCALL	_ocmj_write
(0042) 		 asc_p++;
    0366 5F4F      SUBI	R20,0xFF
    0367 4F5F      SBCI	R21,0xFF
(0043) 		 if (x<0x13) 
    0368 2D8A      MOV	R24,R10
    0369 3183      CPI	R24,0x13
    036A F410      BCC	0x036D
(0044) 		    x++;
    036B 94A3      INC	R10
    036C C003      RJMP	0x0370
(0045) 		 else
(0046) 		   {
(0047) 		    x=0x04;
    036D E084      LDI	R24,4
    036E 2EA8      MOV	R10,R24
(0048) 			y+=8;		    
FILE: <library>
    036F 5F68      SUBI	R22,0xF8
    0370 01FA      MOVW	R30,R20
    0371 8020      LDD	R2,Z+0
    0372 2022      TST	R2
    0373 F749      BNE	0x035D
    0374 940E03E2  CALL	pop_gset3
    0376 9508      RET
_strcat:
    0377 2FA0      MOV	R26,R16
    0378 2FB1      MOV	R27,R17
    0379 2FE2      MOV	R30,R18
    037A 2FF3      MOV	R31,R19
    037B 912D      LD	R18,X+
    037C 2322      TST	R18
    037D F7E9      BNE	0x037B
    037E 9711      SBIW	R26,1
    037F 9121      LD	R18,Z+
    0380 932D      ST	R18,X+
    0381 2322      TST	R18
    0382 F7E1      BNE	0x037F
    0383 9508      RET
_strcpy:
    0384 2FA0      MOV	R26,R16
    0385 2FB1      MOV	R27,R17
    0386 2FE2      MOV	R30,R18
    0387 2FF3      MOV	R31,R19
    0388 9001      LD	R0,Z+
    0389 920D      ST	R0,X+
    038A 2000      TST	R0
    038B F7E1      BNE	0x0388
    038C 9508      RET
mod16s:
    038D 9468      BSET	6
    038E 92DA      ST	R13,-Y
    038F 2ED1      MOV	R13,R17
    0390 C004      RJMP	0x0395
div16s:
    0391 94E8      BCLR	6
    0392 92DA      ST	R13,-Y
    0393 2ED1      MOV	R13,R17
    0394 26D3      EOR	R13,R19
    0395 FF17      SBRS	R17,7
    0396 C004      RJMP	0x039B
    0397 9510      COM	R17
    0398 9500      COM	R16
    0399 5F0F      SUBI	R16,0xFF
    039A 4F1F      SBCI	R17,0xFF
    039B FF37      SBRS	R19,7
    039C C004      RJMP	0x03A1
    039D 9530      COM	R19
    039E 9520      COM	R18
    039F 5F2F      SUBI	R18,0xFF
    03A0 4F3F      SBCI	R19,0xFF
    03A1 940E03AE  CALL	xdiv16u
    03A3 FED7      SBRS	R13,7
    03A4 C004      RJMP	0x03A9
    03A5 9510      COM	R17
    03A6 9500      COM	R16
    03A7 5F0F      SUBI	R16,0xFF
    03A8 4F1F      SBCI	R17,0xFF
    03A9 90D9      LD	R13,Y+
    03AA 9508      RET
mod16u:
    03AB 9468      BSET	6
    03AC C001      RJMP	xdiv16u
div16u:
    03AD 94E8      BCLR	6
xdiv16u:
    03AE 92EA      ST	R14,-Y
    03AF 92FA      ST	R15,-Y
    03B0 938A      ST	R24,-Y
    03B1 24EE      CLR	R14
    03B2 24FF      CLR	R15
    03B3 E180      LDI	R24,0x10
    03B4 0F00      LSL	R16
    03B5 1F11      ROL	R17
    03B6 1CEE      ROL	R14
    03B7 1CFF      ROL	R15
    03B8 16E2      CP	R14,R18
    03B9 06F3      CPC	R15,R19
    03BA F018      BCS	0x03BE
    03BB 1AE2      SUB	R14,R18
    03BC 0AF3      SBC	R15,R19
    03BD 9503      INC	R16
    03BE 958A      DEC	R24
    03BF F7A1      BNE	0x03B4
    03C0 F416      BRTC	0x03C3
    03C1 2D0E      MOV	R16,R14
    03C2 2D1F      MOV	R17,R15
    03C3 9189      LD	R24,Y+
    03C4 90F9      LD	R15,Y+
    03C5 90E9      LD	R14,Y+
    03C6 9508      RET
mod8u:
    03C7 9468      BSET	6
    03C8 C001      RJMP	xdiv8u
div8u:
    03C9 94E8      BCLR	6
xdiv8u:
    03CA 932A      ST	R18,-Y
    03CB 92FA      ST	R15,-Y
    03CC 92EA      ST	R14,-Y
    03CD 24FF      CLR	R15
    03CE 24EE      CLR	R14
    03CF E120      LDI	R18,0x10
    03D0 0F00      LSL	R16
    03D1 1CFF      ROL	R15
    03D2 1CEE      ROL	R14
    03D3 16E1      CP	R14,R17
    03D4 F010      BCS	0x03D7
    03D5 1AE1      SUB	R14,R17
    03D6 9503      INC	R16
    03D7 952A      DEC	R18
    03D8 F7B9      BNE	0x03D0
    03D9 F40E      BRTC	0x03DB
    03DA 2D0E      MOV	R16,R14
    03DB 90E9      LD	R14,Y+
    03DC 90F9      LD	R15,Y+
    03DD 9129      LD	R18,Y+
    03DE 9508      RET
pop_gset2:
    03DF E0E2      LDI	R30,2
    03E0 940C03F4  JMP	pop
pop_gset3:
    03E2 E0E4      LDI	R30,4
    03E3 940C03F4  JMP	pop
pop_gset5:
    03E5 27EE      CLR	R30
    03E6 940C03F4  JMP	pop
push_gset5:
    03E8 92FA      ST	R15,-Y
    03E9 92EA      ST	R14,-Y
push_gset4:
    03EA 92DA      ST	R13,-Y
    03EB 92CA      ST	R12,-Y
push_gset3:
    03EC 92BA      ST	R11,-Y
    03ED 92AA      ST	R10,-Y
push_gset2:
    03EE 937A      ST	R23,-Y
    03EF 936A      ST	R22,-Y
push_gset1:
    03F0 935A      ST	R21,-Y
    03F1 934A      ST	R20,-Y
    03F2 9508      RET
pop_gset1:
    03F3 E0E1      LDI	R30,1
pop:
    03F4 9149      LD	R20,Y+
    03F5 9159      LD	R21,Y+
    03F6 FDE0      SBRC	R30,0
    03F7 9508      RET
    03F8 9169      LD	R22,Y+
    03F9 9179      LD	R23,Y+
    03FA FDE1      SBRC	R30,1
    03FB 9508      RET
    03FC 90A9      LD	R10,Y+
    03FD 90B9      LD	R11,Y+
    03FE FDE2      SBRC	R30,2
    03FF 9508      RET
    0400 90C9      LD	R12,Y+
    0401 90D9      LD	R13,Y+
    0402 FDE3      SBRC	R30,3
    0403 9508      RET
    0404 90E9      LD	R14,Y+
    0405 90F9      LD	R15,Y+
    0406 9508      RET
_itoa:
    0407 940E03E8  CALL	push_gset5
    0409 2EC2      MOV	R12,R18
    040A 2ED3      MOV	R13,R19
    040B 2F40      MOV	R20,R16
    040C 2F51      MOV	R21,R17
    040D 97A2      SBIW	R28,0x22
    040E A4AC      LDD	R10,Y+44
    040F A4BD      LDD	R11,Y+45
    0410 2D8C      MOV	R24,R12
    0411 2D9D      MOV	R25,R13
    0412 3080      CPI	R24,0
    0413 E0E0      LDI	R30,0
    0414 079E      CPC	R25,R30
    0415 F444      BGE	0x041E
    0416 E061      LDI	R22,1
    0417 9580      COM	R24
    0418 9590      COM	R25
    0419 5F8F      SUBI	R24,0xFF
    041A 4F9F      SBCI	R25,0xFF
    041B 2EC8      MOV	R12,R24
    041C 2ED9      MOV	R13,R25
    041D C001      RJMP	0x041F
    041E 2766      CLR	R22
    041F 2422      CLR	R2
    0420 A229      STD	Y+33,R2
    0421 2F8C      MOV	R24,R28
    0422 2F9D      MOV	R25,R29
    0423 9681      ADIW	R24,0x21
    0424 2EE8      MOV	R14,R24
    0425 2EF9      MOV	R15,R25
    0426 2D8E      MOV	R24,R14
    0427 2D9F      MOV	R25,R15
    0428 9701      SBIW	R24,1
    0429 2E28      MOV	R2,R24
    042A 2E39      MOV	R3,R25
    042B 2EE8      MOV	R14,R24
    042C 2EF9      MOV	R15,R25
    042D 2D2A      MOV	R18,R10
    042E 2D3B      MOV	R19,R11
    042F 2D0C      MOV	R16,R12
    0430 2D1D      MOV	R17,R13
    0431 940E038D  CALL	mod16s
    0433 2FE0      MOV	R30,R16
    0434 2FF1      MOV	R31,R17
    0435 E384      LDI	R24,0x34
    0436 E091      LDI	R25,1
    0437 0FE8      ADD	R30,R24
    0438 1FF9      ADC	R31,R25
    0439 8040      LDD	R4,Z+0
    043A 2DE2      MOV	R30,R2
    043B 2DF3      MOV	R31,R3
    043C 8240      STD	Z+0,R4
    043D 2D2A      MOV	R18,R10
    043E 2D3B      MOV	R19,R11
    043F 2D0C      MOV	R16,R12
    0440 2D1D      MOV	R17,R13
    0441 940E0391  CALL	div16s
    0443 2EC0      MOV	R12,R16
    0444 2ED1      MOV	R13,R17
    0445 20CC      TST	R12
    0446 F6F9      BNE	0x0426
    0447 20DD      TST	R13
    0448 F6E9      BNE	0x0426
    0449 2366      TST	R22
    044A F059      BEQ	0x0456
    044B 2D8E      MOV	R24,R14
    044C 2D9F      MOV	R25,R15
    044D 9701      SBIW	R24,1
    044E 2E28      MOV	R2,R24
    044F 2E39      MOV	R3,R25
    0450 2EE8      MOV	R14,R24
    0451 2EF9      MOV	R15,R25
    0452 E28D      LDI	R24,0x2D
    0453 2DE2      MOV	R30,R2
    0454 2DF3      MOV	R31,R3
    0455 8380      STD	Z+0,R24
    0456 2D2E      MOV	R18,R14
    0457 2D3F      MOV	R19,R15
    0458 2F04      MOV	R16,R20
    0459 2F15      MOV	R17,R21
    045A 940E0384  CALL	_strcpy
    045C 96A2      ADIW	R28,0x22
    045D 940E03E5  CALL	pop_gset5
    045F 9508      RET

⌨️ 快捷键说明

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