首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
工业控制
» 基于PIC16F877单片机的简易测速计设计方案
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于PIC16F877单片机的简易测速计设计方案
发短消息
加为好友
forsuccess
当前离线
UID
871057
帖子
6281
精华
0
积分
3141
阅读权限
90
在线时间
282 小时
注册时间
2012-2-21
最后登录
2015-6-23
论坛元老
UID
871057
性别
男
1
#
打印
字体大小:
t
T
forsuccess
发表于 2015-5-17 23:39
|
只看该作者
基于PIC16F877单片机的简易测速计设计方案
单片机
0 引言
随着微电子技术的迅猛发展,单片机在汽车、通信、办公自动化、工业控制、高级玩具、家用电器等方面都得到了广泛的应用。如果将Proteus 作为单片机系统仿真工具,则不用制作电路板,而可以使用Proteus 进行系统虚拟实现,这样不仅能完成所需功能设计验证,还能降低硬件成本的耗用,从而缩短整个设计周期,从根本上提高了电子产品的开发效率。
测速是工农业生产中经常遇到的问题,基于单片机的各种优势,将单片机应用于测速系统,具有很重要的意义。而对于测速技术,首先要解决的就是采样问题。在使用模拟技术制作测速设备时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低;而使用单片机进行测速,则可以使用简单的脉冲计数法。
只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数,最终计算出单位时间内的脉冲个数,即可获得转速的相关信息。本文将基于PIC16F877 单片机的捕捉功能来完成脉冲计数,利用软件编程实现相关物理关系的转换,最终得出齿轮线速度,并显示在数码管上。
1 测速计原理
1.1 CCP1 捕捉功能
PIC16F877 单片机中有两个CCP 模块,其构造基本相同,分别记为CCP1 和CCP2.每个CCP 模块可以任意配置为捕捉(Capture)、比较(Compare) 和脉宽调制(PWM)3 个功能模式之一。
CCP1 的捕捉模式具有如下三个功能:其一是可以捕捉RC2/CPP1引脚出现的跳变并保存当时TMR1计数寄存器内容;其二是具有预分频器,可以实现每1 个脉冲、每4 个脉冲或16 个脉冲捕捉一次;其三是捕捉时间能产生中断。
1.2 CCP 测速计原理
在捕捉模式下,单片机可以捕捉引脚电平变化时刻的时间值,即引脚输入脉冲上升沿或下降沿出现时刻的精确时间值。
PIC16F877 的CCP1 模块工作于捕捉模式时,当特定的跳变沿出现时,TMR1 定时器的计数值会立即复制到CCPR1H 和CCPR1L 中并产生中断信号,通过在中断服务程序中读取这个16 位计数值。当使用CCP1 模块的捕捉功能实现相邻两次上升沿时间间隔的测量时,此时间间隔就是输入信号的周期g-Period.由于主频是4 MHz, 即每个指令周期为1 μs, 将预分频比设置为1:1,测得周期结果单位为微秒级。所以最终测得的速度值speed 通过以下公式得出:
speed=(1M*60s*0.01m*pi)/g_Period
其中,pi 为圆周率值;0.01m 为被测对象齿轮的直径,通过物理方法测得。
speed=(1M*60s*0.01m*pi)/g_Period
其中,pi 为圆周率值;0.01m 为被测对象齿轮的直径,通过物理方法测得。
2 功能实现
2.1 系统设计框图
测速计功能的实现可由基于PIC16F877 的主控制模块、显示模块、齿轮和光电传感器构成的被测模块等几部分构成。
通过单片机的RC2/CCP1 引脚分别连接被测模块和测量子模块,在Proteus 软件仿真时,分别由信号发生器SG1 和频率计作为硬件设备连接。SG1 用来模拟被测模块产生信号,F1 采用频率计方式运行,用来显示当前信号频率,用来做参考值与显示模块数据,即测速计测速结果值进行比较,以验证测速计测速结果的正确与否。各模块之间的连接关系如图1 所示。
2.2 方案设计与实现
该简易速度计的设计实现主要基于PIC16F877 的CCP 模块功能,这里我们首先将PIC16F877 的CCP1 配置为捕捉模式,预分频比设置为1:1,每个上升沿触发。
当捕捉到跳变后CPP1 中断标志位置位,直接采用中断方式进行处理,即在中断服务子程序中处理相关寄存器的数值或状态变化,计算并储存相关物理量,以上设置均由软件编程来完成。
2.3 设计与实现
该简易速度计的设计实现主要基于PIC16F877 的CCP 模块功能,这里我们首先将PIC16F877 的CCP1 配置为捕捉模式,预分频比设置为1:1,每个上升沿触发。
当捕捉到跳变后CPP1 中断标志位置位,直接采用中断方式进行处理,即在中断服务子程序中处理相关寄存器的数值或状态变化,计算并储存相关物理量,以上设置均由软件编程来完成。
3 功能仿真
3.1 Proteus 下仿真电路的搭建
要在Proteus下完成测速计功能的仿真,首先应在其界面新建设计文件并搭建仿真电路图,本例的测速计功能电路图如图4 所示。
在Proteus 软件下进行仿真时,库里各电子模块本身集成有驱动功能,故各模块与单片机之间只需要用连接线简易连接即可,而无需外加任何驱动电路。但是,实际制作电路版时,还是需外加各模块的驱动电路,并考虑各器件之间的间距,以避免电磁干扰。
3.2 功能仿真
在 PIC 系列单片机的专用开发环境MPLAB IDE 8.90 下分别完成各个模块的代码编写,编译运行后,用调试工具Proteus VSM加载Proteus 软件下建立好的设计文件,并运行,其结果如图5 所示。
3.3 仿真结果分析
如上图5 所示,当信号频率配置为3 000 Hz 时,仿真结果即测速计的速度显示为5 660 m/s, 且以速度值为中心, 小范围内上下波动。而经过理论计算的速度值约为5 655 m/s,与仿真值基本相同。事实上,经过连续测量n 个周期后求平均值的办法,其理论值与仿真值之间的误差会明显减小。
4 结语
本文提出了一种基于PIC16F877 单片机捕捉功能实现的简易测速计设计方案,经过Proteus 软件下的仿真验证,该设计方案基本符合预期结果。方案中的整个测速计设计简单方便、成本低、测速误差较小、易于实现,在模块化后,可作为一个集成测速模块直接应用于其他设计当中。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议