当前位置:首页 > 黄金军的论文正文
本科毕业设计说明书(论文)
前进程序流程图如图4.5:
定义PB6、PB5、PB3、PB2、PB4为输出第 17 页 共 30 页
PB6、PB3置位,PB5、PB2复位设置并启动T/C0,PB4输出PWM波延时让小车运动PB6、PB3、PB5、PB2复位,并关闭T/C0,小车停止运动 图4.5小车前进程序流程图
控制前进的程序段如下: #include
} /*delay_1ms()为1ms延时函数*/ void delay_nms(unsigned int n) { unsigned int j; for(j=0;j } /*delay_nms为nms延时函数*/ void step0(unsigned char speedx,unsigned char distencex) { unsigned int t1; 本科毕业设计说明书(论文) 4位和7位设置为输出,用于产生PWM波形*/ 第 18 页 共 30 页 DDRB|=0XFC; /*B口的6,5,3,2位设置为输出,用于控制电机转向; PORTB|=0X48,PORTB&=0XDB; /*使得PB6、PB3置位,PB5、PB2复位*/ TCNT0=0x00; /*设置计数初始值*/ OCR0=(unsigned char)speedx*255/5; /*根据速度设置占空比,设小车最大速度为5m/s*/ TCCR0=0b01100010; /*启动计数器,设置为8分频*/ t1=(unsigned int)1000*distencex/speedx; delay_nms(t1); /*延时,让小车运动指定的距离*/ PORTB&=0X93; /*关闭电机驱动电平*/ TCCR0=0b01100000; /*关闭计数器,PWM波形停止产生*/ } /*step0为小车的前进函数*/ (2)左(右)转45度、90度 左转基本设计思想是:当接受到命令时,PB2、PB3设置为0和0(左轮不运动);PB5、PB6设置为0和1(右轮向前运动),根据有关命令参数开启T/C0产生PWM波,从PB4口输出;然后运行延时程序,利用运行延时程序的长短来实现进行的是45度转向还是90度转向。再将PB2、PB3、PB5、PB6全部置0,关闭T/C0,小车停止运动。 右转基本设计思想是:当接受到命令时,PB2、PB3设置为0和1(左轮向前运动);PB5、PB6设置为0和0(右轮不运动),根据有关命令参数开启T/C0产生PWM波,从PB4口输出;然后运行延时程序,利用运行延时程序的长短来实现进行的是45度转向还是90度转向。再将PB2、PB3、PB5、PB6全部置0,关闭T/C0,小车停止运动。 (3)左(右)后转45度、90度 左后转基本设计思想是:当接受到命令时,PB2、PB3设置为0和0(左轮不运动);PB5、PB6设置为1和0(右轮向后运动),根据有关命令参数开启T/C0产生PWM波,从PB4口输出;然后运行延时程序,利用运行延时程序的长短来实现进行的是45度转向还是90度转向。再将PB2、PB3、PB5、PB6全部置 本科毕业设计说明书(论文) 0,关闭T/C0,小车停止运动。 第 19 页 共 30 页 右后转基本设计思想是:当接受到命令时,PB2、PB3设置为1和0(左轮向后运动);PB5、PB6设置为0和0(右轮不运动),根据有关命令参数开启T/C0产生PWM波,从PB4口输出;然后运行延时程序,利用运行延时程序的长短来实现进行的是45度转向还是90度转向。再将PB2、PB3、PB5、PB6全部置0,关闭T/C0,小车停止运动。 小车转向时仅有一组轮子在运动,转向完毕后,不应该让它立即运动,因为如果这样的话,在转向速度比较大时,小车可能会翻车。这里所说的让小车转向后立即前进或者后退是指保持小车的一组轮子运动而另外一组不运动一段时间后,并不关闭运动的那组电机控制电平,而是立即开启先前不运动的那组电机。 所以考虑多种因素后,设计想让小车在转向完成后停止1s左右在继续前进或者后退。 小车左转45度再前进的流程图如下图4.6所示: 、PB3、定义PB6、PB5PB2、PB4为输出 PB6置位,PB5 、PB3、PB2复位 设置并启动T/C0,PB4输 出PWM波 延时相应时间,让小车 左转PB6、PB3、PB5、PB2复位,小车停止运动并延 时1s PB6、PB3置位,PB5、 PB2复位 延时让小车运动 、PB2复PB6、PB3、PB5位,并关闭T/C0,小车停 止运动图4.6小车左转45度再前进流程图 本科毕业设计说明书(论文) 4.3.3小车运动速度的控制设计 (1)PWM速度控制原理 第 20 页 共 30 页 脉宽调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。 简而言之,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。 (2)PWM速度控制的优点 模拟电压和电流可直接用来进行控制,如对汽车收音机的音量进行控制。在简单的模拟收音机中,音量旋钮被连接到一个可变电阻。拧动旋钮时,电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了驱动扬声器的电流值,使音量相应变大或变小。与收音机一样,模拟电路的输出与输入成线性比例。 尽管模拟控制看起来可能直观而简单,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。 PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。 对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通
共分享92篇相关文档