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

📄 rd_useserialbuff.lis

📁 LCD1602键盘显示模块实例
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 01D6           L14:
 01D6                   .dbline 0 ; func end
 01D6 0895              ret
 01D8                   .dbsym r Data 16 pc
 01D8                   .dbend
 01D8                   .dbfunc e UARTPeekDataFromTxBuff _UARTPeekDataFromTxBuff fc
 01D8           ;          pData -> R16,R17
                        .even
 01D8           _UARTPeekDataFromTxBuff::
 01D8                   .dbline -1
 01D8                   .dbline 247
 01D8           ; }
 01D8           ; 
 01D8           ; /***********************************************************
 01D8           ; *   函数说明:首数据察看函数                               *
 01D8           ; *   输入:    存储数据地址的指针                           *
 01D8           ; *   输出:    取值是否成功                                 *
 01D8           ; *   调用函数:五                                           *
 01D8           ; ***********************************************************/
 01D8           ; BOOL UARTPeekDataFromTxBuff(uint8 *pData)
 01D8           ; {
 01D8                   .dbline 248
 01D8           ;     SAFE_CODE_PERFORMANCE
 01D8 F894              cli
 01DA                   .dbline 248
 01DA 20900800          lds R2,_UARTTxBuffTail
 01DE 30900900          lds R3,_UARTTxBuffTail+1
 01E2 40900600          lds R4,_UARTTxBuffHead
 01E6 50900700          lds R5,_UARTTxBuffHead+1
 01EA 4214              cp R4,R2
 01EC 5304              cpc R5,R3
 01EE 59F4              brne L20
 01F0           X11:
 01F0 20900A00          lds R2,_UARTTxBuffCounter
 01F4 30900B00          lds R3,_UARTTxBuffCounter+1
 01F8 2220              tst R2
 01FA 29F4              brne L20
 01FC 3320              tst R3
 01FE 19F4              brne L20
 0200           X12:
 0200                   .dbline 248
 0200                   .dbline 248
 0200 7894              sei
 0202                   .dbline 248
 0202 0027              clr R16
 0204 0DC0              xjmp L19
 0206           L20:
 0206                   .dbline 248
 0206 80E0              ldi R24,<_UARTTxBuff
 0208 90E0              ldi R25,>_UARTTxBuff
 020A E0910600          lds R30,_UARTTxBuffHead
 020E F0910700          lds R31,_UARTTxBuffHead+1
 0212 E80F              add R30,R24
 0214 F91F              adc R31,R25
 0216 2080              ldd R2,z+0
 0218 F801              movw R30,R16
 021A 2082              std z+0,R2
 021C                   .dbline 248
 021C                   .dbline 248
 021C 7894              sei
 021E                   .dbline 258
 021E           ;     (
 021E           ;         if ((UARTTxBuffHead == UARTTxBuffTail) 
 021E           ;          && (UARTTxBuffCounter == 0))
 021E           ;         {
 021E           ;             SEI();
 021E           ;             return FALSE;
 021E           ;         }
 021E           ;         (*pData) = UARTTxBuff[UARTTxBuffHead];
 021E           ;     )         
 021E           ;     return TRUE;
 021E 01E0              ldi R16,1
 0220                   .dbline -2
 0220           L19:
 0220                   .dbline 0 ; func end
 0220 0895              ret
 0222                   .dbsym r pData 16 pc
 0222                   .dbend
 0222                   .dbfunc e UARTaddDataToTxBuff _UARTaddDataToTxBuff fc
 0222           ;           Data -> R16
                        .even
 0222           _UARTaddDataToTxBuff::
 0222                   .dbline -1
 0222                   .dbline 268
 0222           ; }
 0222           ; 
 0222           ; /***********************************************************
 0222           ; *  函数说明:向通讯输出缓冲区添加数据函数                  *
 0222           ; *  输入:    需要发送的数据                                *
 0222           ; *  输出:    无                                            *
 0222           ; *  调用函数:无                                            *
 0222           ; ***********************************************************/
 0222           ; BOOL UARTaddDataToTxBuff(uint8 Data)
 0222           ; {
 0222                   .dbline 270
 0222           ;     
 0222           ;     SAFE_CODE_PERFORMANCE
 0222 F894              cli
 0224                   .dbline 270
 0224 20900800          lds R2,_UARTTxBuffTail
 0228 30900900          lds R3,_UARTTxBuffTail+1
 022C 40900600          lds R4,_UARTTxBuffHead
 0230 50900700          lds R5,_UARTTxBuffHead+1
 0234 4214              cp R4,R2
 0236 5304              cpc R5,R3
 0238 59F4              brne L23
 023A           X13:
 023A 80910A00          lds R24,_UARTTxBuffCounter
 023E 90910B00          lds R25,_UARTTxBuffCounter+1
 0242 8032              cpi R24,32
 0244 E0E0              ldi R30,0
 0246 9E07              cpc R25,R30
 0248 19F4              brne L23
 024A           X14:
 024A                   .dbline 270
 024A                   .dbline 270
 024A 7894              sei
 024C                   .dbline 270
 024C 0027              clr R16
 024E 29C0              xjmp L22
 0250           L23:
 0250                   .dbline 270
 0250 20900800          lds R2,_UARTTxBuffTail
 0254 30900900          lds R3,_UARTTxBuffTail+1
 0258 C101              movw R24,R2
 025A 0196              adiw R24,1
 025C 90930900          sts _UARTTxBuffTail+1,R25
 0260 80930800          sts _UARTTxBuffTail,R24
 0264 80E0              ldi R24,<_UARTTxBuff
 0266 90E0              ldi R25,>_UARTTxBuff
 0268 F101              movw R30,R2
 026A E80F              add R30,R24
 026C F91F              adc R31,R25
 026E 0083              std z+0,R16
 0270                   .dbline 270
 0270 80910A00          lds R24,_UARTTxBuffCounter
 0274 90910B00          lds R25,_UARTTxBuffCounter+1
 0278 0196              adiw R24,1
 027A 90930B00          sts _UARTTxBuffCounter+1,R25
 027E 80930A00          sts _UARTTxBuffCounter,R24
 0282                   .dbline 270
 0282 80910800          lds R24,_UARTTxBuffTail
 0286 90910900          lds R25,_UARTTxBuffTail+1
 028A 8032              cpi R24,32
 028C E0E0              ldi R30,0
 028E 9E07              cpc R25,R30
 0290 31F4              brne L25
 0292           X15:
 0292                   .dbline 270
 0292                   .dbline 270
 0292 2224              clr R2
 0294 3324              clr R3
 0296 30920900          sts _UARTTxBuffTail+1,R3
 029A 20920800          sts _UARTTxBuffTail,R2
 029E                   .dbline 270
 029E           L25:
 029E                   .dbline 270
 029E                   .dbline 270
 029E 7894              sei
 02A0                   .dbline 287
 02A0           ;     (
 02A0           ;         if ((UARTTxBuffHead == UARTTxBuffTail) 
 02A0           ;          && (UARTTxBuffCounter == SERIAL_TX_BUFF_SIZE))
 02A0           ;         {
 02A0           ;             SEI();
 02A0           ;             return FALSE;
 02A0           ;         }
 02A0           ;         UARTTxBuff[UARTTxBuffTail++] = Data;
 02A0           ;     
 02A0           ;         UARTTxBuffCounter ++;
 02A0           ;     
 02A0           ;         if (UARTTxBuffTail == SERIAL_TX_BUFF_SIZE)
 02A0           ;         {
 02A0           ;             UARTTxBuffTail = 0;
 02A0           ;         }
 02A0           ;       )       
 02A0           ;     return TRUE;
 02A0 01E0              ldi R16,1
 02A2                   .dbline -2
 02A2           L22:
 02A2                   .dbline 0 ; func end
 02A2 0895              ret
 02A4                   .dbsym r Data 16 c
 02A4                   .dbend
 02A4                   .dbfunc e PROC_Serial_Transmitter _PROC_Serial_Transmitter fc
 02A4           ;  cTransmitByte -> y+0
                        .even
 02A4           _PROC_Serial_Transmitter::
 02A4 2197              sbiw R28,1
 02A6                   .dbline -1
 02A6                   .dbline 298
 02A6           ; } 
 02A6           ; 
 02A6           ; #ifdef _USE_SERIAL_TX_TRANSMITTER_PROC
 02A6           ; /***********************************************************
 02A6           ; *   函数说明:串行发送进程                                 *
 02A6           ; *   输入:    无                                           *
 02A6           ; *   输出:    是否继续执行                                 *
 02A6           ; *   调用函数:UARTgetDataFromTxBuff()                      *
 02A6           ; ***********************************************************/
 02A6           ; BOOL PROC_Serial_Transmitter(void)
 02A6           ; {
 02A6                   .dbline 299
 02A6           ;     uint8 cTransmitByte = 0;
 02A6 2224              clr R2
 02A8 2882              std y+0,R2
 02AA                   .dbline 301
 02AA           ;     
 02AA           ;     SAFE_CODE_PERFORMANCE
 02AA F894              cli
 02AC                   .dbline 301
 02AC 20900C00          lds R2,_g_bIfSerialTransmitCompleted
 02B0 2220              tst R2
 02B2 61F0              breq L28
 02B4           X16:
 02B4                   .dbline 301
 02B4                   .dbline 301
 02B4 8E01              movw R16,R28
 02B6 4DDF              xcall _UARTgetDataFromTxBuff
 02B8 0023              tst R16
 02BA 19F4              brne L30
 02BC           X17:
 02BC                   .dbline 301
 02BC                   .dbline 301
 02BC 7894              sei
 02BE                   .dbline 301
 02BE 01E0              ldi R16,1
 02C0 07C0              xjmp L27
 02C2           L30:
 02C2                   .dbline 301
 02C2                   .dbline 301
 02C2                   .dbline 301
 02C2 2224              clr R2
 02C4 20920C00          sts _g_bIfSerialTransmitCompleted,R2
 02C8                   .dbline 301
 02C8 2880              ldd R2,y+0
 02CA 2CB8              out 0xc,R2
 02CC                   .dbline 301
 02CC           L28:
 02CC                   .dbline 301
 02CC                   .dbline 301
 02CC 7894              sei
 02CE                   .dbline 320
 02CE           ;     (
 02CE           ;         if (g_bIfSerialTransmitCompleted)
 02CE           ;         {
 02CE           ;             if (!UARTgetDataFromTxBuff(&cTransmitByte))
 02CE           ;             {
 02CE           ;                 SEI();
 02CE           ;                 SERIAL_DISABLE_WRITE
 02CE           ;                 return TRUE;
 02CE           ;             }
 02CE           ;             else
 02CE           ;             {
 02CE           ;                 SERIAL_ENABLE_WRITE
 02CE           ;             }
 02CE           ;             g_bIfSerialTransmitCompleted = FALSE;
 02CE           ;             UDR_PORT = cTransmitByte;
 02CE           ;         }
 02CE           ;     )
 02CE           ;     
 02CE           ;     return TRUE;
 02CE 01E0              ldi R16,1
 02D0                   .dbline -2
 02D0           L27:
 02D0                   .dbline 0 ; func end
 02D0 2196              adiw R28,1
 02D2 0895              ret
 02D4                   .dbsym l cTransmitByte 0 c
 02D4                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseSerialBuff.c
 0000           _UARTTxBuff:
 0000                   .blkb 32
 0020                   .dbsym s UARTTxBuff _UARTTxBuff A[32:32]c
 0020           _UARTRxBuff:
 0020                   .blkb 32
 0040                   .dbsym s UARTRxBuff _UARTRxBuff A[32:32]c
 0040           ; }
 0040           ; #endif
 0040           ; 
 0040           ; #endif

⌨️ 快捷键说明

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