收藏 分享(赏)

测频法和测周法转速测量的课程设计报告.doc

上传人:精品资料 文档编号:10681733 上传时间:2019-12-23 格式:DOC 页数:16 大小:194.16KB
下载 相关 举报
测频法和测周法转速测量的课程设计报告.doc_第1页
第1页 / 共16页
测频法和测周法转速测量的课程设计报告.doc_第2页
第2页 / 共16页
测频法和测周法转速测量的课程设计报告.doc_第3页
第3页 / 共16页
测频法和测周法转速测量的课程设计报告.doc_第4页
第4页 / 共16页
测频法和测周法转速测量的课程设计报告.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、一、任务要求1性能要求:测量范围:55000rpm;2功能要求:采用 MCS51 系列单片机完成测量,并将测量值显示于数码管上。分别采用测频法和测周法进行设计,并比较不同速度段的测量精度。二、方案论证系统组成:图 1-1 系统组成框图如图 1-1 所示,本次设计的系统主要由以下几个部分组成,即:传感器、单片机以及显示部分组成。各个部分的方案论证如下:2.1 传感器的选择目前,可用于测速的传感器有很多,例如:光电传感器,开关型霍尔传感器,电涡流传感器以及光电编码器等。方案一:采用光电传感器光电传感器是通过光电二极管和光敏三极管把光输入信号转化为磁输入信号的器件。光电传感器的优点是响应速度快、测量

2、精度高,能够直接输出高低电平,缺点是容易受外来光线、灰尘等的影响,即对周围环境的要求比较高。方案二:采用开关型霍尔传感器开关型霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。开关型霍尔的优点是能够直接输出高低电平,属于大信号传感器,对外部的信号调理电路要求不高,缺点是响应速度不如光电传感器。方案三:采用电涡流传感器电涡流传感器是利用电涡流效应来工作的传感器,具有长期工作稳定性好,抗干扰能力强,但是输出信号比较弱,后续处理电路比较复杂,且一般价格比较高。在灰尘和粉尘较少而要求频率响应范围比较宽的情况下,可以采用光电传感器。而在灰尘和粉尘比较多的情况下,则选用开关型霍尔传感器。由于本次设计

3、主要针对自行车和汽车的测速,故选用开关型霍尔传感器。2.2 显示模块的选择方案一:采用 LED 数码管LED 数码管只可以显示数字和简单的字母,其优点是价格便宜,程序编写比较简单,功耗低,缺点是亮度不高,在要显示数字多的场合下,体积较大,比较占空间。方案二:采用 LCD1602 液晶显示LCD1602 液晶显示模块具有体积小、功耗低,对比度可调且能够显示 ASCII 码和简单的汉字等优点,其缺点是成本比数码管高,而且程序编写相对复杂。方案三:采用 LCD12864 液晶显示LCD12864 液晶显示屏优点是能够显示汉字,且功耗比较低,其确定是软件编程比较复杂。2.3 测速原理论证2.3.1 测

4、频法原理:测频法原理图如图 1-2 所示,即测量一段时间 t 内,所计的脉冲数为 N,则所测得的频率为 f=t/N,其“ 1 误差”为 。ftN/1/由此可见,在 t 一定时,所测频率 f 越高,则“ 1 误差”越小。因此测频法适用于测低频。图 1-2 测频法原理图测周法原理:测周法原理图如图 1-3 所示,即对信号的周期 T 进行测量,然后根据 f=1/T 就可以得到频率。在本设计中就是通过对单片机内部时钟脉冲计数得到两个脉冲之间的时间间隔 T。假设单片机内部时钟为 ,所计得的脉冲数为 N,则时间间隔 T =N/ ,即频率 f =f f/N。其“ 1 误差”为 。由此可知,在时fTfN/1/

5、1钟脉冲 一定时,所测的时间间隔 T 越大,即所测频率越低,则“f1 误差 ”越小,精度越高。图 1-3 测周法原理图综上所述,为了提高所设计的测速仪的精度,因此本次设计采用测频法和测周法相结合的方法,即低频时采用测周法,高频时采用测频法。三、硬件设计总的原理框图:图 1-4 总的硬件原理框图如图 1-4 所示,即为整个系统的原理框图,该智能测速仪是利用霍尔传感器来采集信号,当磁粒靠近霍尔传感器时,霍尔传感器向单片机输出一个脉冲,经过单片机的处理,将频率和转速送到LCD1602 中显示。3.1 单片机最小系统 P1.02345678RST/VD9XINWLAGEOCU+KYMpFut图 1-5

6、 单片机最小系统原理图单片机的最小系统电路如上图 1-5 所示,主要由单片机、晶振电路、复位电路三部分组成。其中晶振电路由一个 12MHz 的晶体振荡器和两个瓷片电容组成,为单片机提供时钟频率,本次设计采用12M 晶振是为了使定时能够更精准,计算更方便。复位电路由上图中的 S1,R3,R4 和 C1 所组成,具有上电复位和按键复位两种复位方式。由于要使用 P0 口作为数据传送端,所以需要在 P0 加上拉电阻。本次设计选用的单片机是 STC89C54RD+。3.2 霍尔传感器电路 10KR7DVC23PHeadr A6uF4Signl589OtULM图 1-6 霍尔传感器电路原理图霍尔传感器电路

7、如上图 1-6 所示,本次设计选用的霍尔型号为 44E开关型霍尔传感器,当小磁粒靠近时,霍尔输出低电平。图中 D2为电源指示灯,D1 为小磁粒靠近霍尔的指示灯。LM393 为电压比较器,2 脚输入电压为 2.5V,此处加个电压比较器使输出信号更稳定,能够输出比较稳定的脉冲信号。3.3 液晶显示模块电路 GN+WE/B图 1-7 液晶显示电路原理图液晶显示电路如右图所示,其中 1 脚 VSS 和 2 脚 VDD 为电源地和电源正极,3 脚 VO 是用来调节液晶屏幕显示的对比度的,4脚 RS 为数据/命令选择端,5 脚 R/W 为读写端, 6 脚 E 为使能端,714 脚的 DB0DB7 为数据端

8、,15 脚 BLA 和 16 脚 BLK 为背光电源端。四、软件设计4.1 软件实现功能软件主要实现功能是完成测频法和测周法的算法实现,并且能够进行自动的根据频率范围进行两种方法之间的转换。4.2 主程序框图开始液晶和中断初始化频率大于1 0 0 0 ?测频法标志位置位测周法标志位清零测周法标志位置位测频法标志位清零显示频率和转速结束是否图 1-8 主程序框图主程序框图如图4.3 定时器中断程序框图进入中断测频法标志 位为 1 ?测周法标志 位为 1 ?重新给 T H 0和 T L 0 赋值定时 1 S 到 ?频率和转速计算时间计数器加 1退出中断是是是4.4 外部中断程序框图进入中断测周法标

9、志 位为 1 ?测频法标志 位为 1 ?频率和转速计算时间计数器加 1退出中断是重新给 T H 0和 T L 0 赋值是3、模拟调试部分5.1 模拟装置简介本次设计所使用的5,2 模拟调试方法5.3 结果 4、小结6.1 实验中所遇到的问题、在编程时,采用测周法时始终无法得到正确的频率,所显示的频率值始终在 4000 到 5000 左右变化,而定时器的计数值(用来计算两个脉冲之间的时间的量)始终只有几百,即时间为几百微秒。、在实际测量时,发现测得的频率值与实际的频率值相差很大,且相对误差在 10%左右,例如实际值为 325r/min,而测得值为354r/min,即相对误差为 (354-325)

10、/325*100%=8.9%,误差比较大。、采用测周法时,当频率为 0 时,其实际显示值不为零,始终停留在之前的值,保持不变。6.2 分析、解决6.3 设计结果评价 附录 1P1.02345678RST/VD9XINWLAGEOCU+KYMpFutBHeadr ignl#include#define uint unsigned int#define uchar unsigned charsbit LCD_RS = P26; /液晶控制端 sbit LCD_RW = P25;sbit LCD_EP = P27;uchar code tab1 = “freq 0000 Hz“; /液晶第一行默认显

11、示数据uchar code tab2 = “n 0000 r/min“; /液晶第二行默认显示数据long speed_count=0; /计数值uint freq=0; /频率值uint speed=0; /转速值uint timer_count=0; /定时器计数值uint int_t0_count=0; /M 法时外部中断计数值uchar intt0_count=0; /T 法中用来平均的bit m_flag=1; /M 法标志位bit t_flag=0; /T 法标志位bit first_flag=0; /第一个测频值显示的标志void delay(uchar ms); /延时子程序v

12、oid init_interuppt(); /定时器 0 初始化void lcd_init(); /液晶初始化void write_1602_wcmd(uchar com); /液晶写入指令函数void write_1602_wdat(uchar dat); /液晶写入数据函数void write_speed(uchar address,uint dat);/1602 写速度值void main()lcd_init(); /液晶初始化init_interuppt(); /中断初始化while(1)if(first_flag=1)if(freq1000) /频率大于 1000 则采用测频法m_f

13、lag=1;t_flag=0;elsem_flag=0;t_flag=1;write_speed(0x45,freq); /显示频率值write_speed(5,speed); /显示转速值/*/* 延时函数 */*/void delay(uchar ms)uint i,j;for(i=ms;i0;i-)for(j=150;j0;j-);/*/* 定时器 计数器初始化 */*/void init_interuppt()TMOD=0x01; /设置为工作方式 1,16 位计数方式TH0=(65536-50000)/256; TL0=(65536-50000)%256;ET0=1; /使能定时器

14、0 中断EX0=1; /使能外部中断IT0=1; /下降沿触发EA=1; /使能总中断TR0=1; /开定时器 0 中断/*/* 定时器中断函数 */*/void timer0() interrupt 1TH0=(65536-50000)/256; /每 50 毫秒进一次中断TL0=(65536-50000)%256;if(m_flag=1)timer_count+;if(timer_count=20) /每 1 秒钟更新一次速度freq=int_t0_count;speed=freq*10; /频率转换为转速int_t0_count=0;timer_count=0;if(first_flag

15、=0)first_flag=1;if(t_flag=1)timer_count+;if(timer_count=10)speed=0;freq=0;/*/* 外部中断函数 */*/void int_t0() interrupt 0if(m_flag=1)int_t0_count+;if(t_flag=1)intt0_count+;speed_count += TH0*256 + TL0 + timer_count*65536; if(intt0_count=2)freq = (unsigned int)(2000000.0/(speed_count);speed = (unsigned int

16、)(2000000.0/(speed_count)*10);speed_count=0;intt0_count=0;TH0=(65536-50000)/256; TL0=(65536-50000)%256;timer_count = 0;/*/* LCD 初始化设定 */*/void lcd_init() uchar i;write_1602_wcmd(0x38); /16*2 显示,5*7 点阵,8 位数据write_1602_wcmd(0x0c); /显示开,关光标write_1602_wcmd(0x06); /移动光标write_1602_wcmd(0x01); /清除 LCD 的显示内

17、容write_1602_wcmd(0x82); /第一行字符写入的位置for(i=0;i13;i+)write_1602_wdat(tab2i);write_1602_wcmd(0xc0);for(i=0;i12;i+)write_1602_wdat(tab1i);/*/* 写指令到 LCD */*/void write_1602_wcmd(uchar com)LCD_RS = 0; /置为写入命令,低为写指令LCD_RW = 0;P0 = com; /送入数据delay(1);LCD_EP = 1; /拉高使能端delay(1);LCD_EP = 0; /完成高脉冲,传入数据到 LCD/*/

18、* 写数据到 LCD */*/void write_1602_wdat(uchar dat)LCD_RS = 1; /置为写入数据,高为写数据LCD_RW = 0;P0 = dat; /送入数据delay(1);LCD_EP = 1; /拉高使能端delay(1);LCD_EP = 0; /完成高脉冲,传入数据到 LCD/*/* 写速度值到 LCD */*/void write_speed(uchar address,uint dat)uchar gw,sw,bw,qw;qw = dat/1000;bw = dat%1000/100;sw = dat%1000%100/10; /分出十位数据 gw = dat%1000%100%10; /分出个位数据write_1602_wcmd(0x80+address); /在第二行对应位置显示write_1602_wdat(0x30+qw);write_1602_wdat(0x30+bw);write_1602_wdat(0x30+sw);write_1602_wdat(0x30+gw);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报