基于单片机的自动避障小车设计课设 下载本文

沈阳航空航天大学课程设计说明书 参考文献

trig = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); trig = 0;

//800MS 启动一次模块

} }

void Timer2(void) interrupt 5 //T2中断 {

TF2 = 0; // T2定时器发生溢出中断时,需要用户自己清除溢出标记

23

沈阳航空航天大学课程设计说明书 参考文献

RCAP2H = 0x0fe; }

void main() {

RCAP2L = 0x33; /*恢复定时器初始值*/ ++click;

if (click>=100) //电机pwm输出,占空比zk1% click=0; if (click<=ZK1)

PWM1=1;

else PWM1=0;

if (click<=ZK2)

PWM2=1; else

PWM2=0;

//主函数

//设T0为方式1,GATE=1;

TMOD = 0x19; TH0 = 0;

TL0 = 0; TH1 = 0x0f8; TL1 = 0x30;

ET0 = 1; //允许T0中断 ET1 = 1; TR1 = 1;

//允许T1中断 //开启定时器

//2MS定时

Timer2Interrupt(); EA = 1;

//开启总中断

24

沈阳航空航天大学课程设计说明书 参考文献

}

ZK1 = 40; ZK2 = 40; while(1) { }

while(INT0==0); TR0=1; while(INT0==1); TR0=0; Conut();

//当外部中断为1计数并等待 //关闭计数

//当外部中断为0时等待

//计算

//控制加速

if (S<100) { ZK2=30; ZK1=100; }

else if(S>100) { ZK1=90; ZK2=90; delay_1(); }

//控制转向

2.小车实物图

25

沈阳航空航天大学课程设计说明书 参考文献

26