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

📄 uart.lst

📁 CF8051F040开发板的 UART_test 程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 165   1              return 0xff;
 166   1              SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 167   1      }
 168          
 169          /***********************************************************************************
 170          * 函数名称:Uart1_Init;
 171          *
 172          * 函数功能描述:Uart1初始化;
 173          *              
 174          * 输入参数:unsigned char类型,发送数据波特率;
 175          *
 176          * 返回数据:none;
 177          *
 178          * 注意:    none;
 179          ************************************************************************************/
C51 COMPILER V7.50   UART                                                                  07/18/2006 13:03:12 PAGE 4   

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

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

 304   1              SFRPAGE = SFR_PAGE_1;      
 305   1      
 306   1              if(RI1)
 307   1              {
 308   2                      SCON1&=~0x01;   // 清除RI1标志位
 309   2                      return SBUF1;
 310   2              }       
 311   1      
 312   1              SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 313   1      
 314   1              return 0xff;
 315   1      }
 316          
 317          /***********************************************************************************/
 318          // 文件结束
 319          /***********************************************************************************/
 320          


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 + -