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

📄 lcd1602.lst

📁 avr基础程序大全
💻 LST
字号:
Interrupt Vectors
    00000 940C 0038 JMP	__start|__text_start

Program Code (text area)
__start|__text_start:
    00038 E5CF      LDI	R28,0x5F
    00039 E0D4      LDI	R29,4
    0003A BFCD      OUT	0x3D,R28
    0003B BFDE      OUT	0x3E,R29
    0003C 51CE      SUBI	R28,0x1E
    0003D 40D0      SBCI	R29,0
    0003E EA0A      LDI	R16,0xAA
    0003F 8308      ST	Y,R16
    00040 2400      CLR	R0
    00041 E7EB      LDI	R30,0x7B
    00042 E0F0      LDI	R31,0
    00043 E010      LDI	R17,0
    00044 37EB      CPI	R30,0x7B
    00045 07F1      CPC	R31,R17
    00046 F011      BEQ	0x0049
    00047 9201      ST	Z+,R0
    00048 CFFB      RJMP	0x0044
    00049 8300      ST	Z,R16
    0004A E5E4      LDI	R30,0x54
    0004B E0F0      LDI	R31,0
    0004C E6A0      LDI	R26,0x60
    0004D E0B0      LDI	R27,0
    0004E E010      LDI	R17,0
    0004F E000      LDI	R16,0
    00050 BF0B      OUT	0x3B,R16
    00051 36EF      CPI	R30,0x6F
    00052 07F1      CPC	R31,R17
    00053 F021      BEQ	0x0058
    00054 95C8      LPM
    00055 9631      ADIW	R30,1
    00056 920D      ST	X+,R0
    00057 CFF9      RJMP	0x0051
    00058 940E 0088 CALL	_main
_exit:
    0005A CFFF      RJMP	_exit
_delay:
  i                    --> R20
  j                    --> R22
  ms                   --> R16
    0005B 940E 00D7 CALL	push_xgsetF000
FILE: F:\新学习板程序\avr程序\7LCD1603液晶显示\lcd1602.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define  uchar unsigned char
(0004) #define  uint  unsigned int
(0005) 
(0006) //#pragma data:code
(0007)  
(0008) const uchar table[]="I LIKE AVR !";
(0009) const uchar table1[]="5 XUE DIANZI ";
(0010) 
(0011) void delay(uint ms)
(0012) {
(0013)         uint i,j;
(0014) 	for(i=0;i<ms;i++)
    0005D 2744      CLR	R20
    0005E 2755      CLR	R21
    0005F C00B      RJMP	0x006B
(0015) 	   {
(0016) 	   for(j=0;j<1141;j++);
    00060 2766      CLR	R22
    00061 2777      CLR	R23
    00062 C002      RJMP	0x0065
    00063 5F6F      SUBI	R22,0xFF
    00064 4F7F      SBCI	R23,0xFF
    00065 3765      CPI	R22,0x75
    00066 E0E4      LDI	R30,4
    00067 077E      CPC	R23,R30
    00068 F3D0      BCS	0x0063
    00069 5F4F      SUBI	R20,0xFF
    0006A 4F5F      SBCI	R21,0xFF
    0006B 1740      CP	R20,R16
    0006C 0751      CPC	R21,R17
    0006D F390      BCS	0x0060
    0006E 940C 00DC JMP	pop_xgsetF000
_write_com:
  com                  --> R10
    00070 92AA      ST	-Y,R10
    00071 2EA0      MOV	R10,R16
(0017)        }
(0018) }
(0019) 
(0020) 
(0021) void write_com(uchar com)
(0022) {
(0023)        PORTA&=~BIT(5);
    00072 98DD      CBI	0x1B,5
(0024) 	   PORTA&=~BIT(6);
    00073 98DE      CBI	0x1B,6
(0025) 	   PORTC=com;
    00074 BAA5      OUT	0x15,R10
(0026) 	   PORTA|=BIT(7);
    00075 9ADF      SBI	0x1B,7
(0027) 	   delay(1);
    00076 E001      LDI	R16,1
    00077 E010      LDI	R17,0
    00078 DFE2      RCALL	_delay
(0028) 	   PORTA&=~BIT(7);
    00079 98DF      CBI	0x1B,7
    0007A 90A9      LD	R10,Y+
    0007B 9508      RET
_write_dat:
  dat                  --> R10
    0007C 92AA      ST	-Y,R10
    0007D 2EA0      MOV	R10,R16
(0029) }
(0030) 
(0031) void write_dat(uchar dat)
(0032) {     
(0033)        PORTA|=BIT(5);
    0007E 9ADD      SBI	0x1B,5
(0034) 	   PORTA&=~BIT(6);
    0007F 98DE      CBI	0x1B,6
(0035) 	   PORTC=dat;
    00080 BAA5      OUT	0x15,R10
(0036) 	   PORTA|=BIT(7);
    00081 9ADF      SBI	0x1B,7
(0037) 	   delay(1);
    00082 E001      LDI	R16,1
    00083 E010      LDI	R17,0
    00084 DFD6      RCALL	_delay
(0038) 	   PORTA&=~BIT(7);
    00085 98DF      CBI	0x1B,7
    00086 90A9      LD	R10,Y+
    00087 9508      RET
(0039) }
(0040) void  main()
(0041) {
(0042)       uchar i;
(0043) 	  DDRC=0XFF;
_main:
  i                    --> R20
    00088 EF8F      LDI	R24,0xFF
    00089 BB84      OUT	0x14,R24
(0044) 	  DDRA|=BIT(5)|BIT(6)|BIT(7);
    0008A B38A      IN	R24,0x1A
    0008B 6E80      ORI	R24,0xE0
    0008C BB8A      OUT	0x1A,R24
(0045) 	  PORTC&=~BIT(7);
    0008D 98AF      CBI	0x15,7
(0046) 	  
(0047) 	  write_com(0X38);
    0008E E308      LDI	R16,0x38
    0008F DFE0      RCALL	_write_com
(0048) 	  delay(5);
    00090 E005      LDI	R16,5
    00091 E010      LDI	R17,0
    00092 DFC8      RCALL	_delay
(0049) 	  write_com(0X01);
    00093 E001      LDI	R16,1
    00094 DFDB      RCALL	_write_com
(0050) 	  delay(5);
    00095 E005      LDI	R16,5
    00096 E010      LDI	R17,0
    00097 DFC3      RCALL	_delay
(0051) 	  write_com(0X0C);
    00098 E00C      LDI	R16,0xC
    00099 DFD6      RCALL	_write_com
(0052) 	  delay(5);
    0009A E005      LDI	R16,5
    0009B E010      LDI	R17,0
    0009C DFBE      RCALL	_delay
(0053) 	  write_com(0X06);
    0009D E006      LDI	R16,6
    0009E DFD1      RCALL	_write_com
(0054) 	  delay(5);
    0009F E005      LDI	R16,5
    000A0 E010      LDI	R17,0
    000A1 DFB9      RCALL	_delay
(0055) 	  write_com(0X80+0X10);
    000A2 E900      LDI	R16,0x90
    000A3 DFCC      RCALL	_write_com
(0056) 	  delay(5);
    000A4 E005      LDI	R16,5
    000A5 E010      LDI	R17,0
    000A6 DFB4      RCALL	_delay
(0057) 	  for(i=0;i<12;i++)
    000A7 2744      CLR	R20
    000A8 C00C      RJMP	0x00B5
(0058) 	  {
(0059) 	     write_dat(table[i]);
    000A9 E680      LDI	R24,0x60
    000AA E090      LDI	R25,0
    000AB 2FE4      MOV	R30,R20
    000AC 27FF      CLR	R31
    000AD 0FE8      ADD	R30,R24
    000AE 1FF9      ADC	R31,R25
    000AF 8100      LD	R16,Z
    000B0 DFCB      RCALL	_write_dat
(0060) 		 delay(5);
    000B1 E005      LDI	R16,5
    000B2 E010      LDI	R17,0
    000B3 DFA7      RCALL	_delay
    000B4 9543      INC	R20
    000B5 304C      CPI	R20,0xC
    000B6 F390      BCS	0x00A9
(0061) 	  }
(0062) 	  write_com(0X80+0X50);
    000B7 ED00      LDI	R16,0xD0
    000B8 DFB7      RCALL	_write_com
(0063) 	  delay(5);
    000B9 E005      LDI	R16,5
    000BA E010      LDI	R17,0
    000BB DF9F      RCALL	_delay
(0064) 	    for(i=0;i<13;i++)
    000BC 2744      CLR	R20
    000BD C00C      RJMP	0x00CA
(0065) 	  {
(0066) 	     write_dat(table1[i]);
    000BE E68D      LDI	R24,0x6D
    000BF E090      LDI	R25,0
    000C0 2FE4      MOV	R30,R20
    000C1 27FF      CLR	R31
    000C2 0FE8      ADD	R30,R24
    000C3 1FF9      ADC	R31,R25
    000C4 8100      LD	R16,Z
    000C5 DFB6      RCALL	_write_dat
(0067) 		 delay(5);
    000C6 E005      LDI	R16,5
    000C7 E010      LDI	R17,0
    000C8 DF92      RCALL	_delay
    000C9 9543      INC	R20
    000CA 304D      CPI	R20,0xD
    000CB F390      BCS	0x00BE
(0068) 	  }
(0069) 	  for(i=0;i<16;i++)
    000CC 2744      CLR	R20
    000CD C006      RJMP	0x00D4
(0070) 	  {
(0071) 	     write_com(0X18);
    000CE E108      LDI	R16,0x18
    000CF DFA0      RCALL	_write_com
(0072) 		 delay(500);
FILE: <library>
    000D0 EF04      LDI	R16,0xF4
    000D1 E011      LDI	R17,1
    000D2 DF88      RCALL	_delay
    000D3 9543      INC	R20
    000D4 3140      CPI	R20,0x10
    000D5 F3C0      BCS	0x00CE
    000D6 9508      RET
push_xgsetF000:
    000D7 937A      ST	-Y,R23
    000D8 936A      ST	-Y,R22
    000D9 935A      ST	-Y,R21
    000DA 934A      ST	-Y,R20
    000DB 9508      RET
pop_xgsetF000:
    000DC 9149      LD	R20,Y+
    000DD 9159      LD	R21,Y+
    000DE 9169      LD	R22,Y+
    000DF 9179      LD	R23,Y+
    000E0 9508      RET

⌨️ 快捷键说明

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