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

📄 rd_uselcdsp027.lis

📁 移动机器人(小车)的物理坐标和逻辑坐标的转换源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 009C           ;             NumberB,
 009C           ;             NumberC,
 009C           ;             SP027_CIRCLE
 009C           ;         );
 009C           ;     }
 009C           L6:
 009C                   .dbline -2
 009C           L1:
 009C                   .dbline 0 ; func end
 009C 2596              adiw R28,5
 009E 00C0              rjmp pop_xgsetF0FC
 00A0                   .dbsym r NumberA1 10 c
 00A0                   .dbsym r NumberB1 12 c
 00A0                   .dbsym r NumberC1 14 c
 00A0                   .dbsym r wAbsNUM0 10 i
 00A0                   .dbsym r nNumber 20 I
 00A0                   .dbend
 00A0                   .dbfunc e Set_DISP_BUFF_SP027 _Set_DISP_BUFF_SP027 fV
 00A0           ;              e -> y+4
 00A0           ;              d -> y+2
 00A0           ;              c -> y+0
 00A0           ;              b -> R18
 00A0           ;              a -> R16
                        .even
 00A0           _Set_DISP_BUFF_SP027::
 00A0                   .dbline -1
 00A0                   .dbline 136
 00A0           ; }
 00A0           ; 
 00A0           ; 
 00A0           ; /***********************************************************
 00A0           ; *   函数说明:显示缓冲区设置函数                           *
 00A0           ; *   输入:    要显示的5个数字量(BCD)                       *
 00A0           ; *   输出:    无                                           *
 00A0           ; *   调用函数:LCDSP027_refresh_DISP_BUFF()                 *
 00A0           ; ***********************************************************/
 00A0           ; void Set_DISP_BUFF_SP027(char a,char b,char c,char d,char e)
 00A0           ; {
 00A0                   .dbline 137
 00A0           ;     LCDSP027_DispBuff[0] = a;
 00A0 00930000          sts _LCDSP027_DispBuff,R16
 00A4                   .dbline 138
 00A4           ;     LCDSP027_DispBuff[1] = b;
 00A4 20930100          sts _LCDSP027_DispBuff+1,R18
 00A8                   .dbline 139
 00A8           ;     LCDSP027_DispBuff[2] = c;
 00A8 0880              ldd R0,y+0
 00AA 00920200          sts _LCDSP027_DispBuff+2,R0
 00AE                   .dbline 140
 00AE           ;     LCDSP027_DispBuff[3] = d;
 00AE 0A80              ldd R0,y+2
 00B0 00920300          sts _LCDSP027_DispBuff+3,R0
 00B4                   .dbline 141
 00B4           ;     LCDSP027_DispBuff[4] = e;
 00B4 0C80              ldd R0,y+4
 00B6 00920400          sts _LCDSP027_DispBuff+4,R0
 00BA                   .dbline -2
 00BA           L7:
 00BA                   .dbline 0 ; func end
 00BA 0895              ret
 00BC                   .dbsym l e 4 c
 00BC                   .dbsym l d 2 c
 00BC                   .dbsym l c 0 c
 00BC                   .dbsym r b 18 c
 00BC                   .dbsym r a 16 c
 00BC                   .dbend
 00BC                   .dbfunc e LCDSP027_refresh_DISP_BUFF _LCDSP027_refresh_DISP_BUFF fV
 00BC           ;             n1 -> R20
                        .even
 00BC           _LCDSP027_refresh_DISP_BUFF::
 00BC 4A93              st -y,R20
 00BE                   .dbline -1
 00BE                   .dbline 153
 00BE           ;               
 00BE           ;     //LCDSP027_refresh_DISP_BUFF();
 00BE           ; }
 00BE           ; 
 00BE           ; /***********************************************************
 00BE           ; *   函数说明:刷新显示缓冲区函数                           *
 00BE           ; *   输入:    无                                           *
 00BE           ; *   输出:    无                                           *
 00BE           ; *   调用函数:LCDSP027_Send_Data()                         *
 00BE           ; ***********************************************************/
 00BE           ; void LCDSP027_refresh_DISP_BUFF(void)
 00BE           ; {
 00BE                   .dbline 154
 00BE           ;     char n = 0;
 00BE                   .dbline 156
 00BE           ;     //LCDSP027_Clear();
 00BE           ;     for (n = 0;n<5;n++)
 00BE 4427              clr R20
 00C0 0FC0              rjmp L16
 00C2           L13:
 00C2                   .dbline 157
 00C2           ;     {
 00C2                   .dbline 167
 00C2           ;         /*
 00C2           ;         if (n == 2)
 00C2           ;         {
 00C2           ;             LCDSP027_Send_Data
 00C2           ;                 (
 00C2           ;                     LCDSP027_DISPCODE[LCDSP027_DispBuff[n]] & ~BIT(0)
 00C2           ;                 );
 00C2           ;         }
 00C2           ;         else*/
 00C2           ;         {
 00C2                   .dbline 168
 00C2           ;             LCDSP027_Send_Data(LCDSP027_DISPCODE[LCDSP027_DispBuff[n]]);
 00C2 80E0              ldi R24,<_LCDSP027_DispBuff
 00C4 90E0              ldi R25,>_LCDSP027_DispBuff
 00C6 E42F              mov R30,R20
 00C8 FF27              clr R31
 00CA E80F              add R30,R24
 00CC F91F              adc R31,R25
 00CE E081              ldd R30,z+0
 00D0 FF27              clr R31
 00D2 80E0              ldi R24,<_LCDSP027_DISPCODE
 00D4 90E0              ldi R25,>_LCDSP027_DISPCODE
 00D6 E80F              add R30,R24
 00D8 F91F              adc R31,R25
 00DA 0081              ldd R16,z+0
 00DC 15D0              rcall _LCDSP027_Send_Data
 00DE                   .dbline 169
 00DE           ;         }
 00DE                   .dbline 171
 00DE           ;         
 00DE           ;     }
 00DE           L14:
 00DE                   .dbline 156
 00DE 4395              inc R20
 00E0           L16:
 00E0                   .dbline 156
 00E0 4530              cpi R20,5
 00E2 78F3              brlo L13
 00E4           X2:
 00E4                   .dbline 172
 00E4           ;     SP027_CLK = LOW;
 00E4 88B1              in R24,0x8
 00E6 8F7E              andi R24,239
 00E8 88B9              out 0x8,R24
 00EA                   .dbline 173
 00EA           ;     SP027_CLK = HIGH;
 00EA 88B1              in R24,0x8
 00EC 8061              ori R24,16
 00EE 88B9              out 0x8,R24
 00F0                   .dbline -2
 00F0           L12:
 00F0                   .dbline 0 ; func end
 00F0 4991              ld R20,y+
 00F2 0895              ret
 00F4                   .dbsym r n1 20 c
 00F4                   .dbend
 00F4                   .dbfunc e LCDSP027_Clear _LCDSP027_Clear fV
                        .even
 00F4           _LCDSP027_Clear::
 00F4 2597              sbiw R28,5
 00F6                   .dbline -1
 00F6                   .dbline 183
 00F6           ; }
 00F6           ; 
 00F6           ; /***********************************************************
 00F6           ; *   函数说明:清屏函数                                     *
 00F6           ; *   输入:    无                                           *
 00F6           ; *   输出:    无                                           *
 00F6           ; *   调用函数:无                                           *
 00F6           ; ***********************************************************/
 00F6           ; void LCDSP027_Clear(void)
 00F6           ; {
 00F6                   .dbline 193
 00F6           ;     /*
 00F6           ;     char n = 0;
 00F6           ;     for (n = 0;n<40;n++)
 00F6           ;     {
 00F6           ;         SP027_CLK = LOW;
 00F6           ;         SP027_DI = HIGH;
 00F6           ;         SP027_CLK = HIGH;
 00F6           ;     }
 00F6           ;     */
 00F6           ;     Set_DISP_BUFF_SP027
 00F6 81E1              ldi R24,17
 00F8 8C83              std y+4,R24
 00FA 8A83              std y+2,R24
 00FC 8883              std y+0,R24
 00FE 21E1              ldi R18,17
 0100 01E1              ldi R16,17
 0102 CEDF              rcall _Set_DISP_BUFF_SP027
 0104                   .dbline -2
 0104           L17:
 0104                   .dbline 0 ; func end
 0104 2596              adiw R28,5
 0106 0895              ret
 0108                   .dbend
 0108                   .dbfunc s LCDSP027_Send_Data _LCDSP027_Send_Data fV
 0108           ;             n1 -> R20
 0108           ;           Data -> R10
                        .even
 0108           _LCDSP027_Send_Data:
 0108 AA92              st -y,R10
 010A 4A93              st -y,R20
 010C A02E              mov R10,R16
 010E                   .dbline -1
 010E                   .dbline 210
 010E           ;         (
 010E           ;             SP027_NO_ICON,
 010E           ;             SP027_NO_ICON,
 010E           ;             SP027_NO_ICON,
 010E           ;             SP027_NO_ICON,
 010E           ;             SP027_NO_ICON
 010E           ;         );
 010E           ; }
 010E           ; 
 010E           ; /***********************************************************
 010E           ; *   函数说明:发送数据函数                                 *
 010E           ; *   输入:    无                                           *
 010E           ; *   输出:    无                                           *
 010E           ; *   调用函数:无                                           *
 010E           ; ***********************************************************/
 010E           ; static void LCDSP027_Send_Data(char Data)
 010E           ; {
 010E                   .dbline 211
 010E           ;     char n = 0;
 010E                   .dbline 213
 010E           ;     
 010E           ;     for (n = 0;n<8;n++)
 010E 4427              clr R20
 0110 1AC0              rjmp L22
 0112           L19:
 0112                   .dbline 214
 0112           ;     {
 0112                   .dbline 215
 0112           ;         SP027_CLK = LOW;
 0112 88B1              in R24,0x8
 0114 8F7E              andi R24,239
 0116 88B9              out 0x8,R24
 0118                   .dbline 216
 0118           ;         if (Data<<n>>7)
 0118 0A2D              mov R16,R10
 011A 142F              mov R17,R20
 011C 00D0              rcall lsl8
 011E 202E              mov R2,R16
 0120 2694              lsr R2
 0122 2694              lsr R2
 0124 2694              lsr R2
 0126 2694              lsr R2
 0128 2694              lsr R2
 012A 2694              lsr R2
 012C 2694              lsr R2
 012E 21F0              breq L23
 0130           X3:
 0130                   .dbline 217
 0130           ;         {
 0130                   .dbline 218
 0130           ;             SP027_DI = HIGH;
 0130 88B1              in R24,0x8
 0132 8062              ori R24,32
 0134 88B9              out 0x8,R24
 0136                   .dbline 219
 0136           ;         }
 0136 03C0              rjmp L24
 0138           L23:
 0138                   .dbline 221
 0138           ;         else
 0138           ;         {
 0138                   .dbline 222
 0138           ;             SP027_DI = LOW;
 0138 88B1              in R24,0x8
 013A 8F7D              andi R24,223
 013C 88B9              out 0x8,R24
 013E                   .dbline 223
 013E           ;         }
 013E           L24:
 013E                   .dbline 224
 013E           ;         SP027_CLK = HIGH;
 013E 88B1              in R24,0x8
 0140 8061              ori R24,16
 0142 88B9              out 0x8,R24
 0144                   .dbline 225
 0144           ;     }
 0144           L20:
 0144                   .dbline 213
 0144 4395              inc R20
 0146           L22:
 0146                   .dbline 213
 0146 4830              cpi R20,8
 0148 20F3              brlo L19
 014A           X4:
 014A                   .dbline -2
 014A           L18:
 014A                   .dbline 0 ; func end
 014A 4991              ld R20,y+
 014C A990              ld R10,y+
 014E 0895              ret
 0150                   .dbsym r n1 20 c
 0150                   .dbsym r Data 10 c
 0150                   .dbend
                        .area lit(rom, con, rel)
 0000           L4:
 0000 CDCCCC3D          .word 0xcccd,0x3dcc
 0004           ; }
 0004           ; 
 0004           ; 

⌨️ 快捷键说明

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