基于AVR单片机转速测量和行程测量系统的设计

基于AVR单片机转速测量和行程测量系统的设计

ID:9846555

大小:292.60 KB

页数:7页

时间:2018-05-12

基于AVR单片机转速测量和行程测量系统的设计_第1页
基于AVR单片机转速测量和行程测量系统的设计_第2页
基于AVR单片机转速测量和行程测量系统的设计_第3页
基于AVR单片机转速测量和行程测量系统的设计_第4页
基于AVR单片机转速测量和行程测量系统的设计_第5页
资源描述:

《基于AVR单片机转速测量和行程测量系统的设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于AVR单片机的转速测量和行程测量系统一设计目的,思想和功能通过设计转速测量系统,熟悉AVR单片机的使用和利用ICC软件编程,设计出一种具有一定实用价值的转速测量系统,并用于行程测量和超速报警等仪器。通过实用光电开关,将外界的转动信号,转化为电信号,来触发单片机内部的计时中断,结合内部的定时系统,就可以测出外部信号(转动)的频率,换算成转速。然后将转动次数累加,转换成行程。我们的仪器可以实现对风扇等器物的转速的测量,也可以应用于对汽车等交通工具行程和速度的测量。二硬件设计思想和电路原理图(1)、硬件电路

2、流程光电开关ATmeaga16转速显示超速警报行程显示三电路原理图7三如何使用硬件资源光电开关使用时,将其接地端接在单片机某个输出低电平的引脚上,信号输出端接在单片机的输入引脚上。四软件设计流程7系统初始化T0外部中断,100个外部脉冲中断一次T2内部计时中断,每504us中断一次扫描断数码管清零并初始化T2计数器,赋值转速,圈数自加,就绪标志置位计时变量自加进入主函数判断刷新标志是否为1是否求出转速,行程并送显示区,判读是否需警报,清零就绪标志等待五程序//ICC-AVRapplicationbuild

3、er:2008-5-317:42:42//Target:M16//Crystal:1.0000Mhz#include7#includeflashunsignedcharled_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};flashunsignedcharposition[8]={0x08,0x04,0x02,0x01,0x80,0x40,0x20,0x10};unsignedchardis_bu

4、ff[8];//显示缓冲区,存放要显示的8个字符的段码值unsignedcharposit;intok=0;unsignedcharnew;longintfreq;unsignedlongintzhuansu,xingcheng=0,a=0,b=0;voidport_init(void){PORTA=0x00;DDRA=0xFF;PORTB=0xf0;DDRB=0xf0;PORTC=0x00;//m103outputonlyDDRC=0xFF;PORTD=0xff;DDRD=0xFF;}//callthi

5、sroutinetoinitializeallperipheralsvoidinit_devices(void){//stoperrantinterruptsuntilsetupCLI();//disableallinterruptsport_init();MCUCR=0x00;GICR=0x00;TIMSK=0x00;//timerinterruptsourcesSEI();//re-enableinterrupts//allperipheralsarenowinitialized}voiddispla

6、y(void){PORTD=0x00;PORTA=led_7[dis_buff[posit]];if(posit==1

7、posit==5)PORTA=PORTA

8、0x80;PORTD=position[posit];if(++posit>=8)posit=0;}//T/C0比较匹配中断服务,100个计数脉冲中断一7#pragmainterrupt_handlerint2_isr:20voidint2_isr(void){new=TCNT2;TCNT2=0;TIFR

9、=0x02;zhuansu=freq;x

10、ingcheng=a;//a用来累计行程xingcheng++;freq=0;ok=1;}//T/C2比较匹配中断服务,504us一次#pragmainterrupt_handlerint0_isr:4voidint0_isr(void){freq++;SEI();//开中断,允许中断嵌套,T/C0中断可打断该中断服务display();}voidto_disbuff(void)//频率,行程值转化为BCD码送显示缓冲区{unsignedchari,j=3;unsignedcharx,y=7;for(i=

11、0;i<=3;i++){dis_buff[j-i]=zhuansu%10;zhuansu=zhuansu/10;}//在PD0到PD3输出转速的值for(x=0;x<=3;x++){dis_buff[y-x]=xingcheng%10;xingcheng=xingcheng/10;}//在PD4到PD7输出行程的值}voidmain(void){unsignedchari;port_init();init_devices();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。