基于单片机数字转速计的设计
时间:11-24 15:15 阅读:761次
*温馨提示:点击图片可以放大观看高清大图
简介:在工业控制中经常要进行转速测量,一般采用的是接触式转速计,这种转速计必须顶在转轴中心才能进行测量,使用起来不方便,而且局限性很大,安全性也不是很好。因此,我们设计了采用光电传感器的非接触式转速计,测量范围从1.0~9999转/分钟,四位数码管显示,当被测转速小于1000转/分钟时,精确到0.1转/分钟。
1 测量原理
在被测旋转轴上贴一片铝箔作为反光体,当反光体转到光电传感器的正前方时,光电传感器发出的红外光束被反射回来,同时被光电传感器上的红外接收管接收,产生一个脉冲信号,我们利用这个信号的边沿触发单片机内部的高精度定时器进行计时,精度可达1μs,当反光体再次转到光电传感器的正前方时,利用光反射信号的边沿停止单片机计时。这样转轴的旋转周期t就被精确地测量出来了,然后单片机把周期换算成转速并通过LED数码管显示出来。
2 电路构成及软件设计
电路结构见图1,因为要求体积小巧且显示亮度高,因此,采用扫描显示模式,然而,用一片CPU同时完成测量和显示是不行的,扫描功能将严重影响CPU的测量。因此,采用两片ATMEL公司生产的AT89C2051单片机来分别担任,AT89C2051具有内置2KB的EEPROM程序存储器和128个字节的RAM,且每个引脚能够吸入20mA的电流等这些良好特性。CPU1用来测量旋转轴的旋转周期并换算成转速,然后把显示数据发送给CPU2,CPU2平时只是在不断地扫描显示数据,当CPU1发送数据过来时,CPU2产生中断,立即接收数据,然后更新显示数据,这样在四位LED数码管上的数据就被立即更新了。采用两片CPU的好处是电路结构清晰,编程简单,实现了模块化设计。CPU之间采用串行接口方式2,以中断形式进行通信。CPU2的通信部分程序清单如下:
3结论
经过实际使用,我们设计的转速计达到了预先设想的目的,使用方便可靠,而且因为这样的结构设计使得CPU1的输入/输出口占用极少,因此还可以拓展它的功能。例如我们安装了一个切换开关,增加了光电计数器的功能(探头是共用的)。另外,我们还可以把CPU2及四位LED共阳数码管构成一个通用显示模块,除显示0~9等数字外,还可以显示例如A-J、L、O、P、q、r、U、Y等字符。这样,如果我们在设计其他的电路时,如果要用到LED数码管显示,不必再编程制版,只要使用这个通用显示模块即可,简单方便。这种显示模块如果不扩充输入输出口线,最多可以进行五位的七段数码管显示。