求助,不使用外部中断,监测P3.7上升沿,AT89C2051

[复制链接]
4168|13
 楼主| tao60 发表于 2010-3-9 08:36 | 显示全部楼层 |阅读模式
本帖最后由 tao60 于 2010-3-9 08:41 编辑

求助,不使用外部中断,监测P3.7上升沿
有什么好办法,
我用判断是否低电平然后马上判断是否高电平的方法,不行,它会漏掉很多个上升沿。
获取到P3.7上升沿时还需要执行其它的一系列程序,在执行这一系列程序时,P3.7也有可能有一个小升沿过来,P3.7是一个高低电平交替的矩形波,频率不是不定的,时大时小。
AT89C2051单片机,
P1口都用作输出了,
P3.0~3.5用来输入了,
原野之狼 发表于 2010-3-9 08:44 | 显示全部楼层
时大时小 总有个范围吧
设定时器去扫描IO口 几百或几十US级的扫描速度可以达到呀
 楼主| tao60 发表于 2010-3-9 09:03 | 显示全部楼层
本帖最后由 tao60 于 2010-3-9 09:57 编辑
时大时小 总有个范围吧
设定时器去扫描IO口 几百或几十US级的扫描速度可以达到呀
原野之狼 发表于 2010-3-9 08:44

没有范围,是机器的电眼感应的信号脉冲,是根据机器运转速度而变化的,机器在寸动时频率小,甚至也有停止的情况。
定时器扫描这个我之前也想过,在实验中,不过总觉得会漏掉一些上升沿,上升沿只在瞬间。

请问你所说扫描也是用“先判断它是否低电平再判断是否高电平”的方法吗?
原野之狼 发表于 2010-3-9 12:26 | 显示全部楼层
是这么回事
是不是频率太快了了呢
37150839 发表于 2010-3-9 15:50 | 显示全部楼层
可以试W79E2051,这个相当于AT89C2051的增强版
工业规格;无法解密;ICP在线编程;4T时钟周期,内置EPROM;1路10位PWM
参考价格2.50元
鬼舞十七 发表于 2010-3-9 23:36 | 显示全部楼层
怎么会没个范围呢?测量仪器也有测量精度啊,只要是时序逻辑就要用时钟打,除非是组合逻辑。所以用IO检测只能用两次检测不同电平的方法,最高采样频率就决定于指令周期的长度了。
 楼主| tao60 发表于 2010-4-9 12:05 | 显示全部楼层
其实它是一个机器运转过程中的感应信号,电机转动一个齿轮使电眼感应产生的一个脉冲。电机的速度可变,可停,可续。
hgjinwei 发表于 2010-4-9 12:40 | 显示全部楼层
如果不用中断,就得周期扫描,扫描频率不能小于电机运转过程中的感应信号变化的最高频率,否则就会有遗漏。如果你连最高频率都不知道,那就只能保守点,提高扫描频率。
换句话说,就算你用中断检测,也会有个最高极限的,难不成你还想检测从0到正无穷的范围?
hgjinwei 发表于 2010-4-9 12:45 | 显示全部楼层
扫描结果由最近两次扫描状态决定,当且仅当出现0到1的变化时,才视为出现一次上升沿,同理,当且仅当出现1到0的变化时,才视为一次下降沿。
如果扫描频率远远高于感应信号变化频率,则要考虑消抖,不然就有可能将干扰也带进来了。
ninibaba 发表于 2010-4-9 12:49 | 显示全部楼层
只有两种办法
中断和扫描
不用中断
就只能扫描
hyg1984 发表于 2010-4-9 14:01 | 显示全部楼层
如果不用中断,就得周期扫描,扫描频率不能小于电机运转过程中的感应信号变化的最高频率,否则就会有遗漏。如果你连最高频率都不知道,那就只能保守点,提高扫描频率。
换句话说,就算你用中断检测,也会有个最高极 ...
hgjinwei 发表于 2010-4-9 12:40



很有道理!

打个比方:你的机器周期是1us,如果你的输入频率时0.5us,那怎么能行?
szshawn2010 发表于 2010-4-9 14:33 | 显示全部楼层
本帖最后由 szshawn2010 于 2010-4-9 14:38 编辑

第三次才看明白。

该说的,大家都说了,我也没啥说的。建议使用中断。

中断就是用来解放CPU的
华邦掌门人 发表于 2010-4-9 15:20 | 显示全部楼层
可以试W79E2051,这个相当于AT89C2051的增强版
工业规格;无法解密;ICP在线编程;4T时钟周期,内置EPROM;1路10位PWM
参考价格2.50元
37150839 发表于 2010-3-9 15:50

完全兼容-----
救火车 发表于 2010-4-9 15:32 | 显示全部楼层
你为什么非要用P3.7呢?
改成P3.4或P3.5,然后使用计数器中断,计数器计脉冲个数是强项。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部