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

📄 测距程序.lst

📁 超声波测距资料
💻 LST
字号:
C51 COMPILER V8.08   瞋距程序                                                              05/01/2010 20:54:32 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接 P1.2  ECH0 接P1.1
   7          //串口波特率9600
   8          /*********************************************************************************************************
             -**/          
   9                  #include   <AT89X51.H>
  10                  #include   <intrins.h>
  11              #include   <STDIO.H>
  12          
  13              #define uchar unsigned  char
  14              #define uint  unsigned   int  
  15                  #define  RX  P1_1
  16              #define  TX  P1_2
  17            
  18          
  19                  unsigned int  time=0;
  20                  unsigned int  timer=0;
  21                  float         S=0;
  22              bit           flag =0;
  23                  
  24          
  25          /********************************************************/
  26              void Conut(void)
  27                  {
  28   1               time=TH0*256+TL0;
  29   1               TH0=0;
  30   1               TL0=0;
  31   1               S=(time*1.87)/100;     //算出来是CM
  32   1               if(flag==1)                //超出测量
  33   1               {
  34   2                flag=0;
  35   2                printf("-----\n"); 
  36   2               }
  37   1      
  38   1                printf("S=%f\n",S); 
  39   1              }
  40          /********************************************************/ 
  41          void delayms(unsigned int ms)
  42          {
  43   1              unsigned char i=100,j;
  44   1              for(;ms;ms--)
  45   1              {
  46   2                      while(--i)
  47   2                      {
  48   3                              j=10;
  49   3                              while(--j);
  50   3                      }
  51   2              }
  52   1      }
  53          /********************************************************/
C51 COMPILER V8.08   瞋距程序                                                              05/01/2010 20:54:32 PAGE 2   

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

C51 COMPILER V8.08   瞋距程序                                                              05/01/2010 20:54:32 PAGE 3   


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