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

📄 uart.lst

📁 模仿ucos ii和RTX Tiny写的一个小操作系统
💻 LST
字号:
C51 COMPILER V8.08   UART                                                                  05/09/2008 17:57:19 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN UART.OBJ
COMPILER INVOKED BY: C:\Keil808\C51\BIN\C51.EXE UART.c ROM(COMPACT) DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include <AT89X52.H>
   3          
   4          #include "os_core.h"
   5          #include "main.h"
   6          #include "task_switch.h"
   7          #include "sem.h"
   8          #include "q.h"
   9          #include "uart.h"
  10          
  11          
  12          //////////////////////////////串口初始化函数,9600bps波特率,使用24M晶体///////////////
  13          void uart_init(void)
  14          {
  15   1       TMOD=(TMOD & 0x0F)|0x20;         //定时器1工作在模式2
  16   1       SCON=0x50;    //串口工作在模式1
  17   1       ES=0;         //禁止串行中断
  18   1       PCON|=0x80;    //串口波特率加倍
  19   1       TH1=0xF3;    
  20   1       TL1=0xF3;     //串口波特率为9600
  21   1       TR1=1;        //启动定时器1
  22   1       REN=1;        //允许接收  
  23   1      }
  24          
  25          //////////////////////////////// 通过串口发送1字节数据/////////////////////////////////
  26          void sendbyte(uint8 byte) reentrant
  27          {
  28   1         TI=0;              //清TI
  29   1         SBUF=byte;       //发送数据
  30   1         while(!TI);        //等待发送完毕
  31   1      }
  32          
  33          /////////////////////////////////从串口接收一字节数据///////////////////////////////////
  34          uint8  getbyte(void)reentrant
  35          {
  36   1       uint8 temp;          //临时变量
  37   1       while(1)                     //一直等待,直到接收到数据才返回
  38   1        {
  39   2         if(RI)                     //如果串口收到数据
  40   2          {                         //如果收到,则
  41   3           temp=SBUF;               //读回数据
  42   3           RI=0;                    //清RI
  43   3           return temp;             //返回数据
  44   3          }
  45   2          else
  46   2          {                       
  47   3            OSWait(K_TMO,1);          //延迟一个时钟节拍
  48   3          }
  49   2        }
  50   1      }
  51          
  52          
  53          ////////////////////////////// 发送一个字符串 ///////////////////////////////////////////
  54          void prints(unsigned char * s) reentrant
  55          {
C51 COMPILER V8.08   UART                                                                  05/09/2008 17:57:19 PAGE 2   

  56   1       uint8  i=0;  
  57   1        while(s[i]!=0)    //判断字符串是否结束
  58   1        {
  59   2         if(s[i]=='\n')
  60   2         s[i]='\r'; 
  61   2         TI=0;
  62   2         SBUF=s[i];      //发送一字节
  63   2         while(!TI);     //等待该发送完毕
  64   2         i++;            //移到下字节
  65   2         }
  66   1      }
  67          
  68          
  69          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    187    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -