?? xunji.lst
字號:
C51 COMPILER V7.06 XUNJI 09/02/2011 23:08:54 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車P20=1A,P21=1B,P23=2A,P22=2B,2車p20=1A,P21=1B,P22=2A,P23=2B;
4 sbit left=P3^6;//左尋
5 sbit right=P3^7;//右尋
6 sbit zhong=P3^5;//黑線探測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 /*
30 void delay100us()
31 {
32 unsigned char j;
33 for(j=0;j<33;j++)
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 void turn_left(void) { p20=0;p21=0;p22=1;p23=0; }//左轉
50 void turn_right(void) { p20=1;p21=0;p22=0;p23=0; }//右轉
51 void turn_cleft(void) { p20=0;p21=1;p22=1;p23=0; }//左原地轉
52 void turn_cright(void) { p20=1;p21=0;p22=0;p23=1; }//右原地轉
C51 COMPILER V7.06 XUNJI 09/02/2011 23:08:54 PAGE 2
53 void go_along(void) { p20=1;p21=0;p22=1;p23=0; }//直走
54 void go_back(void) { p20=0;p21=1;p22=0;p23=1; }//后
55 void stop(void) { p20=0;p21=0;p22=0;p23=0; }//停止
56 void go_along_right(void) { go_along();delay(14);turn_right();delay(2); }
57 void go_along_slow_r(void) { go_along();delay(10);stop();delay(20); }
58 void go_back_slow(void) { go_back();delay(10);stop();delay(25); }
59 void go_along_left(void) { go_along();delay(10);turn_left();delay(1); }
60 void turn_left_go(void) { turn_cleft();delay(3);turn_left();delay(7); }
61 void turn_left_go_low(void) {turn_cleft();delay(4);stop();delay(1);turn_left();delay(5);stop();delay(1);}
62 void turn_right_go(void) { turn_cright();delay(4);turn_right();delay(7);}
63 void turn_left_low(void) { turn_left_go();delay(14);stop();delay(8); }
64 void turn_right_low(void) { turn_right_go();delay(14);stop();delay(8); }
65 //********************************************************************************************************
-********//
66 void xunji_bizhang_normal(void)
67 {
68 1 if(left==0&&right==0)
69 1 {
70 2 go_along_right();
71 2 }
72 1 if(left==0&&right==1)
73 1 {
74 2 turn_left_go();
75 2 }
76 1 if(left==1&&right==0)
77 1 {
78 2 turn_right_go();
79 2 }
80 1 if(left==1&&right==1)
81 1 {
82 2 go_along_right();
83 2 }
84 1 }
85 void xunji_bizhang_low_speed(void)
86 {
87 1 if(left==0&&right==0)
88 1 {
89 2 go_along_right();delay(5);stop();delay(95);
90 2 }
91 1 if(left==0&&right==1)
92 1 {
93 2 turn_left_go_low();
94 2 }
95 1 if(left==1&&right==0)
96 1 {
97 2 turn_right_go();
98 2 }
99 1 if(left==1&&right==1)
100 1 {
101 2 go_along_right();delay(5);stop();delay(95);
102 2 }
103 1 }
104 void xunji_bizhang_chaoche_over(void)
105 {
106 1 if(left==0&&right==1)
107 1 {
108 2 turn_left_go_low();
109 2 }
110 1 if(right==0)
111 1 {
112 2 go_along();delay(15);stop();delay(85);
113 2 }
C51 COMPILER V7.06 XUNJI 09/02/2011 23:08:54 PAGE 3
114 1 if(left==1&&right==1)
115 1 {
116 2 go_along();delay(15);stop();delay(85);
117 2 }
118 1 }
119 void chaoche_bizhang(void)
120 {
121 1 flag_bizhang=1;
122 1 while(qian!=1) {turn_left();}
123 1 stop();delay(500);
124 1 go_along();delay(600);
125 1 stop();delay(500);
126 1 while(you!=1) //如果有再直走;
127 1 {go_along_slow_r();} stop();delay(500);
128 1 while(you==1)//轉到有
129 1 {turn_right();delay(40);stop();delay(60);}stop();delay(500);
130 1 while(you!=1)//轉到沒有
131 1 {turn_right();delay(40);stop();delay(60);}stop();delay(500);
132 1 while(you==1)//走到有
133 1 {go_along_slow_r();} stop();delay(500);
134 1 while(you!=1)//走到沒有
135 1 {go_along_slow_r();} stop();delay(500);
136 1 while(you==1)//退到有
137 1 {go_back_slow();} stop();delay(500);
138 1 while(you!=1)//轉到沒有
139 1 {turn_right();delay(40);stop();delay(60);}stop();delay(500);
140 1 go_along();delay(500);
141 1 stop();delay(500);
142 1 turn_left();delay(120);
143 1 stop();delay(1000);
144 1 flag_xunji_zhuan=1;
145 1 flag_bizhang=0;
146 1 }
147 void xunji_bizhang(void)
148 {
149 1 if(zhong==0)
150 1 {
151 2 if(flag_chaoche==0)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -