📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 03/17/2011 22:19:40 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*说明;P1.0 P1.1 P1.2 P1.3为L293电机控制端口
2 P1.1 P1.3为红外避障检测端口(低电平有效)
3 P3.4 P3.5 P3.6 P3.7为寻线检测端口(低电平有效,黑线低电平)
4 P1.4 P1.5 风扇控制口
5 */
6 //p1.0 1.1控制右电机 01正转 P1.2 1.3控制左边电机 01正转
7 #include<reg51.h>
8 #define uchar unsigned char
9 #define uint unsigned int
10
11 uchar k;
12 uchar a,biaozhi,zhuangtai;
13 sbit out1 = P1^0 ; //控制左电机
14 sbit out2 = P1^1 ;
15 sbit out3 = P1^2 ; //控制右电机
16 sbit out4 = P1^3 ;
17 sbit IN1 = P2^0 ;
18 sbit IN2 = P2^1 ;
19 sbit IN3 = P2^2 ;
20 sbit IN4 =P2^3;
21
22 void delay1(uchar t) //延时程序1
23 {
24 1 uchar j;
25 1 while(t--)
26 1 {for(j=5;j>0;j--);}
27 1 }
28
29 void delay2(uint t) //延时程序2
30 {
31 1 uchar j;
32 1 while(t--)
33 1 {for(j=100;j>0;j--);}
34 1 }
35
36 void stop()//电机停止
37 {
38 1 out1=0;
39 1 out2=0;
40 1 out3=0;
41 1 out4=0;
42 1 delay1(10);
43 1 }
44
45 void comeleft()//左转,右路电机正传,左路电机反转 P1=0X06; //小车左转
46 {
47 1 out1=0;
48 1 out2=1;
49 1 out3=1;
50 1 out4=0;
51 1 delay2(200);
52 1 }
53
54 //右转,左路电机正传,右路电机反转P1=0X09; //小车右转
55
C51 COMPILER V7.06 MAIN 03/17/2011 22:19:40 PAGE 2
56 void comeright ()
57 {
58 1 out1=1;
59 1 out2=0;
60 1 out3=0;
61 1 out4=1;
62 1 delay2(200);
63 1 }
64
65 void smleft()//左微转,左路、右路电机皆正传,只是左路插入一定时间的停机状态,造成左边速度慢,形成左微转 01
-01
66 {
67 1 out1=1;
68 1 out2=0;
69 1 out3=1;
70 1 out4=0;
71 1 delay1(1);
72 1 out3=0;
73 1 delay1(5);
74 1 out3=1;
75 1 }
76 void smright ()//右微转,
77 {
78 1 out1=1;
79 1 out2=0;
80 1 out3=1;
81 1 out4=0;
82 1 delay1(1);
83 1 out1=0;
84 1 delay1(5);
85 1 out1=1;
86 1 }
87
88
89 void comeon()//前进加速;防止瞬间上电,加速度的造成小车重心不稳 造成抖动的现象。0101
90 {
91 1 uchar i;
92 1 out2=0;out4=0;
93 1 //out3=1; out1=1;
94 1
95 1 for(i=0;i<=8;i++)//即在运行时加入少量的停机时间。
96 1 {
97 2 out1=0;
98 2 out3=0;
99 2 delay2(1);
100 2 out1=1;
101 2 out3=1;
102 2 delay2(5);
103 2 }
104 1
105 1 }
106
107 void comeback()//后退,同理于前进加速 1001
108 {
109 1 uchar i;
110 1 out2=0;out3=0;
111 1
112 1 for(i=0;i<=8;i++)
113 1 {
114 2 out1=1;
115 2 out4=0;
116 2 delay2(60);
C51 COMPILER V7.06 MAIN 03/17/2011 22:19:40 PAGE 3
117 2 out2=0;
118 2 out3=1;
119 2 delay2(2);
120 2 }
121 1
122 1 }
123
124 //循迹
125 void scanline()
126 {
127 1 P2=P2|0XF0; delay1(1);
128 1 if(IN1==0){smleft();}//寻线模块右路检测到黑线 则右微转,记录状态0
129 1 else if(IN2==0){ smright() ;}//寻线模块左路检测到黑线 则左微转,记录状态1
130 1 else if(IN1==1&IN2==1) comeon();
131 1
132 1 }
133
134 void main(void)
135 {
136 1
137 1 while(1)
138 1 {
139 2
140 2 scanline();
141 2 //smright ();
142 2 // smleft();
143 2 }
144 1 //comeback();
145 1
146 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 236 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -