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

📄 uart2.lst

📁 433.92m无线模块的接收到有效数据后
💻 LST
字号:
C51 COMPILER V7.02b   UART2                                                                08/06/2007 21:11:12 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE UART2
OBJECT MODULE PLACED IN uart2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.exe uart2.c DEBUG OBJECTEXTEND NOCOND PREPRINT(.\uart2.i)

stmt level    source

   1          /****************************************************************************************
   2          *文件:UART2.C
   3          *功能:利用LPC900普通I/O口实现模拟串口,占用定时器1
   4          *日期:05/07/18
   5          *****************************************************************************************/
   6          #include "Reg935.h"
   7          #include "uart2.h"
   8          #define uchar unsigned char
   9          #define BRH  0xfd  //0xfe 0x95//波特率为9600,使用内部RC振荡
  10          #define BRL  0x15 //0xfd 0x15 //波特率为4800,使用内部RC振荡
  11          //////////////////////////////////////////////////////////////////////////////////////////
  12          uchar num;
  13          uchar uart2s;           //ie. SBUF2
  14          unsigned char uart2f=0; //0:disable 1:read 2:send 3: read completed 4:send completed
  15          //****************************************************************************************
  16          void timer1_isr(void) interrupt 3
  17          {
  18   1        TH1=BRH;
  19   1        TL1=BRL;
  20   1        if(uart2f==2) //每个IF大概运行32周期,从而可以计算出BRH和BRL
  21   1         {
  22   2          if(num>1)
  23   2            {
  24   3             if(uart2s&(0x01<<(9-num)))
  25   3               {uart2txd=1;}
  26   3             else
  27   3               {uart2txd=0;}
  28   3             num--;
  29   3            }
  30   2          else if(num==1)
  31   2               {
  32   3            uart2txd=1;
  33   3            //uart2f=4;
  34   3             num--;
  35   3            // num=9;
  36   3            }
  37   2          else {TR1=0;uart2f=4;}
  38   2         }
  39   1        if(uart2f==1)
  40   1          {
  41   2           if(num>1)
  42   2            {
  43   3             if(uart2rxd)
  44   3               {uart2s=uart2s|(0x01<<(9-num));}
  45   3             else
  46   3               {uart2s=uart2s&~(0x01<<(9-num));}
  47   3             num--;
  48   3            }
  49   2           // else if(num==1){if(uart2rxd)num--;
  50   2           //                 }
  51   2            else
  52   2            {
  53   3             uart2f=3;
  54   3             TR1=0;
  55   3             }
C51 COMPILER V7.02b   UART2                                                                08/06/2007 21:11:12 PAGE 2   

  56   2         }
  57   1      }
  58          //---------------------------------------------------------------------------------------
  59          //uart2send: 向模拟串口发送一个字符
  60          //入口参数: s 被发送字符
  61          //出口参数: 无
  62          //---------------------------------------------------------------------------------------
  63          void uart2send(uchar s)
  64          {
  65   1        TH1=BRH;
  66   1        TL1=BRL;
  67   1        num=9;
  68   1        uart2s=s;
  69   1        uart2f=2;
  70   1        uart2txd=0;
  71   1        TR1=1;
  72   1        while(uart2f!=4);
  73   1      }
  74          //---------------------------------------------------------------------------------------
  75          //uart2read: 向模拟串口接收一个字符
  76          //入口参数 无
  77          //出口参数 s 被发送字符
  78          //---------------------------------------------------------------------------------------
  79          unsigned char uart2read(void)
  80          {
  81   1        while(uart2rxd);
  82   1        num=9;
  83   1        uart2f=1;
  84   1        TH1=BRH-1;
  85   1        TL1=BRL;//-0x15;
  86   1        TR1=1;
  87   1        while(uart2f!=3);
  88   1        while(!uart2rxd);
  89   1        return(uart2s);
  90   1      }
  91          //---------------------------------------------------------------------------------------


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