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

📄 main.lst

📁 DS18B20温度采集然后红外发射出去,接收板接收红外并LCD显示接收的数据信息,有完整的发射接收程序
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  04/10/2008 22:19:36 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\obj\main.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE src\main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\main.lst) OBJECT(.\obj\mai
                    -n.obj)

line level    source

   1          #include <reg51.h>
   2          
   3          #define  EXTERN_AT89C51
   4          #include "AT89C51.h"
   5          
   6          #define  EXTERN_YEJING
   7          #include "yejing.h"
   8          
   9          ///////////////////////////////////////////////////////////////////////////////
  10          ////////////////外部中断0的中断服务处理程序////////////////////////////////////
  11          ///////////接收一侦完整的数据(1个字节的数据),要连续进入中断33次/////////////
  12          void Int_EX0(void) interrupt 0
  13          { 
  14   1         // P32=1;////在变量声明之前不要有语句,否则报错/////////  
  15   1         TH0=0; TL0=0; 
  16   1         TR0=1;///打开定时器0,从0开始记数,用于计算脉冲宽度//////
  17   1         EX0=0; //进入外部中断0后关闭外部中断0///
  18   1      //  TH1=0xc5; TL1=0x68;TR1=1;////定时15ms启动用于超时的定时器T1,下一次的脉冲中断///////
  19   1                                 ////必须在15ms以内来到,否则接收系统全部归0////////////////
  20   1       // TH1=0xe4; TL1=0xa8; TR1=1;////定时7ms,启动T1//////
  21   1         if((n==0)||(n==33))////判断是否是引导码/////
  22   1           {
  23   2                n=a=temp=temp1=temp2=temp3=temp4=0;   
  24   2               if(Check_leader())////检查引导码是否正确///////
  25   2                           {
  26   3                                  n++;
  27   3                                  EX0=1;
  28   3                     //dis_data=666;////用于调试////
  29   3                                  return;
  30   3                               }
  31   2                  else 
  32   2                              {
  33   3                                  EX0=1;
  34   3                      n=a=temp=temp1=temp2=temp3=temp4=0;
  35   3                                 // dis_data=111;////用于调试//////
  36   3                              return;
  37   3                              }
  38   2           }
  39   1         else   /////如果不是引导码,应该是用户码和数据码/////
  40   1           {
  41   2                       if(Receive_bitdata()){n++; EX0=1;return;}////是可接收的位信息吗?是接收////
  42   2                    else ////在n不为0时,只要有1个不可接收的位信息出现,则放弃该帧后面所有的位数据接收//////
  43   2                      {  ////接收系统全部归0,等待,直到开始下一帧新的数据接收,////////////////
  44   3              /////所以在n不为0时,只有连续的无差错的32个位信息数据被接收,则是成功接收一侦完整的数据///////////
  45   3                       n=a=temp=temp1=temp2=temp3=temp4=0;
  46   3                       EX0=1;
  47   3                       // dis_data=777;////用于调试//////
  48   3                       return;
  49   3                      }                              
  50   2           }
  51   1      }
  52          ////////////////外部中断0的中断服务处理程序结束///////////////////////////////////////////////////////////
             -///
  53          //////////////////////////////////////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.50   MAIN                                                                  04/10/2008 22:19:36 PAGE 2   

  54          ///////////////////////////////////////////////////////////////////////////////
  55          ////////////////定时器T1中断服务处理程序/////////////////////////////////////////////////////////////////
  56          void Timer1 (void) interrupt 3
  57          {
  58   1       //TH1=0xc5; TL1=0x68;//////用于调试//////
  59   1       //n_data++;////用于调试//////
  60   1       TR1=0;
  61   1       n=a=temp=temp1=temp2=temp3=temp4=0;//dis_data=777;
  62   1       //if(n_data==400){n=m=temp=temp1=temp2=temp3=temp4=0;dis_data=777;TR1=0; n_data=0;} //////用于调试//////       
             -  
  63   1       return;
  64   1      }
  65          ///////////////////////////////////////////////////////////////////////////////
  66          ////////////////////main()主函数//////////////////////////////////////////////
  67          void main()
  68          { 
  69   1        AT89C51_initialize(); /////初始化//////
  70   1        Delay400Ms();
  71   1        Lcd_initilize();//////液晶初始化/////
  72   1        Delay400Ms();
  73   1        Delay400Ms();
  74   1      
  75   1        Disp_strings(0,0,"当前摄氏温度值: %");
  76   1        Disp_strings(6,1,"度%");
  77   1        while (1)
  78   1        {   
  79   2           Receive_Infrared_Process();//////红外线接收处理//////
  80   2           Disp_data(2,1, dis_data);  //////dis_data的上电初值为555/////      
  81   2        }
  82   1      }
  83          ////////////////////main()主函数结束///////////////////////////////////
  84          /////////////////////
  85          
  86          ////////////////////////


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