📄 robot1.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 + -