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

📄 serial.lst

📁 自已编的串口调试程序
💻 LST
字号:
C51 COMPILER V7.07   SERIAL                                                                08/16/2007 10:00:05 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN serial.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE serial.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          #define uchar unsigned char 
   3          #define  LEN 4
   4          uchar idata Readata[4];
   5          uchar i; 
   6          //uchar idata Wridata[4];  
   7          bit read_flag;
   8               //void Back(uchar tem); 
   9          //uchar Receive();   
  10          void Send(); 
  11          //void delay(uchar count);
  12          void  Initserial();// 串口初始化程序            
  13          void main()
  14          {
  15   1              uchar i;
  16   1          for(i=0;i<10;i++);
  17   1              Initserial();// 串口初始化程序  
  18   1              while(1)   
  19   1            { if(read_flag)    //如果取数标志已置位,就将读到的数从串口发出     
  20   2             {read_flag=0;   //取数标志清0     
  21   3                      Send();   
  22   3              }  
  23   2            }   
  24   1      }
  25          
  26          void  Initserial() // 串口初始化程序  
  27          {
  28   1          TMOD=0X20;//定时器T1定义为模式2
  29   1              TL1=0XFD;//置初值波特率为9600b/s
  30   1              TH1=0XFD;
  31   1              PCON=0X00;//SMOD=0
  32   1              TR1=1;
  33   1              SCON=0X50;//设置串行口控制字,方式1,允许接收
  34   1              IE|= 0x90; //开中断
  35   1      }
  36          void Send()
  37          {   uchar j;
  38   1         for(j=0;j<LEN;j++)
  39   1         {SBUF=Readata[j];
  40   2          while(TI!=1);TI=0;//等待发送完
  41   2              }
  42   1      
  43   1      
  44   1      }
  45          void serial () interrupt 4 using 3  ////串口接收中断函数 
  46            {   if(RI)   
  47   1          { uchar  ch;   
  48   2            RI =0;   
  49   2            ch=SBUF; 
  50   2               Readata[i]=ch; 
  51   2                      i++;  
  52   2               if(i==LEN)   
  53   2               {read_flag=1;   
  54   3                i=0;   
  55   3               } 
C51 COMPILER V7.07   SERIAL                                                                08/16/2007 10:00:05 PAGE 2   

  56   2          }   
  57   1        }   
  58           
  59          
  60          
  61           
  62          /*返回函数的功能是:CAN0节点向PC机回送标志,从而PC机在确认后能够发送数据*/
  63          /*void Back(uchar tem)
  64          {   
  65                  SBUF=tem;
  66                  while(TI!=1);//等待发送完
  67                  TI=0;
  68          }
  69          uchar Receive()
  70          {   
  71                  uchar addr,i,flag;
  72                  uchar D1,D2,D3,D4,FF;
  73                  flag=0;
  74                  while(1)
  75                  {
  76                          while(RI!=1);RI=0;//等待PC机的联络信号
  77                          addr=SBUF;  
  78             if(flag==0)                  
  79                  {       switch(addr)//向PC机回送节点号          
  80                          {                                     
  81                                  case 0xD1:Back(D1),flag=1;break;
  82                                  case 0xD2:Back(D2),flag=1;break;
  83                                  case 0xD3:Back(D3),flag=1;break;
  84                                  case 0xD4:Back(D4),flag=1;break;
  85                                  default:Back(FF),flag=0;break;
  86                          } //完成对PC机的地址回送,以确认单片机收到的是正确信息
  87                  
  88                   }
  89                  else {  while(RI!=1);
  90                            RI=0;
  91                                while(1)
  92                           {
  93                                         for(i=0;i<=2;i++)//单片机接收数据
  94                                      {    while(RI!=0);RI=0;
  95                                           Readata[i]=SBUF;
  96                                          }
  97                               }
  98                            }
  99               
 100                  }
 101                  return (0);
 102          }*/
 103          
 104          
 105          
 106          /*void delay(uchar count)//延时count*2ms
 107          {
 108            uchar i,j;
 109            for(i=0;i<count;i++)
 110            for(j=0;j<250;j++)
 111                     {;}
 112          }//一个for语句延时8us 
 113          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     98    ----
C51 COMPILER V7.07   SERIAL                                                                08/16/2007 10:00:05 PAGE 3   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       1
   IDATA SIZE       =      4    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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