标题: 求助!51单片机如何能用一个固定的频率去测量脉宽,并在LCD显示出来 [打印本页]

作者: small2    时间: 2021-12-6 21:48
标题: 求助!51单片机如何能用一个固定的频率去测量脉宽,并在LCD显示出来
提醒:由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家

还是正在学51,想用89C51+LCD1602最小系统,试想测量一个脉宽,但要用一个外接的频率作为计数。最大显示为9999(或初步1999),超过最大值时,LCD显示OL过。还有三个小数点可以选择显示,可以用一个指定的P口控制,如999.9,99.99,9.999,也就是小数点和脉宽的数字无关。有大师帮看下吗?

作者: 来51学习    时间: 2021-12-7 14:23
没看明白你是要做什么
作者: 188610329    时间: 2021-12-7 16:31
你的描述不是很理解,或者说,完全看不懂你想干什么。

你用的89C51 有T2定时器的吧? 你看一下T2里面 CAP的用法,专门是用来抓脉宽的,应该能满足大部分需要抓脉宽的需求。如果因为某些特别的原因,不能满足你的需要的话……,你要不重新组织一下语言,描述一下,你想干什么?
作者: small2    时间: 2021-12-7 22:13
大师还在吗?我只是想用一个在一定范围的频率如100K左右(先定为T1宽度),这个频率每一次都不一样,可能是87K,可能是105K,或可能是其它值,去计量一个可变脉宽T,并且显示出的来。现在想来两个关 系应是,T=nT1  就是多个T1等于T,应是要显示数值为n。附带也要几个小数点,个位,十位,百位,千位。如果显示数值大于9999时,为过载显示OL提示。如做不到9999这么大的数值也可以为大于1999时显示OL。
      我看认真看一下T2定时器的用法。应有很大帮助吧
作者: 188610329    时间: 2021-12-7 22:35
small2 发表于 2021-12-7 22:13
大师还在吗?我只是想用一个在一定范围的频率如100K左右(先定为T1宽度),这个频率每一次都不一样,可能是8 ...

?????
啥意思??

我整理一下, 你是打算,用脉冲测量脉冲? 然后判断出,被测量的脉冲的麦宽相当于多少个你发出的脉冲的麦宽?
作者: small2    时间: 2021-12-7 22:43
“我整理一下, 你是打算,用脉冲测量脉冲? 然后判断出,被测量的脉冲的麦宽相当于多少个你发出的脉冲的麦宽?”
     可以是这样说的,我的表达能力有一点问题。用脉冲(相当于同步信号)测量脉冲。或是说被测量的脉宽用同步信号来计数。看看在这个脉宽中有占有多少个同步信号。
作者: 188610329    时间: 2021-12-7 23:26
small2 发表于 2021-12-7 22:43
“我整理一下, 你是打算,用脉冲测量脉冲? 然后判断出,被测量的脉冲的麦宽相当于多少个你发出的脉冲的麦 ...

那么,我这样跟你解释:
假定你假定的同步信号是10us一次,
你可以假装,你有发出同步信号,实际上你并没有发出任何同步信号,然后你通过定时器每10us读取一次脉冲接受IO的端口电平,记录,多少次后完成一个脉冲周期,假定是100次,那么就是1ms,也就是说检测到了,目标脉冲为1Khz。相对于你假定的同步脉冲是100倍, 也许这个就是你要显示的内容??

而上述的操作可以更加简化:
你假装,你有发出10us一次的同步信号,但是实际上,你连定时器都没有开,你直接用了T2的CAP(捕获)功能,直接捕捉到了被测目标是1ms的脉宽,然后,你直接除以你假装发出的同步信号(10us),然后得到100次,然后显示。
作者: 权威人物    时间: 2021-12-8 09:47
188610329 发表于 2021-12-7 23:26
那么,我这样跟你解释:
假定你假定的同步信号是10us一次,
你可以假装,你有发出同步信号,实际上你并 ...

你为什么要用一个固定的脉冲去计算呢?你直接捕获不知道的频率来计算不行么?
作者: small2    时间: 2021-12-8 21:19
有一点体会。可能要从MCU中分一个很准的信号,如100k,这个100K给另外的片子用,给作同步,也这样就CAP功能了。谢了
作者: small2    时间: 2021-12-8 21:45
权威人物 发表于 2021-12-8 09:47
你为什么要用一个固定的脉冲去计算呢?你直接捕获不知道的频率来计算不行么?

主要是固定的脉冲和被测的脉冲有关联。从你的分析中。应反过来,从MCU给一个固定的如100K的信号给前面的芯片用,就能用假装了。谢了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1