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

📄 uart.lst

📁 CF8051F040开发板的 UART_test 程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   UART                                                                  07/18/2006 13:03:12 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN .\output\Uart.obj
COMPILER INVOKED BY: F:\Keil\C51\BIN\C51.EXE Uart.c LARGE BROWSE DEBUG OBJECTEXTEND OBJECT(.\output\Uart.obj)

line level    source

   1          /************************************************************************************
   2          *  Copyright (c) 2004,西安铭朗电子科技有限责任公司
   3          *            All rights reserved.
   4          *
   5          * 文件名称: Uart.c
   6          * 文件标识: none
   7          * 适用器件: C8051F040
   8          * 
   9          * 摘 要: 本文件是串口0、1子程序;使用外部22.1184MHz晶振. Uart驱动程序,包括初始化、
  10          *         波特率设置,单字节发送接收、字符串发送接受等。将跳线器JP7、短接。
  11          *         使用外部22.1184MHz晶振。
  12          * 
  13          * 当前版本:1.2
  14          * 作 者:张宁强
  15          * 完成日期:2006年1月10日
  16          *
  17          * 历史版本:1.0 
  18          * 原作者 : 李林利 卢阳
  19          * 完成日期:2005年6月1日
  20          *************************************************************************************/
  21          
  22          /************************************************************************************/
  23          // 引用外部头文件
  24          
  25          #include "c8051F040.h"
  26          #include "const.h"
  27          #include "uart.h"
  28          
  29          /************************************************************************************/
  30          
  31          /************************************************************************************
  32          // 常量及全局变量定义
  33          *************************************************************************************/
  34          
  35          /************************************************************************************
  36          *  Uart子程序
  37          *************************************************************************************/
  38          
  39          /***********************************************************************************
  40          * 函数名称:Uart0_Init;
  41          *
  42          * 函数功能描述:Uart0初始化;
  43          *              
  44          * 输入参数:unsigned char类型,发送数据波特率;
  45          *
  46          * 返回数据:none;
  47          *
  48          * 注意:    none;
  49          ************************************************************************************/
  50          void Uart0_Init(unsigned long BaudRate)    //Uart0初始化                             
  51          {   
  52   1              char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
  53   1              SFRPAGE = SFR_PAGE_0;// set SFR page 0
  54   1       
  55   1               
C51 COMPILER V7.50   UART                                                                  07/18/2006 13:03:12 PAGE 2   

  56   1               SCON0  = 0x50;                      // SCON0: 模式1, 8位UART, 使能RX
  57   1       
  58   1               SSTA0 = 0x1a;                                    // // SMOD00 = 1
  59   1               ES0=0;                                   // 关闭串口Uart0中断
  60   1               PS=0;                                            // 关闭串口Uart0中断优先权
  61   1               TI0  = 1;                        // Indicate TX0 ready
  62   1           RI0  = 0;                        // Indicate RX0 ready
  63   1      
  64   1      
  65   1               SFRPAGE = SFR_PAGE_1;// set SFR page 1
  66   1               TMR3CN&=~0x04;        // 关闭定时器Timer3
  67   1               RCAP3H =(65536-(SYSCLK/(BaudRate*16)))/256;
  68   1               RCAP3L =(65536-(SYSCLK/(BaudRate*16)))%256;
  69   1                                                        // 设置定时器Timer3重载值, Uart1_CLK=SYSCLK
  70   1               TMR3CF=0x08;             // clk = SYS_CLK;
  71   1               TMR3CN=0x04;             // 工作模式2: TX,RX 波特率模式
  72   1               
  73   1              SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
  74   1      }
  75          
  76          /***********************************************************************************
  77          * 函数名称:Uart0_Enable;
  78          *
  79          * 函数功能描述:Uart0初始化;
  80          *              
  81          * 输入参数:bool类型,打开输入1;关闭输入0;
  82          *
  83          * 返回数据:none;
  84          *
  85          * 注意:    none;
  86          ************************************************************************************/
  87          
  88          void Uart0_Enable(bool Flag)
  89          {
  90   1              char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
  91   1              SFRPAGE = SFR_PAGE_0;           // set SFR page 0
  92   1      
  93   1              if (Flag)
  94   1                      TR1=1;   // 打开串口Uart0
  95   1              else
  96   1              TR1=0;   // 关闭串口Uart0
  97   1      
  98   1              SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
  99   1      }
 100          
 101          /***********************************************************************************
 102          * 函数名称:Uart0_SendString;
 103          *
 104          * 函数功能描述:Uart0初始化;
 105          *              
 106          * 输入参数: unsigned char类型指针,发送数据;
 107          *
 108          * 返回数据:none;
 109          *
 110          * 注意:    none;
 111          ************************************************************************************/
 112          
 113          void Uart0_SendString(unsigned char  *pt)
 114          {  
 115   1              while(*pt)
 116   1              {
 117   2                      Uart0_SendByte(*pt++);
C51 COMPILER V7.50   UART                                                                  07/18/2006 13:03:12 PAGE 3   

 118   2              }
 119   1      }
 120          
 121          /***********************************************************************************
 122          * 函数名称:Uart0_SendByte;
 123          *
 124          * 函数功能描述:Uart0初始化;
 125          *              
 126          * 输入参数:unsigned char类型指针,发送数据;
 127          *
 128          * 返回数据:none;
 129          *
 130          * 注意:    none;
 131          ************************************************************************************/
 132          
 133          void Uart0_SendByte(unsigned char value)
 134          {
 135   1              char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
 136   1              SFRPAGE = SFR_PAGE_0;           // set SFR page 0
 137   1      
 138   1              while(!TI0);            // 等待发送1个字节数据完成
 139   1          SBUF0=value;            // 发送数据到uart0
 140   1              TI0=0;                                  // 清除中断标志
 141   1              SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 142   1      }
 143          
 144          /***********************************************************************************
 145          * 函数名称:Uart0_ReceiveData;
 146          *
 147          * 函数功能描述:Uart0初始化;
 148          *              
 149          * 输入参数:none;
 150          *
 151          * 返回数据:unsigned char类型,接收数据;
 152          *
 153          * 注意:    none;
 154          ************************************************************************************/
 155          unsigned char Uart0_ReceiveData(void)
 156          {
 157   1              char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
 158   1              SFRPAGE = SFR_PAGE_0;           // set SFR page 0
 159   1      
 160   1              if(RI0)
 161   1              {
 162   2                      SCON0&=~0x01;   // 清除RI1标志位
 163   2                      return SBUF0;
 164   2              }

⌨️ 快捷键说明

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