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

📄 me.lst

📁 LCD彩显驱动 nokia 6100 LCD
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0166 2711      CLR	R17
    0167 DA11      RCALL	_glcdn_WriteData
(0072) 		glcdn_WriteData(Color2);
    0168 91000061  LDS	R16,0x61
    016A 2711      CLR	R17
    016B DA0D      RCALL	_glcdn_WriteData
    016C 94E3      INC	R14
    016D 880A      LDD	R0,Y+18
    016E 140E      CP	R0,R14
    016F F7A0      BCC	0x0164
    0170 94A3      INC	R10
    0171 154A      CP	R20,R10
    0172 F778      BCC	0x0162
(0073)         }
(0074)       }
(0075)     }
(0076) }
    0173 9624      ADIW	R28,4
    0174 DB20      RCALL	pop_gset5
    0175 9624      ADIW	R28,4
    0176 9508      RET
_glcdFillRect:
  t                    --> R14
  t                    --> R14
  y2                   --> R12
  x2                   --> R10
  y1                   --> R22
  x1                   --> R20
    0177 DB3F      RCALL	push_gset5
    0178 2F62      MOV	R22,R18
    0179 2F40      MOV	R20,R16
    017A 9723      SBIW	R28,3
    017B 84AD      LDD	R10,Y+13
    017C 84CF      LDD	R12,Y+15
(0077) 
(0078) void glcdFillRect(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2) {
(0079) 
(0080)     glcdDoCheckCoord(x1, x2);
    017D 16A4      CP	R10,R20
    017E F418      BCC	0x0182
    017F 2EE4      MOV	R14,R20
    0180 2D4A      MOV	R20,R10
    0181 2CAE      MOV	R10,R14
(0081)     glcdDoCheckCoord(y1, y2);
    0182 16C6      CP	R12,R22
    0183 F418      BCC	0x0187
    0184 2EE6      MOV	R14,R22
    0185 2D6C      MOV	R22,R12
    0186 2CCE      MOV	R12,R14
(0082) 	//RGB(r,g,b);
(0083)     glcdDoFillRect(x1, y1, x2, y2);
    0187 82CA      STD	Y+2,R12
    0188 82A8      STD	Y+0,R10
    0189 2F26      MOV	R18,R22
    018A 2F04      MOV	R16,R20
    018B DF5A      RCALL	_glcdDoFillRect
(0084) }
    018C 9623      ADIW	R28,3
    018D DB07      RCALL	pop_gset5
    018E 9508      RET
_glcdRectangle:
  t                    --> R14
  t                    --> R14
  y2                   --> R12
  x2                   --> R10
  y1                   --> R22
  x1                   --> R20
    018F DB27      RCALL	push_gset5
    0190 2F62      MOV	R22,R18
    0191 2F40      MOV	R20,R16
    0192 9723      SBIW	R28,3
    0193 84AD      LDD	R10,Y+13
    0194 84CF      LDD	R12,Y+15
(0085) 
(0086) void glcdRectangle(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2) {
(0087) 
(0088)     glcdDoCheckCoord(x1, x2);
    0195 16A4      CP	R10,R20
    0196 F418      BCC	0x019A
    0197 2EE4      MOV	R14,R20
    0198 2D4A      MOV	R20,R10
    0199 2CAE      MOV	R10,R14
(0089)     glcdDoCheckCoord(y1, y2);
    019A 16C6      CP	R12,R22
    019B F418      BCC	0x019F
    019C 2EE6      MOV	R14,R22
    019D 2D6C      MOV	R22,R12
    019E 2CCE      MOV	R12,R14
(0090)     if (cfg&0x8000) {
    019F 9020006B  LDS	R2,_cfg
    01A1 9030006C  LDS	R3,_cfg+1
    01A3 FE37      SBRS	R3,7
    01A4 C016      RJMP	0x01BB
(0091)     	RGBToChar(cfg);
    01A5 0181      MOVW	R16,R2
    01A6 DA14      RCALL	_RGBToChar
(0092)       glcdDoFillRect(x1, y1, x2, y1);
    01A7 836A      STD	Y+2,R22
    01A8 82A8      STD	Y+0,R10
    01A9 2F26      MOV	R18,R22
    01AA 2F04      MOV	R16,R20
    01AB DF3A      RCALL	_glcdDoFillRect
(0093)       glcdDoFillRect(x2, y1, x2, y2);
    01AC 82CA      STD	Y+2,R12
    01AD 82A8      STD	Y+0,R10
    01AE 2F26      MOV	R18,R22
    01AF 2D0A      MOV	R16,R10
    01B0 DF35      RCALL	_glcdDoFillRect
(0094)       glcdDoFillRect(x1, y2, x2, y2);
    01B1 82CA      STD	Y+2,R12
    01B2 82A8      STD	Y+0,R10
    01B3 2D2C      MOV	R18,R12
    01B4 2F04      MOV	R16,R20
    01B5 DF30      RCALL	_glcdDoFillRect
(0095)       glcdDoFillRect(x1, y1, x1, y2);
    01B6 82CA      STD	Y+2,R12
    01B7 8348      STD	Y+0,R20
    01B8 2F26      MOV	R18,R22
    01B9 2F04      MOV	R16,R20
    01BA DF2B      RCALL	_glcdDoFillRect
(0096)     }
(0097)     if (cbk&0x8000) {
    01BB 9020006D  LDS	R2,_cbk
    01BD 9030006E  LDS	R3,_cbk+1
    01BF FE37      SBRS	R3,7
    01C0 C015      RJMP	0x01D6
(0098)     	RGBToChar(cbk);
    01C1 0181      MOVW	R16,R2
    01C2 D9F8      RCALL	_RGBToChar
(0099)       glcdDoFillRect(++x1, ++y1, --x2, --y2);
    01C3 2D8C      MOV	R24,R12
    01C4 5081      SUBI	R24,1
    01C5 2E28      MOV	R2,R24
    01C6 2EC8      MOV	R12,R24
    01C7 822A      STD	Y+2,R2
    01C8 2D8A      MOV	R24,R10
    01C9 5081      SUBI	R24,1
    01CA 2E28      MOV	R2,R24
    01CB 2EA8      MOV	R10,R24
    01CC 8228      STD	Y+0,R2
    01CD 2F86      MOV	R24,R22
    01CE 5F8F      SUBI	R24,0xFF
    01CF 2F68      MOV	R22,R24
    01D0 2F28      MOV	R18,R24
    01D1 2F84      MOV	R24,R20
    01D2 5F8F      SUBI	R24,0xFF
    01D3 2F48      MOV	R20,R24
    01D4 2F08      MOV	R16,R24
    01D5 DF10      RCALL	_glcdDoFillRect
(0100)     }
(0101) }
    01D6 9623      ADIW	R28,3
    01D7 DABD      RCALL	pop_gset5
    01D8 9508      RET
_glcdFrame:
  t                    --> R14
  t                    --> R14
  y2                   --> R12
  x2                   --> R10
  y1                   --> R22
  x1                   --> R20
    01D9 DADD      RCALL	push_gset5
    01DA 2F62      MOV	R22,R18
    01DB 2F40      MOV	R20,R16
    01DC 9723      SBIW	R28,3
    01DD 84AD      LDD	R10,Y+13
    01DE 84CF      LDD	R12,Y+15
(0102) 
(0103) void glcdFrame(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2) {
(0104) 
(0105)     glcdDoCheckCoord(x1, x2);
    01DF 16A4      CP	R10,R20
    01E0 F418      BCC	0x01E4
    01E1 2EE4      MOV	R14,R20
    01E2 2D4A      MOV	R20,R10
    01E3 2CAE      MOV	R10,R14
(0106)     glcdDoCheckCoord(y1, y2);
    01E4 16C6      CP	R12,R22
    01E5 F418      BCC	0x01E9
    01E6 2EE6      MOV	R14,R22
    01E7 2D6C      MOV	R22,R12
    01E8 2CCE      MOV	R12,R14
(0107) 
(0108)     if (csh&0x8000) {
    01E9 90200067  LDS	R2,_csh
    01EB 90300068  LDS	R3,_csh+1
    01ED FE37      SBRS	R3,7
    01EE C01B      RJMP	0x020A
(0109)     	RGBToChar(csh);
    01EF 0181      MOVW	R16,R2
    01F0 D9CA      RCALL	_RGBToChar
(0110)       glcdDoFillRect(x1 + 4, y2, x2 - 2, y2);
    01F1 82CA      STD	Y+2,R12
    01F2 2D8A      MOV	R24,R10
    01F3 5082      SUBI	R24,2
    01F4 8388      STD	Y+0,R24
    01F5 2D2C      MOV	R18,R12
    01F6 2F04      MOV	R16,R20
    01F7 5F0C      SUBI	R16,0xFC
    01F8 DEED      RCALL	_glcdDoFillRect
(0111)       glcdDoFillRect(x2, y1 +4, x2, y2 -2);
    01F9 2D8C      MOV	R24,R12
    01FA 5082      SUBI	R24,2
    01FB 838A      STD	Y+2,R24
    01FC 82A8      STD	Y+0,R10
    01FD 2F26      MOV	R18,R22
    01FE 5F2C      SUBI	R18,0xFC
    01FF 2D0A      MOV	R16,R10
    0200 DEE5      RCALL	_glcdDoFillRect
(0112)       x2--;
    0201 94AA      DEC	R10
(0113)       y2--;
    0202 94CA      DEC	R12
(0114)       glcdDoFillRect(x2 -2, y2 -2, x2, y2);
    0203 82CA      STD	Y+2,R12
    0204 82A8      STD	Y+0,R10
    0205 2D2C      MOV	R18,R12
    0206 5022      SUBI	R18,2
    0207 2D0A      MOV	R16,R10
    0208 5002      SUBI	R16,2
    0209 DEDC      RCALL	_glcdDoFillRect
(0115)     }
(0116)     if (cfr&0x8000) {
    020A 90200069  LDS	R2,_cfr
    020C 9030006A  LDS	R3,_cfr+1
    020E FE37      SBRS	R3,7
    020F C032      RJMP	0x0242
(0117)     	RGBToChar(cfr);
    0210 0181      MOVW	R16,R2
    0211 D9A9      RCALL	_RGBToChar
(0118)       glcdDoFillRect(x1 +2, y1, x2 -2, y1);
    0212 836A      STD	Y+2,R22
    0213 2D8A      MOV	R24,R10
    0214 5082      SUBI	R24,2
    0215 8388      STD	Y+0,R24
    0216 2F26      MOV	R18,R22
    0217 2F04      MOV	R16,R20
    0218 5F0E      SUBI	R16,0xFE
    0219 DECC      RCALL	_glcdDoFillRect
(0119)       glcdDoFillRect(x1 +2, y2, x2 -2, y2);
    021A 82CA      STD	Y+2,R12
    021B 2D8A      MOV	R24,R10
    021C 5082      SUBI	R24,2
    021D 8388      STD	Y+0,R24
    021E 2D2C      MOV	R18,R12
    021F 2F04      MOV	R16,R20
    0220 5F0E      SUBI	R16,0xFE
    0221 DEC4      RCALL	_glcdDoFillRect
(0120)       glcdDoFillRect(x2, y1 +2, x2, y2 -2);
    0222 2D8C      MOV	R24,R12
    0223 5082      SUBI	R24,2
    0224 838A      STD	Y+2,R24
    0225 82A8      STD	Y+0,R10
    0226 2F26      MOV	R18,R22
    0227 5F2E      SUBI	R18,0xFE
    0228 2D0A      MOV	R16,R10
    0229 DEBC      RCALL	_glcdDoFillRect
(0121)       glcdDoFillRect(x1, y1 +2, x1, y2 -2);
    022A 2D8C      MOV	R24,R12
    022B 5082      SUBI	R24,2
    022C 838A      STD	Y+2,R24
    022D 8348      STD	Y+0,R20
    022E 2F26      MOV	R18,R22
    022F 5F2E      SUBI	R18,0xFE
    0230 2F04      MOV	R16,R20
    0231 DEB4      RCALL	_glcdDoFillRect
(0122)       x1++;
    0232 9543      INC	R20
(0123)       y1++;
    0233 9563      INC	R22
(0124)       x2--;
    0234 94AA      DEC	R10
(0125)       y2--;
    0235 94CA      DEC	R12
(0126)       glcdSetPixel(x1, y1);
    0236 2F26      MOV	R18,R22
    0237 2F04      MOV	R16,R20
    0238 DE6E      RCALL	_glcdSetPixel
(0127)       glcdSetPixel(x2, y1);
    0239 2F26      MOV	R18,R22
    023A 2D0A      MOV	R16,R10
    023B DE6B      RCALL	_glcdSetPixel
(0128)       glcdSetPixel(x1, y2);
    023C 2D2C      MOV	R18,R12
    023D 2F04      MOV	R16,R20
    023E DE68      RCALL	_glcdSetPixel
(0129)       glcdSetPixel(x2, y2);
    023F 2D2C      MOV	R18,R12
    0240 2D0A      MOV	R16,R10
    0241 DE65      RCALL	_glcdSetPixel
(0130)     }
(0131)     if (cbk&0x8000) {
    0242 9020006D  LDS	R2,_cbk
    0244 9030006E  LDS	R3,_cbk+1
    0246 FE37      SBRS	R3,7
    0247 C01A      RJMP	0x0262
(0132)     	RGBToChar(cbk);
    0248 0181      MOVW	R16,R2
    0249 D971      RCALL	_RGBToChar
(0133)       glcdDoFillRect(x1, y1 +1, x1, y2 -1);
    024A 2D8C      MOV	R24,R12
    024B 5081      SUBI	R24,1
    024C 838A      STD	Y+2,R24
    024D 8348      STD	Y+0,R20
    024E 2F26      MOV	R18,R22
    024F 5F2F      SUBI	R18,0xFF
    0250 2F04      MOV	R16,R20
    0251 DE94      RCALL	_glcdDoFillRect
(0134)       glcdDoFillRect(x2, y1 +1, x2, y2 -1);
    0252 2D8C      MOV	R24,R12
    0253 5081      SUBI	R24,1
    0254 838A      STD	Y+2,R24
    0255 82A8      STD	Y+0,R10
    0256 2F26      MOV	R18,R22
    0257 5F2F      SUBI	R18,0xFF
    0258 2D0A      MOV	R16,R10
    0259 DE8C      RCALL	_glcdDoFillRect
(0135)       glcdDoFillRect(x1 +1, y1, x2 -1, y2);
    025A 82CA      STD	Y+2,R12
    025B 2D8A      MOV	R24,R10
    025C 5081      SUBI	R24,1
    025D 8388      STD	Y+0,R24
    025E 2F26      MOV	R18,R22
    025F 2F04      MOV	R16,R20
    0260 5F0F      SUBI	R16,0xFF
    0261 DE84      RCALL	_glcdDoFillRect
(0136)     }
(0137) }
    0262 9623      ADIW	R28,3
    0263 DA31      RCALL	pop_gset5
    0264 9508      RET
_glcdLine:
  t                    --> R14
  t                    --> R14
  t                    --> R14
  t                    --> R20
  t                    --> R22
  t                    --> Y+15
  t                    --> Y+14
  t                    --> Y+13
  t                    --> R20
  t                    --> R20
  t                    --> R20
  swap                 --> Y+12
  sx                   --> Y+11
  i                    --> Y+10
  dy                   --> Y+9
  y3                   --> Y+8
  x3                   --> Y+7
  sy                   --> Y+6
  dx                   --> Y+5
  e                    --> Y+3
  y2                   --> R8
  x2                   --> R6
  y1                   --> Y+28
  x1                   --> Y+26
    0265 D9E2      RCALL	push_arg4
    0266 DA50      RCALL	push_gset5
    0267 9760      SBIW	R28,0x10
    0268 8C6E      LDD	R6,Y+30
    0269 A088      LDD	R8,Y+32
(0138) 
(0139) void glcdLine(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2) {
(0140)         unsigned char swap,i;
(0141)                 unsigned char dx, dy, sx, sy;
(0142)                         int  e;
(0143)         unsigned char x3;
(0144)         unsigned char y3;
(0145)     if (cfg&0x8000) {
    026A 9020006B  LDS	R2,_cfg
    026C 9030006C  LDS	R3,_cfg+1
    026E FE37      SBRS	R3,7
    026F C106      RJMP	0x0376
(0146)     	RGBToChar(cfg);
    0270 0181      MOVW	R16,R2
    0271 926F      PUSH	R6
    0272 928F      PUSH	R8
    0273 D947      RCALL	_RGBToChar
    0274 908F      POP	R8
    0275 906F      POP	R6
(0147)       if ((x1 == x2) | (y1 == y2)) {
    0276 8C0A      LDD	R0,Y+26
    0277 1406      CP	R0,R6
    0278 F419      BNE	0x027C
    0279 E061      LDI	R22,1
    027A E070      LDI	R23,0
    027B C002      RJMP	0x027E
    027C 2766      CLR	R22
    027D 2777      CLR	R23
    027E 8C0C      LDD	R0,Y+28
    027F 1408      CP	R0,R8
    0280 F419      BNE	0x0284
    0281 E041      LDI	R20,1
    0282 E050      LDI	R21,0
    0283 C002      RJMP	0x0286
    0284 2744      CLR	R20
    0285 2755      CLR	R21
    0286 011B      MOVW	R2,R22
    0287 2A24      OR	R2,R20
    0288 2A35      OR	R3,R21
    0289 2022      TST	R2
    028A F411      BNE	0x028D
    028B 2033      TST	R3
    028C F051      BEQ	0x0297
(0148)         glcdFillRect(x1, y1, x2, y2);
    028D 828A      STD	Y+2,R8
    028E 8268      STD	Y+0,R6
    028F 8D2C      LDD	R18,Y+28
    0290 8D0A      LDD	R16,Y+26
    0291 926F      PUSH	R6
    0292 928F      PUSH	R8
    0293 DEE3      RCALL	_glcdFillRect
    0294 908F      POP	R8
    0295 906F      POP	R6
(0149)       } else {
    0296 C0DF      RJMP	0x0376
(0150) 
(0151) 
(0152) 

⌨️ 快捷键说明

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