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

📄 scom.lst

📁 51单片机串口测试程序(KEIL C51)
💻 LST
字号:
C51 COMPILER V7.50   SCOM                                                                  07/17/2008 13:22:51 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SCOM
OBJECT MODULE PLACED IN SCOM.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE SCOM.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 
   2          
   3          #include <reg51.h>
   4          #include <string.h>
   5          #define INBUF_LEN 4   //数据长度
   6          unsigned char inbuf1[INBUF_LEN];
   7          unsigned char checksum,count3 , flag,temp,ch;
   8          bit     read_flag=0;
   9          sbit  BEEP=P1^3;
  10          sbit  relay=P1^2;
  11          sbit clk=P1^0;
  12          sbit din=P1^1;
  13          unsigned char  code ledcode[]={0x11,0x7D,0x23,0x29,0x4D, 0x89,0x81,0x3D,0x01,0x09,0x05,\
  14          0xc1,0x8f,0x61,0x83,0x87};//数码管段码 
  15          void  leddisp(unsigned char num);
  16          //初始化串口
  17          void init_serialcomm(void)
  18          {
  19   1           SCON=0x50;              //在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收
  20   1           PCON=0x00;
  21   1           ES=1;   //开串口中断
  22   1           TMOD=0x21;   //定时器工作于方式2,自动装载方式
  23   1           TL1=0XFD;
  24   1           TH1=0XFD;
  25   1           TR1=1;
  26   1           EA=1;
  27   1      
  28   1      }
  29          //中断服务程序
  30          void serial () interrupt 4 using 3 
  31          
  32          {    
  33   1         if(RI)
  34   1          { 
  35   2               RI=0;//清中断标志
  36   2           ch=SBUF;//读取接收寄存器
  37   2               ch=SBUF;
  38   2           leddisp(ch);//调用数码管显示子程序,将接收到的数据显示到数码管上
  39   2         }
  40   1        if(TI)
  41   1          {
  42   2              TI=0;//清发送标志位     
  43   2              }
  44   1      }
  45          //送数码管显示
  46          void  leddisp(unsigned char num)
  47              {
  48   1               unsigned char i,k;
  49   1               k=ledcode[num];
  50   1               for(i=0;i<8;i++)//共8位
  51   1                  {
  52   2                   if((k&0x01)==0x01) 
  53   2                       din=1;
  54   2                       else 
  55   2                       din=0;
C51 COMPILER V7.50   SCOM                                                                  07/17/2008 13:22:51 PAGE 2   

  56   2                       clk=0;
  57   2                       clk=1;
  58   2                       k>>=1;         
  59   2                      }
  60   1              
  61   1              }
  62          
  63          
  64          
  65          main()
  66          
  67          {    
  68   1      
  69   1       init_serialcomm();  //初始化串口  
  70   1       leddisp(0);//数码管显示0
  71   1       leddisp(1);//数码管显示1
  72   1       leddisp(2);//数码管显示2
  73   1       leddisp(3);//数码管显示3
  74   1          while(1);
  75   1      }
  76          


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