天津中德职业技术学院 }
void left() {in1=1; in2=1; dj1=18; dj2=7; }
void right() {in1=1; in2=1; dj1=7; dj2=18; }
void left1() {in1=1; in2=0; dj1=15; dj2=18; }
void right1() {in1=0; in2=1;
23
//小车左转微调子函数1
//小车右转微调子函数1
//小车左转微调子函数2
//小车右转微调子函数2
天津中德职业技术学院 dj1=18; dj2=15; }
void timer0_init() //0.5ms 定时器设置 {TMOD=0X01; TH0=0XFE; TL0=0X33; EA=1; ET0=1; TR0=1; }
void timer0() interrupt 1 //定时器中断函数 {TH0=0XFE; TL0=0X33; count++;
if(count<=dj1)pwm1=1; else pwm1=0;
if(count<=dj2)pwm2=1; else pwm2=0; if(count>=320) {count=0; }
24
//PWM脉宽调速
天津中德职业技术学院 }
void main()
//主函数 //初始化
{timer0_init(); P0=0XFF; P1=0X02; P2=0X00; P3=0X00; while(1)
{if((zuo==0)&&(zhong==1)&&(you==0)) //小车在正确的轨道上,小车前进 {advance(); }
if((zuo==0)&&(zhong==1)&&(you==1)) //小车偏左,执行右转微调子函数1 {right(); }
if((zuo==1)&&(zhong==1)&&(you==0)) //小车偏右,执行左转微调子函数1 {left(); }
if((zuo==1)&&(zhong==0)&&(you==0)) //小车右偏比较大,执行左转微调子函数2 {left1(); }
if((zuo==0)&&(zhong==0)&&(you==1)) //小车左偏比较大,执行右转微调子函数2 {right1();
25
天津中德职业技术学院 }
if((zuo==1)&&(zhong==1)&&(you==1)) //小车行驶在十字交叉出口,直走前进 {advance(); }
if((zuo==0)&&(zhong==0)&&(you==0)) //小车跑出轨道,直走前进,重新上轨道 {advance(); } } }
26
天津中德职业技术学院
参考文献
1
罗志增,蒋静坪编著.循迹小车感觉与多信息融合[M].北京:机械工业出版社,2003:1-10. 蔡自兴编著. 中国的智能循迹小车研究[J]. 莆田学院学报, 2002,9 (3):36-39. 吴林编著. 智能循迹小车主题型号工作的回顾[J]. 循迹小车技术与应用,2001:6-9. 欧青立,何刻忠等编著.室外智能循迹小车的发展及其关键技术研究[J].循迹小车,
2
3
4
2000,22(6):519-526
5
杨鹃.多信息融合技术在移动循迹小车避障系统中的应用[D]. 哈尔滨:哈尔滨理工大
学.2007.
6
陈晓莉,张俊涛.KEIL C51单片机仿真器的设计. 第二版. 陕西科技大学出版社,2006:19-20.
7
李全利,迟荣强编著.单片机原理及接口技术.第1版.高等教育出版社,2004:14-191
27