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

📄 uart.lst

📁 采用C8051F410 的模数转换
💻 LST
📖 第 1 页 / 共 2 页
字号:
 161   1         SCON0&=~0x01;   // 清除RI1标志位
 162   1         return SBUF0;
 163   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 164   1      }
 165          
 166          /***********************************************************************************
 167          * 函数名称:Uart1_Init;
 168          *
 169          * 函数功能描述:Uart1初始化;
 170          *              
 171          * 输入参数:unsigned char类型,发送数据波特率;
 172          *
 173          * 返回数据:none;
 174          *
 175          * 注意:    none;
 176          ************************************************************************************/
 177          void Uart1_Init(unsigned long BaudRate)    //Uart0初始化                             
 178          {   
 179   1      
C51 COMPILER V7.02b   UART                                                                 03/06/2006 15:01:38 PAGE 4   

 180   1         
 181   1         char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
 182   1         SFRPAGE = SFR_PAGE_0;           // set SFR page 0
 183   1      
 184   1         TR1=0;                              // 关闭定时器Timer1
 185   1         ET1=0;                              // 关闭定时器Timer1中断 
 186   1         PT1=0;                              // 关闭定时器Timer1中断优先权
 187   1         TMOD&= 0x0f;                        // TMOD: 定时器1, 模式2, 8位重载 
 188   1         TMOD|= 0x20;                        // TMOD: 定时器1, 模式2, 8位重载 
 189   1       
 190   1          if (BaudRate>=172800)
 191   1         {
 192   2            CKCON |= 0x10;                       // 定时器Timer1使用系统时钟作为时间基准
 193   2            TH1    = -(SYSCLK/(BaudRate*2));     // 设置定时器Timer1重载值
 194   2         }
 195   1         else if ((BaudRate<172800)&&(BaudRate>=14400))
 196   1         {
 197   2            CKCON = 0x00;           // 定时器Timer1使用系统时钟作为时间/12基准
 198   2            TH1    = -(SYSCLK/(BaudRate*2*12));     // 设置定时器Timer1重载值
 199   2         }
 200   1         else
 201   1         {
 202   2      
 203   2            CKCON = 0x02;              // 定时器Timer1使用系统时钟作为时间/48基准
 204   2            TH1    = -(SYSCLK/(BaudRate*2*48));     // 设置定时器Timer1重载值
 205   2         }
 206   1         
 207   1         ES0=0;                         // 关闭串口Uart0中断
 208   1         PS=0;                          // 关闭串口Uart0中断优先权
 209   1          TR1=1;                     // 打开串口Uart1
 210   1            
 211   1         
 212   1         SFRPAGE = SFR_PAGE_1;// set SFR page 1
 213   1         SCON1=0x52;      // SCON0:模式1, 8字节UART, 打开RX, TI1=1,RI1=0
 214   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 215   1      }
 216          
 217          /***********************************************************************************
 218          * 函数名称:Uart1_Enable;
 219          *
 220          * 函数功能描述:Uart0初始化;
 221          *              
 222          * 输入参数:bool类型,打开输入1;关闭输入0;
 223          *
 224          * 返回数据:none;
 225          *
 226          * 注意:    none;
 227          ************************************************************************************/
 228          
 229          void Uart1_Enable(bool Flag)
 230          {
 231   1         char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
 232   1         SFRPAGE = SFR_PAGE_2;      
 233   1      
 234   1         if (Flag)
 235   1            TMR4CN|=0x04;      // 打开Uart1
 236   1         else
 237   1              TMR4CN&=~0x04;     // 关闭Uart1
 238   1      
 239   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 240   1      }
 241          
C51 COMPILER V7.02b   UART                                                                 03/06/2006 15:01:38 PAGE 5   

 242          /***********************************************************************************
 243          * 函数名称: Uart1_SendString;
 244          *
 245          * 函数功能描述:Uart0初始化;
 246          *              
 247          * 输入参数:unsigned char类型指针,发送数据;
 248          *
 249          * 返回数据:none;
 250          *
 251          * 注意:    none;
 252          ************************************************************************************/
 253          
 254          void Uart1_SendString(unsigned char *pt)
 255          {
 256   1         while(*pt)
 257   1         {
 258   2            Uart1_SendByte(*pt++);
 259   2         }
 260   1      }
 261          
 262          /***********************************************************************************
 263          * 函数名称:Uart1_SendByte;
 264          *
 265          * 函数功能描述:Uart0初始化;
 266          *              
 267          * 输入参数:unsigned char类型指针,发送数据;
 268          *
 269          * 返回数据:none;
 270          *
 271          * 注意:    none;
 272          ************************************************************************************/
 273          
 274          void Uart1_SendByte(unsigned char value)
 275          {
 276   1          char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
 277   1         SFRPAGE = SFR_PAGE_1;      
 278   1         
 279   1         while(!(TI1));          // 等待发送1个字节数据完成
 280   1          SBUF1=value;              // 发送数据到uart1
 281   1           SCON1&=~0x02;              // 清除中断标志
 282   1      
 283   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 284   1      }
 285          
 286          /***********************************************************************************
 287          * 函数名称:Uart1_ReceiveData;
 288          *
 289          * 函数功能描述:Uart0初始化;
 290          *              
 291          * 输入参数:none;
 292          *
 293          * 返回数据:unsigned char类型,接收数据;
 294          *
 295          * 注意:    none;
 296          ************************************************************************************/
 297          
 298          unsigned char Uart1_ReceiveData(void)
 299          {
 300   1         char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
 301   1         SFRPAGE = SFR_PAGE_1;      
 302   1      
 303   1         while(!RI1);
C51 COMPILER V7.02b   UART                                                                 03/06/2006 15:01:38 PAGE 6   

 304   1         SCON1&=~0x01;   // 清除RI1标志位
 305   1         return SBUF1;
 306   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 307   1      }
 308          
 309          /***********************************************************************************/
 310          // 文件结束
 311          /***********************************************************************************/
 312          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    557    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      14
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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