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

📄 sonic.lst

📁 CT107D测试程序(含超声测距)
💻 LST
字号:
C51 COMPILER V9.02   SONIC                                                                 08/16/2011 15:20:43 PAGE 1   


C51 COMPILER V9.02, COMPILATION OF MODULE SONIC
OBJECT MODULE PLACED IN .\output\sonic.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sonic.c BROWSE DEBUG OBJECTEXTEND PRINT(.\output\sonic.lst) OBJECT(.\output
                    -\sonic.obj)

line level    source

   1          #include <atmel\at89x52.h>
   2          #include <intrins.h>
   3          
   4          #define TX P1_0
   5          #define RX P1_1
   6          
   7          unsigned char dspflag;
   8          unsigned char cnt;
   9          unsigned char tflag;
  10          unsigned char code dsp_code_ca[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  11          
  12          void display(unsigned int d);
  13          void init_t(void);
  14          
  15          void Pulse()
  16          {
  17   1              unsigned char i;
  18   1              for (i =0 ;i<10; ++i) {
  19   2                      _nop_();
  20   2                      _nop_();
  21   2                      _nop_();
  22   2                      _nop_();
  23   2                      _nop_();
  24   2                      _nop_();
  25   2                      _nop_();
  26   2                      _nop_();
  27   2                      _nop_();
  28   2      //              _nop_();                 //延时,调整发射频率
  29   2      
  30   2                      TX = ~TX;
  31   2              }
  32   1      }
  33          unsigned int sonic()
  34          {
  35   1              unsigned int n;
  36   1              RX=1;
  37   1              TR1=0;
  38   1              TH1=TL1=0;
  39   1              Pulse();
  40   1              TR1=1;
  41   1              TF1=0;
  42   1              for(n=0;n<160;n++);                     // 排出相邻干扰
  43   1              while( RX ==1 && TF1 == 0 ) ;
  44   1              TR1=0;
  45   1              if ( TF1 ) {
  46   2                      n=9999;
  47   2              }else{
  48   2                      n=(TH1<<8)+TL1;
  49   2                      n=(unsigned int) ( n*0.017);//0.018446);           //   0.017*12/11.0592
  50   2              }
  51   1              return n;
  52   1      }
  53          
  54          
C51 COMPILER V9.02   SONIC                                                                 08/16/2011 15:20:43 PAGE 2   

  55          
  56          void main()
  57          {
  58   1        unsigned int k;
  59   1        unsigned int cnt;
  60   1        init_t();     
  61   1        while(1)
  62   1        {
  63   2      //      EA=0;
  64   2              cnt = sonic();
  65   2      //    EA=1;
  66   2              for(k=0;k<6000;k++)
  67   2                      display(cnt);;
  68   2        }     
  69   1      }
  70          
  71          void isr_t0(void) interrupt 1
  72          {
  73   1        tflag++;
  74   1        if(tflag == 16)
  75   1        {
  76   2              tflag = 0;
  77   2              dspflag ++;
  78   2              if(dspflag == 3)
  79   2                dspflag = 0;
  80   2        }
  81   1      }
  82          
  83          void init_t(void)
  84          {       
  85   1        TMOD = 0x12;   // 超声用定时器1
  86   1        TH0 = 0x06;
  87   1        TL0 = 0x06;
  88   1        ET0 = 1;
  89   1        EA = 1;
  90   1        TR0 = 1;
  91   1      }
  92          void display(unsigned int d)
  93          {
  94   1        if((dspflag == 0)&&(d>99))
  95   1        {
  96   2          P0 = 0xFF;
  97   2              P2 |= 0xE0;
  98   2              P2 &= 0x1F;
  99   2      
 100   2              P0 = dsp_code_ca[d/100];
 101   2              P2 |= 0xE0;
 102   2              P2 &= 0x1F;
 103   2              P0 = 0x20;
 104   2              P2 |= 0xC0;
 105   2              P2 &= 0x3F;
 106   2        }
 107   1        if((dspflag == 1)&&(d>9))
 108   1        {
 109   2              P0 = 0xFF;
 110   2          P2 |= 0xE0;
 111   2          P2 &= 0x1F;
 112   2      
 113   2              P0 = dsp_code_ca[d%100/10];
 114   2          P2 |= 0xE0;
 115   2          P2 &= 0x1F;
 116   2          P0 = 0x40;
C51 COMPILER V9.02   SONIC                                                                 08/16/2011 15:20:43 PAGE 3   

 117   2          P2 |= 0xC0;
 118   2          P2 &= 0x3F;
 119   2        } 
 120   1        if(dspflag == 2)
 121   1        {
 122   2          P0 = 0xFF;
 123   2              P2 |= 0xE0;
 124   2          P2 &= 0x1F;
 125   2      
 126   2              P0 = dsp_code_ca[d%100%10]; 
 127   2          P2 |= 0xE0;
 128   2          P2 &= 0x1F;
 129   2          P0 = 0x80;
 130   2          P2 |= 0xC0;
 131   2          P2 &= 0x3F;
 132   2        }  
 133   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    398    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       4
   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 + -