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

📄 3.lst

📁 这是个lcd液晶显示屏12864的典型驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
FILE: <library>
__text_start:
__start:
    00E2 E5CF      LDI	R28,0x5F
    00E3 E0D4      LDI	R29,4
    00E4 BFCD      OUT	0x3D,R28
    00E5 BFDE      OUT	0x3E,R29
    00E6 51C0      SUBI	R28,0x10
    00E7 40D0      SBCI	R29,0
    00E8 EA0A      LDI	R16,0xAA
    00E9 8308      STD	Y+0,R16
    00EA 2400      CLR	R0
    00EB E7E0      LDI	R30,0x70
    00EC E0F0      LDI	R31,0
    00ED E010      LDI	R17,0
    00EE 37E0      CPI	R30,0x70
    00EF 07F1      CPC	R31,R17
    00F0 F011      BEQ	0x00F3
    00F1 9201      ST	R0,Z+
    00F2 CFFB      RJMP	0x00EE
    00F3 8300      STD	Z+0,R16
    00F4 EBE4      LDI	R30,0xB4
    00F5 E0F1      LDI	R31,1
    00F6 E6A0      LDI	R26,0x60
    00F7 E0B0      LDI	R27,0
    00F8 E011      LDI	R17,1
    00F9 3CE4      CPI	R30,0xC4
    00FA 07F1      CPC	R31,R17
    00FB F021      BEQ	0x0100
    00FC 95C8      LPM
    00FD 9631      ADIW	R30,1
    00FE 920D      ST	R0,X+
    00FF CFF9      RJMP	0x00F9
    0100 940E02A1  CALL	_main
_exit:
    0102 CFFF      RJMP	_exit
_port_init:
    0103 EF8F      LDI	R24,0xFF
    0104 BB8B      OUT	0x1B,R24
    0105 BB8A      OUT	0x1A,R24
    0106 BB88      OUT	0x18,R24
    0107 BB87      OUT	0x17,R24
    0108 BB85      OUT	0x15,R24
    0109 BB84      OUT	0x14,R24
    010A BB82      OUT	0x12,R24
    010B BB81      OUT	0x11,R24
    010C 9508      RET
_init_devices:
    010D 94F8      BCLR	7
    010E DFF4      RCALL	_port_init
    010F 2422      CLR	R2
    0110 BE25      OUT	0x35,R2
    0111 BE2B      OUT	0x3B,R2
    0112 BE29      OUT	0x39,R2
    0113 9478      BSET	7
    0114 9508      RET
_CheckState:
  dat                  --> Y+1
    0115 98C0      CBI	0x18,0
    0116 9AC1      SBI	0x18,1
    0117 2422      CLR	R2
    0118 BA2A      OUT	0x1A,R2
    0119 9AC2      SBI	0x18,2
    011A 98C2      CBI	0x18,2
    011B 99CF      SBIC	0x19,7
    011C CFFC      RJMP	0x0119
    011D 9508      RET
_WriteByte:
  dat                  --> R20
    011E 940E02BA  CALL	push_gset1
    0120 2F40      MOV	R20,R16
    0121 DFF3      RCALL	_CheckState
    0122 9AC0      SBI	0x18,0
    0123 98C1      CBI	0x18,1
    0124 EF8F      LDI	R24,0xFF
    0125 BB8A      OUT	0x1A,R24
    0126 BB4B      OUT	0x1B,R20
    0127 9AC2      SBI	0x18,2
    0128 98C2      CBI	0x18,2
    0129 940E02BD  CALL	pop_gset1
    012B 9508      RET
_SendCommandToLCD:
  command              --> R20
    012C 940E02BA  CALL	push_gset1
    012E 2F40      MOV	R20,R16
    012F DFE5      RCALL	_CheckState
    0130 B388      IN	R24,0x18
    0131 7F8C      ANDI	R24,0xFC
    0132 BB88      OUT	0x18,R24
    0133 EF8F      LDI	R24,0xFF
    0134 BB8A      OUT	0x1A,R24
    0135 BB4B      OUT	0x1B,R20
    0136 9AC2      SBI	0x18,2
    0137 98C2      CBI	0x18,2
    0138 940E02BD  CALL	pop_gset1
    013A 9508      RET
_SetLine:
  line                 --> R20
    013B 940E02BA  CALL	push_gset1
    013D 2F40      MOV	R20,R16
    013E 7047      ANDI	R20,7
    013F 6B48      ORI	R20,0xB8
    0140 2F04      MOV	R16,R20
    0141 DFEA      RCALL	_SendCommandToLCD
    0142 940E02BD  CALL	pop_gset1
    0144 9508      RET
_SetColumn:
  column               --> R20
    0145 940E02BA  CALL	push_gset1
    0147 2F40      MOV	R20,R16
    0148 734F      ANDI	R20,0x3F
    0149 6440      ORI	R20,0x40
    014A 2F04      MOV	R16,R20
    014B DFE0      RCALL	_SendCommandToLCD
    014C 940E02BD  CALL	pop_gset1
    014E 9508      RET
_SetStartLine:
  startline            --> R20
    014F 940E02BA  CALL	push_gset1
    0151 2F40      MOV	R20,R16
    0152 7047      ANDI	R20,7
    0153 6C40      ORI	R20,0xC0
    0154 2F04      MOV	R16,R20
    0155 DFD6      RCALL	_SendCommandToLCD
    0156 940E02BD  CALL	pop_gset1
    0158 9508      RET
_SetOnOff:
  onoff                --> R20
    0159 940E02BA  CALL	push_gset1
    015B 2F40      MOV	R20,R16
    015C 634E      ORI	R20,0x3E
    015D 2F04      MOV	R16,R20
    015E DFCD      RCALL	_SendCommandToLCD
    015F 940E02BD  CALL	pop_gset1
    0161 9508      RET
_Clr_Scr:
  k                    --> R20
  j                    --> R22
    0162 940E02B8  CALL	push_gset2
    0164 B388      IN	R24,0x18
    0165 6188      ORI	R24,0x18
    0166 BB88      OUT	0x18,R24
    0167 2700      CLR	R16
    0168 DFD2      RCALL	_SetLine
    0169 2700      CLR	R16
    016A DFDA      RCALL	_SetColumn
    016B 2744      CLR	R20
    016C C00A      RJMP	0x0177
    016D 2F04      MOV	R16,R20
    016E DFCC      RCALL	_SetLine
    016F 2766      CLR	R22
    0170 C003      RJMP	0x0174
    0171 2700      CLR	R16
    0172 DFAB      RCALL	_WriteByte
    0173 9563      INC	R22
    0174 3460      CPI	R22,0x40
    0175 F3D8      BCS	0x0171
    0176 9543      INC	R20
    0177 3048      CPI	R20,0x8
    0178 F3A0      BCS	0x016D
    0179 940E02AC  CALL	pop_gset2
    017B 9508      RET
_init_lcd:
    017C 98C5      CBI	0x18,5
    017D 9AC5      SBI	0x18,5
    017E B388      IN	R24,0x18
    017F 6188      ORI	R24,0x18
    0180 BB88      OUT	0x18,R24
    0181 E30E      LDI	R16,0x3E
    0182 DFD6      RCALL	_SetOnOff
    0183 2700      CLR	R16
    0184 DFB6      RCALL	_SetLine
    0185 2700      CLR	R16
    0186 DFC8      RCALL	_SetStartLine
    0187 2700      CLR	R16
    0188 DFBC      RCALL	_SetColumn
    0189 E30F      LDI	R16,0x3F
    018A DFCE      RCALL	_SetOnOff
    018B 9508      RET
_word_disp:
  k                    --> R20
  j                    --> R22
  i                    --> R10
  hzk                  --> R12
  row                  --> R14
  pag                  --> Y+10
    018C 940E02A7  CALL	push_arg4
    018E 940E02B2  CALL	push_gset5
    0190 2EE2      MOV	R14,R18
    0191 84CE      LDD	R12,Y+14
    0192 84DF      LDD	R13,Y+15
    0193 2766      CLR	R22
    0194 24AA      CLR	R10
    0195 2744      CLR	R20
    0196 C024      RJMP	0x01BB
    0197 2D8E      MOV	R24,R14
    0198 3084      CPI	R24,4
    0199 F420      BCC	0x019E
    019A 2F48      MOV	R20,R24
    019B 9AC3      SBI	0x18,3
    019C 98C4      CBI	0x18,4
    019D C004      RJMP	0x01A2
    019E 2D4E      MOV	R20,R14
    019F 5044      SUBI	R20,4
    01A0 98C3      CBI	0x18,3
    01A1 9AC4      SBI	0x18,4
    01A2 850A      LDD	R16,Y+10
    01A3 0F06      ADD	R16,R22
    01A4 DF96      RCALL	_SetLine
    01A5 E180      LDI	R24,0x10
    01A6 9F84      MUL	R24,R20
    01A7 2D00      MOV	R16,R0
    01A8 DF9C      RCALL	_SetColumn
    01A9 24AA      CLR	R10
    01AA C00C      RJMP	0x01B7
    01AB E180      LDI	R24,0x10
    01AC 9F86      MUL	R24,R22
    01AD 01F0      MOVW	R30,R0
    01AE 2C2A      MOV	R2,R10
    01AF 2433      CLR	R3
    01B0 0DE2      ADD	R30,R2
    01B1 1DF3      ADC	R31,R3
    01B2 0DEC      ADD	R30,R12
    01B3 1DFD      ADC	R31,R13
    01B4 9104      LPM	R16,0(Z)
    01B5 DF68      RCALL	_WriteByte
    01B6 94A3      INC	R10
    01B7 2D8A      MOV	R24,R10
    01B8 3180      CPI	R24,0x10
    01B9 F388      BCS	0x01AB
    01BA 9563      INC	R22
    01BB 3062      CPI	R22,2
    01BC F2D0      BCS	0x0197
    01BD 940E02AF  CALL	pop_gset5
    01BF 9624      ADIW	R28,4
    01C0 9508      RET
_byte_disp:
  k                    --> R20
  j                    --> R22
  i                    --> R10
  bytek                --> R12
  row                  --> R14
  pag                  --> Y+10
    01C1 940E02A7  CALL	push_arg4
    01C3 940E02B2  CALL	push_gset5
    01C5 2EE2      MOV	R14,R18
    01C6 84CE      LDD	R12,Y+14
    01C7 84DF      LDD	R13,Y+15
    01C8 2766      CLR	R22
    01C9 24AA      CLR	R10
    01CA 2744      CLR	R20
    01CB C024      RJMP	0x01F0
    01CC 2D8E      MOV	R24,R14
    01CD 3088      CPI	R24,0x8
    01CE F420      BCC	0x01D3
    01CF 2F48      MOV	R20,R24
    01D0 9AC3      SBI	0x18,3
    01D1 98C4      CBI	0x18,4
    01D2 C004      RJMP	0x01D7
    01D3 2D4E      MOV	R20,R14
    01D4 5048      SUBI	R20,0x8
    01D5 98C3      CBI	0x18,3

⌨️ 快捷键说明

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