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

📄 chaosb.lst

📁 自制实验超声波
💻 LST
字号:
C51 COMPILER V8.02   CHAOSB                                                                03/26/2009 22:13:17 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CHAOSB
OBJECT MODULE PLACED IN chaosb.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chaosb.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg51.h"
   2          #include "7219.h"
   3          #include"intrins.h"
   4          
   5          #define uchar unsigned char
   6          #define uint  unsigned int
   7          uchar k[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b};
   8          sbit vout =P2^0;
   9          bit flag;//成功标志  
  10          bit wt;//溢出标志
  11          
  12          float high,low;//超声波时间
  13          uchar qian,bai,shi,ge;//距离的个位、十位、百位
  14          
  15          
  16           /*************************************************************************
  17          *  函数原型:void delay_50us()
  18          *  功    能:50us的延时
  19          **************************************************************************/
  20          void delay_50us(unsigned int t) // t=100, 5ms; t=1000, 50ms
  21          {
  22   1       unsigned char j;  
  23   1       for(;t>0;t--)   
  24   1        for(j=19;j>0;j--);
  25   1      }
  26          
  27           /*************************************************************************
  28          *  函数原型:void work()
  29          *  功    能:超声波距离转换
  30          **************************************************************************/
  31          void work(void)
  32          { 
  33   1        float value;
  34   1        value=(high*256+low)*17/1000-3;
  35   1        qian=value/1000;
  36   1        bai=(value-qian*1000)/100;
  37   1        shi=(value-qian*1000-bai*100)/10;
  38   1        ge=value-qian*1000-bai*100-shi*10;
  39   1       
  40   1      }
  41          /*************************************************************************
  42          *  函数原型:void fas()
  43          *  功    能:发送40khz的超声波
  44          **************************************************************************/
  45          void fas()
  46          {
  47   1      unsigned char i;
  48   1                   ET1 = 1;
  49   1                       TR1 = 1;
  50   1                       for(i=0;i<8;i++)
  51   1                         {
  52   2                           vout = ~vout;
  53   2                           _nop_();
  54   2                           _nop_();
  55   2                           _nop_();
C51 COMPILER V8.02   CHAOSB                                                                03/26/2009 22:13:17 PAGE 2   

  56   2                           _nop_();
  57   2                           _nop_();
  58   2                           _nop_();
  59   2                           _nop_();
  60   2                           _nop_();
  61   2                         }
  62   1                         delay_50us(1);
  63   1                         EX0 = 1;        //开启外部中断
  64   1                          EA = 1;
  65   1      }
  66           /*************************************************************************
  67          *  函数原型:void INIT1()
  68          *  功    能:超声波计时溢出中断
  69          **************************************************************************/
  70          void INTT1() interrupt 3 
  71          {
  72   1        EA = 0;
  73   1        TR1 = 0;
  74   1        TH1 = 0;
  75   1        TL1 = 0;
  76   1        wt=1;
  77   1      
  78   1          
  79   1      }
  80           /*************************************************************************
  81          *  函数原型:void work()
  82          *  功    能:超声波返回中断
  83          **************************************************************************/
  84          void PINT0() interrupt 0 
  85          {
  86   1        TR1 = 0;
  87   1        //ET1 = 0;     //关闭定时器0
  88   1        //EX1 = 0;
  89   1        EA = 0;
  90   1        low = TL1;
  91   1        high = TH1;
  92   1          TH1 = 0;
  93   1         TL1 = 0;
  94   1        flag = 1;
  95   1       // jis++;
  96   1      }
  97           /*************************************************************************
  98          *  函数原型:void max7219show()
  99          *  功    能:超声波距离显示--厘米为单位
 100          **************************************************************************/
 101          void max7219show()
 102           {
 103   1              Write(0x04,k[ge]);
 104   1              Write(0x03,k[shi]);
 105   1          Write(0x02,k[bai]);
 106   1              Write(0x01,k[qian]);
 107   1      
 108   1      }
 109          main()
 110          { 
 111   1              P0 = 0xff;
 112   1              P1 = 0xff;
 113   1              P2 = 0xff;
 114   1              P3 = 0xff; 
 115   1              TMOD = 0x10;
 116   1              TH1 = 0;
 117   1              TL1 = 0;
C51 COMPILER V8.02   CHAOSB                                                                03/26/2009 22:13:17 PAGE 3   

 118   1              inith();
 119   1        max7219show();
 120   1        wt=1;
 121   1        while(1)
 122   1               {
 123   2                if(flag)
 124   2                        {
 125   3                          //EA = 0;
 126   3                         //if(jis>45)
 127   3                         //{
 128   3                          work();
 129   3                              max7219show();
 130   3                      //      jis=0;
 131   3                              //}     
 132   3                              delay_50us(6000);
 133   3                          flag = 0;
 134   3                          fas();
 135   3                        }
 136   2                       if (wt)
 137   2                        {
 138   3                          //EA=0;
 139   3                      //      max7219show();
 140   3                              wt=0;
 141   3                              fas();
 142   3                        }
 143   2               }
 144   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    799    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     22       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -