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

📄 lesson6.lst

📁 基于AVR的1602显示程序
💻 LST
字号:
__text_start:
__start:
    003E E5CF      LDI	R28,0x5F
    003F E0D4      LDI	R29,4
    0040 BFCD      OUT	P3D,R28
    0041 BFDE      OUT	P3E,R29
    0042 51C0      SUBI	R28,0x10
    0043 40D0      SBCI	R29,0
    0044 EA0A      LDI	R16,0xAA
    0045 8308      STD	R16,0+Y
    0046 2400      CLR	R0
    0047 E6E0      LDI	R30,0x60
    0048 E0F0      LDI	R31,0
    0049 E010      LDI	R17,0
    004A 36E0      CPI	R30,0x60
    004B 07F1      CPC	R31,R17
    004C F011      BEQ	0x004F
    004D 9201      ST	R0,Z+
    004E CFFB      RJMP	0x004A
    004F 8300      STD	R16,0+Z
    0050 E7EB      LDI	R30,0x7B
    0051 E0F0      LDI	R31,0
    0052 E6A0      LDI	R26,0x60
    0053 E0B0      LDI	R27,0
    0054 E010      LDI	R17,0
    0055 37EB      CPI	R30,0x7B
    0056 07F1      CPC	R31,R17
    0057 F021      BEQ	0x005C
    0058 95C8      LPM
    0059 9631      ADIW	R30,1
    005A 920D      ST	R0,X+
    005B CFF9      RJMP	0x0055
    005C 940E0091  CALL	_main
_exit:
    005E CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
    005F 940E00F7  CALL	push_gset2
FILE: I:\AVR视频教程\视频教程\lesson6\chengxu\lesson6\lesson6.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define  uchar unsigned char
(0004) #define  uint  unsigned int
(0005) #pragma data:code 
(0006) const uchar table[]="I LIKE AVR !";
(0007) const uchar table1[]="WWW.TXMCU.COM";
(0008) 
(0009) void delay(uint ms)
(0010) {
(0011)         uint i,j;
(0012) 	for(i=0;i<ms;i++)
    0061 2744      CLR	R20
    0062 2755      CLR	R21
    0063 C00B      RJMP	0x006F
(0013) 	   {
(0014) 	   for(j=0;j<1141;j++);
    0064 2766      CLR	R22
    0065 2777      CLR	R23
    0066 C002      RJMP	0x0069
    0067 5F6F      SUBI	R22,0xFF
    0068 4F7F      SBCI	R23,0xFF
    0069 3765      CPI	R22,0x75
    006A E0E4      LDI	R30,4
    006B 077E      CPC	R23,R30
    006C F3D0      BCS	0x0067
    006D 5F4F      SUBI	R20,0xFF
    006E 4F5F      SBCI	R21,0xFF
    006F 1740      CP	R20,R16
    0070 0751      CPC	R21,R17
    0071 F390      BCS	0x0064
(0015)        }
(0016) }
    0072 940E00FB  CALL	pop_gset2
    0074 9508      RET
_write_com:
  com                  --> R20
    0075 940E00E0  CALL	push_gset1
    0077 2F40      MOV	R20,R16
(0017) void write_com(uchar com)
(0018) {
(0019)        PORTD&=~BIT(4);
    0078 9894      CBI	P12,4
(0020) 	   PORTD&=~BIT(5);
    0079 9895      CBI	P12,5
(0021) 	   PORTB=com;
    007A BB48      OUT	P18,R20
(0022) 	   PORTD|=BIT(6);
    007B 9A96      SBI	P12,6
(0023) 	   delay(1);
    007C E001      LDI	R16,1
    007D E010      LDI	R17,0
    007E DFE0      RCALL	_delay
(0024) 	   PORTD&=~BIT(6);
    007F 9896      CBI	P12,6
(0025) }
    0080 940E00E3  CALL	pop_gset1
    0082 9508      RET
_write_dat:
  dat                  --> R20
    0083 940E00E0  CALL	push_gset1
    0085 2F40      MOV	R20,R16
(0026) 
(0027) void write_dat(uchar dat)
(0028) {     
(0029)        PORTD|=BIT(4);
    0086 9A94      SBI	P12,4
(0030) 	   PORTD&=~BIT(5);
    0087 9895      CBI	P12,5
(0031) 	   PORTB=dat;
    0088 BB48      OUT	P18,R20
(0032) 	   PORTD|=BIT(6);
    0089 9A96      SBI	P12,6
(0033) 	   delay(1);
    008A E001      LDI	R16,1
    008B E010      LDI	R17,0
    008C DFD2      RCALL	_delay
(0034) 	   PORTD&=~BIT(6);
    008D 9896      CBI	P12,6
(0035) 
(0036) }
    008E 940E00E3  CALL	pop_gset1
    0090 9508      RET
(0037) void  main()
(0038) {
(0039)      uchar i;
(0040) 	  DDRB=0XFF;
_main:
  i                    --> R20
    0091 EF8F      LDI	R24,0xFF
    0092 BB87      OUT	P17,R24
(0041) 	  DDRD|=BIT(4)|BIT(5)|BIT(6);
    0093 B381      IN	R24,P11
    0094 6780      ORI	R24,0x70
    0095 BB81      OUT	P11,R24
(0042) 	  PORTD&=~BIT(6);
    0096 9896      CBI	P12,6
(0043) 	  
(0044) 	  write_com(0X38);
    0097 E308      LDI	R16,0x38
    0098 DFDC      RCALL	_write_com
(0045) 	  delay(5);
    0099 E005      LDI	R16,5
    009A E010      LDI	R17,0
    009B DFC3      RCALL	_delay
(0046) 	  write_com(0X01);
    009C E001      LDI	R16,1
    009D DFD7      RCALL	_write_com
(0047) 	  delay(5);
    009E E005      LDI	R16,5
    009F E010      LDI	R17,0
    00A0 DFBE      RCALL	_delay
(0048) 	  write_com(0X0C);
    00A1 E00C      LDI	R16,0xC
    00A2 DFD2      RCALL	_write_com
(0049) 	  delay(5);
    00A3 E005      LDI	R16,5
    00A4 E010      LDI	R17,0
    00A5 DFB9      RCALL	_delay
(0050) 	  write_com(0X06);
    00A6 E006      LDI	R16,6
    00A7 DFCD      RCALL	_write_com
(0051) 	  delay(5);
    00A8 E005      LDI	R16,5
    00A9 E010      LDI	R17,0
    00AA DFB4      RCALL	_delay
(0052) 	  write_com(0X80+0X10);
    00AB E900      LDI	R16,0x90
    00AC DFC8      RCALL	_write_com
(0053) 	  delay(5);
    00AD E005      LDI	R16,5
    00AE E010      LDI	R17,0
    00AF DFAF      RCALL	_delay
(0054) 	  for(i=0;i<12;i++)
    00B0 2744      CLR	R20
    00B1 C00C      RJMP	0x00BE
(0055) 	  {
(0056) 	     write_dat(table[i]);
    00B2 E680      LDI	R24,0x60
    00B3 E090      LDI	R25,0
    00B4 2FE4      MOV	R30,R20
    00B5 27FF      CLR	R31
    00B6 0FE8      ADD	R30,R24
    00B7 1FF9      ADC	R31,R25
    00B8 9104      LD	R16,R16
    00B9 DFC9      RCALL	_write_dat
(0057) 		 delay(5);
    00BA E005      LDI	R16,5
    00BB E010      LDI	R17,0
    00BC DFA2      RCALL	_delay
    00BD 9543      INC	R20
    00BE 304C      CPI	R20,0xC
    00BF F390      BCS	0x00B2
(0058) 	  }
(0059) 	  write_com(0X80+0X50);
    00C0 ED00      LDI	R16,0xD0
    00C1 DFB3      RCALL	_write_com
(0060) 	  delay(5);
    00C2 E005      LDI	R16,5
    00C3 E010      LDI	R17,0
    00C4 DF9A      RCALL	_delay
(0061) 	    for(i=0;i<13;i++)
    00C5 2744      CLR	R20
    00C6 C00C      RJMP	0x00D3
(0062) 	  {
(0063) 	     write_dat(table1[i]);
    00C7 E68D      LDI	R24,0x6D
    00C8 E090      LDI	R25,0
    00C9 2FE4      MOV	R30,R20
    00CA 27FF      CLR	R31
    00CB 0FE8      ADD	R30,R24
    00CC 1FF9      ADC	R31,R25
    00CD 9104      LD	R16,R16
    00CE DFB4      RCALL	_write_dat
(0064) 		 delay(5);
    00CF E005      LDI	R16,5
    00D0 E010      LDI	R17,0
    00D1 DF8D      RCALL	_delay
    00D2 9543      INC	R20
    00D3 304D      CPI	R20,0xD
    00D4 F390      BCS	0x00C7
(0065) 	  }
(0066) 	  for(i=0;i<16;i++)
    00D5 2744      CLR	R20
    00D6 C006      RJMP	0x00DD
(0067) 	  {
(0068) 	     write_com(0X18);
    00D7 E108      LDI	R16,0x18
    00D8 DF9C      RCALL	_write_com
(0069) 		 delay(500);
    00D9 EF04      LDI	R16,0xF4
    00DA E011      LDI	R17,1
    00DB DF83      RCALL	_delay
    00DC 9543      INC	R20
    00DD 3140      CPI	R20,0x10
    00DE F3C0      BCS	0x00D7
(0070) 	  }
(0071) 	  
(0072) }FILE: <library>
    00DF 9508      RET
push_gset1:
    00E0 935A      ST	R21,-Y
    00E1 934A      ST	R20,-Y
    00E2 9508      RET
pop_gset1:
    00E3 E0E1      LDI	R30,1
pop:
    00E4 9149      LD	R20,Y+
    00E5 9159      LD	R21,Y+
    00E6 FDE0      SBRC	R30,0
    00E7 9508      RET
    00E8 9169      LD	R22,Y+
    00E9 9179      LD	R23,Y+
    00EA FDE1      SBRC	R30,1
    00EB 9508      RET
    00EC 90A9      LD	R10,Y+
    00ED 90B9      LD	R11,Y+
    00EE FDE2      SBRC	R30,2
    00EF 9508      RET
    00F0 90C9      LD	R12,Y+
    00F1 90D9      LD	R13,Y+
    00F2 FDE3      SBRC	R30,3
    00F3 9508      RET
    00F4 90E9      LD	R14,Y+
    00F5 90F9      LD	R15,Y+
    00F6 9508      RET
push_gset2:
    00F7 937A      ST	R23,-Y
    00F8 936A      ST	R22,-Y
    00F9 940C00E0  JMP	push_gset1
pop_gset2:
    00FB E0E2      LDI	R30,2
    00FC 940C00E4  JMP	pop

⌨️ 快捷键说明

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