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