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

📄 rd_useserialbuff.lis

📁 LCD1602键盘显示模块实例
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0086                   .dbend
 0086                   .dbfunc e UARTPeekDataFromRxBuff _UARTPeekDataFromRxBuff fc
 0086           ;          pData -> R16,R17
                        .even
 0086           _UARTPeekDataFromRxBuff::
 0086                   .dbline -1
 0086                   .dbline 167
 0086           ; }
 0086           ; 
 0086           ; /***********************************************************
 0086           ; *   函数说明:接收缓冲区首数据察看函数                     *
 0086           ; *   输入:    存储取出数据地址的指针                       *
 0086           ; *   输出:    取值是否成功                                 *
 0086           ; *   调用函数:无                                           *
 0086           ; ***********************************************************/
 0086           ; BOOL UARTPeekDataFromRxBuff(uint8 *pData)
 0086           ; {
 0086                   .dbline 168
 0086           ;     SAFE_CODE_PERFORMANCE
 0086 F894              cli
 0088                   .dbline 168
 0088 20900200          lds R2,_UARTRxBuffTail
 008C 30900300          lds R3,_UARTRxBuffTail+1
 0090 40900000          lds R4,_UARTRxBuffHead
 0094 50900100          lds R5,_UARTRxBuffHead+1
 0098 4214              cp R4,R2
 009A 5304              cpc R5,R3
 009C 59F4              brne L7
 009E           X3:
 009E 20900400          lds R2,_UARTRxBuffCounter
 00A2 30900500          lds R3,_UARTRxBuffCounter+1
 00A6 2220              tst R2
 00A8 29F4              brne L7
 00AA 3320              tst R3
 00AC 19F4              brne L7
 00AE           X4:
 00AE                   .dbline 168
 00AE                   .dbline 168
 00AE 7894              sei
 00B0                   .dbline 168
 00B0 0027              clr R16
 00B2 0DC0              xjmp L6
 00B4           L7:
 00B4                   .dbline 168
 00B4 80E0              ldi R24,<_UARTRxBuff
 00B6 90E0              ldi R25,>_UARTRxBuff
 00B8 E0910000          lds R30,_UARTRxBuffHead
 00BC F0910100          lds R31,_UARTRxBuffHead+1
 00C0 E80F              add R30,R24
 00C2 F91F              adc R31,R25
 00C4 2080              ldd R2,z+0
 00C6 F801              movw R30,R16
 00C8 2082              std z+0,R2
 00CA                   .dbline 168
 00CA                   .dbline 168
 00CA 7894              sei
 00CC                   .dbline 178
 00CC           ;     (
 00CC           ;         if ((UARTRxBuffHead == UARTRxBuffTail) 
 00CC           ;          && (UARTRxBuffCounter == 0))
 00CC           ;         {
 00CC           ;             SEI();
 00CC           ;             return FALSE;
 00CC           ;         }
 00CC           ;         (*pData) = UARTRxBuff[UARTRxBuffHead];
 00CC           ;     )         
 00CC           ;     return TRUE;
 00CC 01E0              ldi R16,1
 00CE                   .dbline -2
 00CE           L6:
 00CE                   .dbline 0 ; func end
 00CE 0895              ret
 00D0                   .dbsym r pData 16 pc
 00D0                   .dbend
 00D0                   .dbfunc e UARTaddDataToRxBuff _UARTaddDataToRxBuff fc
 00D0           ;           Data -> R16
                        .even
 00D0           _UARTaddDataToRxBuff::
 00D0                   .dbline -1
 00D0                   .dbline 188
 00D0           ; }
 00D0           ; 
 00D0           ; /***********************************************************
 00D0           ; *  函数说明:向通讯输入缓冲区添加数据函数                  *
 00D0           ; *  输入:    收到的数据                                    *
 00D0           ; *  输出:    无                                            *
 00D0           ; *  调用函数:无                                            *
 00D0           ; ***********************************************************/
 00D0           ; BOOL UARTaddDataToRxBuff(uint8  Data)
 00D0           ; {
 00D0                   .dbline 189
 00D0           ;     SAFE_CODE_PERFORMANCE
 00D0 F894              cli
 00D2                   .dbline 189
 00D2 20900200          lds R2,_UARTRxBuffTail
 00D6 30900300          lds R3,_UARTRxBuffTail+1
 00DA 40900000          lds R4,_UARTRxBuffHead
 00DE 50900100          lds R5,_UARTRxBuffHead+1
 00E2 4214              cp R4,R2
 00E4 5304              cpc R5,R3
 00E6 59F4              brne L10
 00E8           X5:
 00E8 80910400          lds R24,_UARTRxBuffCounter
 00EC 90910500          lds R25,_UARTRxBuffCounter+1
 00F0 8032              cpi R24,32
 00F2 E0E0              ldi R30,0
 00F4 9E07              cpc R25,R30
 00F6 19F4              brne L10
 00F8           X6:
 00F8                   .dbline 189
 00F8                   .dbline 189
 00F8 7894              sei
 00FA                   .dbline 189
 00FA 0027              clr R16
 00FC 29C0              xjmp L9
 00FE           L10:
 00FE                   .dbline 189
 00FE 20900200          lds R2,_UARTRxBuffTail
 0102 30900300          lds R3,_UARTRxBuffTail+1
 0106 C101              movw R24,R2
 0108 0196              adiw R24,1
 010A 90930300          sts _UARTRxBuffTail+1,R25
 010E 80930200          sts _UARTRxBuffTail,R24
 0112 80E0              ldi R24,<_UARTRxBuff
 0114 90E0              ldi R25,>_UARTRxBuff
 0116 F101              movw R30,R2
 0118 E80F              add R30,R24
 011A F91F              adc R31,R25
 011C 0083              std z+0,R16
 011E                   .dbline 189
 011E 80910400          lds R24,_UARTRxBuffCounter
 0122 90910500          lds R25,_UARTRxBuffCounter+1
 0126 0196              adiw R24,1
 0128 90930500          sts _UARTRxBuffCounter+1,R25
 012C 80930400          sts _UARTRxBuffCounter,R24
 0130                   .dbline 189
 0130 80910200          lds R24,_UARTRxBuffTail
 0134 90910300          lds R25,_UARTRxBuffTail+1
 0138 8032              cpi R24,32
 013A E0E0              ldi R30,0
 013C 9E07              cpc R25,R30
 013E 31F4              brne L12
 0140           X7:
 0140                   .dbline 189
 0140                   .dbline 189
 0140 2224              clr R2
 0142 3324              clr R3
 0144 30920300          sts _UARTRxBuffTail+1,R3
 0148 20920200          sts _UARTRxBuffTail,R2
 014C                   .dbline 189
 014C           L12:
 014C                   .dbline 189
 014C                   .dbline 189
 014C 7894              sei
 014E                   .dbline 206
 014E           ;     (
 014E           ;         if ((UARTRxBuffHead == UARTRxBuffTail) 
 014E           ;          && (UARTRxBuffCounter == SERIAL_RX_BUFF_SIZE))
 014E           ;         {
 014E           ;             SEI();
 014E           ;             return FALSE;
 014E           ;         }
 014E           ;         UARTRxBuff[UARTRxBuffTail++] = Data;
 014E           ;     
 014E           ;         UARTRxBuffCounter++;
 014E           ;     
 014E           ;         if (UARTRxBuffTail == SERIAL_RX_BUFF_SIZE)
 014E           ;         {
 014E           ;             UARTRxBuffTail = 0;
 014E           ;         }
 014E           ;       )       
 014E           ;     return TRUE;
 014E 01E0              ldi R16,1
 0150                   .dbline -2
 0150           L9:
 0150                   .dbline 0 ; func end
 0150 0895              ret
 0152                   .dbsym r Data 16 c
 0152                   .dbend
 0152                   .dbfunc e UARTgetDataFromTxBuff _UARTgetDataFromTxBuff fc
 0152           ;           Data -> R16,R17
                        .even
 0152           _UARTgetDataFromTxBuff::
 0152                   .dbline -1
 0152                   .dbline 218
 0152           ; }
 0152           ; #endif
 0152           ; 
 0152           ; #ifdef _USE_SERIAL_TX_BUFF
 0152           ; /***********************************************************
 0152           ; *  函数说明:发送中断取值函数                              *
 0152           ; *  输入:    存储取出数据地址的指针                        *
 0152           ; *  输出:    取值是否成功                                  *
 0152           ; *  调用函数:无                                            *
 0152           ; ***********************************************************/
 0152           ; BOOL UARTgetDataFromTxBuff(uint8 *Data)
 0152           ; {
 0152                   .dbline 220
 0152           ; 
 0152           ;     SAFE_CODE_PERFORMANCE
 0152 F894              cli
 0154                   .dbline 220
 0154 20900800          lds R2,_UARTTxBuffTail
 0158 30900900          lds R3,_UARTTxBuffTail+1
 015C 40900600          lds R4,_UARTTxBuffHead
 0160 50900700          lds R5,_UARTTxBuffHead+1
 0164 4214              cp R4,R2
 0166 5304              cpc R5,R3
 0168 59F4              brne L15
 016A           X8:
 016A 20900A00          lds R2,_UARTTxBuffCounter
 016E 30900B00          lds R3,_UARTTxBuffCounter+1
 0172 2220              tst R2
 0174 29F4              brne L15
 0176 3320              tst R3
 0178 19F4              brne L15
 017A           X9:
 017A                   .dbline 220
 017A                   .dbline 220
 017A 7894              sei
 017C                   .dbline 220
 017C 0027              clr R16
 017E 2BC0              xjmp L14
 0180           L15:
 0180                   .dbline 220
 0180 20900600          lds R2,_UARTTxBuffHead
 0184 30900700          lds R3,_UARTTxBuffHead+1
 0188 C101              movw R24,R2
 018A 0196              adiw R24,1
 018C 90930700          sts _UARTTxBuffHead+1,R25
 0190 80930600          sts _UARTTxBuffHead,R24
 0194 80E0              ldi R24,<_UARTTxBuff
 0196 90E0              ldi R25,>_UARTTxBuff
 0198 F101              movw R30,R2
 019A E80F              add R30,R24
 019C F91F              adc R31,R25
 019E 2080              ldd R2,z+0
 01A0 F801              movw R30,R16
 01A2 2082              std z+0,R2
 01A4                   .dbline 220
 01A4 80910A00          lds R24,_UARTTxBuffCounter
 01A8 90910B00          lds R25,_UARTTxBuffCounter+1
 01AC 0197              sbiw R24,1
 01AE 90930B00          sts _UARTTxBuffCounter+1,R25
 01B2 80930A00          sts _UARTTxBuffCounter,R24
 01B6                   .dbline 220
 01B6 80910600          lds R24,_UARTTxBuffHead
 01BA 90910700          lds R25,_UARTTxBuffHead+1
 01BE 8032              cpi R24,32
 01C0 E0E0              ldi R30,0
 01C2 9E07              cpc R25,R30
 01C4 31F4              brne L17
 01C6           X10:
 01C6                   .dbline 220
 01C6                   .dbline 220
 01C6 2224              clr R2
 01C8 3324              clr R3
 01CA 30920700          sts _UARTTxBuffHead+1,R3
 01CE 20920600          sts _UARTTxBuffHead,R2
 01D2                   .dbline 220
 01D2           L17:
 01D2                   .dbline 220
 01D2                   .dbline 220
 01D2 7894              sei
 01D4                   .dbline 237
 01D4           ;     (
 01D4           ;         if ((UARTTxBuffHead == UARTTxBuffTail) 
 01D4           ;          && (UARTTxBuffCounter == 0))
 01D4           ;         {
 01D4           ;             SEI();
 01D4           ;             return FALSE;
 01D4           ;         }
 01D4           ;         (*Data) = UARTTxBuff[UARTTxBuffHead++];
 01D4           ;     
 01D4           ;         UARTTxBuffCounter--;
 01D4           ;     
 01D4           ;         if (UARTTxBuffHead == SERIAL_TX_BUFF_SIZE)
 01D4           ;         {
 01D4           ;             UARTTxBuffHead = 0;
 01D4           ;         }
 01D4           ;     )         
 01D4           ;     return TRUE;
 01D4 01E0              ldi R16,1
 01D6                   .dbline -2

⌨️ 快捷键说明

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