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

📄 nokia_5110.lis

📁 好啊,欢迎大家都来下在,很游泳的问张哦.
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0292                   .dbline 212
 0292 21E0              ldi R18,1
 0294 CE01              movw R24,R28
 0296 EA2D              mov R30,R10
 0298 FF27              clr R31
 029A E80F              add R30,R24
 029C F91F              adc R31,R25
 029E 0081              ldd R16,z+0
 02A0 6BD0              rcall _LCD_write_byte
 02A2                   .dbline 213
 02A2           L63:
 02A2                   .dbline 210
 02A2 A394              inc R10
 02A4           L65:
 02A4                   .dbline 210
 02A4 8A2D              mov R24,R10
 02A6 8335              cpi R24,83
 02A8 A0F3              brlo L62
 02AA                   .dbline 215
 02AA           ;           { 
 02AA           ;             LCD_write_byte(buffer_h[n],1);
 02AA           ;           } 
 02AA           ;         
 02AA           ;         LCD_set_XY(X,Y+1); 
 02AA 2E2D              mov R18,R14
 02AC 2F5F              subi R18,255    ; addi 1
 02AE FE01              movw R30,R28
 02B0 EE54              subi R30,78  ; addi 178
 02B2 FF4F              sbci R31,255
 02B4 0081              ldd R16,z+0
 02B6 F9DE              rcall _LCD_set_XY
 02B8                   .dbline 216
 02B8           ;         for (n=0; n<83; n++)
 02B8 AA24              clr R10
 02BA 0BC0              rjmp L69
 02BC           L66:
 02BC                   .dbline 217
 02BC                   .dbline 218
 02BC 21E0              ldi R18,1
 02BE CE01              movw R24,R28
 02C0 8C5A              subi R24,172  ; offset = 84
 02C2 9F4F              sbci R25,255
 02C4 EA2D              mov R30,R10
 02C6 FF27              clr R31
 02C8 E80F              add R30,R24
 02CA F91F              adc R31,R25
 02CC 0081              ldd R16,z+0
 02CE 54D0              rcall _LCD_write_byte
 02D0                   .dbline 219
 02D0           L67:
 02D0                   .dbline 216
 02D0 A394              inc R10
 02D2           L69:
 02D2                   .dbline 216
 02D2 8A2D              mov R24,R10
 02D4 8335              cpi R24,83
 02D6 90F3              brlo L66
 02D8                   .dbline 221
 02D8 0C2D              mov R16,R12
 02DA 1127              clr R17
 02DC A5DE              rcall _delay_nms
 02DE                   .dbline 222
 02DE           L49:
 02DE                   .dbline 196
 02DE 4395              inc R20
 02E0           L51:
 02E0                   .dbline 196
 02E0 4C39              cpi R20,156
 02E2 08F4              brsh X1
 02E4 80CF              rjmp L48
 02E6           X1:
 02E6                   .dbline -2
 02E6                   .dbline 223
 02E6           ;           { 
 02E6           ;             LCD_write_byte(buffer_l[n],1);
 02E6           ;           } 
 02E6           ;           
 02E6           ;        delay_nms(T);
 02E6           ;       }
 02E6           ; }
 02E6           L45:
 02E6 EF96              adiw R28,63
 02E8 EF96              adiw R28,63
 02EA AA96              adiw R28,42  ; offset = 168
 02EC 00D0              rcall pop_gset5
 02EE 2496              adiw R28,4
 02F0                   .dbline 0 ; func end
 02F0 0895              ret
 02F2                   .dbsym r i 20 c
 02F2                   .dbsym r j 22 c
 02F2                   .dbsym l buffer_l 84 A[84:84]c
 02F2                   .dbsym l buffer_h 0 A[84:84]c
 02F2                   .dbsym r n 10 c
 02F2                   .dbsym r T 12 c
 02F2                   .dbsym r Y 14 c
 02F2                   .dbsym l X 178 c
 02F2                   .dbend
 02F2                   .dbfunc e LCD_draw_bmp_pixel _LCD_draw_bmp_pixel fV
 02F2           ;            row -> R20
 02F2           ;              n -> R22,R23
 02F2           ;              i -> R14,R15
 02F2           ;          Pix_y -> y+18
 02F2           ;          Pix_x -> R10
 02F2           ;            map -> R12,R13
 02F2           ;              Y -> y+12
 02F2           ;              X -> y+10
                        .even
 02F2           _LCD_draw_bmp_pixel::
 02F2 00D0              rcall push_arg4
 02F4 00D0              rcall push_gset5
 02F6 CE84              ldd R12,y+14
 02F8 DF84              ldd R13,y+15
 02FA A888              ldd R10,y+16
 02FC                   .dbline -1
 02FC                   .dbline 238
 02FC           ; 
 02FC           ; /*-----------------------------------------------------------------------
 02FC           ; LCD_draw_map      : 位图绘制函数
 02FC           ; 
 02FC           ; 输入参数:X、Y    :位图绘制的起始X、Y坐标;
 02FC           ;           *map    :位图点阵数据;
 02FC           ;           Pix_x   :位图像素(长)
 02FC           ;           Pix_y   :位图像素(宽)
 02FC           ; 
 02FC           ; 编写日期          :2004-8-13
 02FC           ; 最后修改日期      :2004-8-13 
 02FC           ; -----------------------------------------------------------------------*/
 02FC           ; void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map,
 02FC           ;                   unsigned char Pix_x,unsigned char Pix_y)
 02FC           ;   {
 02FC                   .dbline 242
 02FC           ;     unsigned int i,n;
 02FC           ;     unsigned char row;
 02FC           ;     
 02FC           ;     if (Pix_y%8==0) row=Pix_y/8;      //计算位图所占行数
 02FC 18E0              ldi R17,8
 02FE 0A89              ldd R16,y+18
 0300 00D0              rcall mod8u
 0302 0023              tst R16
 0304 29F4              brne L71
 0306                   .dbline 242
 0306 4A89              ldd R20,y+18
 0308 4695              lsr R20
 030A 4695              lsr R20
 030C 4695              lsr R20
 030E 05C0              rjmp L72
 0310           L71:
 0310                   .dbline 244
 0310           ;       else
 0310           ;         row=Pix_y/8+1;
 0310 4A89              ldd R20,y+18
 0312 4695              lsr R20
 0314 4695              lsr R20
 0316 4695              lsr R20
 0318 4F5F              subi R20,255    ; addi 1
 031A           L72:
 031A                   .dbline 246
 031A           ;     
 031A           ;     for (n=0;n<row;n++)
 031A 6627              clr R22
 031C 7727              clr R23
 031E 24C0              rjmp L76
 0320           L73:
 0320                   .dbline 247
 0320           ;       {
 0320                   .dbline 248
 0320           ;               LCD_set_XY(X,Y);
 0320 2C85              ldd R18,y+12
 0322 0A85              ldd R16,y+10
 0324 C2DE              rcall _LCD_set_XY
 0326                   .dbline 249
 0326           ;         for(i=0; i<Pix_x; i++)
 0326 EE24              clr R14
 0328 FF24              clr R15
 032A 14C0              rjmp L80
 032C           L77:
 032C                   .dbline 250
 032C                   .dbline 251
 032C 21E0              ldi R18,1
 032E 2A2C              mov R2,R10
 0330 3324              clr R3
 0332 2F93              push R18
 0334 3F93              push R19
 0336 9101              movw R18,R2
 0338 8B01              movw R16,R22
 033A 00D0              rcall empy16s
 033C 3F91              pop R19
 033E 2F91              pop R18
 0340 F701              movw R30,R14
 0342 E00F              add R30,R16
 0344 F11F              adc R31,R17
 0346 EC0D              add R30,R12
 0348 FD1D              adc R31,R13
 034A 0081              ldd R16,z+0
 034C 15D0              rcall _LCD_write_byte
 034E                   .dbline 252
 034E           L78:
 034E                   .dbline 249
 034E C701              movw R24,R14
 0350 0196              adiw R24,1
 0352 7C01              movw R14,R24
 0354           L80:
 0354                   .dbline 249
 0354 2A2C              mov R2,R10
 0356 3324              clr R3
 0358 E214              cp R14,R2
 035A F304              cpc R15,R3
 035C 38F3              brlo L77
 035E                   .dbline 253
 035E 0C84              ldd R0,y+12
 0360 0394              inc R0
 0362 0C86              std y+12,R0
 0364                   .dbline 254
 0364           L74:
 0364                   .dbline 246
 0364 6F5F              subi R22,255  ; offset = 1
 0366 7F4F              sbci R23,255
 0368           L76:
 0368                   .dbline 246
 0368 242E              mov R2,R20
 036A 3324              clr R3
 036C 6215              cp R22,R2
 036E 7305              cpc R23,R3
 0370 B8F2              brlo L73
 0372                   .dbline -2
 0372                   .dbline 255
 0372           ;           {
 0372           ;             LCD_write_byte(map[i+n*Pix_x], 1);
 0372           ;           }
 0372           ;         Y++;                         //换行
 0372           ;       }      
 0372           ;   }
 0372           L70:
 0372 00D0              rcall pop_gset5
 0374 2496              adiw R28,4
 0376                   .dbline 0 ; func end
 0376 0895              ret
 0378                   .dbsym r row 20 c
 0378                   .dbsym r n 22 i
 0378                   .dbsym r i 14 i
 0378                   .dbsym l Pix_y 18 c
 0378                   .dbsym r Pix_x 10 c
 0378                   .dbsym r map 12 pc
 0378                   .dbsym l Y 12 c
 0378                   .dbsym l X 10 c
 0378                   .dbend
 0378                   .dbfunc e LCD_write_byte _LCD_write_byte fV
 0378           ;              i -> R20
 0378           ;        command -> R18
 0378           ;            dat -> R16
                        .even
 0378           _LCD_write_byte::
 0378 00D0              rcall push_gset1
 037A                   .dbline -1
 037A                   .dbline 267
 037A           ; 
 037A           ; /*-----------------------------------------------------------------------
 037A           ; LCD_write_byte    : 使用SPI接口写数据到LCD
 037A           ; 
 037A           ; 输入参数:data    :写入的数据;
 037A           ;           command :写数据/命令选择;
 037A           ; 
 037A           ; 编写日期          :2004-8-10 
 037A           ; 最后修改日期      :2004-8-13 
 037A           ; -----------------------------------------------------------------------*/
 037A           ; void LCD_write_byte(unsigned char dat, unsigned char command)
 037A           ;   {
 037A                   .dbline 271
 037A           ;     unsigned char i;
 037A           ;     //PORTB &= ~LCD_CE ;                      // avr
 037A           ;     //LCD_CE = 0;                                             // 51
 037A           ;       LCD_5110_PORT &= ~(0x01 << LCD_CE);     // msp430
 037A 9398              cbi 0x12,3
 037C                   .dbline 273
 037C           ;     
 037C           ;     if (command == 0)
 037C 2223              tst R18
 037E 11F4              brne L82
 0380                   .dbline 276
 0380           ;      // PORTB &= ~LCD_DC ;            // 传送命令
 0380           ;       //     LCD_DC = 0;
 0380           ;         LCD_5110_PORT &= ~(0x01 << LCD_DC);
 0380 9298              cbi 0x12,2
 0382 01C0              rjmp L83
 0384           L82:
 0384                   .dbline 280
 0384           ;     else
 0384           ;      // PORTB |= LCD_DC ;                     // 传送数据
 0384           ;     // LCD_DC = 1;
 0384           ;        LCD_5110_PORT |= (0x01 << LCD_DC);
 0384 929A              sbi 0x12,2
 0386           L83:
 0386                   .dbline 281
 0386           ;               for(i=0;i<8;i++)
 0386 4427              clr R20
 0388 09C0              rjmp L87
 038A           L84:
 038A                   .dbline 282
 038A           ;               {
 038A                   .dbline 283
 038A           ;                       if(dat&0x80)
 038A 07FF              sbrs R16,7
 038C 02C0              rjmp L88
 038E                   .dbline 285
 038E           ;                               //SDIN = 1;
 038E           ;                          LCD_5110_PORT |= (0x01 << LCD_DIN);
 038E 919A              sbi 0x12,1
 0390 01C0              rjmp L89
 0392           L88:
 0392                   .dbline 288
 0392           ;                       else
 0392           ;                               //SDIN = 0;
 0392           ;                          LCD_5110_PORT &= ~(0x01 << LCD_DIN);
 0392 9198              cbi 0x12,1
 0394           L89:
 0394                   .dbline 290
 0394 9098              cbi 0x12,0
 0396                   .dbline 291
 0396 000F              lsl R16
 0398                   .dbline 293
 0398 909A              sbi 0x12,0
 039A                   .dbline 294
 039A           L85:
 039A                   .dbline 281
 039A 4395              inc R20
 039C           L87:
 039C                   .dbline 281
 039C 4830              cpi R20,8
 039E A8F3              brlo L84
 03A0                   .dbline 301
 03A0           ;                       //SCLK = 0;
 03A0           ;                       LCD_5110_PORT &= ~(0x01 << LCD_CLK);
 03A0           ;                       dat = dat << 1;
 03A0      

⌨️ 快捷键说明

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