基于80C196的频率测量及在电压采样中的应用
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
本文提出了一种利用80C196的HIS(High SpeedInput,高速输入)对信号进行频率测量的方法,测量精度高,通过测得的频率相应地改变电压采样频率,实现频率跟踪,很好地提高电压计算精度。这种方法既简化了电路设计,又在得到高精度频率测量的同时提高了电压计算精度。
3 软件实现
3.1 测频原理及误差分析
用HSI事件实现测频,实际上是测量周期的方法,对于80C196单片机来说,即,在触发的时间内,每8个晶振周期对信号周期的计数。当晶体振荡频率为20 MHz时,内部晶振周期为0.1μs(因为内部经过了2分频),每0.8μs计数一次。从这可以看出,测量绝对最大误差为信号前后边界共1.6μs,对于周期为20 ms的50 Hz的信号,最大误差折算到频率约为0.004 Hz,所以,频率测量精度可达到0.01 Hz。当晶体振荡频率越高或被测信号周期越长时,相对误差就越小。
3.2 频率测量的实现思路
HSI事件可以采用中断方式和查询方式读取,因为测频的同时要改变采样中断间隔,在采样中断中以查询方式实现更为方便简洁。
查询方式下,HSI事件主要依靠配置或读取寄存器IOC0、HSI MODE、IOS1、HSI STATUS以及HSI TIME的内容来实现。IOC0用于事件引脚选择。由HSI引脚输入的外部事件有四种触发方式,分别为负跳变触发、正跳变触发、正负跳变触发、每8个正跳变触发,各触发方式通过HSI MODE来设置。IOS1记录了有HSI部件保存寄存器数据是否有效的信息。HSI STATUS存放每个输入引脚的两种信息,一是说明该引脚是否有事件发生,二是记录当前该引脚电平状态。HSI TIME存放的是保持寄存器所存事件的时间值〔1〕。
假定HSI只用到HSI.0。初始化时,设置IOC0为01H,选择HSI.0为事件输入引脚。设定HSI MODE寄存器为01H,即,每个正跳变为一个事件的触发方式。在采样中断中读取时间值,先查询IOS1.7,若该位为1,则表明保持寄存器已加载,可对HSI的事件予以读取。读取HSI STATUS和HSI TIME两个寄存器,进行处理。