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

📄 main.lst

📁 小车走黑白线程序
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  03/14/2009 10:19:32 PAGE 1   


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

line level    source

   1          /*********************Copyright (c)***********************************************************************
             -*
   2          **--------------文件信息------------------------------------------------------
   3          **文   件   名: 黑白线
   4          **创   建   人: 黄海明
   5          **最后修改日期: 2008年10月10日
   6          
   7          **--------------历史版本信息--------------------------------------------------
   8          ** 创建人: 黄海明
   9          ** 版  本: 1.0
  10          ** 日 期: 2008年10月10日
  11          ** 描 述: 原始版本 
  12          **********************************************************************************************************
             -*/
  13          
  14          
  15          #include<reg52.h>
  16          #include<math.h>
  17          
  18          #define uchar unsigned char
  19          #define uint  unsigned int
  20          
  21           sbit signal0  = P0^2;
  22           sbit signal1  = P0^5;
  23           sbit a0 = P0^0;
  24           sbit a1 = P0^1;
  25           sbit b0 = P0^3;
  26           sbit b1 = P0^4;
  27           sbit buzzer=P2^2;
  28          
  29           uchar state0 = 0;
  30           uchar n0 =0 ;
  31           uchar TH0Data1 = 0, TH0Data2 = 0;
  32           uchar TL0Data1 = 0, TL0Data2 = 0;       //, enable0 = 0
  33           uint  pulseWidth0 = 0;
  34          
  35           uchar state1 = 0;
  36           uchar n1 =0 ;
  37           uchar TH1Data1 = 0, TH1Data2 = 0;
  38           uchar TL1Data1 = 0, TL1Data2 = 0;      //      , enable1 = 0
  39           uint  pulseWidth1 = 0;
  40          
  41          //uchar key=0;
  42          
  43            bit flag0=0;
  44            bit flag1=0;
  45          
  46          
  47          //---------------------延时------------------------
  48          void delay1ms(uint time)  //11.0592M晶振 1ms
  49          {
  50   1        uint i;
  51   1        uchar j;
  52   1       for (i=0;i<time;i++)
  53   1       { 
C51 COMPILER V8.02   MAIN                                                                  03/14/2009 10:19:32 PAGE 2   

  54   2         j=147;
  55   2         while(j--);
  56   2       }      
  57   1      }
  58          
  59          ////////////////////////////////////////////////////////////////////////
  60          
  61          
  62          
  63          /////////////////////////////////////////////////////////////
  64           void Calculate0()
  65          {
  66   1         TH0Data1 = (65536 - pulseWidth0) / 256;
  67   1         TL0Data1 = (65536 - pulseWidth0) % 256;
  68   1         TH0Data2 = (47119 + pulseWidth0) / 256;
  69   1         TL0Data2 = (47119 + pulseWidth0) % 256;
  70   1         TH0 = TH0Data1;
  71   1         TL0 = TL0Data1;
  72   1      }
  73          
  74          /////////////////////////////////////////////////////////////
  75           void Calculate1()
  76          {
  77   1         TH1Data1 = (65536 - pulseWidth1) / 256;
  78   1         TL1Data1 = (65536 - pulseWidth1) % 256;
  79   1         TH1Data2 = (47119 + pulseWidth1) / 256;
  80   1         TL1Data2 = (47119 + pulseWidth1) % 256;
  81   1         TH1 = TH1Data1;
  82   1         TL1 = TL1Data1;
  83   1      }
  84          
  85          //////////////////////////////////////////////////
  86             void T0init()
  87          {  
  88   1         signal0 = 0;
  89   1         TMOD |= 0x01;                //16位模式
  90   1         ET0 = 1;
  91   1         pulseWidth0 = 10000;  //脉宽初值xx us
  92   1         Calculate0();
  93   1         EA =1;  
  94   1         state0 = 1;
  95   1       }
  96           //////////////////////////////////////////////////
  97             void T1init()
  98          {  
  99   1         signal1 = 0;
 100   1         TMOD |= 0x10;          //16位模式
 101   1         ET1 = 1;
 102   1         pulseWidth1 = 10000;  //脉宽初值xx us
 103   1         Calculate1();
 104   1         EA =1;  
 105   1         state1 = 1;
 106   1       }
 107          /////////////////////////////////////////////////////
 108          void int0() interrupt 0 using 0
 109          {
 110   1       flag0=1;
 111   1      
 112   1      }
 113          
 114          /////////////////////////////////////////////////////
 115          void int1() interrupt 2 using 2
C51 COMPILER V8.02   MAIN                                                                  03/14/2009 10:19:32 PAGE 3   

 116          {
 117   1       
 118   1       flag1=1;
 119   1      
 120   1      }
 121          
 122          ////////////////////////////////////////
 123            void Timer0() interrupt 1 using 1
 124           
 125          {  
 126   1        signal0 = ~signal0 ; 
 127   1        if( state0 == 0)
 128   1        {
 129   2         
 130   2         TH0 = TH0Data1;
 131   2         TL0 = TL0Data1;
 132   2       
 133   2         state0 =1;
 134   2         n0++;
 135   2         }
 136   1         else if(state0 == 1)
 137   1         {
 138   2           TH0 = TH0Data2;
 139   2               TL0 = TL0Data2;
 140   2               state0 = 0;
 141   2              }
 142   1         
 143   1      }
 144           ////////////////////////////////////////
 145            void Timer1() interrupt 3 using 3
 146           
 147          {
 148   1        signal1 = ~signal1 ; 
 149   1        if( state1 == 0)
 150   1        {
 151   2         
 152   2         TH1 = TH1Data1;
 153   2         TL1 = TL1Data1;
 154   2       
 155   2         state1 =1;
 156   2         n1++;
 157   2         }
 158   1         else if(state1 == 1)
 159   1         {
 160   2           TH1 = TH1Data2;
 161   2               TL1 = TL1Data2;
 162   2               state1 = 0;
 163   2              }
 164   1         
 165   1      }
 166            
 167          /////////////////////////////////////////////////
 168          void zuo(uint time)
 169          {
 170   1       a0=a1; 
 171   1      // buzzer=0;  
 172   1       delay1ms(time);
 173   1       a0=0;
 174   1       a1=1;
 175   1       flag0=0;
 176   1       buzzer=1;
 177   1      }  
C51 COMPILER V8.02   MAIN                                                                  03/14/2009 10:19:32 PAGE 4   

 178          
 179          ///////////////////////////////////////////////
 180          void you(uint time)
 181          {
 182   1       b0=b1;
 183   1      // buzzer=0;
 184   1       delay1ms(time);
 185   1       b0=1;
 186   1       b1=0;
 187   1       flag1=0;
 188   1       buzzer=1;
 189   1      }  
 190                            
 191          ///////////////////////////////////////////////////////////////////////////////
 192          ///////////////////////////////////////////////////////////////////////////
 193          void main(void)
 194          {       
 195   1          uchar i=0; 
 196   1      
 197   1         T0init();
 198   1         TR0 = 1;        //定时计数器控制位,1工作,0停止工作
 199   1         signal0 = 1;
 200   1      
 201   1         T1init();
 202   1         TR1 = 1;
 203   1         signal1 = 1;
 204   1      
 205   1         EX0=1;
 206   1         EX1=1;
 207   1         IT0=0;
 208   1         IT1=0;
 209   1      
 210   1         a0=0;
 211   1         a1=1;
 212   1         b0=1;
 213   1         b1=0;
 214   1         buzzer=1;
 215   1      
 216   1         pulseWidth0 =10000;
 217   1         Calculate0();
 218   1         pulseWidth1 =10000;
 219   1         Calculate1();
 220   1      
 221   1         while(1)
 222   1         {
 223   2               if(flag0==1)
 224   2               {
 225   3                EX0=0;
 226   3                zuo(800);
 227   3                EX0=1;
 228   3               }
 229   2          
 230   2               if(flag1==1)
 231   2               {
 232   3                EX1=0;
 233   3                you(800);
 234   3                EX1=1;
 235   3               }
 236   2         }
 237   1      
 238   1      
 239   1      
C51 COMPILER V8.02   MAIN                                                                  03/14/2009 10:19:32 PAGE 5   

 240   1      }


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