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

📄 cj1.lst

📁 485通信仿真源码.rar
💻 LST
字号:
C51 COMPILER V8.01   CJ1                                                                   03/22/2010 19:34:14 PAGE 1   


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

line level    source

   1          #include<reg51.h>
   2          #include"18B20_1.h"             //      包含18b20函数
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          
   6          
   7          sbit RE=P3^4;
   8          uchar code display_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x77,0x73};
   9          uchar ti=0;temperature[4]={11,0,0,0};
  10          
  11          
  12          void display();                 //      显示函数
  13          void delay1(uint a);    //      延时函数
  14          
  15          void main()
  16          {
  17   1              int temp;
  18   1      
  19   1              TMOD=0x21;              //定时计数器1设置为模式2 ,定时计数器0为模式1
  20   1              TL1=0XFD;
  21   1              TH1=0XFD;
  22   1              TH0=(65536-50000*110592/120000)/256;    //设置50ms溢出一次
  23   1              TL0=(65536-50000*110592/120000)%256;
  24   1              PCON=0X00;
  25   1              SCON=0xf0;              //工作在方式3,允许通信,SM2=1只有RB8为1时才接受数据,否则不要
  26   1              TR0=1;
  27   1              TR1=1;
  28   1              ET0=1;
  29   1              RE=0;                   //设置457为接受状态
  30   1              EA=1;
  31   1              ES=1;
  32   1      
  33   1              while(1)
  34   1              {       
  35   2                      display();
  36   2      
  37   2                      if(ti==20)
  38   2                      {
  39   3                              ti=0;
  40   3                              temp=b20_temperate();                   //      获得整数部分温度
  41   3                              temperature[1]=temp%1000/100;           //      百位温度
  42   3                              temperature[2]=temp%100/10;                     //      十位温度
  43   3                              temperature[3]=temp%10;                         //      个位温度
  44   3                      }       
  45   2              }
  46   1              
  47   1      }
  48          
  49          
  50          void delay1(uint a)
  51          {
  52   1              uchar i;
  53   1              for(;a>0;a--)
  54   1                      for(i=100;i>0;i--);
  55   1      
C51 COMPILER V8.01   CJ1                                                                   03/22/2010 19:34:14 PAGE 2   

  56   1      }
  57          
  58          
  59          void display()
  60          {
  61   1      
  62   1              P2=0XFF;                           //  显示从机的代号
  63   1              P0=display_table[temperature[0]];
  64   1              P2=0xfe;
  65   1              delay1(1);
  66   1      
  67   1              P2=0XFF;                           //  显示温度
  68   1              P0=display_table[temperature[1]];
  69   1              P2=0xfd;
  70   1              delay1(1);
  71   1      
  72   1              P2=0XFF;
  73   1              P0=display_table[temperature[2]];
  74   1              P2=0xfb;
  75   1              delay1(1);
  76   1      
  77   1              P2=0XFF;
  78   1              P0=display_table[temperature[3]]+0x80;
  79   1              P2=0xf7;
  80   1              delay1(1);
  81   1      
  82   1      }
  83          
  84          
  85          void time() interrupt 1
  86          {
  87   1              TH0=(65536-50000*110592/120000)/256;
  88   1              TL0=(65536-50000*110592/120000)%256;
  89   1      
  90   1              ti++;
  91   1      }
  92          
  93          
  94          void r_scon() interrupt 4          //串口中断
  95          {
  96   1              uchar i;
  97   1      
  98   1              if(RI==1)
  99   1              {
 100   2                      RI=0;
 101   2                      delay1(10);             
 102   2                      if(SBUF==1)                     //判断是否是本机地址,为1
 103   2                      {
 104   3                              ES=0;                   //关串口中断
 105   3                              SM2=0;
 106   3      
 107   3                              RE=1;  //准备发送数据
 108   3                              delay1(5);
 109   3      
 110   3                              SBUF=1;         //将本机的地址发送给主机
 111   3                              while(TI!=1);   
 112   3                              TI=0;
 113   3                              delay1(10);
 114   3      
 115   3                              for(i=0;i<4;i++)          //发送要显示的4个数据
 116   3                              {
 117   4                                      SBUF=temperature[i];
C51 COMPILER V8.01   CJ1                                                                   03/22/2010 19:34:14 PAGE 3   

 118   4                                      while(TI!=1);
 119   4                                      TI=0;
 120   4                                      delay1(10);
 121   4                               }
 122   3      
 123   3                              RE=0;
 124   3                              ES=1;
 125   3                              SM2=1;  
 126   3                      
 127   3                      }       
 128   2              
 129   2              }
 130   1      }
 131          


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