?? lcd.lis
字號(hào):
0216 E883 std y+0,R30
0218 242F mov R18,R20
021A 062F mov R16,R22
021C 9DDF xcall _LCD_Write_Data
021E .dbline 358
021E L46:
021E .dbline 353
021E A394 inc R10
0220 L48:
0220 .dbline 353
0220 8A2D mov R24,R10
0222 8830 cpi R24,8
0224 58F3 brlo L45
0226 .dbline 359
0226 ; {
0226 ; x_address = x << 1;
0226 ; y_address = (y << 3) + i;
0226 ; LCD_Write_Data(x_address,y_address,*disp++);
0226 ; }
0226 ; for(i = 0;i < 8;i++)
0226 AA24 clr R10
0228 13C0 xjmp L52
022A L49:
022A .dbline 360
022A .dbline 361
022A 6B85 ldd R22,y+11
022C 660F lsl R22
022E 6F5F subi R22,255 ; addi 1
0230 .dbline 362
0230 4E2D mov R20,R14
0232 440F lsl R20
0234 440F lsl R20
0236 440F lsl R20
0238 4A0D add R20,R10
023A .dbline 363
023A 1601 movw R2,R12
023C C101 movw R24,R2
023E 0196 adiw R24,1
0240 6C01 movw R12,R24
0242 F101 movw R30,R2
0244 E491 lpm R30,Z
0246 E883 std y+0,R30
0248 242F mov R18,R20
024A 062F mov R16,R22
024C 85DF xcall _LCD_Write_Data
024E .dbline 364
024E L50:
024E .dbline 359
024E A394 inc R10
0250 L52:
0250 .dbline 359
0250 8A2D mov R24,R10
0252 8830 cpi R24,8
0254 50F3 brlo L49
0256 .dbline 365
0256 L43:
0256 .dbline -2
0256 .dbline 366
0256 ; {
0256 ; x_address = (x << 1) + 1;
0256 ; y_address = (y << 3) + i;
0256 ; LCD_Write_Data(x_address,y_address,*disp++);
0256 ; }
0256 ; }
0256 ; }
0256 L42:
0256 2196 adiw R28,1
0258 0E940000 xcall pop_gset5
025C 2496 adiw R28,4
025E .dbline 0 ; func end
025E 0895 ret
0260 .dbsym r y_address 20 c
0260 .dbsym r x_address 22 c
0260 .dbsym r i 10 c
0260 .dbsym r disp 12 pkc
0260 .dbsym r y 14 c
0260 .dbsym l x 11 c
0260 .dbend
0260 .dbfunc e LCD_Write_Word _LCD_Write_Word fV
0260 ; y_address -> R20
0260 ; x_address -> R22
0260 ; i -> R10
0260 ; disp -> R12,R13
0260 ; y -> R14
0260 ; x -> y+11
.even
0260 _LCD_Write_Word::
0260 0E940000 xcall push_arg4
0264 0E940000 xcall push_gset5
0268 E22E mov R14,R18
026A 2197 sbiw R28,1
026C CF84 ldd R12,y+15
026E D888 ldd R13,y+16
0270 .dbline -1
0270 .dbline 377
0270 ;
0270 ; //******************************************************************************
0270 ; // Function : LCD_Write_Word
0270 ; // Input : x in [0,3] and y in [0,14],disp - start address of display buffer
0270 ; // Output : none
0270 ; // Description : Application Level Function,在LCD的指定顯示單元顯示一個(gè)中文。
0270 ; // 每個(gè)顯示單元默認(rèn)為16*16點(diǎn)陣字體,對(duì)128*64點(diǎn)陣LCD,x最多顯示4行
0270 ; // 字符,y最多顯示16個(gè)字符,但不允許顯示半個(gè)漢字
0270 ; //******************************************************************************
0270 ; void LCD_Write_Word(INT8U x,INT8U y,const INT8U *disp)
0270 ; {
0270 .dbline 381
0270 ; INT8U i;
0270 ; INT8U x_address;
0270 ; INT8U y_address;
0270 ; if((x < 4) && (y < 15))
0270 8B85 ldd R24,y+11
0272 8430 cpi R24,4
0274 08F0 brlo X2
0276 33C0 xjmp L54
0278 X2:
0278 8E2D mov R24,R14
027A 8F30 cpi R24,15
027C 08F0 brlo X3
027E 2FC0 xjmp L54
0280 X3:
0280 .dbline 382
0280 ; {
0280 .dbline 383
0280 ; for(i = 0;i < 16;i++)
0280 AA24 clr R10
0282 12C0 xjmp L59
0284 L56:
0284 .dbline 384
0284 .dbline 385
0284 6B85 ldd R22,y+11
0286 660F lsl R22
0288 .dbline 386
0288 4E2D mov R20,R14
028A 440F lsl R20
028C 440F lsl R20
028E 440F lsl R20
0290 4A0D add R20,R10
0292 .dbline 387
0292 1601 movw R2,R12
0294 C101 movw R24,R2
0296 0196 adiw R24,1
0298 6C01 movw R12,R24
029A F101 movw R30,R2
029C E491 lpm R30,Z
029E E883 std y+0,R30
02A0 242F mov R18,R20
02A2 062F mov R16,R22
02A4 59DF xcall _LCD_Write_Data
02A6 .dbline 388
02A6 L57:
02A6 .dbline 383
02A6 A394 inc R10
02A8 L59:
02A8 .dbline 383
02A8 8A2D mov R24,R10
02AA 8031 cpi R24,16
02AC 58F3 brlo L56
02AE .dbline 389
02AE ; {
02AE ; x_address = x << 1;
02AE ; y_address = (y << 3) + i;
02AE ; LCD_Write_Data(x_address,y_address,*disp++);
02AE ; }
02AE ; for(i = 0;i < 16;i++)
02AE AA24 clr R10
02B0 13C0 xjmp L63
02B2 L60:
02B2 .dbline 390
02B2 .dbline 391
02B2 6B85 ldd R22,y+11
02B4 660F lsl R22
02B6 6F5F subi R22,255 ; addi 1
02B8 .dbline 392
02B8 4E2D mov R20,R14
02BA 440F lsl R20
02BC 440F lsl R20
02BE 440F lsl R20
02C0 4A0D add R20,R10
02C2 .dbline 393
02C2 1601 movw R2,R12
02C4 C101 movw R24,R2
02C6 0196 adiw R24,1
02C8 6C01 movw R12,R24
02CA F101 movw R30,R2
02CC E491 lpm R30,Z
02CE E883 std y+0,R30
02D0 242F mov R18,R20
02D2 062F mov R16,R22
02D4 41DF xcall _LCD_Write_Data
02D6 .dbline 394
02D6 L61:
02D6 .dbline 389
02D6 A394 inc R10
02D8 L63:
02D8 .dbline 389
02D8 8A2D mov R24,R10
02DA 8031 cpi R24,16
02DC 50F3 brlo L60
02DE .dbline 395
02DE L54:
02DE .dbline -2
02DE .dbline 396
02DE ; {
02DE ; x_address = (x << 1) + 1;
02DE ; y_address = (y << 3) + i;
02DE ; LCD_Write_Data(x_address,y_address,*disp++);
02DE ; }
02DE ; }
02DE ; }
02DE L53:
02DE 2196 adiw R28,1
02E0 0E940000 xcall pop_gset5
02E4 2496 adiw R28,4
02E6 .dbline 0 ; func end
02E6 0895 ret
02E8 .dbsym r y_address 20 c
02E8 .dbsym r x_address 22 c
02E8 .dbsym r i 10 c
02E8 .dbsym r disp 12 pkc
02E8 .dbsym r y 14 c
02E8 .dbsym l x 11 c
02E8 .dbend
02E8 .dbfunc e LCD_Write_Picture _LCD_Write_Picture fV
02E8 ; x_address -> R20
02E8 ; y_address -> R14
02E8 ; pdata -> R22,R23
02E8 ; y_length -> R10
02E8 ; x_length -> R12
02E8 ; y1 -> y+13
02E8 ; x1 -> y+11
.even
02E8 _LCD_Write_Picture::
02E8 0E940000 xcall push_arg4
02EC 0E940000 xcall push_gset5
02F0 2197 sbiw R28,1
02F2 CF84 ldd R12,y+15
02F4 A988 ldd R10,y+17
02F6 6B89 ldd R22,y+19
02F8 7C89 ldd R23,y+20
02FA .dbline -1
02FA .dbline 407
02FA ;
02FA ; //******************************************************************************
02FA ; // Function : LCD_Write_Picture
02FA ; // Input : x in [0,7] and y in [0,127],
02FA ; // x1_length - 縱向象素 y1_length - 橫向象素,x1_length必須為8的
02FA ; // 整數(shù)倍,y1_length可以不必為8的整數(shù)倍。
02FA ; // Output : none
02FA ; // Description : Application Level Function,在LCD的指定區(qū)域顯示圖片
02FA ; //******************************************************************************
02FA ; void LCD_Write_Picture(INT8U x1,INT8U y1,INT8U x_length,INT8U y_length,const INT8U *pdata)
02FA ; {
02FA .dbline 410
02FA ; INT8U x_address;
02FA ; INT8U y_address;
02FA ; for(x_address = x1;x_address <= x1 + (x_length >> 3) - 1;x_address++)
02FA 4B85 ldd R20,y+11
02FC 11C0 xjmp L68
02FE L65:
02FE .dbline 411
02FE ; {
02FE .dbline 412
02FE ; for(y_address = y1;y_address < y1 + y_length;y_address++)
02FE ED84 ldd R14,y+13
0300 0AC0 xjmp L72
0302 L69:
0302 .dbline 413
0302 .dbline 414
0302 1B01 movw R2,R22
0304 6F5F subi R22,255 ; offset = 1
0306 7F4F sbci R23,255
0308 F101 movw R30,R2
030A E491 lpm R30,Z
030C E883 std y+0,R30
030E 2E2D mov R18,R14
0310 042F mov R16,R20
0312 22DF xcall _LCD_Write_Data
0314 .dbline 415
0314 L70:
0314 .dbline 412
0314 E394 inc R14
0316 L72:
0316 .dbline 412
0316 2D84 ldd R2,y+13
0318 2A0C add R2,R10
031A E214 cp R14,R2
031C 90F3 brlo L69
031E .dbline 416
031E L66:
031E .dbline 410
031E 4395 inc R20
0320 L68:
0320 .dbline 410
0320 2C2C mov R2,R12
0322 2694 lsr R2
0324 2694 lsr R2
0326 2694 lsr R2
0328 8B85 ldd R24,y+11
032A 820D add R24,R2
032C 8150 subi R24,1
032E 8417 cp R24,R20
0330 30F7 brsh L65
0332 .dbline -2
0332 .dbline 417
0332 ; {
0332 ; LCD_Write_Data(x_address,y_address,*pdata++);
0332 ; }
0332 ; }
0332 ; }
0332 L64:
0332 2196 adiw R28,1
0334 0E940000 xcall pop_gset5
0338 2496 adiw R28,4
033A .dbline 0 ; func end
033A 0895 ret
033C .dbsym r x_address 20 c
033C .dbsym r y_address 14 c
033C .dbsym r pdata 22 pkc
033C .dbsym r y_length 10 c
033C .dbsym r x_length 12 c
033C .dbsym l y1 13 c
033C .dbsym l x1 11 c
033C .dbend
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -