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

📄 uart.lst

📁 基于MCS-51的电子指南针完整程序包 如果需要原理图的
💻 LST
字号:
C51 COMPILER V8.08   UART                                                                  06/18/2008 02:25:33 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN .\4.Obj\UART.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 3.Source\UART.c BROWSE INCDIR(.\2.Inc) DEBUG OBJECTEXTEND PRINT(.\5.List\UA
                    -RT.lst) OBJECT(.\4.Obj\UART.obj)

line level    source

   1          #include<reg52.h>
   2          #include<stdio.h>
   3           
   4          unsigned char COMBUF[10];                                                /* 定义接收缓冲区                
             -                  */
   5          unsigned char COMCNT = 0; 
   6          /*********************************************************************************************************
             -*******************
   7          **函数名称:InitCOM                                                                                       
             -                 **
   8          **函数功能:串口初始化函数                                                                                
             -                 **   
   9          **入口参数:BpsLvl : 波特率等级。1=600bps,2=1200bps....5=9600bps,6=19200bps...8=57600bps                  
             -                 **
  10          **出口参数:无                                                                                            
             -                 **
  11          **具体资源:无                                                                                            
             -                 **
  12          **调用程序:无                                                                                            
             -                 **
  13          **备    注:在系统时钟为晶振为22.1184M 方式1 波特率600-57600                                            
             -                 **
  14          **********************************************************************************************************
             -******************/
  15          void InitCOM(void) //串口初始化函数
  16          {
  17   1              TMOD = 0X21;                                            //设置T1为模式2,8位自动重装,T0为模式1。
  18   1              SCON = 0X50;                                            //设置串口为模式1,SM2=0,REN=1。
  19   1              PCON = 0X80;                                            //设置波特率为 9600B/S。
  20   1              TH0  = 0X01;
  21   1          TL0  = 0X01;
  22   1          TH1  = -22118400L/12/32/4800;
  23   1              TL1  = -22118400L/12/32/4800;
  24   1              ET0  = 1;
  25   1          ES   = 1;                                               //开串口中断,以便接收主机数据。
  26   1              TR0  = 1;
  27   1          TR1  = 1;
  28   1              EA   = 1;
  29   1      }
  30          
  31          /*********************************************************************************************************
             -*******************
  32          **函数名称:UartSendUart                                                                                  
             -                     **
  33          **函数功能:通过串口发送                                                                                  
             -                 **   
  34          **入口参数:要发送的一字节数据                                                                            
             -                 **
  35          **出口参数:无                                                                                            
             -                 **
  36          **具体资源:无                                                                                            
             -                 **
  37          **调用程序:无                                                                                            
             -                 **
C51 COMPILER V8.08   UART                                                                  06/18/2008 02:25:33 PAGE 2   

  38          **备    注:                                                                                              
             -                 **
  39          **********************************************************************************************************
             -******************/
  40          void UartSendByte(unsigned char dat)//串口发送函数
  41          {
  42   1              SBUF = dat;
  43   1              while (TI != 1) {
  44   2              };
  45   1      }
  46          
  47          
  48          /*********************************************************************************************************
             -*******************
  49          **函数名称:UartSendStr                                                                                   
             -                 **
  50          **函数功能:通过串口发送一串字符                                                                          
             -                 **   
  51          **入口参数:要发送的字符串                                                                                
             -                 **
  52          **出口参数:无                                                                                            
             -                 **
  53          **具体资源:无                                                                                            
             -                 **
  54          **调用程序:无                                                                                            
             -                 **
  55          **备    注:                                                                                              
             -                 **
  56          **********************************************************************************************************
             -******************/
  57          void UartSendStr(unsigned char *pStr)//串口发送函数
  58          {
  59   1              while ((*pStr) != '\0') {
  60   2              UartSendByte(*pStr);
  61   2              pStr++;
  62   2          }
  63   1      } 
  64          
  65          
  66          /*********************************************************************************************************
             -*******************
  67          **函数名称:COM_IRQ                                                                                       
             -                 **
  68          **函数功能:串口接收中断处理函数                                                                          
             -                 **   
  69          **入口参数:显示位置                                                                                      
             -                 **
  70          **出口参数:无                                                                                            
             -                 **
  71          **具体资源:无                                                                                            
             -                 **
  72          **调用程序:无                                                                                            
             -                 **
  73          **备    注:                                                                                              
             -                 **
  74          **********************************************************************************************************
             -******************/
  75          COM_IRQ(void) interrupt 4 
  76          {
  77   1          if (RI == 1) {                                                      /* 处理接收中断                   
             -                 */     
  78   2                      RI=0;                                                           /* 清除中断标志位                      
C51 COMPILER V8.08   UART                                                                  06/18/2008 02:25:33 PAGE 3   

             -            */ 
  79   2                  if (SBUF != 0x0d) {
  80   3                  UartSendByte(SBUF);
  81   3                  COMBUF[COMCNT] = SBUF; 
  82   3                  COMCNT++;  
  83   3              }else {
  84   3                  UartSendByte(0x0d);
  85   3                  UartSendByte(0x0a);
  86   3                  COMCNT = 0;
  87   3              }
  88   2          }else if (TI == 1) {
  89   2                      TI=0;
  90   2              }
  91   1      }


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