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

📄 lcd12864.lis

📁 atmega128 adc LCD
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0342 0FE3              ldi R16,63
 0344 77DE              xcall _LCD0_write_com
 0346                   .dbline 308
 0346           ;       LCD1_write_com(0x3F);
 0346 0FE3              ldi R16,63
 0348 85DE              xcall _LCD1_write_com
 034A                   .dbline -2
 034A           L99:
 034A                   .dbline 0 ; func end
 034A 0895              ret
 034C                   .dbend
 034C                   .dbfunc e disp_myself _disp_myself fV
 034C           ;              q -> R20,R21
 034C           ;              i -> R22
 034C           ;          ascii -> y+8
 034C           ;              y -> R12
 034C           ;              x -> R10
                        .even
 034C           _disp_myself::
 034C 0E940000          xcall push_gset4
 0350 C22E              mov R12,R18
 0352 A02E              mov R10,R16
 0354                   .dbline -1
 0354                   .dbline 312
 0354           ; }
 0354           ; 
 0354           ; /*在指定位置显示一个8*8的 字符*/
 0354           ; void disp_myself(unsigned char x, unsigned char y, unsigned char ascii) {
 0354                   .dbline 314
 0354           ; 
 0354           ;       unsigned char i = 0x00;
 0354 6627              clr R22
 0356                   .dbline 318
 0356           ;       const unsigned char *q;                         /*取字库指针*/
 0356           ;       
 0356           ;       
 0356           ;       ascii -= 0x20;
 0356 8885              ldd R24,y+8
 0358 8052              subi R24,32
 035A 8887              std y+8,R24
 035C                   .dbline 319
 035C           ;       q = &ENGLISH_FONT[ascii *16];           /*定位指针地址*/
 035C 80E1              ldi R24,16
 035E 0884              ldd R0,y+8
 0360 809D              mul R24,R0
 0362 A001              movw R20,R0
 0364 80E0              ldi R24,<_ENGLISH_FONT
 0366 90E0              ldi R25,>_ENGLISH_FONT
 0368 480F              add R20,R24
 036A 591F              adc R21,R25
 036C                   .dbline 322
 036C           ; 
 036C           ;       /*显示高8位*/   
 036C           ;       i = 0x00;
 036C                   .dbline 323
 036C           ;       if (x < 64) {                                           /*地址在左半屏范围内*/
 036C 8A2D              mov R24,R10
 036E 8034              cpi R24,64
 0370 A0F4              brsh L101
 0372                   .dbline 323
 0372                   .dbline 324
 0372           ;               LCD0_write_com(y | 0xB8);
 0372 0C2D              mov R16,R12
 0374 086B              ori R16,184
 0376 5EDE              xcall _LCD0_write_com
 0378                   .dbline 325
 0378           ;               LCD0_write_com(x | 0x40);
 0378 0A2D              mov R16,R10
 037A 0064              ori R16,64
 037C 5BDE              xcall _LCD0_write_com
 037E 0BC0              xjmp L104
 0380           L103:
 0380                   .dbline 326
 0380           ;               while (i < 8) {
 0380                   .dbline 327
 0380           ;                       LCD0_write_data(*q);
 0380 FA01              movw R30,R20
 0382 0491              lpm R16,Z
 0384 77DE              xcall _LCD0_write_data
 0386                   .dbline 328
 0386           ;                       q ++;
 0386 4F5F              subi R20,255  ; offset = 1
 0388 5F4F              sbci R21,255
 038A                   .dbline 329
 038A           ;                       x ++;
 038A A394              inc R10
 038C                   .dbline 330
 038C           ;                       i ++;
 038C 6395              inc R22
 038E                   .dbline 331
 038E           ;                       if (x > 63) {                           /*判断地址是否越界*/
 038E 8FE3              ldi R24,63
 0390 8A15              cp R24,R10
 0392 08F4              brsh L106
 0394                   .dbline 331
 0394                   .dbline 332
 0394           ;                               break;
 0394 02C0              xjmp L105
 0396           L106:
 0396                   .dbline 334
 0396           L104:
 0396                   .dbline 326
 0396 6830              cpi R22,8
 0398 98F3              brlo L103
 039A           L105:
 039A                   .dbline 335
 039A           ;                               }
 039A           ;                       }
 039A           ;               }
 039A           L101:
 039A                   .dbline 336
 039A           ;       if (i < 8) {                                            /*地址进入左半屏范围*/
 039A 6830              cpi R22,8
 039C 80F4              brsh L108
 039E                   .dbline 336
 039E                   .dbline 337
 039E           ;               LCD1_write_com(y | 0xB8);
 039E 0C2D              mov R16,R12
 03A0 086B              ori R16,184
 03A2 58DE              xcall _LCD1_write_com
 03A4                   .dbline 338
 03A4           ;               LCD1_write_com(x | 0x40);
 03A4 0A2D              mov R16,R10
 03A6 0064              ori R16,64
 03A8 55DE              xcall _LCD1_write_com
 03AA 07C0              xjmp L111
 03AC           L110:
 03AC                   .dbline 339
 03AC                   .dbline 340
 03AC FA01              movw R30,R20
 03AE 0491              lpm R16,Z
 03B0 71DE              xcall _LCD1_write_data
 03B2                   .dbline 341
 03B2 4F5F              subi R20,255  ; offset = 1
 03B4 5F4F              sbci R21,255
 03B6                   .dbline 342
 03B6 A394              inc R10
 03B8                   .dbline 343
 03B8 6395              inc R22
 03BA                   .dbline 344
 03BA           L111:
 03BA                   .dbline 339
 03BA 6830              cpi R22,8
 03BC B8F3              brlo L110
 03BE                   .dbline 345
 03BE           L108:
 03BE                   .dbline -2
 03BE           L100:
 03BE 0E940000          xcall pop_gset4
 03C2                   .dbline 0 ; func end
 03C2 0895              ret
 03C4                   .dbsym r q 20 pkc
 03C4                   .dbsym r i 22 c
 03C4                   .dbsym l ascii 8 c
 03C4                   .dbsym r y 12 c
 03C4                   .dbsym r x 10 c
 03C4                   .dbend
 03C4                   .dbfunc e disp_to_bcd _disp_to_bcd fV
 03C4           ;              f -> R14,R15
 03C4           ;              e -> R12,R13
 03C4           ;              b -> R10,R11
 03C4           ;              c -> R22,R23
 03C4           ;              a -> R20,R21
 03C4           ;              d -> R10,R11
 03C4           ;              x -> R22,R23
                        .even
 03C4           _disp_to_bcd::
 03C4 0E940000          xcall push_gset5
 03C8 B801              movw R22,R16
 03CA 2297              sbiw R28,2
 03CC                   .dbline -1
 03CC                   .dbline 349
 03CC           ;               while (i < 8) {
 03CC           ;                       LCD1_write_data(*q);
 03CC           ;                       q ++;
 03CC           ;                       x ++;
 03CC           ;                       i ++;
 03CC           ;                       }
 03CC           ;               }
 03CC           ;               }
 03CC           ;       
 03CC           ; 
 03CC           ; void disp_to_bcd(int x){
 03CC                   .dbline 350
 03CC           ;      unsigned int a=x%10,b=x/10,c=b%10,d=b/10,e=d%10,f=d/10;
 03CC 2AE0              ldi R18,10
 03CE 30E0              ldi R19,0
 03D0 8B01              movw R16,R22
 03D2 0E940000          xcall mod16s
 03D6 A801              movw R20,R16
 03D8                   .dbline 350
 03D8 2AE0              ldi R18,10
 03DA 30E0              ldi R19,0
 03DC 8B01              movw R16,R22
 03DE 0E940000          xcall div16s
 03E2 5801              movw R10,R16
 03E4                   .dbline 350
 03E4 2AE0              ldi R18,10
 03E6 30E0              ldi R19,0
 03E8 0E940000          xcall mod16u
 03EC B801              movw R22,R16
 03EE                   .dbline 350
 03EE 2AE0              ldi R18,10
 03F0 30E0              ldi R19,0
 03F2 8501              movw R16,R10
 03F4 0E940000          xcall div16u
 03F8 5801              movw R10,R16
 03FA                   .dbline 350
 03FA 2AE0              ldi R18,10
 03FC 30E0              ldi R19,0
 03FE 0E940000          xcall mod16u
 0402 6801              movw R12,R16
 0404                   .dbline 350
 0404 2AE0              ldi R18,10
 0406 30E0              ldi R19,0
 0408 8501              movw R16,R10
 040A 0E940000          xcall div16u
 040E 7801              movw R14,R16
 0410                   .dbline 351
 0410           ;        a+=48,c+=48,e+=48,f+=48;
 0410 405D              subi R20,208  ; offset = 48
 0412 5F4F              sbci R21,255
 0414 605D              subi R22,208  ; offset = 48
 0416 7F4F              sbci R23,255
 0418 C601              movw R24,R12
 041A C096              adiw R24,48
 041C 6C01              movw R12,R24
 041E C701              movw R24,R14
 0420 C096              adiw R24,48
 0422 7C01              movw R14,R24
 0424                   .dbline 352
 0424           ;        disp_char(40, 2, f);
 0424 E882              std y+0,R14
 0426 22E0              ldi R18,2
 0428 08E2              ldi R16,40
 042A 90DE              xcall _disp_char
 042C                   .dbline 353
 042C           ;        disp_char(48, 2, e);
 042C C882              std y+0,R12
 042E 22E0              ldi R18,2
 0430 00E3              ldi R16,48
 0432 8CDE              xcall _disp_char
 0434                   .dbline 354
 0434           ;        disp_char_str(56, 2, ".");
 0434 80E0              ldi R24,<L114
 0436 90E0              ldi R25,>L114
 0438 9983              std y+1,R25
 043A 8883              std y+0,R24
 043C 22E0              ldi R18,2
 043E 08E3              ldi R16,56
 0440 5ADF              xcall _disp_char_str
 0442                   .dbline 355
 0442           ;        disp_char(64, 2, c);
 0442 6883              std y+0,R22
 0444 22E0              ldi R18,2
 0446 00E4              ldi R16,64
 0448 81DE              xcall _disp_char
 044A                   .dbline 356
 044A           ;        disp_char(72, 2, a);
 044A 4883              std y+0,R20
 044C 22E0              ldi R18,2
 044E 08E4              ldi R16,72
 0450 7DDE              xcall _disp_char
 0452                   .dbline 357
 0452           ;        disp_char_str(80, 2, "V");
 0452 80E0              ldi R24,<L115
 0454 90E0              ldi R25,>L115
 0456 9983              std y+1,R25
 0458 8883              std y+0,R24
 045A 22E0              ldi R18,2
 045C 00E5              ldi R16,80
 045E 4BDF              xcall _disp_char_str
 0460                   .dbline 358
 0460 C501              movw R24,R10
 0462 8B30              cpi R24,11
 0464 E0E0              ldi R30,0
 0466 9E07              cpc R25,R30
 0468 50F0              brlo L118
 046A 8B30              cpi R24,11
 046C E0E0              ldi R30,0
 046E 9E07              cpc R25,R30
 0470 D9F4              brne L116
 0472 6030              cpi R22,0
 0474 6707              cpc R22,R23
 0476 C1F4              brne L116
 0478           X2:
 0478 4030              cpi R20,0
 047A 4507              cpc R20,R21
 047C A9F4              brne L116
 047E           X3:
 047E           L118:
 047E                   .dbline 358
 047E           ;        if(d<11||d==11&&c==0&&a==0){
 047E                   .dbline 359
 047E           ;      disp_word(32, 4, CB5E7);                                 /*写入“电压偏低”四个汉字*/
 047E 86E0              ldi R24,6
 0480 8883              std y+0,R24
 0482 24E0              ldi R18,4
 0484 00E2              ldi R16,32
 0486 CEDE              xcall _disp_word
 0488                   .dbline 360
 0488           ;        disp_word(48, 4, CD1B9);
 0488 87E0              ldi R24,7
 048A 8883              std y+0,R24
 048C 24E0              ldi R18,4
 048E 00E3              ldi R16,48
 0490 C9DE              xcall _disp_word
 0492                   .dbline 361
 0492           ;        disp_word(64, 4, CC6AB);
 0492 8AE0              ldi R24,10
 0494 8883              std y+0,R24
 0496 24E0              ldi R18,4
 0498 00E4              ldi R16,64
 049A C4DE              xcall _disp_word
 049C                   .dbline 362
 049C           ;        disp_word(80, 4, CB5CD);}
 049C 8BE0              ldi R24,11
 049E 8883              std y+0,R24
 04A0 24E0              ldi R18,4
 04A2 00E5              ldi R16,80
 04A4 BFDE              xcall _disp_word
 04A6                   .dbline 362
 04A6 14C0              xjmp L117
 04A8           L116:
 04A8                   .dbline 363
 04A8                   .dbline 364
 04A8 86E0              ldi R24,6
 04AA 8883              std y+0,R24
 04AC 24E0              ldi R18,4
 04AE 00E2              ldi R16,32
 04B0 B9DE              xcall _disp_word
 04B2                   .dbline 365
 04B2 87E0              ldi R24,7
 04B4 8883              std y+0,R24
 04B6 24E0              ldi R18,4
 04B8 00E3              ldi R16,48
 04BA B4DE              xcall _disp_word
 04BC                   .dbline 366
 04BC 88E0              ldi R24,8
 04BE 8883              std y+0,R24
 04C0 24E0              ldi R18,4
 04C2 00E4              ldi R16,64
 04C4 AFDE              xcall _disp_word
 04C6                   .dbline 367
 04C6 89E0              ldi R24,9
 04C8 8883              std y+0,R24
 04CA 24E0              ldi R18,4
 04CC 00E5              ldi R16,80
 04CE AADE              xcall _disp_word
 04D0                   .dbline 367
 04D0           L117:
 04D0                   .dbline -2
 04D0           L113:
 04D0 2296              adiw R28,2
 04D2 0E940000          xcall pop_gset5
 04D6                   .dbline 0 ; func end
 04D6 0895              ret
 04D8                   .dbsym r f 14 i
 04D8                   .dbsym r e 12 i
 04D8                   .dbsym r b 10 i
 04D8                   .dbsym r c 22 i
 04D8                   .dbsym r a 20 i
 04D8                   .dbsym r d 10 i
 04D8                   .dbsym r x 22 I
 04D8                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\yue01\桌面\LCD12864显示模块\LCD12864显示模块\lcd12864.c
 0000           L115:
 0000                   .blkb 2
                        .area idata
 0000 5600              .byte 'V,0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\DOCUME~1\yue01\桌面\LCD12864显示模块\LCD12864显示模块\lcd12864.c
 0002           L114:
 0002                   .blkb 2
                        .area idata
 0002 2E00              .byte 46,0
                        .area data(ram, con, rel)
 0004                   .dbfile C:\DOCUME~1\yue01\桌面\LCD12864显示模块\LCD12864显示模块\lcd12864.c

⌨️ 快捷键说明

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