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

📄 lcd.lis

📁 avr icc开发的avr单片机与pc机vb通讯控制程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .even
 014E           _LCD_DisplayString_F::
 014E 0E940000          xcall push_gset3
 0152 A22E              mov R10,R18
 0154 602F              mov R22,R16
 0156 4E81              ldd R20,y+6
 0158 5F81              ldd R21,y+7
 015A                   .dbline -1
 015A                   .dbline 196
 015A           ; }
 015A           ; // ********************************************************************* //
 015A           ; // *** Display a string at the specified row and column, using FLASH *** //
 015A           ; // ********************************************************************* //
 015A           ; void LCD_DisplayString_F (char row, char column , unsigned char const *string)
 015A           ; {
 015A                   .dbline 197
 015A           ; LCD_Cursor (row, column);
 015A 2A2D              mov R18,R10
 015C 062F              mov R16,R22
 015E 23D0              xcall _LCD_Cursor
 0160 06C0              xjmp L14
 0162           L13:
 0162                   .dbline 199
 0162                   .dbline 200
 0162 1A01              movw R2,R20
 0164 4F5F              subi R20,255  ; offset = 1
 0166 5F4F              sbci R21,255
 0168 F101              movw R30,R2
 016A 0491              lpm R16,Z
 016C E8DF              xcall _LCD_DisplayCharacter
 016E                   .dbline 201
 016E           L14:
 016E                   .dbline 198
 016E           ; while (*string)
 016E FA01              movw R30,R20
 0170 E491              lpm R30,Z
 0172 EE23              tst R30
 0174 B1F7              brne L13
 0176                   .dbline -2
 0176           L12:
 0176 0E940000          xcall pop_gset3
 017A                   .dbline 0 ; func end
 017A 0895              ret
 017C                   .dbsym r string 20 pkc
 017C                   .dbsym r column 10 c
 017C                   .dbsym r row 22 c
 017C                   .dbend
 017C                   .dbfunc e LCD_DisplayString _LCD_DisplayString fV
 017C           ;         string -> R20,R21
 017C           ;         column -> R10
 017C           ;            row -> R22
                        .even
 017C           _LCD_DisplayString::
 017C 0E940000          xcall push_gset3
 0180 A22E              mov R10,R18
 0182 602F              mov R22,R16
 0184 4E81              ldd R20,y+6
 0186 5F81              ldd R21,y+7
 0188                   .dbline -1
 0188                   .dbline 207
 0188           ; {
 0188           ; LCD_DisplayCharacter (*string++);
 0188           ; }
 0188           ; }
 0188           ; // ******************************************************************* //
 0188           ; // *** Display a string at the specified row and column, using RAM *** //
 0188           ; // ******************************************************************* //
 0188           ; void LCD_DisplayString (char row, char column ,unsigned char *string)
 0188           ; {
 0188                   .dbline 208
 0188           ; LCD_Cursor (row, column);
 0188 2A2D              mov R18,R10
 018A 062F              mov R16,R22
 018C 0CD0              xcall _LCD_Cursor
 018E 04C0              xjmp L18
 0190           L17:
 0190                   .dbline 210
 0190 FA01              movw R30,R20
 0192 0191              ld R16,Z+
 0194 AF01              movw R20,R30
 0196 D3DF              xcall _LCD_DisplayCharacter
 0198           L18:
 0198                   .dbline 209
 0198           ; while (*string)
 0198 FA01              movw R30,R20
 019A 2080              ldd R2,z+0
 019C 2220              tst R2
 019E C1F7              brne L17
 01A0                   .dbline -2
 01A0           L16:
 01A0 0E940000          xcall pop_gset3
 01A4                   .dbline 0 ; func end
 01A4 0895              ret
 01A6                   .dbsym r string 20 pc
 01A6                   .dbsym r column 10 c
 01A6                   .dbsym r row 22 c
 01A6                   .dbend
 01A6                   .dbfunc e LCD_Cursor _LCD_Cursor fV
 01A6           ;         column -> R20
 01A6           ;            row -> R22
                        .even
 01A6           _LCD_Cursor::
 01A6 0E940000          xcall push_gset2
 01AA 422F              mov R20,R18
 01AC 602F              mov R22,R16
 01AE                   .dbline -1
 01AE                   .dbline 216
 01AE           ; LCD_DisplayCharacter (*string++);
 01AE           ; }
 01AE           ; // *************************************************** //
 01AE           ; // *** Position the LCD cursor at "row", "column". *** //
 01AE           ; // *************************************************** //
 01AE           ; void LCD_Cursor (char row, char column)
 01AE           ; {
 01AE                   .dbline 217
 01AE 7727              clr R23
 01B0 6130              cpi R22,1
 01B2 E0E0              ldi R30,0
 01B4 7E07              cpc R23,R30
 01B6 69F0              breq L24
 01B8 6230              cpi R22,2
 01BA E0E0              ldi R30,0
 01BC 7E07              cpc R23,R30
 01BE 71F0              breq L25
 01C0 6330              cpi R22,3
 01C2 E0E0              ldi R30,0
 01C4 7E07              cpc R23,R30
 01C6 79F0              breq L26
 01C8 6430              cpi R22,4
 01CA E0E0              ldi R30,0
 01CC 7E07              cpc R23,R30
 01CE 81F0              breq L27
 01D0 13C0              xjmp L22
 01D2           X0:
 01D2                   .dbline 217
 01D2           ; switch (row) {
 01D2           L24:
 01D2                   .dbline 218
 01D2           ; case 1: LCD_WriteControl (0x80 + column - 1); break;
 01D2 042F              mov R16,R20
 01D4 0058              subi R16,128    ; addi 128
 01D6 0150              subi R16,1
 01D8 5EDF              xcall _LCD_WriteControl
 01DA                   .dbline 218
 01DA 0EC0              xjmp L22
 01DC           L25:
 01DC                   .dbline 219
 01DC           ; case 2: LCD_WriteControl (0xc0 + column - 1); break;
 01DC 042F              mov R16,R20
 01DE 0054              subi R16,64    ; addi 192
 01E0 0150              subi R16,1
 01E2 59DF              xcall _LCD_WriteControl
 01E4                   .dbline 219
 01E4 09C0              xjmp L22
 01E6           L26:
 01E6                   .dbline 220
 01E6           ; case 3: LCD_WriteControl (0x94 + column - 1); break;
 01E6 042F              mov R16,R20
 01E8 0C56              subi R16,108    ; addi 148
 01EA 0150              subi R16,1
 01EC 54DF              xcall _LCD_WriteControl
 01EE                   .dbline 220
 01EE 04C0              xjmp L22
 01F0           L27:
 01F0                   .dbline 221
 01F0 042F              mov R16,R20
 01F2 0C52              subi R16,44    ; addi 212
 01F4 0150              subi R16,1
 01F6 4FDF              xcall _LCD_WriteControl
 01F8                   .dbline 221
 01F8                   .dbline 222
 01F8           L22:
 01F8                   .dbline -2
 01F8           L20:
 01F8 0E940000          xcall pop_gset2
 01FC                   .dbline 0 ; func end
 01FC 0895              ret
 01FE                   .dbsym r column 20 c
 01FE                   .dbsym r row 22 c
 01FE                   .dbend
 01FE                   .dbfunc e LCD_Cursor_On _LCD_Cursor_On fV
                        .even
 01FE           _LCD_Cursor_On::
 01FE                   .dbline -1
 01FE                   .dbline 229
 01FE           ; case 4: LCD_WriteControl (0xd4 + column - 1); break;
 01FE           ; default: break;
 01FE           ; }
 01FE           ; }
 01FE           ; // ************************** //
 01FE           ; // *** Turn the cursor on *** //
 01FE           ; // ************************** //
 01FE           ; void LCD_Cursor_On (void)
 01FE           ; {
 01FE                   .dbline 230
 01FE           ; LCD_WriteControl (LCD_CURS_ON);
 01FE 0DE0              ldi R16,13
 0200 4ADF              xcall _LCD_WriteControl
 0202                   .dbline -2
 0202           L28:
 0202                   .dbline 0 ; func end
 0202 0895              ret
 0204                   .dbend
 0204                   .dbfunc e LCD_Cursor_Off _LCD_Cursor_Off fV
                        .even
 0204           _LCD_Cursor_Off::
 0204                   .dbline -1
 0204                   .dbline 236
 0204           ; }
 0204           ; // *************************** //
 0204           ; // *** Turn the cursor off *** //
 0204           ; // *************************** //
 0204           ; void LCD_Cursor_Off (void)
 0204           ; {
 0204                   .dbline 237
 0204           ; LCD_WriteControl (LCD_ON);
 0204 0CE0              ldi R16,12
 0206 47DF              xcall _LCD_WriteControl
 0208                   .dbline -2
 0208           L29:
 0208                   .dbline 0 ; func end
 0208 0895              ret
 020A                   .dbend
 020A                   .dbfunc e LCD_Display_Off _LCD_Display_Off fV
                        .even
 020A           _LCD_Display_Off::
 020A                   .dbline -1
 020A                   .dbline 243
 020A           ; }
 020A           ; // ******************** //
 020A           ; // *** Turn Off LCD *** //
 020A           ; // ******************** //
 020A           ; void LCD_Display_Off (void)
 020A           ; {
 020A                   .dbline 244
 020A           ; LCD_WriteControl(LCD_OFF);
 020A 08E0              ldi R16,8
 020C 44DF              xcall _LCD_WriteControl
 020E                   .dbline -2
 020E           L30:
 020E                   .dbline 0 ; func end
 020E 0895              ret
 0210                   .dbend
 0210                   .dbfunc e LCD_Display_On _LCD_Display_On fV
                        .even
 0210           _LCD_Display_On::
 0210                   .dbline -1
 0210                   .dbline 250
 0210           ; }
 0210           ; // ******************* //
 0210           ; // *** Turn On LCD *** //
 0210           ; // ******************* //
 0210           ; void LCD_Display_On (void)
 0210           ; {
 0210                   .dbline 251
 0210           ; LCD_WriteControl(LCD_ON);
 0210 0CE0              ldi R16,12
 0212 41DF              xcall _LCD_WriteControl
 0214                   .dbline -2
 0214           L31:
 0214                   .dbline 0 ; func end
 0214 0895              ret
 0216                   .dbend

⌨️ 快捷键说明

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