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

📄 zj.lst

📁 485通信仿真源码.rar
💻 LST
字号:
C51 COMPILER V8.01   ZJ                                                                    03/22/2010 21:00:02 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE ZJ
OBJECT MODULE PLACED IN zj.OBJ
COMPILER INVOKED BY: D:\学习软件\keil\C51\BIN\C51.EXE zj.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #define uchar unsigned char
   3          
   4          sbit RE=P3^4;   //      控制487接收,发送控制端
   5          uchar code display_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x77,0x7c};
   6          uchar j,temperature[4];   //存储温度数组
   7          bit t;          //      控制数据连续传送位
   8          
   9          void display();
  10          void delay(uchar a);
  11          
  12          
  13          void main()
  14          {
  15   1              uchar i;
  16   1      
  17   1              TMOD=0x21;              //定时计数器1设置为模式2
  18   1              TH0=(65536-50000*110592/120000)/256;    //设置50ms溢出一次
  19   1              TL0=(65536-50000*110592/120000)%256;
  20   1              TL1=0XFD;           //波特率设置
  21   1              TH1=0XFD;
  22   1              PCON=0X00;
  23   1              SCON=0xd0;              //工作在方式3,允许通信;
  24   1              TR1=1;                  //定时计数器1开始计数
  25   1              TR0=1;
  26   1              ET0=1;
  27   1              RE=0;                   //487准备接受数据数据
  28   1              EA=1;                   //开总中断
  29   1              ES=1;                   //开串口通信中断
  30   1      
  31   1              while(1)
  32   1              {
  33   2                      if(t==1&j>=20)          //判断是否满足数据连续传送的条件
  34   2                      {  
  35   3                              j=0;
  36   3      
  37   3                              while(RI!=1);   
  38   3                              display();
  39   3      
  40   3                              if(SBUF==0XFE)
  41   3                              {
  42   4                                      RI=0;
  43   4                                      delay(10);
  44   4                                      for(i=0;i<4;i++)          //发送要显示的4个数据
  45   4                                      {
  46   5                                                      
  47   5                                              while(RI!=1);
  48   5                                              temperature[i]=SBUF;
  49   5                                              RI=0;
  50   5                                              delay(10);
  51   5                                       }
  52   4      
  53   4                              }
  54   3      
  55   3                              ES=1;
C51 COMPILER V8.01   ZJ                                                                    03/22/2010 21:00:02 PAGE 2   

  56   3                              t=0;
  57   3                      }
  58   2      
  59   2                      display();
  60   2              }
  61   1      
  62   1      }
  63          
  64          
  65          void delay(uchar a)
  66          {
  67   1              uchar i;
  68   1              for(;a>0;a--)
  69   1                      for(i=100;i>0;i--);
  70   1      
  71   1      }
  72          
  73          
  74          void display()                          //显示函数
  75          {
  76   1      
  77   1              P2=0XFF;                           //  显示从机的代号
  78   1              P0=display_table[temperature[0]];
  79   1              P2=0xfe;
  80   1              delay(1);
  81   1      
  82   1              P2=0XFF;                           //  显示温度
  83   1              P0=display_table[temperature[1]];
  84   1              P2=0xfd;
  85   1              delay(1);
  86   1      
  87   1              P2=0XFF;
  88   1              P0=display_table[temperature[2]];
  89   1              P2=0xfb;
  90   1              delay(1);
  91   1      
  92   1              P2=0XFF;
  93   1              P0=display_table[temperature[3]]+0x80;
  94   1              P2=0xf7;
  95   1              delay(1);
  96   1      
  97   1      }
  98          
  99          
 100          void time() interrupt 1                 //定时器
 101          {
 102   1              TH0=(65536-50000*110592/120000)/256;
 103   1              TL0=(65536-50000*110592/120000)%256;
 104   1      
 105   1              j++;
 106   1      }
 107          
 108          
 109          void r_scon() interrupt 4                       //串口中断函数
 110          {
 111   1              uchar i;
 112   1      
 113   1              if(RI==1)
 114   1              {
 115   2                      RI=0;
 116   2                      delay(10);
 117   2                      if(SBUF==0XFD)                          //判断是否是接受一次数据,还是不断传输数据
C51 COMPILER V8.01   ZJ                                                                    03/22/2010 21:00:02 PAGE 3   

 118   2                      {
 119   3                              ES=0;
 120   3                              t=0;                                    //停止数据连续传送
 121   3                              for(i=0;i<4;i++)          //发送要显示的4个数据
 122   3                              {               
 123   4                                      while(RI!=1);
 124   4                                      temperature[i]=SBUF;
 125   4                                      RI=0;
 126   4                                      delay(10);
 127   4                               }
 128   3      
 129   3                               ES=1;
 130   3                      }
 131   2                      else if(SBUF==0XFE)                     //连续发送数据
 132   2                      {
 133   3                         t=1;
 134   3                         ES=0;
 135   3                      }
 136   2              }
 137   1      }


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