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

📄 ad2543.lst

📁 在mega128上实现ad2543的驱动程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
FILE: <library>
__start:
__text_start:
    005C EFCF      LDI	R28,0xFF
    005D E1D0      LDI	R29,0x10
    005E BFCD      OUT	0x3D,R28
    005F BFDE      OUT	0x3E,R29
    0060 51C0      SUBI	R28,0x10
    0061 40D0      SBCI	R29,0
    0062 EA0A      LDI	R16,0xAA
    0063 8308      STD	Y+0,R16
    0064 2400      CLR	R0
    0065 E1E5      LDI	R30,0x15
    0066 E0F1      LDI	R31,1
    0067 E011      LDI	R17,1
    0068 32E3      CPI	R30,0x23
    0069 07F1      CPC	R31,R17
    006A F011      BEQ	0x006D
    006B 9201      ST	R0,Z+
    006C CFFB      RJMP	0x0068
    006D 8300      STD	Z+0,R16
    006E EAE2      LDI	R30,0xA2
    006F E0F0      LDI	R31,0
    0070 E0A0      LDI	R26,0
    0071 E0B1      LDI	R27,1
    0072 E010      LDI	R17,0
    0073 3BE7      CPI	R30,0xB7
    0074 07F1      CPC	R31,R17
    0075 F021      BEQ	0x007A
    0076 95C8      LPM
    0077 9631      ADIW	R30,1
    0078 920D      ST	R0,X+
    0079 CFF9      RJMP	0x0073
    007A 940E0361  CALL	_main
_exit:
    007C CFFF      RJMP	_exit
_delay_1us:
    007D 0000      NOP
    007E 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R22
    007F 940E0467  CALL	push_gset2
    0081 01B8      MOVW	R22,R16
    0082 2744      CLR	R20
    0083 2755      CLR	R21
    0084 C003      RJMP	0x0088
    0085 DFF7      RCALL	_delay_1us
    0086 5F4F      SUBI	R20,0xFF
    0087 4F5F      SBCI	R21,0xFF
    0088 1746      CP	R20,R22
    0089 0757      CPC	R21,R23
    008A F3D0      BCS	0x0085
    008B 940E0458  CALL	pop_gset2
    008D 9508      RET
_delay_1ms:
  i                    --> R16
    008E 2700      CLR	R16
    008F 2711      CLR	R17
    0090 C002      RJMP	0x0093
    0091 5F0F      SUBI	R16,0xFF
    0092 4F1F      SBCI	R17,0xFF
    0093 3706      CPI	R16,0x76
    0094 E0E4      LDI	R30,4
    0095 071E      CPC	R17,R30
    0096 F3D0      BCS	0x0091
    0097 9508      RET
_delay_nms:
  i                    --> R20
  n                    --> R22
    0098 940E0467  CALL	push_gset2
    009A 01B8      MOVW	R22,R16
    009B 2744      CLR	R20
    009C 2755      CLR	R21
    009D C003      RJMP	0x00A1
    009E DFEF      RCALL	_delay_1ms
    009F 5F4F      SUBI	R20,0xFF
    00A0 4F5F      SBCI	R21,0xFF
    00A1 1746      CP	R20,R22
    00A2 0757      CPC	R21,R23
    00A3 F3D0      BCS	0x009E
    00A4 940E0458  CALL	pop_gset2
    00A6 9508      RET
_init_ad2543:
    00A7 E000      LDI	R16,0
    00A8 EA17      LDI	R17,0xA7
    00A9 D001      RCALL	_write_ad2543
    00AA 9508      RET
_write_ad2543:
  cmd                  --> R20
  i                    --> R22
  token                --> R10
  command              --> R22
    00AB 940E0465  CALL	push_gset3
    00AD 01B8      MOVW	R22,R16
    00AE E080      LDI	R24,0
    00AF E890      LDI	R25,0x80
    00B0 015C      MOVW	R10,R24
    00B1 01AB      MOVW	R20,R22
    00B2 9AD8      SBI	0x1B,0
    00B3 98D8      CBI	0x1B,0
    00B4 98DA      CBI	0x1B,2
    00B5 E002      LDI	R16,2
    00B6 E010      LDI	R17,0
    00B7 DFC7      RCALL	_delay_nus
    00B8 2766      CLR	R22
    00B9 C010      RJMP	0x00CA
    00BA 011A      MOVW	R2,R20
    00BB 202A      AND	R2,R10
    00BC 203B      AND	R3,R11
    00BD 2022      TST	R2
    00BE F411      BNE	0x00C1
    00BF 2033      TST	R3
    00C0 F011      BEQ	0x00C3
    00C1 9AD9      SBI	0x1B,1
    00C2 C001      RJMP	0x00C4
    00C3 98D9      CBI	0x1B,1
    00C4 9ADA      SBI	0x1B,2
    00C5 DFB7      RCALL	_delay_1us
    00C6 98DA      CBI	0x1B,2
    00C7 94B6      LSR	R11
    00C8 94A7      ROR	R10
    00C9 9563      INC	R22
    00CA 3160      CPI	R22,0x10
    00CB F370      BCS	0x00BA
    00CC E002      LDI	R16,2
    00CD E010      LDI	R17,0
    00CE DFB0      RCALL	_delay_nus
    00CF 940E045B  CALL	pop_gset3
    00D1 9508      RET
_read_ad2543:
  i                    --> R20
  ad16bit              --> R22
    00D2 940E0467  CALL	push_gset2
    00D4 2766      CLR	R22
    00D5 2777      CLR	R23
    00D6 99CC      SBIC	0x19,4
    00D7 CFFE      RJMP	0x00D6
    00D8 2744      CLR	R20
    00D9 C009      RJMP	0x00E3
    00DA 9BCB      SBIS	0x19,3
    00DB C001      RJMP	0x00DD
    00DC 6061      ORI	R22,1
    00DD 9ADA      SBI	0x1B,2
    00DE DF9E      RCALL	_delay_1us
    00DF 98DA      CBI	0x1B,2
    00E0 0F66      LSL	R22
    00E1 1F77      ROL	R23
    00E2 9543      INC	R20
    00E3 3140      CPI	R20,0x10
    00E4 F3A8      BCS	0x00DA
    00E5 018B      MOVW	R16,R22
    00E6 940E0458  CALL	pop_gset2
    00E8 9508      RET
_key_scay:
  key                  --> R20
    00E9 940E0469  CALL	push_gset1
    00EB EF80      LDI	R24,0xF0
    00EC BB87      OUT	0x17,R24
    00ED E08F      LDI	R24,0xF
    00EE BB88      OUT	0x18,R24
    00EF 9BCB      SBIS	0x19,3
    00F0 C002      RJMP	0x00F3
    00F1 2744      CLR	R20
    00F2 C00B      RJMP	0x00FE
    00F3 9BCA      SBIS	0x19,2
    00F4 C002      RJMP	0x00F7
    00F5 E044      LDI	R20,4
    00F6 C007      RJMP	0x00FE
    00F7 9BC9      SBIS	0x19,1
    00F8 C002      RJMP	0x00FB
    00F9 E048      LDI	R20,0x8
    00FA C003      RJMP	0x00FE
    00FB 9BC8      SBIS	0x19,0
    00FC C001      RJMP	0x00FE
    00FD E04C      LDI	R20,0xC
    00FE E08F      LDI	R24,0xF
    00FF BB87      OUT	0x17,R24
    0100 EF80      LDI	R24,0xF0
    0101 BB88      OUT	0x18,R24
    0102 E104      LDI	R16,0x14
    0103 E010      LDI	R17,0
    0104 DF93      RCALL	_delay_nms
    0105 9BCF      SBIS	0x19,7
    0106 C001      RJMP	0x0108
    0107 C00B      RJMP	0x0113
    0108 9BCE      SBIS	0x19,6
    0109 C002      RJMP	0x010C
    010A 9543      INC	R20
    010B C007      RJMP	0x0113
    010C 9BCD      SBIS	0x19,5
    010D C002      RJMP	0x0110
    010E 5F4E      SUBI	R20,0xFE
    010F C003      RJMP	0x0113
    0110 9BCC      SBIS	0x19,4
    0111 C001      RJMP	0x0113
    0112 5F4D      SUBI	R20,0xFD
    0113 EF80      LDI	R24,0xF0
    0114 BB87      OUT	0x17,R24
    0115 E08F      LDI	R24,0xF
    0116 BB88      OUT	0x18,R24
    0117 2F04      MOV	R16,R20
    0118 940E046C  CALL	pop_gset1
    011A 9508      RET
_LCD_init:
    011B B38A      IN	R24,0x1A
    011C 6F80      ORI	R24,0xF0
    011D BB8A      OUT	0x1A,R24
    011E 9AD3      SBI	0x1A,3
    011F 9AD1      SBI	0x1A,1
    0120 E228      LDI	R18,0x28
    0121 E001      LDI	R16,1
    0122 D017      RCALL	_LCD_Write_char
    0123 D010      RCALL	_LCD_en_write
    0124 E208      LDI	R16,0x28
    0125 E010      LDI	R17,0
    0126 DF58      RCALL	_delay_nus
    0127 E228      LDI	R18,0x28
    0128 E001      LDI	R16,1
    0129 D010      RCALL	_LCD_Write_char
    012A E02C      LDI	R18,0xC
    012B E001      LDI	R16,1
    012C D00D      RCALL	_LCD_Write_char
    012D E021      LDI	R18,1
    012E E001      LDI	R16,1
    012F D00A      RCALL	_LCD_Write_char
    0130 E002      LDI	R16,2
    0131 E010      LDI	R17,0
    0132 DF65      RCALL	_delay_nms
    0133 9508      RET
_LCD_en_write:
    0134 9ADB      SBI	0x1B,3
    0135 E001      LDI	R16,1
    0136 E010      LDI	R17,0
    0137 DF47      RCALL	_delay_nus
    0138 98DB      CBI	0x1B,3
    0139 9508      RET
_LCD_Write_char:
  data                 --> R20
  command              --> R22
    013A 940E0467  CALL	push_gset2
    013C 2F42      MOV	R20,R18
    013D 2F60      MOV	R22,R16
    013E E100      LDI	R16,0x10
    013F E010      LDI	R17,0
    0140 DF3E      RCALL	_delay_nus
    0141 3061      CPI	R22,1
    0142 F411      BNE	0x0145
    0143 98D9      CBI	0x1B,1
    0144 C003      RJMP	0x0148
    0145 B38B      IN	R24,0x1B
    0146 7082      ANDI	R24,2
    0147 BB8B      OUT	0x1B,R24
    0148 B38B      IN	R24,0x1B
    0149 708F      ANDI	R24,0xF
    014A BB8B      OUT	0x1B,R24
    014B 2F84      MOV	R24,R20
    014C 7F80      ANDI	R24,0xF0
    014D B22B      IN	R2,0x1B
    014E 2A28      OR	R2,R24
    014F BA2B      OUT	0x1B,R2
    0150 DFE3      RCALL	_LCD_en_write
    0151 2F84      MOV	R24,R20
    0152 708F      ANDI	R24,0xF
    0153 9582      SWAP	R24
    0154 2F48      MOV	R20,R24
    0155 B38B      IN	R24,0x1B
    0156 708F      ANDI	R24,0xF
    0157 BB8B      OUT	0x1B,R24
    0158 2F84      MOV	R24,R20
    0159 7F80      ANDI	R24,0xF0
    015A B22B      IN	R2,0x1B
    015B 2A28      OR	R2,R24
    015C BA2B      OUT	0x1B,R2
    015D DFD6      RCALL	_LCD_en_write
    015E 940E0458  CALL	pop_gset2
    0160 9508      RET
_LCD_Clear:
    0161 E021      LDI	R18,1
    0162 E001      LDI	R16,1
    0163 DFD6      RCALL	_LCD_Write_char
    0164 9508      RET
_LCD_set_xy:
  address              --> R20
  y                    --> R20
  x                    --> R22
    0165 940E0467  CALL	push_gset2
    0167 2F42      MOV	R20,R18
    0168 2F60      MOV	R22,R16
    0169 2344      TST	R20
    016A F419      BNE	0x016E
    016B 2F46      MOV	R20,R22
    016C 5840      SUBI	R20,0x80
    016D C002      RJMP	0x0170
    016E 2F46      MOV	R20,R22
    016F 5740      SUBI	R20,0x70
    0170 2F24      MOV	R18,R20
    0171 E001      LDI	R16,1
    0172 DFC7      RCALL	_LCD_Write_char
    0173 940E0458  CALL	pop_gset2
    0175 9508      RET
_LCD_DisplayCharacter:
  Char                 --> R20
    0176 940E0469  CALL	push_gset1
    0178 2F40      MOV	R20,R16
    0179 2F24      MOV	R18,R20
    017A 2700      CLR	R16
    017B DFBE      RCALL	_LCD_Write_char
    017C 940E046C  CALL	pop_gset1
    017E 9508      RET
_LCD_DisplayString:
  string               --> R20
  y                    --> R10
  x                    --> R22
    017F 940E0465  CALL	push_gset3
    0181 2EA2      MOV	R10,R18
    0182 2F60      MOV	R22,R16
    0183 814E      LDD	R20,Y+6
    0184 815F      LDD	R21,Y+7
    0185 2D2A      MOV	R18,R10
    0186 2F06      MOV	R16,R22
    0187 DFDD      RCALL	_LCD_set_xy
    0188 C004      RJMP	0x018D
    0189 01FA      MOVW	R30,R20
    018A 9101      LD	R16,Z+
    018B 01AF      MOVW	R20,R30
    018C DFE9      RCALL	_LCD_DisplayCharacter
    018D 01FA      MOVW	R30,R20
    018E 8020      LDD	R2,Z+0
    018F 2022      TST	R2
    0190 F7C1      BNE	0x0189
    0191 940E045B  CALL	pop_gset3
    0193 9508      RET
_LCD_DisplayInt:
  n                    --> R22
  j                    --> R22
  str                  --> R10
  a                    --> Y+2
  i                    --> R20
  t                    --> R20
  y                    --> R14
  x                    --> R12
    0194 940E0461  CALL	push_gset5
    0196 2EE2      MOV	R14,R18
    0197 2EC0      MOV	R12,R16
    0198 9727      SBIW	R28,7
    0199 8949      LDD	R20,Y+17
    019A 895A      LDD	R21,Y+18
    019B E18D      LDI	R24,0x1D
    019C E091      LDI	R25,1
    019D 015C      MOVW	R10,R24
    019E E120      LDI	R18,0x10
    019F E237      LDI	R19,0x27
    01A0 018A      MOVW	R16,R20
    01A1 940E03CD  CALL	div16u
    01A3 E02A      LDI	R18,0xA
    01A4 E030      LDI	R19,0
    01A5 940E03CB  CALL	mod16u
    01A7 830A      STD	Y+2,R16
    01A8 EE28      LDI	R18,0xE8
    01A9 E033      LDI	R19,3
    01AA 018A      MOVW	R16,R20
    01AB 940E03CD  CALL	div16u
    01AD E02A      LDI	R18,0xA
    01AE E030      LDI	R19,0
    01AF 940E03CB  CALL	mod16u
    01B1 830B      STD	Y+3,R16
    01B2 E624      LDI	R18,0x64
    01B3 E030      LDI	R19,0
    01B4 018A      MOVW	R16,R20
    01B5 940E03CD  CALL	div16u
    01B7 E02A      LDI	R18,0xA
    01B8 E030      LDI	R19,0
    01B9 940E03CB  CALL	mod16u
    01BB 830C      STD	Y+4,R16
    01BC E02A      LDI	R18,0xA
    01BD E030      LDI	R19,0
    01BE 018A      MOVW	R16,R20
    01BF 940E03CD  CALL	div16u
    01C1 E02A      LDI	R18,0xA
    01C2 E030      LDI	R19,0
    01C3 940E03CB  CALL	mod16u
    01C5 830D      STD	Y+5,R16
    01C6 E02A      LDI	R18,0xA
    01C7 E030      LDI	R19,0
    01C8 018A      MOVW	R16,R20
    01C9 940E03CB  CALL	mod16u
    01CB 830E      STD	Y+6,R16
    01CC 2744      CLR	R20
    01CD C00B      RJMP	0x01D9
    01CE 01CE      MOVW	R24,R28
    01CF 9602      ADIW	R24,2
    01D0 2E24      MOV	R2,R20
    01D1 2433      CLR	R3
    01D2 0E28      ADD	R2,R24
    01D3 1E39      ADC	R3,R25
    01D4 01F1      MOVW	R30,R2
    01D5 8180      LDD	R24,Z+0
    01D6 5D80      SUBI	R24,0xD0
    01D7 8380      STD	Z+0,R24
    01D8 9543      INC	R20
    01D9 3045      CPI	R20,5
    01DA F398      BCS	0x01CE
    01DB 2744      CLR	R20
    01DC C001      RJMP	0x01DE
    01DD 9543      INC	R20
    01DE 01CE      MOVW	R24,R28
    01DF 9602      ADIW	R24,2

⌨️ 快捷键说明

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