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

📄 waijia.lst

📁 本篇文章介绍了一种智能小车
💻 LST
字号:
C51 COMPILER V6.02  WAIJIA                                                                 06/05/2006 08:47:32 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE WAIJIA
OBJECT MODULE PLACED IN E:\STUDY\WORKS\CAR\WAIJIA.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE E:\STUDY\WORKS\CAR\WAIJIA.C DB SB OE

stmt level    source

   1          #include <intrins.h>//这个头文件中有_nop_();
   2          #include <reg52.h>
   3          #include<stdio.h>
   4          unsigned char speedleft,speedright;//右左转速度
   5          unsigned char h,l,flag,time; //高速 低速 小车运行标志 延时时间
   6          int tim=0;//------调脉宽
   7          int j;
   8          //void Start(void);//键盘
   9          void Run(void);//探测
  10          void Forward(char speed);//前进
  11          void Reverse(char speed,int dely,bit r);//speed--速度,dely--时间,r--左(右)
  12          void TurnRight(void);//右拐
  13          void TurnLeft(void);//左拐
  14          void delay(unsigned int time);//--延时
  15          void stop(void);//---停止
  16          void main(void)
  17          {
  18   1        P1=0x40;//------------
  19   1        P3=0xff;
  20   1        h=20;
  21   1        l=40;
  22   1        flag=0;
  23   1        time=50;
  24   1         EA=1; ET0=1;//-----开中断-----------
  25   1        TMOD=0x02;
  26   1          TH0=0x30;
  27   1          TL0=0x30;
  28   1          TR0=0;
  29   1          while(1) {
  30   2                      TR0=1;
  31   2                    P3= 0x0f; //向四个发射管送高电平
  32   2                   Run();     //探测&&处理
  33   2                    }
  34   1      }
  35          //-----------------------------判断键盘程序----------------------------------------
  36          /*void Start(void)
  37          {
  38            char exit,key;
  39                 exit =1;
  40               while(exit)
  41                {
  42                  key = P1;
  43                  if((key & 0x40)==0)  //-------------P1.2接键盘
  44                  exit=0; //按下了键盘 向下进行
  45                }
  46          }   */
  47          //---------------------------探测&&处理程序--------------------------------------
  48          void Run(void)
  49          {    int dey=5000;
  50   1         char sensors;
  51   1              sensors = (P3&=0x0f);  //P3^3~P3^0接四个对管
  52   1             if((sensors&0x01)==0) { //P3^0为右边对管(当收不到返回光时,P3.0收到L)
  53   2              TurnLeft();
  54   2              flag = 1;              }
  55   1       else  if((sensors & 0x08)==0) { //P3^3为左边对管(当收不到返回光时,P3.3收到L)
C51 COMPILER V6.02  WAIJIA                                                                 06/05/2006 08:47:32 PAGE 2   

  56   2               TurnRight();
  57   2               flag = 2;             }
  58   1       else  if(sensors&0x09)    {  //  P3^1 P3^2为黑线上方对管(当两个管都收到 L 并
  59   2              Forward(h);           //    且左右两边对管收到 H 时高速行驶)
  60   2              flag = 0;              }
  61   1      
  62   1       else  if(((sensors==0x0b==0)||(sensors==0x0d))&&(flag==0))
  63   1                Forward(l);//  如果前面的对管下没有黑线 ( P3^2 )
  64   1                             //  或后面的对管下没有黑线   ( P3^1 )
  65   1                            //  并且在高速时-------减速!!
  66   1      
  67   1        else  if((sensors==0x0f)|(sensors==0x00))
  68   1               Forward(l);
  69   1      }
  70          //--------------------------------前进程序---------------------------------
  71          void Forward(char speed)
  72          {
  73   1        P1=0x64;
  74   1        speedright = speed+5;
  75   1        speedleft  = speed;
  76   1        delay(50);
  77   1      }
  78          //--------------------------------右转程序---------------------------------
  79          void TurnRight(void)
  80          {
  81   1        P1=0x68;
  82   1        speedright = l+5;
  83   1        speedleft  = l+10;
  84   1        delay(50);
  85   1      }
  86          //--------------------------------左转程序----------------------------------
  87          void TurnLeft(void)
  88          {
  89   1        P1=0x54;
  90   1        speedright = l+10;
  91   1        speedleft  = l-30;
  92   1        delay(50);
  93   1      }
  94          //--------------------------------后退程序---------------(未用)------------
  95          void Reverse(char speed,int dely,bit r)
  96          {
  97   1        int x,y;
  98   1        P1=0x1b;
  99   1        if(r)
 100   1        {
 101   2          speedright = speed;
 102   2          speedleft  = speed+5;
 103   2         }
 104   1            else
 105   1            {
 106   2            speedright= speed-5;//5;
 107   2             speedleft= speed;
 108   2            }
 109   1          delay(dely);
 110   1          x=y=j;
 111   1          while(j--);
 112   1          while(x--);
 113   1          while(y--);
 114   1      }
 115          //---------------------------------停止---------------------------------------
 116          void stop(void)
 117          {
C51 COMPILER V6.02  WAIJIA                                                                 06/05/2006 08:47:32 PAGE 3   

 118   1                P1&=0xfe;
 119   1                P1&=0xfd;
 120   1      }
 121          //--------------------------------延时程序----------------------------------
 122          void delay(unsigned int time)
 123          {
 124   1       while(time--)
 125   1       {_nop_();_nop_();}
 126   1      }
 127          //--------------------------------中断处理----------------------------------
 128          void time0(void) interrupt 1 using 2
 129          {
 130   1         if(tim<speedright)
 131   1             {      P1&=0xfd;          }
 132   1           else
 133   1             {      P1|=0x01;          }
 134   1         if(tim<speedleft)
 135   1             {      P1&=0xfe;          }
 136   1               else
 137   1             {      P1|=0x02;          }
 138   1      tim++;
 139   1      if(tim>=100)
 140   1      {   tim=0;   }
 141   1      }
C51 COMPILER V6.02  WAIJIA                                                                 06/05/2006 08:47:32 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
flag . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
TurnRight. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
time . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0001H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
Run. . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  dey. . . . . . . . . . . . . . . . .  AUTO     DATA   INT      0000H  2
  sensors. . . . . . . . . . . . . . .  AUTO     DATA   CHAR     0002H  1
speedright . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0002H  1
TurnLeft . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_Forward . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  speed. . . . . . . . . . . . . . . .  * REG *  DATA   CHAR     0007H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
_Reverse . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  speed. . . . . . . . . . . . . . . .  * REG *  DATA   CHAR     0003H  1
  dely . . . . . . . . . . . . . . . .  * REG *  DATA   INT      0006H  2
  r. . . . . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   INT      0004H  2
  y. . . . . . . . . . . . . . . . . .  * REG *  DATA   INT      0006H  2
speedleft. . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0003H  1
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
stop . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
tim. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   INT      0004H  2
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
C51 COMPILER V6.02  WAIJIA                                                                 06/05/2006 08:47:32 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
time0. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
h. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0006H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
j. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   INT      0007H  2
l. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0009H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
_delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0006H  -----
  time . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


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