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

📄 me.lst

📁 NOKIA 6610液晶初始化程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
__text_start:
__start:
    0136 E5CF      LDI	R28,0x5F
    0137 E0D4      LDI	R29,4
    0138 BFCD      OUT	0x3D,R28
    0139 BFDE      OUT	0x3E,R29
    013A 51C0      SUBI	R28,0x10
    013B 40D0      SBCI	R29,0
    013C EA0A      LDI	R16,0xAA
    013D 8308      STD	Y+0,R16
    013E 2400      CLR	R0
    013F E6E7      LDI	R30,0x67
    0140 E0F0      LDI	R31,0
    0141 E010      LDI	R17,0
    0142 38E9      CPI	R30,0x89
    0143 07F1      CPC	R31,R17
    0144 F011      BEQ	0x0147
    0145 9201      ST	R0,Z+
    0146 CFFB      RJMP	0x0142
    0147 8300      STD	Z+0,R16
    0148 E6E4      LDI	R30,0x64
    0149 E0F2      LDI	R31,2
    014A E6A0      LDI	R26,0x60
    014B E0B0      LDI	R27,0
    014C E012      LDI	R17,2
    014D 36EB      CPI	R30,0x6B
    014E 07F1      CPC	R31,R17
    014F F021      BEQ	0x0154
    0150 95C8      LPM
    0151 9631      ADIW	R30,1
    0152 920D      ST	R0,X+
    0153 CFF9      RJMP	0x014D
    0154 940E0E23  CALL	_main
_exit:
    0156 CFFF      RJMP	_exit
_sc_cbk:
  tm                   --> Y+8
  b                    --> Y+6
  g                    --> R22
  r                    --> R20
    0157 940E101D  CALL	push_gset2
    0159 2F62      MOV	R22,R18
    015A 2F40      MOV	R20,R16
    015B 9722      SBIW	R28,2
    015C 802E      LDD	R2,Y+6
    015D 2433      CLR	R3
    015E 8239      STD	Y+1,R3
    015F 8228      STD	Y+0,R2
    0160 2F26      MOV	R18,R22
    0161 2733      CLR	R19
    0162 2F04      MOV	R16,R20
    0163 2711      CLR	R17
    0164 940E0B1B  CALL	_RGB
    0166 0118      MOVW	R2,R16
    0167 E02F      LDI	R18,0xF
    0168 E030      LDI	R19,0
    0169 8508      LDD	R16,Y+8
    016A 8519      LDD	R17,Y+9
    016B 940E105B  CALL	lsl16
    016D 2A20      OR	R2,R16
    016E 2A31      OR	R3,R17
    016F 92300070  STS	_cobk+1,R3
    0171 9220006F  STS	_cobk,R2
    0173 9622      ADIW	R28,2
    0174 940E0FFA  CALL	pop_gset2
    0176 9508      RET
_sc_ctext:
    0177 940E101D  CALL	push_gset2
    0179 2F62      MOV	R22,R18
    017A 2F40      MOV	R20,R16
    017B 9722      SBIW	R28,2
    017C 802E      LDD	R2,Y+6
    017D 2433      CLR	R3
    017E 8239      STD	Y+1,R3
    017F 8228      STD	Y+0,R2
    0180 2F26      MOV	R18,R22
    0181 2733      CLR	R19
    0182 2F04      MOV	R16,R20
    0183 2711      CLR	R17
    0184 940E0B1B  CALL	_RGB
    0186 0118      MOVW	R2,R16
    0187 E02F      LDI	R18,0xF
    0188 E030      LDI	R19,0
    0189 8508      LDD	R16,Y+8
    018A 8519      LDD	R17,Y+9
    018B 940E105B  CALL	lsl16
    018D 2A20      OR	R2,R16
    018E 2A31      OR	R3,R17
    018F 92300068  STS	_cotext+1,R3
    0191 92200067  STS	_cotext,R2
    0193 9622      ADIW	R28,2
    0194 940E0FFA  CALL	pop_gset2
    0196 9508      RET
_sc_cfg:
  tm                   --> Y+8
  b                    --> Y+6
  g                    --> R22
  r                    --> R20
    0197 940E101D  CALL	push_gset2
    0199 2F62      MOV	R22,R18
    019A 2F40      MOV	R20,R16
    019B 9722      SBIW	R28,2
    019C 802E      LDD	R2,Y+6
    019D 2433      CLR	R3
    019E 8239      STD	Y+1,R3
    019F 8228      STD	Y+0,R2
    01A0 2F26      MOV	R18,R22
    01A1 2733      CLR	R19
    01A2 2F04      MOV	R16,R20
    01A3 2711      CLR	R17
    01A4 940E0B1B  CALL	_RGB
    01A6 0118      MOVW	R2,R16
    01A7 E02F      LDI	R18,0xF
    01A8 E030      LDI	R19,0
    01A9 8508      LDD	R16,Y+8
    01AA 8519      LDD	R17,Y+9
    01AB 940E105B  CALL	lsl16
FILE: E:\电子\ICCAVR\6610ME~1\lcd6610.h
(0001) //--------Nokia 6610 LCD-----ICCAVR----------
(0002) #include "ascii.h"
(0003) //-----6610 Command -------------------------
(0004) #define GLCD_PIXELX			130
(0005) #define GLCD_PIXELY			130
(0006) #define GLCD_X_START		0
(0007) #define GLCD_Y_START		0
(0008) #define GLCD_X_END			GLCD_PIXELY-1
(0009) #define GLCD_Y_END			GLCD_PIXELY-1
(0010) #define ADDRX				0x75
(0011) #define ADDRY				0x15
(0012) #define MEMWRITE			0x5C
(0013) //-------------------------------------------
(0014) 
(0015) #define csl asm("cbi 0x12,1") //PB0
(0016) #define csh asm("sbi 0x12,1")
(0017) 
(0018) #define restl asm("cbi 0x12,0") //PB4
(0019) #define resth asm("sbi 0x12,0")
(0020) 
(0021) #define sclkl asm("cbi 0x18,5") //PB5
(0022) #define sclkh asm("sbi 0x18,5")
(0023) 
(0024) #define sdatal asm("cbi 0x18,3") //PB3
(0025) #define sdatah asm("sbi 0x18,3")
(0026) #define glcdDoSwapCoord(x, y) {unsigned char t = x; x = y; y = t;}
(0027) #define glcdDoCheckCoord(x, y) {if (x > y) {glcdDoSwapCoord(x, y)}}
(0028) #define glcdSetRect(r,x1,y1,x2,y2) {r.X1 = x1; r.Y1 = y1; r.X2 = x2; r.Y2 = y2;}
(0029) 
(0030) typedef struct {
(0031)     unsigned char X1;
(0032)     unsigned char Y1;
(0033)     unsigned char X2;
(0034)     unsigned char Y2;
(0035) } glcdRect_t;
(0036) 
(0037) glcdRect_t      glcd_Clip;
(0038) 
(0039) unsigned char Color1=0,Color2=0;
(0040) unsigned char backgroundColor = 0,b2=0;
(0041) unsigned char memAccessCtrl=0,zx=0,zy=0;
(0042) char st[20];
(0043) unsigned int cobk,cofg,cofr,cosh,cotext;
(0044) 
(0045) void sc_cbk(unsigned char r,unsigned char g,unsigned char b,unsigned int tm) 
(0046) {cobk= RGB(r,g,b)|(tm<<15);
    01AD 2A20      OR	R2,R16
    01AE 2A31      OR	R3,R17
    01AF 9230006E  STS	_cofg+1,R3
    01B1 9220006D  STS	_cofg,R2
    01B3 9622      ADIW	R28,2
    01B4 940E0FFA  CALL	pop_gset2
    01B6 9508      RET
_sc_cfr:
  tm                   --> Y+8
  b                    --> Y+6
  g                    --> R22
  r                    --> R20
    01B7 940E101D  CALL	push_gset2
    01B9 2F62      MOV	R22,R18
    01BA 2F40      MOV	R20,R16
    01BB 9722      SBIW	R28,2
    01BC 802E      LDD	R2,Y+6
    01BD 2433      CLR	R3
    01BE 8239      STD	Y+1,R3
    01BF 8228      STD	Y+0,R2
    01C0 2F26      MOV	R18,R22
    01C1 2733      CLR	R19
(0047) 
(0048) }
    01C2 2F04      MOV	R16,R20
    01C3 2711      CLR	R17
    01C4 940E0B1B  CALL	_RGB
    01C6 0118      MOVW	R2,R16
    01C7 E02F      LDI	R18,0xF
    01C8 E030      LDI	R19,0
(0049) 
(0050) void sc_ctext(unsigned char r,unsigned char g,unsigned char b,unsigned int tm) 
(0051) {cotext= RGB(r,g,b)|(tm<<15);
(0052) 
    01C9 8508      LDD	R16,Y+8
    01CA 8519      LDD	R17,Y+9
    01CB 940E105B  CALL	lsl16
    01CD 2A20      OR	R2,R16
    01CE 2A31      OR	R3,R17
    01CF 9230006C  STS	_cofr+1,R3
    01D1 9220006B  STS	_cofr,R2
    01D3 9622      ADIW	R28,2
    01D4 940E0FFA  CALL	pop_gset2
    01D6 9508      RET
_sc_csh:
  tm                   --> Y+8
  b                    --> Y+6
  g                    --> R22
  r                    --> R20
    01D7 940E101D  CALL	push_gset2
    01D9 2F62      MOV	R22,R18
    01DA 2F40      MOV	R20,R16
    01DB 9722      SBIW	R28,2
    01DC 802E      LDD	R2,Y+6
    01DD 2433      CLR	R3
(0053) }
(0054) 
    01DE 8239      STD	Y+1,R3
    01DF 8228      STD	Y+0,R2
    01E0 2F26      MOV	R18,R22
    01E1 2733      CLR	R19
    01E2 2F04      MOV	R16,R20
    01E3 2711      CLR	R17
    01E4 940E0B1B  CALL	_RGB
(0055) void sc_cfg(unsigned char r,unsigned char g,unsigned char b,unsigned int tm) 
(0056) {
(0057) cofg= RGB(r,g,b)|(tm<<15);
(0058) 
    01E6 0118      MOVW	R2,R16
    01E7 E02F      LDI	R18,0xF
    01E8 E030      LDI	R19,0
    01E9 8508      LDD	R16,Y+8
    01EA 8519      LDD	R17,Y+9
    01EB 940E105B  CALL	lsl16
    01ED 2A20      OR	R2,R16
    01EE 2A31      OR	R3,R17
    01EF 9230006A  STS	_cosh+1,R3
    01F1 92200069  STS	_cosh,R2
    01F3 9622      ADIW	R28,2
    01F4 940E0FFA  CALL	pop_gset2
    01F6 9508      RET
_glcdSetPixel:
  y                    --> R22
  x                    --> Y+10
    01F7 940E0FAD  CALL	push_arg4
    01F9 940E1029  CALL	push_gset5
(0059) }
    01FB 2F62      MOV	R22,R18
    01FC 90200085  LDS	R2,_glcd_Clip
    01FE 840A      LDD	R0,Y+10
    01FF 1402      CP	R0,R2
    0200 F018      BCS	0x0204
(0060) 
(0061) void sc_cfr(unsigned char r,unsigned char g,unsigned char b,unsigned int tm) 
(0062) {
(0063) cofr= RGB(r,g,b)|(tm<<15);
    0201 E041      LDI	R20,1
    0202 E050      LDI	R21,0
    0203 C002      RJMP	0x0206
    0204 2744      CLR	R20
    0205 2755      CLR	R21
    0206 90200087  LDS	R2,_glcd_Clip+2
    0208 840A      LDD	R0,Y+10
    0209 1420      CP	R2,R0
    020A F020      BCS	0x020F
    020B E081      LDI	R24,1
    020C E090      LDI	R25,0
    020D 017C      MOVW	R14,R24
    020E C002      RJMP	0x0211
    020F 24EE      CLR	R14
    0210 24FF      CLR	R15
    0211 90200086  LDS	R2,_glcd_Clip+1
    0213 1562      CP	R22,R2
    0214 F020      BCS	0x0219
    0215 E081      LDI	R24,1
(0064) }
    0216 E090      LDI	R25,0
    0217 016C      MOVW	R12,R24
    0218 C002      RJMP	0x021B
    0219 24CC      CLR	R12
    021A 24DD      CLR	R13
    021B 90200088  LDS	R2,_glcd_Clip+3
(0065) 
(0066) void sc_csh(unsigned char r,unsigned char g,unsigned char b,unsigned int tm) 
(0067) {
(0068) cosh= RGB(r,g,b)|(tm<<15);
    021D 1626      CP	R2,R22
    021E F020      BCS	0x0223
    021F E081      LDI	R24,1
    0220 E090      LDI	R25,0
    0221 015C      MOVW	R10,R24
    0222 C002      RJMP	0x0225
    0223 24AA      CLR	R10
    0224 24BB      CLR	R11
    0225 011A      MOVW	R2,R20
    0226 202E      AND	R2,R14
    0227 203F      AND	R3,R15
    0228 202C      AND	R2,R12
    0229 203D      AND	R3,R13
    022A 202A      AND	R2,R10
    022B 203B      AND	R3,R11
    022C 2022      TST	R2
    022D F411      BNE	0x0230
    022E 2033      TST	R3
    022F F031      BEQ	0x0236
    0230 2F26      MOV	R18,R22
    0231 2733      CLR	R19
    0232 850A      LDD	R16,Y+10
    0233 2711      CLR	R17
    0234 940E0B4D  CALL	_point
    0236 940E1003  CALL	pop_gset5
    0238 9624      ADIW	R28,4
    0239 9508      RET
_glcdn_Delay:
  d                    --> Y+0
  ld                   --> Y+8
    023A 940E0FAD  CALL	push_arg4
    023C 940E101D  CALL	push_gset2
    023E 9724      SBIW	R28,4
    023F E040      LDI	R20,0
    0240 E050      LDI	R21,0
    0241 E060      LDI	R22,0
    0242 E070      LDI	R23,0
    0243 01FE      MOVW	R30,R28
    0244 8340      STD	Z+0,R20
    0245 8351      STD	Z+1,R21
    0246 8362      STD	Z+2,R22
    0247 8373      STD	Z+3,R23
    0248 C018      RJMP	0x0261
    0249 0000      NOP
    024A 0000      NOP
    024B 0000      NOP
    024C 0000      NOP
    024D 0000      NOP
    024E 0000      NOP
    024F E041      LDI	R20,1
(0069) }
    0250 E050      LDI	R21,0
    0251 E060      LDI	R22,0
    0252 E070      LDI	R23,0
    0253 01FE      MOVW	R30,R28
    0254 8020      LDD	R2,Z+0
(0070) 
(0071) void glcdSetPixel(unsigned char x, unsigned char y)
    0255 8031      LDD	R3,Z+1
    0256 8042      LDD	R4,Z+2
    0257 8053      LDD	R5,Z+3
    0258 0E24      ADD	R2,R20
    0259 1E35      ADC	R3,R21
    025A 1E46      ADC	R4,R22
(0072) {
(0073)     if ((x >= glcd_Clip.X1) & (x <= glcd_Clip.X2) & (y >= glcd_Clip.Y1) & (y <= glcd_Clip.Y2)) {
(0074) point(x,y);
(0075)     }
(0076) }
(0077) 
    025B 1E57      ADC	R5,R23
    025C 01FE      MOVW	R30,R28
    025D 8220      STD	Z+0,R2
    025E 8231      STD	Z+1,R3
    025F 8242      STD	Z+2,R4
    0260 8253      STD	Z+3,R5
    0261 01FE      MOVW	R30,R28
    0262 8420      LDD	R2,Z+8
    0263 8431      LDD	R3,Z+9
    0264 8442      LDD	R4,Z+10
(0078) 
(0079) void glcdn_Delay(long ld)
    0265 8453      LDD	R5,Z+11
(0080) {
    0266 01FE      MOVW	R30,R28
(0081) 	long d;
    0267 8060      LDD	R6,Z+0
(0082) 	for(d=0;d<ld;d++)
    0268 8071      LDD	R7,Z+1
(0083) 	{
    0269 8082      LDD	R8,Z+2
(0084) NOP();
    026A 8093      LDD	R9,Z+3
    026B 1462      CP	R6,R2
    026C 0473      CPC	R7,R3
    026D 0484      CPC	R8,R4
    026E 0495      CPC	R9,R5
    026F F40C      BGE	0x0271
    0270 CFD8      RJMP	0x0249
    0271 9624      ADIW	R28,4
    0272 940E0FFA  CALL	pop_gset2
    0274 9624      ADIW	R28,4
    0275 9508      RET
_glcdDoFillRect:
  y                    --> R10
  x                    --> R14
  y2                   --> R20
  x2                   --> Y+18
  y1                   --> Y+16
  x1                   --> Y+14
    0276 940E0FAD  CALL	push_arg4
    0278 940E1029  CALL	push_gset5
    027A 9724      SBIW	R28,4
    027B 894C      LDD	R20,Y+20
    027C 90200087  LDS	R2,_glcd_Clip+2
    027E 840E      LDD	R0,Y+14
    027F 1420      CP	R2,R0
    0280 F420      BCC	0x0285
    0281 E081      LDI	R24,1
    0282 E090      LDI	R25,0
    0283 016C      MOVW	R12,R24
    0284 C002      RJMP	0x0287
    0285 24CC      CLR	R12
    0286 24DD      CLR	R13
    0287 90200085  LDS	R2,_glcd_Clip
    0289 880A      LDD	R0,Y+18
    028A 1402      CP	R0,R2
    028B F420      BCC	0x0290
    028C E081      LDI	R24,1
(0085) NOP();
(0086) NOP();

⌨️ 快捷键说明

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