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

📄 uart.lst

📁 采用C8051F410 的模数转换
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.02b   UART                                                                 03/06/2006 15:01:38 PAGE 1   


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

stmt 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.02b   UART                                                                 03/06/2006 15:01:38 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.02b   UART                                                                 03/06/2006 15:01:38 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         while(!RI0);

⌨️ 快捷键说明

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