很多工业与仪表系统都需要测量脉冲输入的持续时间,如转速传感器、外部系统的门控与选通脉冲,以及PWM(脉冲宽度调制)输入的频率等。设计者是采用片上定时器和边沿驱动的中断。但是,如果这些元件不可用,可以用片上的串行同步接收器做这类测量。
可以根据需要的时序精度,设定串行接收器的波特率。接收器每8 bit后中断微控制器。可以在应用程序中插入脉冲宽度采集例程,用于读取ISR(中断服务例程)接收到的字节。它会统计和累加接收到的0和1字节,以测量出进入脉冲的持续时间(图1)。
算法测量a的是两个连续上升沿之间的持续时间。当微控制器收到一个既不是0xff也不是0x00的字节时,就检测到了一个上升沿或下降沿。如果一个字节小于0x80H (100 000b),则该字节表示一个上升沿。如果字节等于或大于该值,则该字节表示一个下降沿。
前上升沿将位计数器重置为上升沿字节中拖尾1的个数,方法是将向右移位。位计数器在每个字节来到时加8,也包括标志下降沿的那个字节。当计数器接收到后上升沿(由下一个上升沿字节标志,它大于0x80H但小于00H)时,它再次统计该字节中领先0的个数,并将此数加到累加位计数器上。此时的累加位计数与脉冲链的时间周期相关,其因数等于波特率。
图2表示一个200Hz的脉冲链,两个上升沿之间的时间为5ms。波特率为256kbaud。在一个测量周期内,假设前上升沿的标志为0011 1111b。微控制器将其向右移位,统计拖尾1的数目,位计数器初始化为6。这个计数对应的时间约为23.43 μs。
接下来,上升沿字节前的每个字节都使位计数器加8。简单计算表明,共有159字节,即1272位。此时,计算的总位数为1278位,包括在第一个上升沿字节中收到的6个1。
现在,脉冲链遇到了拖尾的上升沿字节,其值为0011 1111b。做这个计数时,需要将0左移,统计为两个位。两上升沿之间的总位数就是1280bit。在256 kbaud速率下,这个数字精确地对应于5 ms或200 Hz。
可以根据自己的应用需求,对这种位计数概念作修改。如果只需要测量低周期的脉冲,需要探测一个下降沿,并累计位数,直到遇见一个上升沿。可以将这种概念用于读取进入的PWM信号,方法是读取一个已知进入脉冲频率的高周期。
关键字:测量脉冲 微控制器 串行端口
引用地址:
可测量脉冲宽度的微控制器串行端口
推荐阅读最新更新时间:2024-03-30 22:28
基于51单片机的无线温湿度控制系统
发射_DHT11程序 //宏定义 #define uchar unsigned char #define uint unsigned int //头函数 #include reg51.h #include intrins.h //无线模块 #include api.h #include nRF24L01P.h #include DHT11.h //LED 管脚定义 sbit TXLED_R=P1^3; sbit RXLED_Y=P1^5; //主机询问命令 uchar CMD ={0xaa,0xbb,0xcc,0xdd}; //主函数 void main() { TXLED_R=0;
[单片机]
基于AVR单片机的服装压力检测系统设计
O 引言 传统服装压力舒适度测试方法主要有:流体压力法、电阻法、石膏法。其中,使用流体水银压力计或水压机来测量服装压力的方法简单直接,但精度较低,尤其动态测量相当困难;电阻测量方法是将电阻应变片传感器插入衣服内,由于服装压力而使应变片变形导致电阻值的变化,从而将压力变化转换为变化的电压信号,通过测量该变化的电压值得出服装压力测试结果。该方法测试精度高,结果稳定,但易受外部条件的影响,且对服装压力进行动态测量比较困难;石膏法主要是通过模型检测实现,这种方法可以测出接近穿衣时的自然压力值,但不能进行连续动作时的服装压力测试,并且石膏模型难以制作。以上各种测试方法受时间和空间的限制,难以适应不同测试条件的需要,且测试数据的精度
[单片机]
单片机定时器记数器的作用及使用简介
1. 计数概念的引入 从选票的统计谈起:画“正”。这就是计数,生活中计数的例程处处可见。例:录音机上的 计数器 、家里面用的电度表、汽车上的里程表等等,再举一个工业生产中的例程,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的办法,用一个周长是1米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长1米嘛,所以只要记下轮转了多少圈,就能知道走过的线有多长了。 2、计数器的容量 从一个生活中的例程看起:一个水盆在水龙头下,水龙没关紧,水一滴滴地滴入盆中。水滴持续落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满。录音机上的计数器最
[单片机]
51单片机定时器的原理与使用(二)
承接上一节 51单片机定时器的原理与使用 ,这节我们继续讲述怎么用定时器做一个电子钟,PWM脉冲和测电阻。先从实验三讲起吧! 实验三、定时器测电阻 测量如下图Rx的电阻并显示在数码管上。 测量思路为: 1、电容C1放电,P2.5与P2.6设置为输入模式,P2.7设置为推挽输出且为输出低电平0。这时候C1通过R1和P2.7放电。 2、切断C1的放电回路,将P2.7设为输入模式。 3、P2.5设为推挽输出,并且输出高电平5V,即P2.5的高电平通过Rk对C1充电。同时打开定时器Tx。 4、MCU不断读P2.7的状态,当P2.7为高,则关闭定时器。同时P2.5恢复输入模式。这个过程中定时器记录了P2.5通过Rk对C1充电直到P2.
[单片机]
变频空调单片机测控系统的抗干扰设计
摘要: 本文介绍了单片机测控系统抗干扰设计的重要性,分析了单片机测控系统干扰的主要来源,并给出了在抗干扰设计中所遵循的原则和采取的措施。
关键词: 单片机 抗干扰
1 引言
随着科学技术的发展,单片机在各种家电产品中得到了越来越广泛的应用,它的稳定性工作是衡量其质量好坏的重要指标。因此,有效地抑制单片机系统内部和外部的电磁噪声干扰,使单片机系统在实际运行环境中长期可靠地工作,是一个亟待解决的电磁兼容问题。
在我们设计的变频空调电控系统中,由于其所处环境比较恶劣,特别是在冬季与夏季强功率运行时,由压缩机、风机高速运转所引起的机械振动,电器设备(如斩波器、电动机等)所产生的干扰,室内外环
[传感技术]
鄙人愚见“论单片机的 难”
从理论(或学习)的角度,单片机等确实是不难,没有太多理论成份,或“学术价值”,这是不少人轻视它的原因(特别在高校里),这点上楼主的看法不能说完全错。鄙人亦以为,在学校学习的时候以打基础为主,重点学诸如“信号与系统”“数字信号处理”“电路分析”“信息论”等基础的课程,而对“模电”“数电”“单片机”等偏应用性的课程适当重视,但要明白其在你的知识结构中远本人前面基础课程的重要,因为一但你有了基础,这些课程都不难自学。比喻说吧,你的知识结构就象一棵大树,前面说的基础课就象树的根和主干,应用课程就象分支和树叶,在什么地方应多花时间你自己心里清楚了。但当你毕业了,工作了,如果你象多数人一样是搞应用工作的话,那么你就不能再轻视这些分支和树叶
[单片机]
基于单片机的高速列车轴温集中监测系统
0 引言 列车在高速运行的过程中,机车与钢轨的频繁冲击会造成车辆轴承的发热,当轴承磨损和产生缺陷时,会造成机损从而影响车辆的正常运行,甚至出现热切轴,直接导致火车发生故障翻车,给国家和社会在铁路运输造成巨大的经济损失。目前我国大部分采用红外轴温监测系统,但这种设备易受外界环境影响、探测点受车身摆动影响定位困难等原因,使得轴温过高告警兑现率低、误报率极高、而且外界因素对其工作状态容易产生很大的干扰,失真严重,极有可能给发出错误的温度提示,影响铁路运输的正常工作 .针对这种情况,设计了系统简洁、布局小巧、灵敏度高、收发信息能力快速的高速列车轴温集中监测系统,可在第一时间发现运行中的列车轴承是否温度过高,如轴温超过预设定值,就发出报警
[单片机]
如何对51单片机RAM不同的区域进行划分
前边介绍单片机资源的时候,我们提到过STC89C52共有512字节的RAM,是用来保存数据的,比如我们定义的变量都是直接存在RAM里边的。但是单片机的这512字节的RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构和用法上都是有区别的,因此我们在使用的时候,也要注意一些问题。 51单片机的RAM分为两个部分,一块是片内RAM,一块是片外RAM。标准51的片内RAM地址从0x00H~0x7F共128个字节,而现在我们用的51系列的单片机都是带扩展片内 RAM 的,即 RAM 是从 0x00~0xFF 共 256 个字节。片外 RAM 最大可以扩展到 0x0000~0xFFFF 共 64K 字节。这里有一点大家要明白,
[单片机]