?? car01.lst
字號:
C51 COMPILER V8.02 CAR01 09/04/2011 23:23:06 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE CAR01
OBJECT MODULE PLACED IN CAR01.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CAR01.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"reg51.h"
2
3 sbit p20=P2^0;sbit p21=P2^1;sbit p22=P2^2;sbit p23=P2^3;
4 //1車P20=1A,P21=1B,P23=2A,P22=2B,2車p20=1A,P21=1B,P22=2A,P23=2B;
5
6 sbit left=P3^6;//左尋
7 sbit right=P3^7;//右尋
8 sbit zhong=P3^5;//黑線探測p35;
9 sbit qian=P1^6;//前避障
10 sbit you=P1^7;//右避障
11 sbit p15=P1^5;
12 sbit p27=P2^7;
13 sbit p32=P3^2;
14 sbit p26=P2^6;//fmq
15 sbit jichu=P1^4; //按鍵切換功能 接地 直走 接空壁障 或停車
16
17 unsigned char flag_left_or_right,flag_along_right,flag_chaoche,flag_stop,flag_bizhang,flag_xunji_zhuan;//1
---left;2--right;
18 bit flag_change=0,flag_start=0,flag_ok=0;
19 unsigned int flag=0,timer=0;
20 unsigned int n;
21 //********************************************************************************************************
-********//
22
23 void delay1ms()
24 {
25 1 unsigned char i,j;
26 1 for(i=0;i<10;i++)
27 1 for(j=0;j<33;j++)
28 1 ;
29 1 }
30 void delay(unsigned int n)//
31 {
32 1 unsigned int i;
33 1 for(i=0;i<n;i++)
34 1 delay1ms();
35 1 }
36
37 void send232byte(unsigned char bytebuf)
38 {
39 1 SBUF=bytebuf;
40 1 while(!TI);
41 1 TI=0;
42 1 }
43 //********************************************************************************************************
-********//
44 //********************************************************************************************************
-********//
45 void turn_left(void) { p20=0;p21=0;p22=1;p23=0; }//左轉
46 void turn_right(void) { p20=1;p21=0;p22=0;p23=0; }//右轉
47 void turn_cleft(void) { p20=0;p21=1;p22=1;p23=0; }//左原地轉
48 void turn_cright(void) { p20=1;p21=0;p22=0;p23=1; }//右原地轉
49 void go_along(void) { p20=1;p21=0;p22=1;p23=0; }//直走
50 void go_back(void) { p20=0;p21=1;p22=0;p23=1; }//后
51 void stop(void) { p20=0;p21=0;p22=0;p23=0; }//停止
C51 COMPILER V8.02 CAR01 09/04/2011 23:23:06 PAGE 2
52 void go_along_right(void) { go_along();delay(14);turn_right();delay(2); }//偏右直走
53 void go_along_slow_r(void) { go_along();delay(9);stop();delay(20); }//低直走(避障用到)
54 void go_back_slow(void) { go_back();delay(10);stop();delay(25); }//低速后(避障用到)
55 void go_along_left(void) { go_along();delay(10);turn_left();delay(1); }
56 void turn_left_go(void) { turn_cleft();delay(1);turn_left();delay(7); }//
57 void turn_left_go1(void) { turn_cleft();delay(3);stop();delay(6);turn_left();delay(5); }
58 void turn_left_go_low(void) {turn_cleft();delay(4);stop();delay(8);turn_left();delay(5);stop();delay(1);}
59
60 void turn_left_tan(void) {turn_cleft();delay(3);turn_left();delay(10);stop();delay(2);}//低彈
61
62 void turn_right_go(void) { turn_cright();delay(4);turn_right();delay(7);}//
63
64
65 void go_along_right_lowlow(void){go_along();delay(3);stop();delay(9);turn_right();delay(2);stop();delay(9)
-;}
66 void turn_right_go_verylow(void){turn_cright();delay(2);stop();delay(9);turn_right();delay(7);stop();delay
-(9);}
67 void turn_left_verylow(void){turn_left();delay(6);stop();delay(20);}
68
69 void turn_left_low(void) { turn_left_go();delay(10);stop();delay(8); }
70 //********************************************************************************************************
-********//
71
72 void zhuanwan4(void)//4步擬合曲線
73 {
74 1 go_along();delay(240);turn_left_low();delay(85);stop();delay(100);
75 1 go_along();delay(240);stop();delay(50);turn_left_go();delay(160);
76 1 go_along();delay(130);stop();delay(50);turn_left_go();delay(160);
77 1 go_along();delay(100);stop();delay(50);turn_left_go();delay(100);
78 1 while((right!=1)&&(left!=1)){go_along();}stop();delay(50);go_back();delay(50);turn_left_go();delay(10);
79 1 }
80 void zhuanwan3(void)//3步擬合曲線
81 {
82 1 go_along();delay(280);turn_left_go();delay(70);stop();delay(60);
83 1 go_along();delay(200);stop();delay(50);turn_left_go();delay(200);
84 1 go_along();delay(130);stop();delay(50);turn_left_go();delay(180);
85 1 while(right!=1){go_along();}stop();delay(50);go_back();delay(50);turn_left_go();delay(10);
86 1 }
87 void xunji_bizhang_normal(void)//避障走法正常循跡
88 {
89 1 if(left==0&&right==0)
90 1 {
91 2 go_along_right();
92 2 }
93 1 if(left==0&&right==1)
94 1 {
95 2 turn_left_go1();
96 2 }
97 1 if(left==1&&right==0)
98 1 {
99 2 turn_right_go();
100 2 }
101 1 if(left==1&&right==1)
102 1 {
103 2 go_along_right();
104 2 }
105 1 }
106 void xunji_bizhang_low_speed(void)//低速避障循跡
107 {
108 1 if(left==0&&right==0)
109 1 {
110 2 go_along_right();delay(5);stop();delay(95);
C51 COMPILER V8.02 CAR01 09/04/2011 23:23:06 PAGE 3
111 2 }
112 1 if(left==0&&right==1)
113 1 {
114 2 turn_left_go_low();
115 2 }
116 1 if(left==1&&right==0)
117 1 {
118 2 turn_right_go();
119 2 }
120 1 if(left==1&&right==1)
121 1 {
122 2 go_along_right();delay(5);stop();delay(95);
123 2 }
124 1 }
125 void xunji_bizhang_chaoche_over(void)//超車結束后特殊循跡
126 {
127 1 if(left==0&&right==1)
128 1 {
129 2 turn_left_go_low();
130 2 }
131 1 if(right==0)
132 1 {
133 2 go_along();delay(15);stop();delay(85);
134 2 }
135 1 if(left==1&&right==1)
136 1 {
137 2 go_along();delay(15);stop();delay(85);
138 2 }
139 1 }
140 void chaoche_bizhang(void)//避障動作
141 {
142 1 flag_bizhang=1;
143 1 while(qian!=1) {turn_left();delay(27);stop();delay(30);}
144 1 stop();delay(500);
145 1 go_along();delay(600);
146 1 stop();delay(500);
147 1 while(you!=1) //如果有再直走;
148 1 {go_along_slow_r();} stop();delay(500);
149 1 while(you==1)//轉到有
150 1 {turn_right();delay(39);stop();delay(60);}stop();delay(500);
151 1 while(you!=1)//轉到沒有
152 1 {turn_right();delay(40);stop();delay(60);}stop();delay(500);
153 1 while(you==1)//走到有
154 1 {go_along_slow_r();} stop();delay(500);
155 1 while(you!=1)//走到沒有
156 1 {go_along_slow_r();} stop();delay(500);
157 1 while(you==1)//退到有
158 1 {go_back_slow();} stop();delay(500);
159 1 while(you!=1)//轉到沒有
160 1 {turn_right();delay(30);stop();delay(70);}stop();delay(500);
161 1 go_along();delay(500);
162 1 stop();delay(500);
163 1 turn_left();delay(80);
164 1 stop();delay(500);
165 1 flag_xunji_zhuan=1;
166 1 flag_bizhang=0;
167 1 }
168 void xunji_bizhang(void)//避障走法循跡函數
169 {
170 1 if(zhong==0)
171 1 {
172 2 if(jichu==0)
C51 COMPILER V8.02 CAR01 09/04/2011 23:23:06 PAGE 4
173 2 {
174 3 xunji_bizhang_normal();
175 3 }
176 2
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -