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

📄 1602.lst

📁 4线接法的液晶1602+MEGA8的源程序 包括源文件和PROTUES仿真文件
💻 LST
字号:
FILE: <library>
__start:
__text_start:
    001D E5CF      LDI	R28,0x5F
    001E E0D4      LDI	R29,4
    001F BFCD      OUT	0x3D,R28
    0020 BFDE      OUT	0x3E,R29
    0021 51C0      SUBI	R28,0x10
    0022 40D0      SBCI	R29,0
    0023 EA0A      LDI	R16,0xAA
    0024 8308      STD	Y+0,R16
    0025 2400      CLR	R0
    0026 E7E3      LDI	R30,0x73
    0027 E0F0      LDI	R31,0
    0028 E010      LDI	R17,0
    0029 37E3      CPI	R30,0x73
    002A 07F1      CPC	R31,R17
    002B F011      BEQ	0x002E
    002C 9201      ST	R0,Z+
    002D CFFB      RJMP	0x0029
    002E 8300      STD	Z+0,R16
    002F E2E6      LDI	R30,0x26
    0030 E0F0      LDI	R31,0
    0031 E6A0      LDI	R26,0x60
    0032 E0B0      LDI	R27,0
    0033 E010      LDI	R17,0
    0034 33E9      CPI	R30,0x39
    0035 07F1      CPC	R31,R17
    0036 F021      BEQ	0x003B
    0037 95C8      LPM
    0038 9631      ADIW	R30,1
    0039 920D      ST	R0,X+
    003A CFF9      RJMP	0x0034
    003B D0AA      RCALL	_main
_exit:
    003C CFFF      RJMP	_exit
_delay_1us:
    003D 0000      NOP
    003E 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R22
    003F D0CE      RCALL	push_gset2
    0040 01B8      MOVW	R22,R16
    0041 2744      CLR	R20
    0042 2755      CLR	R21
    0043 C003      RJMP	0x0047
    0044 DFF8      RCALL	_delay_1us
    0045 5F4F      SUBI	R20,0xFF
    0046 4F5F      SBCI	R21,0xFF
    0047 1746      CP	R20,R22
    0048 0757      CPC	R21,R23
    0049 F3D0      BCS	0x0044
    004A D0B9      RCALL	pop_gset2
    004B 9508      RET
_delay_1ms:
  i                    --> R16
    004C 2700      CLR	R16
    004D 2711      CLR	R17
    004E C002      RJMP	0x0051
    004F 5F0F      SUBI	R16,0xFF
    0050 4F1F      SBCI	R17,0xFF
    0051 3704      CPI	R16,0x74
    0052 E0E4      LDI	R30,4
    0053 071E      CPC	R17,R30
    0054 F3D0      BCS	0x004F
    0055 9508      RET
_delay_nms:
  i                    --> R20
  n                    --> R22
    0056 D0B7      RCALL	push_gset2
    0057 01B8      MOVW	R22,R16
    0058 2744      CLR	R20
    0059 2755      CLR	R21
    005A C003      RJMP	0x005E
    005B DFF0      RCALL	_delay_1ms
    005C 5F4F      SUBI	R20,0xFF
    005D 4F5F      SBCI	R21,0xFF
    005E 1746      CP	R20,R22
    005F 0757      CPC	R21,R23
    0060 F3D0      BCS	0x005B
    0061 D0A2      RCALL	pop_gset2
    0062 9508      RET
_LCD_init:
    0063 B381      IN	R24,0x11
    0064 6F80      ORI	R24,0xF0
    0065 BB81      OUT	0x11,R24
    0066 9A8A      SBI	0x11,2
    0067 9A88      SBI	0x11,0
    0068 E208      LDI	R16,0x28
    0069 D014      RCALL	_LCD_write_command
    006A D00D      RCALL	_LCD_en_write
    006B E208      LDI	R16,0x28
    006C E010      LDI	R17,0
    006D DFD1      RCALL	_delay_nus
    006E E208      LDI	R16,0x28
    006F D00E      RCALL	_LCD_write_command
    0070 E00C      LDI	R16,0xC
    0071 D00C      RCALL	_LCD_write_command
    0072 E001      LDI	R16,1
    0073 D00A      RCALL	_LCD_write_command
    0074 E002      LDI	R16,2
    0075 E010      LDI	R17,0
    0076 DFDF      RCALL	_delay_nms
    0077 9508      RET
_LCD_en_write:
    0078 9A92      SBI	0x12,2
    0079 E001      LDI	R16,1
    007A E010      LDI	R17,0
    007B DFC3      RCALL	_delay_nus
    007C 9892      CBI	0x12,2
    007D 9508      RET
_LCD_write_command:
  command              --> R20
    007E D091      RCALL	push_gset1
    007F 2F40      MOV	R20,R16
    0080 E100      LDI	R16,0x10
    0081 E010      LDI	R17,0
    0082 DFBC      RCALL	_delay_nus
    0083 9890      CBI	0x12,0
    0084 B382      IN	R24,0x12
    0085 708F      ANDI	R24,0xF
    0086 BB82      OUT	0x12,R24
    0087 2F84      MOV	R24,R20
    0088 7F80      ANDI	R24,0xF0
    0089 B222      IN	R2,0x12
    008A 2A28      OR	R2,R24
    008B BA22      OUT	0x12,R2
    008C DFEB      RCALL	_LCD_en_write
    008D 2F84      MOV	R24,R20
    008E 708F      ANDI	R24,0xF
    008F 9582      SWAP	R24
    0090 2F48      MOV	R20,R24
    0091 B382      IN	R24,0x12
    0092 708F      ANDI	R24,0xF
    0093 BB82      OUT	0x12,R24
    0094 2F84      MOV	R24,R20
    0095 7F80      ANDI	R24,0xF0
    0096 B222      IN	R2,0x12
    0097 2A28      OR	R2,R24
    0098 BA22      OUT	0x12,R2
    0099 DFDE      RCALL	_LCD_en_write
    009A D078      RCALL	pop_gset1
    009B 9508      RET
_LCD_write_data:
  data                 --> R20
    009C D073      RCALL	push_gset1
    009D 2F40      MOV	R20,R16
    009E E100      LDI	R16,0x10
    009F E010      LDI	R17,0
    00A0 DF9E      RCALL	_delay_nus
    00A1 9A90      SBI	0x12,0
    00A2 B382      IN	R24,0x12
    00A3 708F      ANDI	R24,0xF
    00A4 BB82      OUT	0x12,R24
    00A5 2F84      MOV	R24,R20
    00A6 7F80      ANDI	R24,0xF0
    00A7 B222      IN	R2,0x12
    00A8 2A28      OR	R2,R24
    00A9 BA22      OUT	0x12,R2
    00AA DFCD      RCALL	_LCD_en_write
    00AB 2F84      MOV	R24,R20
    00AC 708F      ANDI	R24,0xF
    00AD 9582      SWAP	R24
    00AE 2F48      MOV	R20,R24
    00AF B382      IN	R24,0x12
    00B0 708F      ANDI	R24,0xF
    00B1 BB82      OUT	0x12,R24
    00B2 2F84      MOV	R24,R20
    00B3 7F80      ANDI	R24,0xF0
    00B4 B222      IN	R2,0x12
    00B5 2A28      OR	R2,R24
    00B6 BA22      OUT	0x12,R2
    00B7 DFC0      RCALL	_LCD_en_write
    00B8 D05A      RCALL	pop_gset1
    00B9 9508      RET
_LCD_set_xy:
  address              --> R20
  y                    --> R20
  x                    --> R22
    00BA D053      RCALL	push_gset2
    00BB 2F42      MOV	R20,R18
    00BC 2F60      MOV	R22,R16
    00BD 2344      TST	R20
    00BE F419      BNE	0x00C2
    00BF 2F46      MOV	R20,R22
    00C0 5840      SUBI	R20,0x80
    00C1 C002      RJMP	0x00C4
    00C2 2F46      MOV	R20,R22
    00C3 5440      SUBI	R20,0x40
    00C4 2F04      MOV	R16,R20
    00C5 DFB8      RCALL	_LCD_write_command
    00C6 D03D      RCALL	pop_gset2
    00C7 9508      RET
_LCD_write_string:
  s                    --> R20
  Y                    --> R10
  X                    --> R22
    00C8 D043      RCALL	push_gset3
    00C9 2EA2      MOV	R10,R18
    00CA 2F60      MOV	R22,R16
    00CB 814E      LDD	R20,Y+6
    00CC 815F      LDD	R21,Y+7
    00CD 2D2A      MOV	R18,R10
    00CE 2F06      MOV	R16,R22
    00CF DFEA      RCALL	_LCD_set_xy
    00D0 C005      RJMP	0x00D6
    00D1 01FA      MOVW	R30,R20
    00D2 8100      LDD	R16,Z+0
    00D3 DFC8      RCALL	_LCD_write_data
    00D4 5F4F      SUBI	R20,0xFF
    00D5 4F5F      SBCI	R21,0xFF
    00D6 01FA      MOVW	R30,R20
    00D7 8020      LDD	R2,Z+0
    00D8 2022      TST	R2
    00D9 F7B9      BNE	0x00D1
    00DA D02B      RCALL	pop_gset3
    00DB 9508      RET
_LCD_write_char:
  data                 --> Y+4
  Y                    --> R22
  X                    --> R20
    00DC D031      RCALL	push_gset2
    00DD 2F62      MOV	R22,R18
    00DE 2F40      MOV	R20,R16
    00DF 2F26      MOV	R18,R22
    00E0 2F04      MOV	R16,R20
    00E1 DFD8      RCALL	_LCD_set_xy
    00E2 810C      LDD	R16,Y+4
    00E3 DFB8      RCALL	_LCD_write_data
    00E4 D01F      RCALL	pop_gset2
    00E5 9508      RET
_main:
    00E6 9722      SBIW	R28,2
    00E7 DF7B      RCALL	_LCD_init
    00E8 E68B      LDI	R24,0x6B
    00E9 E090      LDI	R25,0
    00EA 8399      STD	Y+1,R25
    00EB 8388      STD	Y+0,R24
    00EC 2722      CLR	R18
    00ED E002      LDI	R16,2
    00EE DFD9      RCALL	_LCD_write_string
    00EF C011      RJMP	0x0101
    00F0 E680      LDI	R24,0x60
    00F1 E090      LDI	R25,0
    00F2 8399      STD	Y+1,R25
    00F3 8388      STD	Y+0,R24
    00F4 E021      LDI	R18,1
    00F5 E002      LDI	R16,2
    00F6 DFD1      RCALL	_LCD_write_string
    00F7 E388      LDI	R24,0x38
    00F8 8388      STD	Y+0,R24
    00F9 2722      CLR	R18
    00FA E00C      LDI	R16,0xC
    00FB DFE0      RCALL	_LCD_write_char
    00FC E388      LDI	R24,0x38
    00FD 8388      STD	Y+0,R24
    00FE 2722      CLR	R18
    00FF E00D      LDI	R16,0xD
    0100 DFDB      RCALL	_LCD_write_char
    0101 CFEE      RJMP	0x00F0
    0102 9622      ADIW	R28,2
    0103 9508      RET
pop_gset2:
    0104 E0E2      LDI	R30,2
    0105 C00E      RJMP	pop
pop_gset3:
    0106 E0E4      LDI	R30,4
    0107 C00C      RJMP	pop
push_gset5:
    0108 92FA      ST	R15,-Y
    0109 92EA      ST	R14,-Y
push_gset4:
    010A 92DA      ST	R13,-Y
    010B 92CA      ST	R12,-Y
push_gset3:
    010C 92BA      ST	R11,-Y
    010D 92AA      ST	R10,-Y
push_gset2:
    010E 937A      ST	R23,-Y
    010F 936A      ST	R22,-Y
push_gset1:
    0110 935A      ST	R21,-Y
    0111 934A      ST	R20,-Y
    0112 9508      RET
pop_gset1:
    0113 E0E1      LDI	R30,1
pop:
    0114 9149      LD	R20,Y+
    0115 9159      LD	R21,Y+
    0116 FDE0      SBRC	R30,0
    0117 9508      RET
    0118 9169      LD	R22,Y+
    0119 9179      LD	R23,Y+
    011A FDE1      SBRC	R30,1
    011B 9508      RET
    011C 90A9      LD	R10,Y+
    011D 90B9      LD	R11,Y+
    011E FDE2      SBRC	R30,2
    011F 9508      RET
    0120 90C9      LD	R12,Y+
    0121 90D9      LD	R13,Y+
    0122 FDE3      SBRC	R30,3
    0123 9508      RET
    0124 90E9      LD	R14,Y+
    0125 90F9      LD	R15,Y+
    0126 9508      RET

⌨️ 快捷键说明

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