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

📄 lcd.lis

📁 增量式模糊PID控制方法AVR单片机mega16
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 014E           ;         column -> R10
 014E           ;            row -> R22
                        .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 *string)
 015A           ; {
 015A                   .dbline 197
 015A           ; LCD_Cursor (row, column);
 015A 2A2D              mov R18,R10
 015C 062F              mov R16,R22
 015E 21D0              xcall _LCD_Cursor
 0160 04C0              xjmp L14
 0162           L13:
 0162                   .dbline 199
 0162                   .dbline 200
 0162 FA01              movw R30,R20
 0164 0191              ld R16,Z+
 0166 AF01              movw R20,R30
 0168 EADF              xcall _LCD_DisplayCharacter
 016A                   .dbline 201
 016A           L14:
 016A                   .dbline 198
 016A           ; while (*string)
 016A FA01              movw R30,R20
 016C 2080              ldd R2,z+0
 016E 2220              tst R2
 0170 C1F7              brne L13
 0172                   .dbline -2
 0172           L12:
 0172 0E940000          xcall pop_gset3
 0176                   .dbline 0 ; func end
 0176 0895              ret
 0178                   .dbsym r string 20 pc
 0178                   .dbsym r column 10 c
 0178                   .dbsym r row 22 c
 0178                   .dbend
 0178                   .dbfunc e LCD_DisplayString _LCD_DisplayString fV
 0178           ;         string -> R20,R21
 0178           ;         column -> R10
 0178           ;            row -> R22
                        .even
 0178           _LCD_DisplayString::
 0178 0E940000          xcall push_gset3
 017C A22E              mov R10,R18
 017E 602F              mov R22,R16
 0180 4E81              ldd R20,y+6
 0182 5F81              ldd R21,y+7
 0184                   .dbline -1
 0184                   .dbline 207
 0184           ; {
 0184           ; LCD_DisplayCharacter (*string++);
 0184           ; }
 0184           ; }
 0184           ; // ******************************************************************* //
 0184           ; // *** Display a string at the specified row and column, using RAM *** //
 0184           ; // ******************************************************************* //
 0184           ; void LCD_DisplayString (char row, char column ,unsigned char *string)
 0184           ; {
 0184                   .dbline 208
 0184           ; LCD_Cursor (row, column);
 0184 2A2D              mov R18,R10
 0186 062F              mov R16,R22
 0188 0CD0              xcall _LCD_Cursor
 018A 04C0              xjmp L18
 018C           L17:
 018C                   .dbline 210
 018C FA01              movw R30,R20
 018E 0191              ld R16,Z+
 0190 AF01              movw R20,R30
 0192 D5DF              xcall _LCD_DisplayCharacter
 0194           L18:
 0194                   .dbline 209
 0194           ; while (*string)
 0194 FA01              movw R30,R20
 0196 2080              ldd R2,z+0
 0198 2220              tst R2
 019A C1F7              brne L17
 019C                   .dbline -2
 019C           L16:
 019C 0E940000          xcall pop_gset3
 01A0                   .dbline 0 ; func end
 01A0 0895              ret
 01A2                   .dbsym r string 20 pc
 01A2                   .dbsym r column 10 c
 01A2                   .dbsym r row 22 c
 01A2                   .dbend
 01A2                   .dbfunc e LCD_Cursor _LCD_Cursor fV
 01A2           ;         column -> R20
 01A2           ;            row -> R22
                        .even
 01A2           _LCD_Cursor::
 01A2 0E940000          xcall push_gset2
 01A6 422F              mov R20,R18
 01A8 602F              mov R22,R16
 01AA                   .dbline -1
 01AA                   .dbline 216
 01AA           ; LCD_DisplayCharacter (*string++);
 01AA           ; }
 01AA           ; // *************************************************** //
 01AA           ; // *** Position the LCD cursor at "row", "column". *** //
 01AA           ; // *************************************************** //
 01AA           ; void LCD_Cursor (char row, char column)
 01AA           ; {
 01AA                   .dbline 217
 01AA 7727              clr R23
 01AC 6130              cpi R22,1
 01AE E0E0              ldi R30,0
 01B0 7E07              cpc R23,R30
 01B2 69F0              breq L24
 01B4 6230              cpi R22,2
 01B6 E0E0              ldi R30,0
 01B8 7E07              cpc R23,R30
 01BA 71F0              breq L25
 01BC 6330              cpi R22,3
 01BE E0E0              ldi R30,0
 01C0 7E07              cpc R23,R30
 01C2 79F0              breq L26
 01C4 6430              cpi R22,4
 01C6 E0E0              ldi R30,0
 01C8 7E07              cpc R23,R30
 01CA 81F0              breq L27
 01CC 13C0              xjmp L22
 01CE           X0:
 01CE                   .dbline 217
 01CE           ; switch (row) {
 01CE           L24:
 01CE                   .dbline 218
 01CE           ; case 1: LCD_WriteControl (0x80 + column - 1); break;
 01CE 042F              mov R16,R20
 01D0 0058              subi R16,128    ; addi 128
 01D2 0150              subi R16,1
 01D4 60DF              xcall _LCD_WriteControl
 01D6                   .dbline 218
 01D6 0EC0              xjmp L22
 01D8           L25:
 01D8                   .dbline 219
 01D8           ; case 2: LCD_WriteControl (0xc0 + column - 1); break;
 01D8 042F              mov R16,R20
 01DA 0054              subi R16,64    ; addi 192
 01DC 0150              subi R16,1
 01DE 5BDF              xcall _LCD_WriteControl
 01E0                   .dbline 219
 01E0 09C0              xjmp L22
 01E2           L26:
 01E2                   .dbline 220
 01E2           ; case 3: LCD_WriteControl (0x94 + column - 1); break;
 01E2 042F              mov R16,R20
 01E4 0C56              subi R16,108    ; addi 148
 01E6 0150              subi R16,1
 01E8 56DF              xcall _LCD_WriteControl
 01EA                   .dbline 220
 01EA 04C0              xjmp L22
 01EC           L27:
 01EC                   .dbline 221
 01EC 042F              mov R16,R20
 01EE 0C52              subi R16,44    ; addi 212
 01F0 0150              subi R16,1
 01F2 51DF              xcall _LCD_WriteControl
 01F4                   .dbline 221
 01F4                   .dbline 222
 01F4           L22:
 01F4                   .dbline -2
 01F4           L20:
 01F4 0E940000          xcall pop_gset2
 01F8                   .dbline 0 ; func end
 01F8 0895              ret
 01FA                   .dbsym r column 20 c
 01FA                   .dbsym r row 22 c
 01FA                   .dbend
 01FA                   .dbfunc e LCD_Cursor_On _LCD_Cursor_On fV
                        .even
 01FA           _LCD_Cursor_On::
 01FA                   .dbline -1
 01FA                   .dbline 229
 01FA           ; case 4: LCD_WriteControl (0xd4 + column - 1); break;
 01FA           ; default: break;
 01FA           ; }
 01FA           ; }
 01FA           ; // ************************** //
 01FA           ; // *** Turn the cursor on *** //
 01FA           ; // ************************** //
 01FA           ; void LCD_Cursor_On (void)
 01FA           ; {
 01FA                   .dbline 230
 01FA           ; LCD_WriteControl (LCD_CURS_ON);
 01FA 0DE0              ldi R16,13
 01FC 4CDF              xcall _LCD_WriteControl
 01FE                   .dbline -2
 01FE           L28:
 01FE                   .dbline 0 ; func end
 01FE 0895              ret
 0200                   .dbend
 0200                   .dbfunc e LCD_Cursor_Off _LCD_Cursor_Off fV
                        .even
 0200           _LCD_Cursor_Off::
 0200                   .dbline -1
 0200                   .dbline 236
 0200           ; }
 0200           ; // *************************** //
 0200           ; // *** Turn the cursor off *** //
 0200           ; // *************************** //
 0200           ; void LCD_Cursor_Off (void)
 0200           ; {
 0200                   .dbline 237
 0200           ; LCD_WriteControl (LCD_ON);
 0200 0CE0              ldi R16,12
 0202 49DF              xcall _LCD_WriteControl
 0204                   .dbline -2
 0204           L29:
 0204                   .dbline 0 ; func end
 0204 0895              ret
 0206                   .dbend
 0206                   .dbfunc e LCD_Display_Off _LCD_Display_Off fV
                        .even
 0206           _LCD_Display_Off::
 0206                   .dbline -1
 0206                   .dbline 243
 0206           ; }
 0206           ; // ******************** //
 0206           ; // *** Turn Off LCD *** //
 0206           ; // ******************** //
 0206           ; void LCD_Display_Off (void)
 0206           ; {
 0206                   .dbline 244
 0206           ; LCD_WriteControl(LCD_OFF);
 0206 08E0              ldi R16,8
 0208 46DF              xcall _LCD_WriteControl
 020A                   .dbline -2
 020A           L30:
 020A                   .dbline 0 ; func end
 020A 0895              ret
 020C                   .dbend
 020C                   .dbfunc e LCD_Display_On _LCD_Display_On fV
                        .even
 020C           _LCD_Display_On::
 020C                   .dbline -1
 020C                   .dbline 250
 020C           ; }
 020C           ; // ******************* //
 020C           ; // *** Turn On LCD *** //
 020C           ; // ******************* //
 020C           ; void LCD_Display_On (void)
 020C           ; {
 020C                   .dbline 251
 020C           ; LCD_WriteControl(LCD_ON);
 020C 0CE0              ldi R16,12
 020E 43DF              xcall _LCD_WriteControl
 0210                   .dbline -2
 0210           L31:
 0210                   .dbline 0 ; func end
 0210 0895              ret
 0212                   .dbend

⌨️ 快捷键说明

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