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

📄 脉宽测量.lst

📁 超声波测距资料
💻 LST
字号:
C51 COMPILER V8.08   _隹聿_量                                                              05/01/2010 20:56:09 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE _隹聿_量
OBJECT MODULE PLACED IN 脉宽测量.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 脉宽测量.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*********************************************************************************************************
             -**/
   2          //DYP-ME007 超声波测距模块 DEMO 程序
   3          //晶振:11。0592
   4          //程序编写:Tvrostar      QQ:  77154401
   5          //taobao店铺:wxdz.taobao.com 广州文轩电子
   6          //接线:模块TRIG接 P0.2  ECH0 接P0.1
   7          //数码管:共阳数码管P1接数据口,P2.5 P2.4 P2.3接选通数码管
   8          /*********************************************************************************************************
             -**/            
   9                               #include <AT89x51.H>               //器件配置文件
  10                                   #include <intrins.h>
  11                                   #define  RX  P0_1
  12                                   #define  TX  P0_2
  13                                   unsigned int  time=0;
  14                                   unsigned int  timer=0;
  15                                   unsigned char posit=0;
  16                                   unsigned long S=0;
  17                                   bit      flag =0;
  18                                   unsigned char const discode[] ={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/*-*/};
  19                                   unsigned char const positon[3]={ 0xdf,0xef,0xf7};
  20                                   unsigned char disbuff[4]          ={ 0,0,0,0,};
  21          /********************************************************/
  22              void Display(void)                           //扫描数码管
  23                  {
  24   1               if(posit==0)
  25   1               {P1=(discode[disbuff[posit]])&0x7f;}
  26   1               else
  27   1               {P1=discode[disbuff[posit]];}
  28   1                P2=positon[posit];
  29   1                if(++posit>=3)
  30   1                posit=0;
  31   1              }
  32          /********************************************************/
  33              void Conut(void)
  34                  {
  35   1               time=TH0*256+TL0;
  36   1               TH0=0;
  37   1               TL0=0;
  38   1              
  39   1               S=(time*1.7)/100;     //算出来是CM
  40   1               if((S>=700)||flag==1) //超出测量范围显示“-”
  41   1               {       
  42   2                flag=0;
  43   2                disbuff[0]=10;           //“-”
  44   2                disbuff[1]=10;           //“-”
  45   2                disbuff[2]=10;           //“-”
  46   2               }
  47   1               else
  48   1               {
  49   2                disbuff[0]=S%1000/100;
  50   2                disbuff[1]=S%1000%100/10;
  51   2                disbuff[2]=S%1000%10 %10;
  52   2               }
  53   1              }
C51 COMPILER V8.08   _隹聿_量                                                              05/01/2010 20:56:09 PAGE 2   

  54          /********************************************************/
  55               void zd0() interrupt 1              //T0中断用来计数器溢出,超过测距范围
  56            {
  57   1          flag=1;                                                      //中断溢出标志
  58   1        }
  59          /********************************************************/
  60             void  zd3()  interrupt 3              //T1中断用来扫描数码管和计800MS启动模块
  61            {
  62   1               TH1=0xf8;
  63   1               TL1=0x30;
  64   1               Display();
  65   1               timer++;
  66   1               if(timer>=400)
  67   1               {
  68   2                timer=0;
  69   2                TX=1;                                 //800MS  启动一次模块
  70   2                _nop_(); 
  71   2                _nop_(); 
  72   2                _nop_(); 
  73   2                _nop_(); 
  74   2                _nop_(); 
  75   2                _nop_(); 
  76   2                _nop_(); 
  77   2                _nop_(); 
  78   2                _nop_(); 
  79   2                _nop_(); 
  80   2                _nop_(); 
  81   2                _nop_(); 
  82   2                _nop_(); 
  83   2                _nop_(); 
  84   2                _nop_(); 
  85   2                _nop_(); 
  86   2                _nop_();
  87   2                _nop_(); 
  88   2                _nop_(); 
  89   2                _nop_(); 
  90   2                _nop_();
  91   2                TX=0;
  92   2               } 
  93   1        }
  94          /*********************************************************/
  95          
  96                  void  main(  void  )
  97          
  98            {  
  99   1          TMOD=0x11;             //设T0为方式1,GATE=1;
 100   1              TH0=0;
 101   1              TL0=0;          
 102   1              TH1=0xf8;                  //2MS定时
 103   1              TL1=0x30;
 104   1              ET0=1;             //允许T0中断
 105   1              ET1=1;                     //允许T1中断
 106   1              TR1=1;                     //开启定时器
 107   1              EA=1;                      //开启总中断
 108   1      
 109   1              while(1)
 110   1              {
 111   2               while(!RX);            //当RX为零时等待
 112   2               TR0=1;                     //开启计数
 113   2               while(RX);                     //当RX为1计数并等待
 114   2               TR0=0;                         //关闭计数
 115   2           Conut();                   //计算
C51 COMPILER V8.08   _隹聿_量                                                              05/01/2010 20:56:09 PAGE 3   

 116   2              }
 117   1      
 118   1        }
 119                          


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