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

📄 lcd.lis

📁 avr icc 平台开发的pwm模拟功能
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0166                   .dbline 198
 0166           ; while (*string)
 0166 FA01              movw R30,R20
 0168 E491              lpm R30,Z
 016A EE23              tst R30
 016C B1F7              brne L13
 016E                   .dbline -2
 016E                   .dbline 202
 016E           ; {
 016E           ; LCD_DisplayCharacter (*string++);
 016E           ; }
 016E           ; }
 016E           L12:
 016E 0E940000          xcall pop_gset3
 0172                   .dbline 0 ; func end
 0172 0895              ret
 0174                   .dbsym r string 20 pkc
 0174                   .dbsym r column 10 c
 0174                   .dbsym r row 22 c
 0174                   .dbend
 0174                   .dbfunc e LCD_DisplayString _LCD_DisplayString fV
 0174           ;         string -> R20,R21
 0174           ;         column -> R10
 0174           ;            row -> R22
                        .even
 0174           _LCD_DisplayString::
 0174 0E940000          xcall push_gset3
 0178 A22E              mov R10,R18
 017A 602F              mov R22,R16
 017C 4E81              ldd R20,y+6
 017E 5F81              ldd R21,y+7
 0180                   .dbline -1
 0180                   .dbline 207
 0180           ; // ******************************************************************* //
 0180           ; // *** Display a string at the specified row and column, using RAM *** //
 0180           ; // ******************************************************************* //
 0180           ; void LCD_DisplayString (char row, char column ,unsigned char *string)
 0180           ; {
 0180                   .dbline 208
 0180           ; LCD_Cursor (row, column);
 0180 2A2D              mov R18,R10
 0182 062F              mov R16,R22
 0184 0CD0              xcall _LCD_Cursor
 0186 04C0              xjmp L18
 0188           L17:
 0188                   .dbline 210
 0188 FA01              movw R30,R20
 018A 0191              ld R16,Z+
 018C AF01              movw R20,R30
 018E D3DF              xcall _LCD_DisplayCharacter
 0190           L18:
 0190                   .dbline 209
 0190           ; while (*string)
 0190 FA01              movw R30,R20
 0192 2080              ldd R2,z+0
 0194 2220              tst R2
 0196 C1F7              brne L17
 0198                   .dbline -2
 0198                   .dbline 211
 0198           ; LCD_DisplayCharacter (*string++);
 0198           ; }
 0198           L16:
 0198 0E940000          xcall pop_gset3
 019C                   .dbline 0 ; func end
 019C 0895              ret
 019E                   .dbsym r string 20 pc
 019E                   .dbsym r column 10 c
 019E                   .dbsym r row 22 c
 019E                   .dbend
 019E                   .dbfunc e LCD_Cursor _LCD_Cursor fV
 019E           ;         column -> R20
 019E           ;            row -> R22
                        .even
 019E           _LCD_Cursor::
 019E 0E940000          xcall push_gset2
 01A2 422F              mov R20,R18
 01A4 602F              mov R22,R16
 01A6                   .dbline -1
 01A6                   .dbline 216
 01A6           ; // *************************************************** //
 01A6           ; // *** Position the LCD cursor at "row", "column". *** //
 01A6           ; // *************************************************** //
 01A6           ; void LCD_Cursor (char row, char column)
 01A6           ; {
 01A6                   .dbline 217
 01A6 7727              clr R23
 01A8 6130              cpi R22,1
 01AA E0E0              ldi R30,0
 01AC 7E07              cpc R23,R30
 01AE 69F0              breq L24
 01B0 6230              cpi R22,2
 01B2 E0E0              ldi R30,0
 01B4 7E07              cpc R23,R30
 01B6 71F0              breq L25
 01B8 6330              cpi R22,3
 01BA E0E0              ldi R30,0
 01BC 7E07              cpc R23,R30
 01BE 79F0              breq L26
 01C0 6430              cpi R22,4
 01C2 E0E0              ldi R30,0
 01C4 7E07              cpc R23,R30
 01C6 81F0              breq L27
 01C8 13C0              xjmp L22
 01CA           X0:
 01CA                   .dbline 217
 01CA           ; switch (row) {
 01CA           L24:
 01CA                   .dbline 218
 01CA           ; case 1: LCD_WriteControl (0x80 + column - 1); break;
 01CA 042F              mov R16,R20
 01CC 0058              subi R16,128    ; addi 128
 01CE 0150              subi R16,1
 01D0 61DF              xcall _LCD_WriteControl
 01D2                   .dbline 218
 01D2 0EC0              xjmp L22
 01D4           L25:
 01D4                   .dbline 219
 01D4           ; case 2: LCD_WriteControl (0xc0 + column - 1); break;
 01D4 042F              mov R16,R20
 01D6 0054              subi R16,64    ; addi 192
 01D8 0150              subi R16,1
 01DA 5CDF              xcall _LCD_WriteControl
 01DC                   .dbline 219
 01DC 09C0              xjmp L22
 01DE           L26:
 01DE                   .dbline 220
 01DE           ; case 3: LCD_WriteControl (0x94 + column - 1); break;
 01DE 042F              mov R16,R20
 01E0 0C56              subi R16,108    ; addi 148
 01E2 0150              subi R16,1
 01E4 57DF              xcall _LCD_WriteControl
 01E6                   .dbline 220
 01E6 04C0              xjmp L22
 01E8           L27:
 01E8                   .dbline 221
 01E8 042F              mov R16,R20
 01EA 0C52              subi R16,44    ; addi 212
 01EC 0150              subi R16,1
 01EE 52DF              xcall _LCD_WriteControl
 01F0                   .dbline 221
 01F0                   .dbline 222
 01F0           L22:
 01F0                   .dbline -2
 01F0                   .dbline 224
 01F0           ; case 4: LCD_WriteControl (0xd4 + column - 1); break;
 01F0           ; default: break;
 01F0           ; }
 01F0           ; }
 01F0           L20:
 01F0 0E940000          xcall pop_gset2
 01F4                   .dbline 0 ; func end
 01F4 0895              ret
 01F6                   .dbsym r column 20 c
 01F6                   .dbsym r row 22 c
 01F6                   .dbend
 01F6                   .dbfunc e LCD_Cursor_On _LCD_Cursor_On fV
                        .even
 01F6           _LCD_Cursor_On::
 01F6                   .dbline -1
 01F6                   .dbline 229
 01F6           ; // ************************** //
 01F6           ; // *** Turn the cursor on *** //
 01F6           ; // ************************** //
 01F6           ; void LCD_Cursor_On (void)
 01F6           ; {
 01F6                   .dbline 230
 01F6           ; LCD_WriteControl (LCD_CURS_ON);
 01F6 0DE0              ldi R16,13
 01F8                   .dbline -2
 01F8                   .dbline 231
 01F8           ; }
 01F8           L28:
 01F8                   .dbline 0 ; func end
 01F8 4DCF              xjmp _LCD_WriteControl
 01FA                   .dbend
 01FA                   .dbfunc e LCD_Cursor_Off _LCD_Cursor_Off fV
                        .even
 01FA           _LCD_Cursor_Off::
 01FA                   .dbline -1
 01FA                   .dbline 236
 01FA           ; // *************************** //
 01FA           ; // *** Turn the cursor off *** //
 01FA           ; // *************************** //
 01FA           ; void LCD_Cursor_Off (void)
 01FA           ; {
 01FA                   .dbline 237
 01FA           ; LCD_WriteControl (LCD_ON);
 01FA 0CE0              ldi R16,12
 01FC                   .dbline -2
 01FC                   .dbline 238
 01FC           ; }
 01FC           L29:
 01FC                   .dbline 0 ; func end
 01FC 4BCF              xjmp _LCD_WriteControl
 01FE                   .dbend
 01FE                   .dbfunc e LCD_Display_Off _LCD_Display_Off fV
                        .even
 01FE           _LCD_Display_Off::
 01FE                   .dbline -1
 01FE                   .dbline 243
 01FE           ; // ******************** //
 01FE           ; // *** Turn Off LCD *** //
 01FE           ; // ******************** //
 01FE           ; void LCD_Display_Off (void)
 01FE           ; {
 01FE                   .dbline 244
 01FE           ; LCD_WriteControl(LCD_OFF);
 01FE 08E0              ldi R16,8
 0200                   .dbline -2
 0200                   .dbline 245
 0200           ; }
 0200           L30:
 0200                   .dbline 0 ; func end
 0200 49CF              xjmp _LCD_WriteControl
 0202                   .dbend
 0202                   .dbfunc e LCD_Display_On _LCD_Display_On fV
                        .even
 0202           _LCD_Display_On::
 0202                   .dbline -1
 0202                   .dbline 250
 0202           ; // ******************* //
 0202           ; // *** Turn On LCD *** //
 0202           ; // ******************* //
 0202           ; void LCD_Display_On (void)
 0202           ; {
 0202                   .dbline 251
 0202           ; LCD_WriteControl(LCD_ON);
 0202 0CE0              ldi R16,12
 0204                   .dbline -2
 0204                   .dbline 252
 0204           ; }
 0204           L31:
 0204                   .dbline 0 ; func end
 0204 47CF              xjmp _LCD_WriteControl
 0206                   .dbend
 0206                   .dbfunc e ClearLine _ClearLine fV
 0206           ;          space -> R22,R23
 0206           ;           line -> R20
                        .even
 0206           _ClearLine::
 0206 0E940000          xcall push_gset2
 020A 402F              mov R20,R16
 020C 2297              sbiw R28,2
 020E                   .dbline -1
 020E                   .dbline 257
 020E           ; // ******************* //
 020E           ; // *** Clear line *** //
 020E           ; // ******************* //
 020E           ; void ClearLine(unsigned char line)
 020E           ; {
 020E                   .dbline 258
 020E           ;     unsigned char *space="                ";
 020E 60E0              ldi R22,<L33
 0210 70E0              ldi R23,>L33
 0212                   .dbline 259
 0212           ;     LCD_DisplayString(line,1,space);
 0212 7983              std y+1,R23
 0214 6883              std y+0,R22
 0216 21E0              ldi R18,1
 0218 042F              mov R16,R20
 021A ACDF              xcall _LCD_DisplayString
 021C                   .dbline -2
 021C                   .dbline 260
 021C           ; }
 021C           L32:
 021C 2296              adiw R28,2
 021E 0E940000          xcall pop_gset2
 0222                   .dbline 0 ; func end
 0222 0895              ret
 0224                   .dbsym r space 22 pc
 0224                   .dbsym r line 20 c
 0224                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\NEW\AVR_PWM\LCD.c
 0000           L33:
 0000                   .blkb 17
                        .area idata
 0000 20202020202020202020202020202020  .byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
 0010 00                .byte 0
                        .area data(ram, con, rel)
 0011                   .dbfile D:\NEW\AVR_PWM\LCD.c

⌨️ 快捷键说明

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