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

📄 rd_uselcdsp027.lis

📁 LCD1602键盘显示模块实例
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 001E                   .dbline -1
 001E                   .dbline 152
 001E           ;               
 001E           ;     //LCDSP027_refresh_DISP_BUFF();
 001E           ; }
 001E           ; 
 001E           ; /***********************************************************
 001E           ; *   函数说明:刷新显示缓冲区函数                           *
 001E           ; *   输入:    无                                           *
 001E           ; *   输出:    无                                           *
 001E           ; *   调用函数:LCDSP027_Send_Data()                         *
 001E           ; ***********************************************************/
 001E           ; void LCDSP027_refresh_DISP_BUFF(void)
 001E           ; {
 001E                   .dbline 153
 001E           ;     char n = 0;
 001E                   .dbline 155
 001E           ;     //LCDSP027_Clear();
 001E           ;     for (n = 0;n<5;n++)
 001E 4427              clr R20
 0020 21C0              xjmp L10
 0022           L7:
 0022                   .dbline 156
 0022           ;     {
 0022                   .dbline 157
 0022           ;         if (n == 2)
 0022 4230              cpi R20,2
 0024 81F4              brne L11
 0026           X0:
 0026                   .dbline 158
 0026           ;         {
 0026                   .dbline 159
 0026           ;             LCDSP027_Send_Data
 0026 80E0              ldi R24,<_LCDSP027_DispBuff
 0028 90E0              ldi R25,>_LCDSP027_DispBuff
 002A E42F              mov R30,R20
 002C FF27              clr R31
 002E E80F              add R30,R24
 0030 F91F              adc R31,R25
 0032 E081              ldd R30,z+0
 0034 FF27              clr R31
 0036 80E0              ldi R24,<_LCDSP027_DISPCODE
 0038 90E0              ldi R25,>_LCDSP027_DISPCODE
 003A E80F              add R30,R24
 003C F91F              adc R31,R25
 003E 0081              ldd R16,z+0
 0040 0E7F              andi R16,254
 0042 24D0              xcall _LCDSP027_Send_Data
 0044                   .dbline 163
 0044           ;                 (
 0044           ;                     LCDSP027_DISPCODE[LCDSP027_DispBuff[n]] & ~BIT(0)
 0044           ;                 );
 0044           ;         }
 0044 0EC0              xjmp L12
 0046           L11:
 0046                   .dbline 165
 0046           ;         else
 0046           ;         {
 0046                   .dbline 166
 0046           ;             LCDSP027_Send_Data(LCDSP027_DISPCODE[LCDSP027_DispBuff[n]]);
 0046 80E0              ldi R24,<_LCDSP027_DispBuff
 0048 90E0              ldi R25,>_LCDSP027_DispBuff
 004A E42F              mov R30,R20
 004C FF27              clr R31
 004E E80F              add R30,R24
 0050 F91F              adc R31,R25
 0052 E081              ldd R30,z+0
 0054 FF27              clr R31
 0056 80E0              ldi R24,<_LCDSP027_DISPCODE
 0058 90E0              ldi R25,>_LCDSP027_DISPCODE
 005A E80F              add R30,R24
 005C F91F              adc R31,R25
 005E 0081              ldd R16,z+0
 0060 15D0              xcall _LCDSP027_Send_Data
 0062                   .dbline 167
 0062           ;         }
 0062           L12:
 0062                   .dbline 169
 0062           ;         
 0062           ;     }
 0062           L8:
 0062                   .dbline 155
 0062 4395              inc R20
 0064           L10:
 0064                   .dbline 155
 0064 4530              cpi R20,5
 0066 E8F2              brlo L7
 0068           X1:
 0068                   .dbline 170
 0068           ;     SP027_CLK = LOW;
 0068 85B3              in R24,0x15
 006A 8D7F              andi R24,253
 006C 85BB              out 0x15,R24
 006E                   .dbline 171
 006E           ;     SP027_CLK = HIGH;
 006E 85B3              in R24,0x15
 0070 8260              ori R24,2
 0072 85BB              out 0x15,R24
 0074                   .dbline -2
 0074           L6:
 0074                   .dbline 0 ; func end
 0074 4991              ld R20,y+
 0076 0895              ret
 0078                   .dbsym r n1 20 c
 0078                   .dbend
 0078                   .dbfunc e LCDSP027_Clear _LCDSP027_Clear fV
                        .even
 0078           _LCDSP027_Clear::
 0078 2597              sbiw R28,5
 007A                   .dbline -1
 007A                   .dbline 181
 007A           ; }
 007A           ; 
 007A           ; /***********************************************************
 007A           ; *   函数说明:清屏函数                                     *
 007A           ; *   输入:    无                                           *
 007A           ; *   输出:    无                                           *
 007A           ; *   调用函数:无                                           *
 007A           ; ***********************************************************/
 007A           ; void LCDSP027_Clear(void)
 007A           ; {
 007A                   .dbline 191
 007A           ;     /*
 007A           ;     char n = 0;
 007A           ;     for (n = 0;n<40;n++)
 007A           ;     {
 007A           ;         SP027_CLK = LOW;
 007A           ;         SP027_DI = HIGH;
 007A           ;         SP027_CLK = HIGH;
 007A           ;     }
 007A           ;     */
 007A           ;     Set_DISP_BUFF_SP027
 007A 81E1              ldi R24,17
 007C 8C83              std y+4,R24
 007E 8A83              std y+2,R24
 0080 8883              std y+0,R24
 0082 21E1              ldi R18,17
 0084 01E1              ldi R16,17
 0086 BCDF              xcall _Set_DISP_BUFF_SP027
 0088                   .dbline -2
 0088           L13:
 0088                   .dbline 0 ; func end
 0088 2596              adiw R28,5
 008A 0895              ret
 008C                   .dbend
 008C                   .dbfunc s LCDSP027_Send_Data _LCDSP027_Send_Data fV
 008C           ;             n1 -> R20
 008C           ;           Data -> R10
                        .even
 008C           _LCDSP027_Send_Data:
 008C AA92              st -y,R10
 008E 4A93              st -y,R20
 0090 A02E              mov R10,R16
 0092                   .dbline -1
 0092                   .dbline 208
 0092           ;         (
 0092           ;             SP027_NO_ICON,
 0092           ;             SP027_NO_ICON,
 0092           ;             SP027_NO_ICON,
 0092           ;             SP027_NO_ICON,
 0092           ;             SP027_NO_ICON
 0092           ;         );
 0092           ; }
 0092           ; 
 0092           ; /***********************************************************
 0092           ; *   函数说明:发送数据函数                                 *
 0092           ; *   输入:    无                                           *
 0092           ; *   输出:    无                                           *
 0092           ; *   调用函数:无                                           *
 0092           ; ***********************************************************/
 0092           ; static void LCDSP027_Send_Data(char Data)
 0092           ; {
 0092                   .dbline 209
 0092           ;     char n = 0;
 0092                   .dbline 211
 0092           ;     
 0092           ;     for (n = 0;n<8;n++)
 0092 4427              clr R20
 0094 1BC0              xjmp L18
 0096           L15:
 0096                   .dbline 212
 0096           ;     {
 0096                   .dbline 213
 0096           ;         SP027_CLK = LOW;
 0096 85B3              in R24,0x15
 0098 8D7F              andi R24,253
 009A 85BB              out 0x15,R24
 009C                   .dbline 214
 009C           ;         if (Data<<n>>7)
 009C 0A2D              mov R16,R10
 009E 142F              mov R17,R20
 00A0 0E940000          xcall lsl8
 00A4 202E              mov R2,R16
 00A6 2694              lsr R2
 00A8 2694              lsr R2
 00AA 2694              lsr R2
 00AC 2694              lsr R2
 00AE 2694              lsr R2
 00B0 2694              lsr R2
 00B2 2694              lsr R2
 00B4 21F0              breq L19
 00B6           X2:
 00B6                   .dbline 215
 00B6           ;         {
 00B6                   .dbline 216
 00B6           ;             SP027_DI = HIGH;
 00B6 85B3              in R24,0x15
 00B8 8160              ori R24,1
 00BA 85BB              out 0x15,R24
 00BC                   .dbline 217
 00BC           ;         }
 00BC 03C0              xjmp L20
 00BE           L19:
 00BE                   .dbline 219
 00BE           ;         else
 00BE           ;         {
 00BE                   .dbline 220
 00BE           ;             SP027_DI = LOW;
 00BE 85B3              in R24,0x15
 00C0 8E7F              andi R24,254
 00C2 85BB              out 0x15,R24
 00C4                   .dbline 221
 00C4           ;         }
 00C4           L20:
 00C4                   .dbline 222
 00C4           ;         SP027_CLK = HIGH;
 00C4 85B3              in R24,0x15
 00C6 8260              ori R24,2
 00C8 85BB              out 0x15,R24
 00CA                   .dbline 223
 00CA           ;     }
 00CA           L16:
 00CA                   .dbline 211
 00CA 4395              inc R20
 00CC           L18:
 00CC                   .dbline 211
 00CC 4830              cpi R20,8
 00CE 18F3              brlo L15
 00D0           X3:
 00D0                   .dbline -2
 00D0           L14:
 00D0                   .dbline 0 ; func end
 00D0 4991              ld R20,y+
 00D2 A990              ld R10,y+
 00D4 0895              ret
 00D6                   .dbsym r n1 20 c
 00D6                   .dbsym r Data 10 c
 00D6                   .dbend
 00D6           ; }
 00D6           ; 
 00D6           ; 

⌨️ 快捷键说明

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