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

📄 robot1.lst

📁 本篇文章介绍了一种智能小车
💻 LST
字号:
C51 COMPILER V6.02  ROBOT1                                                                 06/05/2006 09:29:45 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE ROBOT1
OBJECT MODULE PLACED IN E:\STUDY\WORKS\CAR\ROBOT1.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE E:\STUDY\WORKS\CAR\ROBOT1.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          sbit zz=P3^4;
  17          void main(void)
  18          {
  19   1        P1=0x40;//------------
  20   1        P3=0xff;
  21   1        h=20;
  22   1        l=40;
  23   1        flag=0;
  24   1        time=50;
  25   1         EA=1; ET0=1;//-----开中断-----------
  26   1        TMOD=0x02;
  27   1          TH0=0x30;
  28   1          TL0=0x30;
  29   1          TR0=0;
  30   1        //  Start();
  31   1          while(1) {
  32   2                      TR0=1;
  33   2                    P3= 0x0f; //向四个发射管送高电平
  34   2                   Run();     //探测&&处理
  35   2                   //Forward(60);
  36   2                    }
  37   1      }
  38          //-----------------------------判断键盘程序----------------------------------------
  39          /*void Start(void)
  40          {
  41            char exit,key;
  42                 exit =1;
  43               while(exit)
  44                {
  45                  key = P1;
  46                  if((key & 0x40)==0)  //-------------P1.2接键盘
  47                  exit=0; //按下了键盘 向下进行
  48                }
  49          }   */
  50          //---------------------------探测&&处理程序--------------------------------------
  51          void Run(void)
  52          {    int dey=5000;
  53   1         char sensors;
  54   1              sensors = (P3&=0x3f);  //P3^3~P3^0接四个对管
  55   1             if((sensors&0x01)==0) { //P3^0为右边对管(当收不到返回光时,P3.0收到L)
C51 COMPILER V6.02  ROBOT1                                                                 06/05/2006 09:29:45 PAGE 2   

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

 118   1          while(y--);
 119   1      }
 120          //---------------------------------停止---------------------------------------
 121          void stop(void)
 122          {
 123   1                P1&=0xfe;
 124   1                P1&=0xfd;
 125   1      }
 126          //--------------------------------延时程序----------------------------------
 127          void delay(unsigned int time)
 128          {
 129   1       while(time--)
 130   1       {_nop_();_nop_();}
 131   1      }
 132          //--------------------------------中断处理----------------------------------
 133          void time0(void) interrupt 1 using 2
 134          {
 135   1         if(tim<speedright)
 136   1             {      P1&=0xfd;          }
 137   1           else
 138   1             {      P1|=0x01;          }
 139   1         if(tim<speedleft)
 140   1             {      P1&=0xfe;          }
 141   1               else
 142   1             {      P1|=0x02;          }
 143   1      tim++;
 144   1      if(tim>=100)
 145   1      {   tim=0;   }
 146   1      }
C51 COMPILER V6.02  ROBOT1                                                                 06/05/2006 09:29:45 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  ROBOT1                                                                 06/05/2006 09:29:45 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
zz . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    425    ----
   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 + -