基于AVRMega16的测速系统.docx
- 文档编号:23601573
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:14
- 大小:346.93KB
基于AVRMega16的测速系统.docx
《基于AVRMega16的测速系统.docx》由会员分享,可在线阅读,更多相关《基于AVRMega16的测速系统.docx(14页珍藏版)》请在冰豆网上搜索。
基于AVRMega16的测速系统
基于AVRMega16的测速系统
1.设计的目的与意义:
本设计的速度测量主要应用于轮式设备的速度测量中(如车辆,转轮等),特别适用于如自行车,人力三轮车等要求低成本的应用中。
本研究的目的是通过单片机的控制实现速度的测量和超速的报警,其中有七段数码管输出速度的值,有控制按钮来控制Km/h和m/s显示,由蜂鸣器来进行报警。
2.设计内容与方法:
本设计的速度测量主要是测量转轴的角速度,利用角速度和线速度的转换关系转换为线速度,从而测量出物体的行进速度。
角速度的测量利用红外光发射和探测而测出转轴的角速度,利用单片机的处理并用七段数码管输出速度值。
如果速度超过指定值时,蜂鸣器发出响声提示。
3.设计电路图:
4.硬件功能说明:
本部分包括对硬件设计思想的说明和硬件用途的说明。
硬件设计思想说明:
本课程设计主要是通过测量轮式车的轮轴转动角速度,转换为小车行进的线速度。
这要求我们要设计一个信号采集源来采集角速度信息传递到单片机进行处理。
我们利用红外反射接收对管产生电信号,利用固定在轴上的挡板来使轴运动信息与电信号关联,最后输入单片机处理。
单片机转换的速度值通过四位七段数码管来显示,如果超速通过蜂鸣器来提示超速,同时又led闪烁来提醒。
信号收集转换系统说明:
原理如图所示
我们的挡板开孔将360°分为四等分,这样做可以提高精度。
将挡板放置于光电对管发射管和接收管之间。
轴的周期性运动使挡板周期性的遮挡发射管与接收管的红外线传播,是光电对管产生周期性的电信号,最后通过接线传输到单片机。
光电对管原理如图所示。
光电对管是由红外线发光二极管和光明三极管组成,我们在集电极串入1k的电阻,输出集电极电压值。
当光电三级管导通时由于集电极有电流流过会使输出电压降低使呈现低电平状态,当三极管截止时,输出电压近似等于+5V,呈现为高电平。
信号由PD6口输入。
速度显示系统说明:
七段数码管如图示。
我们选用的是四位集成的共阳极七段数码管,采用PA0~PA7口分别控制a~p七段和小数点,利用PC0,PC1,PC6,PC7口分别控制1、2、3、4位的七段数码管显示。
最终实现四位动态扫描显示。
蜂鸣器电路如图所示。
我们利用PD0口来控制蜂鸣器的工作,当PD0口输出为高电平时,三极管导通蜂鸣器发声。
PD0口为低电平时三极管截止,蜂鸣器中没有电流流过,不工作
LED电路如图示。
我们利用PD1口来控制LED的显示,当超速时,PD1口周期性的输出高电平使LED灯闪烁提示超速。
未超速时输出低电平二极管不导通。
键盘电路如图。
我们采用PD2口作为键盘检测口。
当检测到键盘按下时,七段数码管显示为Km/h。
正常情况下显示为m/s。
5.软件设计流程与设计思想
软件流程:
软件流程图如下所示。
软件设计思想:
我们课程设计的测速功能主要是由单片机内部定时器T0实现的,通过T0的精确定时测出两次脉冲时间,转换成脉冲频率,最后转换为所求速度。
6.系统测试:
我们通过Proteus仿真软件对软件部分行了测试。
图中为当输入的脉冲频率为10Hz是输出输出值。
图中为输入频率为30Hz时的输出值
第三张图的输入脉冲为45Hz。
分析三张图中结果输出值与输入值的比例近似相等,说明测速部分基本运行正常。
按键和显示转换部分测试
当10 当键盘按下时,显示为Km/h值。 当输出大于15时,D2(实际为蜂鸣器)亮,第二次超速提示。 7.设计所需资源: 硬件: AVR实验开发板(包括了蜂鸣器,按键,LED),光电对管,集成四位共阳极七段数码管。 软件: ICCAVR,AVRstudio,Protel99SE,Proteus。 8.成员分工及贡献情况: 李庆浩硬件加工、电路板设计和焊接、部分软件编写、报告书写 贡献率34% 林鸣远部分软件编写、部分电路制作、网页制作、报告书写 贡献率33% 刘波电路板设计和焊接(包括Protel电路制作)、Proteus软件仿真、报告书写、PPT制作。 贡献率33% 9.项目改进设想: 1.应为自行车等车辆不能采用有线电源供电,由于耗电量较大,干电池消耗量巨大,充电电池由于容量有限不理想,所以我们的下一步改进设想是利用发电装置将车辆的部分动能转换为电能为设备供电。 或者加装太阳能电池,利用太阳能供电。 2.我们设想加入矩阵键盘,在不同的路段输入不同的限速值。 10.参考资料: 1)马潮编著,AVR单片机嵌入式系统原理与应用实践,北京航空航天大学出版社,2007。 2)李茂奎等编著,单片机原理及接口技术实验讲义,山东大学物理学院,2009。 附录: 项目软件 #include #include unsignedintf_time=0,l_time=0;//f_timel_time即first和last,存储两次间隔的初始态和末态,以timer1的时序为单位。 floattime=0;//time记录两次时间间隔,以秒为单位 charpoint=3;//小数点的位置 doublev;//速度 constcharled_7[13]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x39,0x00}; constcharposition[4]={0xfe,0xfd,0xbf,0x7f}; chardis_buf[4]={0}; charv_ok=0;//v_ok=1时显示速度,预定0.5s刷新一次速度 #defineSECOND3906.25//一秒钟 #defineR1.5//车轮半径 voidport_init(void) { PORTA=0x00; DDRA=0xff; PORTB=0x00; DDRB=0x00; PORTC=0x00;//m103outputonly DDRC=0xff; PORTD=BIT (2); DDRD=BIT(0)|BIT (1); } //TIMER1initialize-prescale: 1024 //WGM: 0)Normal,TOP=0xFFFF //desiredvalue: 0.1Hz //actualvalue: 0.100Hz(0.0%) voidtimer1_init(void) { TCCR1B=0x00;//stop TCCR1A=0x00; TCCR1B=0xC5;//startTimer } voidtimer0_init(void) { TCCR0=0x00;//stop TCNT0=0x00;//setcount OCR0=0x7D;//setcompare TCCR0=0x0B;//starttimer } voidinit_devices(void) { //stoperrantinterruptsuntilsetup CLI();//disableallinterrupts port_init(); timer1_init(); timer0_init(); MCUCR=0x00; GICR=0x00; TIMSK=0x22;//timerinterruptsources SEI();//re-enableinterrupts //allperipheralsarenowinitialized } #pragmainterrupt_handlerdisplay: iv_TIM0_COMP//显示速度,兼为速度刷新的标准j=1时速度刷新 voiddisplay(void) { //compareoccuredTCNT0=OCR0 staticchari=0,j=0; if(j++==0)v_ok=1; PORTC=~0xff; if(i>=4)i=0; PORTA=~(led_7[dis_buf[i]]); PORTC=~position[i]; if(i==point)PORTA&=~BIT(7); i++; } #pragmainterrupt_handlertimer1_capt_isr: iv_TIM1_CAPT//上升沿触发 voidtimer1_capt_isr(void) { //timer1inputcaptureevent,read(int)valueinICR1using; //value=ICR1L;//Readlowbytefirst(important) //value|=(int)ICR1H<<8;//Readhighbyteandshiftintotopbyte {f_time=l_time;l_time=ICR1;} } voidto_buf() { chari=0; doubletem_v=v; if(v>=1000){point=3;} if(v>=100&&v<1000){point=2;tem_v*=10;} if(v>=10&&v<100){point=1;tem_v*=100;} if(v<10){point=0;tem_v*=1000;} for(i=0;i<4;i++) { dis_buf[3-i]=(int)tem_v%10; tem_v/=10; } } voidscank(void) { } voidmain(void) { init_devices(); while (1) { if(v_ok) { v_ok=0; time=(l_time-f_time)/SECOND; if(time==0)v=0; elsev=1.57*(1/time)*R; //f_time=l_time;en=1; if(v>10&&v<15) PORTD|=BIT(0); elseif(v>15)PORTD|=BIT (1); //elsePORTD&=~(BIT(0)|BIT (1)); if(! (PIND&BIT (2))) v*=3.6; to_buf(); } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AVRMega16 测速 系统