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

📄 model.lst

📁 液晶模块LCD1602配合键盘显示的一个实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0197)         UARTRxBuff[UARTRxBuffTail++] = Data;
(0198)     
(0199)         UARTRxBuffCounter++;
(0200)     
(0201)         if (UARTRxBuffTail == SERIAL_RX_BUFF_SIZE)
(0202)         {
(0203)             UARTRxBuffTail = 0;
(0204)         }
(0205) 	)	
(0206)     return TRUE;
     13F E001      LDI	R16,1
     140 9508      RET
(0207) }
(0208) #endif
(0209) 
(0210) #ifdef _USE_SERIAL_TX_BUFF
(0211) /***********************************************************
(0212) *  函数说明:发送中断取值函数                              *
(0213) *  输入:    存储取出数据地址的指针                        *
(0214) *  输出:    取值是否成功                                  *
(0215) *  调用函数:无                                            *
(0216) ***********************************************************/
(0217) BOOL UARTgetDataFromTxBuff(uint8 *Data)
(0218) {
(0219) 
(0220)     SAFE_CODE_PERFORMANCE
_UARTgetDataFromTxBuff:
  Data                 --> R16
     141 94F8      BCLR	7
     142 9020 010A LDS	R2,UARTTxBuffTail
     144 9030 010B LDS	R3,UARTTxBuffTail+1
     146 9040 0108 LDS	R4,RD_UseSerialBuff.c:UARTTxBuffHead
     148 9050 0109 LDS	R5,RD_UseSerialBuff.c:UARTTxBuffHead+1
     14A 1442      CP	R4,R2
     14B 0453      CPC	R5,R3
     14C F459      BNE	0x0158
     14D 9020 010C LDS	R2,RD_UseSerialBuff.c:UARTTxBuffCounter
     14F 9030 010D LDS	R3,RD_UseSerialBuff.c:UARTTxBuffCounter+1
     151 2022      TST	R2
     152 F429      BNE	0x0158
     153 2033      TST	R3
     154 F419      BNE	0x0158
     155 9478      BSET	7
     156 2700      CLR	R16
     157 C02B      RJMP	0x0183
     158 9020 0108 LDS	R2,RD_UseSerialBuff.c:UARTTxBuffHead
     15A 9030 0109 LDS	R3,RD_UseSerialBuff.c:UARTTxBuffHead+1
     15C 01C1      MOVW	R24,R2
     15D 9601      ADIW	R24,1
     15E 9390 0109 STS	RD_UseSerialBuff.c:UARTTxBuffHead+1,R25
     160 9380 0108 STS	RD_UseSerialBuff.c:UARTTxBuffHead,R24
     162 E189      LDI	R24,0x19
     163 E091      LDI	R25,1
     164 01F1      MOVW	R30,R2
     165 0FE8      ADD	R30,R24
     166 1FF9      ADC	R31,R25
     167 8020      LDD	R2,Z+0
     168 01F8      MOVW	R30,R16
     169 8220      STD	Z+0,R2
     16A 9180 010C LDS	R24,RD_UseSerialBuff.c:UARTTxBuffCounter
     16C 9190 010D LDS	R25,RD_UseSerialBuff.c:UARTTxBuffCounter+1
     16E 9701      SBIW	R24,1
     16F 9390 010D STS	RD_UseSerialBuff.c:UARTTxBuffCounter+1,R25
     171 9380 010C STS	RD_UseSerialBuff.c:UARTTxBuffCounter,R24
     173 9180 0108 LDS	R24,RD_UseSerialBuff.c:UARTTxBuffHead
     175 9190 0109 LDS	R25,RD_UseSerialBuff.c:UARTTxBuffHead+1
     177 3880      CPI	R24,0x80
     178 E0E0      LDI	R30,0
     179 079E      CPC	R25,R30
     17A F431      BNE	0x0181
     17B 2422      CLR	R2
     17C 2433      CLR	R3
     17D 9230 0109 STS	RD_UseSerialBuff.c:UARTTxBuffHead+1,R3
     17F 9220 0108 STS	RD_UseSerialBuff.c:UARTTxBuffHead,R2
     181 9478      BSET	7
(0221)     (
(0222)         if ((UARTTxBuffHead == UARTTxBuffTail) 
(0223)          && (UARTTxBuffCounter == 0))
(0224)         {
(0225)             SEI();
(0226)             return FALSE;
(0227)         }
(0228)         (*Data) = UARTTxBuff[UARTTxBuffHead++];
(0229)     
(0230)         UARTTxBuffCounter--;
(0231)     
(0232)         if (UARTTxBuffHead == SERIAL_TX_BUFF_SIZE)
(0233)         {
(0234)             UARTTxBuffHead = 0;
(0235)         }
(0236)     )		
(0237)     return TRUE;
     182 E001      LDI	R16,1
     183 9508      RET
(0238) }
(0239) 
(0240) /***********************************************************
(0241) *   函数说明:首数据察看函数                               *
(0242) *   输入:    存储数据地址的指针                           *
(0243) *   输出:    取值是否成功                                 *
(0244) *   调用函数:五                                           *
(0245) ***********************************************************/
(0246) BOOL UARTPeekDataFromTxBuff(uint8 *pData)
(0247) {
(0248)     SAFE_CODE_PERFORMANCE
_UARTPeekDataFromTxBuff:
  pData                --> R16
     184 94F8      BCLR	7
     185 9020 010A LDS	R2,UARTTxBuffTail
     187 9030 010B LDS	R3,UARTTxBuffTail+1
     189 9040 0108 LDS	R4,RD_UseSerialBuff.c:UARTTxBuffHead
     18B 9050 0109 LDS	R5,RD_UseSerialBuff.c:UARTTxBuffHead+1
     18D 1442      CP	R4,R2
     18E 0453      CPC	R5,R3
     18F F459      BNE	0x019B
     190 9020 010C LDS	R2,RD_UseSerialBuff.c:UARTTxBuffCounter
     192 9030 010D LDS	R3,RD_UseSerialBuff.c:UARTTxBuffCounter+1
     194 2022      TST	R2
     195 F429      BNE	0x019B
     196 2033      TST	R3
     197 F419      BNE	0x019B
     198 9478      BSET	7
     199 2700      CLR	R16
     19A C00D      RJMP	0x01A8
     19B E189      LDI	R24,0x19
     19C E091      LDI	R25,1
     19D 91E0 0108 LDS	R30,RD_UseSerialBuff.c:UARTTxBuffHead
     19F 91F0 0109 LDS	R31,RD_UseSerialBuff.c:UARTTxBuffHead+1
     1A1 0FE8      ADD	R30,R24
     1A2 1FF9      ADC	R31,R25
     1A3 8020      LDD	R2,Z+0
     1A4 01F8      MOVW	R30,R16
     1A5 8220      STD	Z+0,R2
     1A6 9478      BSET	7
(0249)     (
(0250)         if ((UARTTxBuffHead == UARTTxBuffTail) 
(0251)          && (UARTTxBuffCounter == 0))
(0252)         {
(0253)             SEI();
(0254)             return FALSE;
(0255)         }
(0256)         (*pData) = UARTTxBuff[UARTTxBuffHead];
(0257)     )		
(0258)     return TRUE;
     1A7 E001      LDI	R16,1
     1A8 9508      RET
(0259) }
(0260) 
(0261) /***********************************************************
(0262) *  函数说明:向通讯输出缓冲区添加数据函数                  *
(0263) *  输入:    需要发送的数据                                *
(0264) *  输出:    无                                            *
(0265) *  调用函数:无                                            *
(0266) ***********************************************************/
(0267) BOOL UARTaddDataToTxBuff(uint8 Data)
(0268) {
(0269)     
(0270)     SAFE_CODE_PERFORMANCE
_UARTaddDataToTxBuff:
  Data                 --> R16
     1A9 94F8      BCLR	7
     1AA 9020 010A LDS	R2,UARTTxBuffTail
     1AC 9030 010B LDS	R3,UARTTxBuffTail+1
     1AE 9040 0108 LDS	R4,RD_UseSerialBuff.c:UARTTxBuffHead
     1B0 9050 0109 LDS	R5,RD_UseSerialBuff.c:UARTTxBuffHead+1
     1B2 1442      CP	R4,R2
     1B3 0453      CPC	R5,R3
     1B4 F459      BNE	0x01C0
     1B5 9180 010C LDS	R24,RD_UseSerialBuff.c:UARTTxBuffCounter
     1B7 9190 010D LDS	R25,RD_UseSerialBuff.c:UARTTxBuffCounter+1
     1B9 3880      CPI	R24,0x80
     1BA E0E0      LDI	R30,0
     1BB 079E      CPC	R25,R30
     1BC F419      BNE	0x01C0
     1BD 9478      BSET	7
     1BE 2700      CLR	R16
     1BF C029      RJMP	0x01E9
     1C0 9020 010A LDS	R2,UARTTxBuffTail
     1C2 9030 010B LDS	R3,UARTTxBuffTail+1
     1C4 01C1      MOVW	R24,R2
     1C5 9601      ADIW	R24,1
     1C6 9390 010B STS	UARTTxBuffTail+1,R25
     1C8 9380 010A STS	UARTTxBuffTail,R24
     1CA E189      LDI	R24,0x19
     1CB E091      LDI	R25,1
     1CC 01F1      MOVW	R30,R2
     1CD 0FE8      ADD	R30,R24
     1CE 1FF9      ADC	R31,R25
     1CF 8300      STD	Z+0,R16
     1D0 9180 010C LDS	R24,RD_UseSerialBuff.c:UARTTxBuffCounter
     1D2 9190 010D LDS	R25,RD_UseSerialBuff.c:UARTTxBuffCounter+1
     1D4 9601      ADIW	R24,1
     1D5 9390 010D STS	RD_UseSerialBuff.c:UARTTxBuffCounter+1,R25
     1D7 9380 010C STS	RD_UseSerialBuff.c:UARTTxBuffCounter,R24
     1D9 9180 010A LDS	R24,UARTTxBuffTail
     1DB 9190 010B LDS	R25,UARTTxBuffTail+1
     1DD 3880      CPI	R24,0x80
     1DE E0E0      LDI	R30,0
     1DF 079E      CPC	R25,R30
     1E0 F431      BNE	0x01E7
     1E1 2422      CLR	R2
     1E2 2433      CLR	R3
     1E3 9230 010B STS	UARTTxBuffTail+1,R3
     1E5 9220 010A STS	UARTTxBuffTail,R2
     1E7 9478      BSET	7
(0271)     (
(0272)         if ((UARTTxBuffHead == UARTTxBuffTail) 
(0273)          && (UARTTxBuffCounter == SERIAL_TX_BUFF_SIZE))
(0274)         {
(0275)             SEI();
(0276)             return FALSE;
(0277)         }
(0278)         UARTTxBuff[UARTTxBuffTail++] = Data;
(0279)     
(0280)         UARTTxBuffCounter ++;
(0281)     
(0282)         if (UARTTxBuffTail == SERIAL_TX_BUFF_SIZE)
(0283)         {
(0284)             UARTTxBuffTail = 0;
(0285)         }
(0286) 	)	
(0287)     return TRUE;
     1E8 E001      LDI	R16,1
     1E9 9508      RET
_PROC_Serial_Transmitter:
  cTransmitByte        --> Y,+0
     1EA 9721      SBIW	R28,1
(0288) } 
(0289) 
(0290) #ifdef _USE_SERIAL_TX_TRANSMITTER_PROC
(0291) /***********************************************************
(0292) *   函数说明:串行发送进程                                 *
(0293) *   输入:    无                                           *
(0294) *   输出:    是否继续执行                                 *
(0295) *   调用函数:UARTgetDataFromTxBuff()                      *
(0296) ***********************************************************/
(0297) BOOL PROC_Serial_Transmitter(void)
(0298) {
(0299)     uint8 cTransmitByte = 0;
     1EB 2422      CLR	R2
     1EC 8228      STD	Y+0,R2
(0300)     
(0301)     SAFE_CODE_PERFORMANCE
     1ED 94F8      BCLR	7
     1EE 9020 010E LDS	R2,g_bIfSerialTransmitCompleted
     1F0 2022      TST	R2
     1F1 F069      BEQ	0x01FF
     1F2 018E      MOVW	R16,R28
     1F3 DF4D      RCALL	_UARTgetDataFromTxBuff
     1F4 2300      TST	R16
     1F5 F419      BNE	0x01F9
     1F6 9478      BSET	7
     1F7 E001      LDI	R16,1
     1F8 C008      RJMP	0x0201
     1F9 2422      CLR	R2
     1FA 9220 010E STS	g_bIfSerialTransmitCompleted,R2
     1FC 8028      LDD	R2,Y+0
     1FD 9220 00C6 STS	0x00C6,R2
     1FF 9478      BSET	7
(0302)     (
(0303)         if (g_bIfSerialTransmitCompleted)
(0304)         {
(0305)             if (!UARTgetDataFromTxBuff(&cTransmitByte))
(0306)             {
(0307)                 SEI();
(0308)                 SERIAL_DISABLE_WRITE
(0309)                 return TRUE;
(0310)             }
(0311)             else
(0312)             {
(0313)                 SERIAL_ENABLE_WRITE
(0314)             }
(0315)             g_bIfSerialTransmitCompleted = FALSE;
(0316)             UDR_PORT = cTransmitByte;
(0317)         }
(0318)     )
(0319)     
(0320)     return TRUE;
     200 E001      LDI	R16,1
     201 9621      ADIW	R28,1
     202 9508      RET
FILE: H:\单片机\工程模板\Project_Template_With_Schedule_And_COM_Interface\HD_Support.c
(0001) /***********************************************************
(0002) *   函数库说明:底层硬件初始化函数库                       *
(0003) *   版本:                                                 *
(0004) *   作者:                                                 *
(0005) *   创建日期:                                             *
(0006) * -------------------------------------------------------- *
(0007) *  [硬件说明]                                              *
(0008) *   处理器:                                               *
(0009) *   系统时钟:                                             *
(0010) * -------------------------------------------------------- *
(0011) *  [支 持 库]                                              *

⌨️ 快捷键说明

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