?? xunji.lst
字號(hào):
C51 COMPILER V7.06 XUNJI 09/02/2011 23:21:10 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE XUNJI
OBJECT MODULE PLACED IN xunji.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE xunji.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"reg51.h"
2 sbit p20=P2^0;sbit p21=P2^1;sbit p22=P2^2;sbit p23=P2^3;
3 //1車(chē)P20=1A,P21=1B,P23=2A,P22=2B,2車(chē)p20=1A,P21=1B,P22=2A,P23=2B;
4 sbit left=P3^6;//左尋
5 sbit right=P3^7;//右尋
6 sbit zhong=P3^5;//黑線(xiàn)探測(cè)p35;
7 sbit qian=P1^6;//前避障
8 sbit you=P1^7;//右避障
9 sbit p15=P1^5;sbit p27=P2^7;sbit p32=P3^2;sbit p26=P2^6;//fmq
10 unsigned char flag_left_or_right,flag_along_right,flag_chaoche,flag_stop,flag_bizhang,flag_xunji_zhuan;//1
---left;2--right;
11 bit flag_change=0;
12 unsigned int flag=0,timer=0;
13 unsigned int n;
14 //********************************************************************************************************
-********//
15
16 void delay1ms()
17 {
18 1 unsigned char i,j;
19 1 for(i=0;i<10;i++)
20 1 for(j=0;j<33;j++)
21 1 ;
22 1 }
23 void delay(unsigned int n)//
24 {
25 1 unsigned int i;
26 1 for(i=0;i<n;i++)
27 1 delay1ms();
28 1 }
29 /*void delay100us()
30 {
31 unsigned char j;
32 for(j=0;j<33;j++)
33 ;
34 }
35 void delayus(unsigned int n)//
36 {
37 unsigned int i;
38 for(i=0;i<n;i++)
39 delay100us();
40 }*/
41 /*********************************************************************
42 void send232byte(unsigned char bytebuf)
43 {
44 SBUF=bytebuf;
45 while(!TI);
46 TI=0;
47 }
48 ********************************************************************/
49 //********************************************************************************************************
-********//
50 void turn_left(void) { p20=0;p21=0;p22=1;p23=0; }//左轉(zhuǎn)
51 void turn_right(void) { p20=1;p21=0;p22=0;p23=0; }//右轉(zhuǎn)
52 void turn_cleft(void) { p20=0;p21=1;p22=1;p23=0; }//左原地轉(zhuǎn)
C51 COMPILER V7.06 XUNJI 09/02/2011 23:21:10 PAGE 2
53 void turn_cright(void) { p20=1;p21=0;p22=0;p23=1; }//右原地轉(zhuǎn)
54 void go_along(void) { p20=1;p21=0;p22=1;p23=0; }//直走
55 void go_back(void) { p20=0;p21=1;p22=0;p23=1; }//后
56 void stop(void) { p20=0;p21=0;p22=0;p23=0; }//停止
57 void go_along_right(void) { go_along();delay(14);turn_right();delay(2); }
58 void go_along_slow_r(void) { go_along();delay(10);stop();delay(20); }
59 void go_back_slow(void) { go_back();delay(10);stop();delay(25); }
60 void go_along_left(void) { go_along();delay(10);turn_left();delay(1); }
61 void turn_left_go(void) { turn_cleft();delay(3);turn_left();delay(7); }
62 void turn_left_go_low(void) {turn_cleft();delay(4);stop();delay(1);turn_left();delay(5);stop();delay(1);}
63 void turn_right_go(void) { turn_cright();delay(4);turn_right();delay(7);}
64 void turn_left_low(void) { turn_left_go();delay(14);stop();delay(8); }
65 void turn_right_low(void) { turn_right_go();delay(14);stop();delay(8); }
66 //********************************************************************************************************
-********//
67 void xunji_bizhang_normal(void)
68 {
69 1 if(left==0&&right==0)
70 1 {
71 2 go_along_right();
72 2 }
73 1 if(left==0&&right==1)
74 1 {
75 2 turn_left_go();
76 2 }
77 1 if(left==1&&right==0)
78 1 {
79 2 turn_right_go();
80 2 }
81 1 if(left==1&&right==1)
82 1 {
83 2 go_along_right();
84 2 }
85 1 }
86 void xunji_bizhang_low_speed(void)
87 {
88 1 if(left==0&&right==0)
89 1 {
90 2 go_along_right();delay(5);stop();delay(95);
91 2 }
92 1 if(left==0&&right==1)
93 1 {
94 2 turn_left_go_low();
95 2 }
96 1 if(left==1&&right==0)
97 1 {
98 2 turn_right_go();
99 2 }
100 1 if(left==1&&right==1)
101 1 {
102 2 go_along_right();delay(5);stop();delay(95);
103 2 }
104 1 }
105 void xunji_bizhang_chaoche_over(void)
106 {
107 1 if(left==0&&right==1)
108 1 {
109 2 turn_left_go_low();
110 2 }
111 1 if(right==0)
112 1 {
113 2 go_along();delay(15);stop();delay(85);
C51 COMPILER V7.06 XUNJI 09/02/2011 23:21:10 PAGE 3
114 2 }
115 1 if(left==1&&right==1)
116 1 {
117 2 go_along();delay(15);stop();delay(85);
118 2 }
119 1 }
120 void chaoche_bizhang(void)
121 {
122 1 flag_bizhang=1;
123 1 while(qian!=1) {turn_left();}
124 1 stop();delay(500);
125 1 go_along();delay(600);
126 1 stop();delay(500);
127 1 while(you!=1) //如果有再直走;
128 1 {go_along_slow_r();} stop();delay(500);
129 1 while(you==1)//轉(zhuǎn)到有
130 1 {turn_right();delay(40);stop();delay(60);}stop();delay(500);
131 1 while(you!=1)//轉(zhuǎn)到?jīng)]有
132 1 {turn_right();delay(40);stop();delay(60);}stop();delay(500);
133 1 while(you==1)//走到有
134 1 {go_along_slow_r();} stop();delay(500);
135 1 while(you!=1)//走到?jīng)]有
136 1 {go_along_slow_r();} stop();delay(500);
137 1 while(you==1)//退到有
138 1 {go_back_slow();} stop();delay(500);
139 1 while(you!=1)//轉(zhuǎn)到?jīng)]有
140 1 {turn_right();delay(40);stop();delay(60);}stop();delay(500);
141 1 go_along();delay(500);
142 1 stop();delay(500);
143 1 turn_left();delay(120);
144 1 stop();delay(1000);
145 1 flag_xunji_zhuan=1;
146 1 flag_bizhang=0;
147 1 }
148 void xunji_bizhang(void)
149 {
150 1 if(zhong==0)
151 1 {
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -