51单片机普通I/O口怎么实现对外计数功能

2019-07-15 21:47发布

小弟现在想对一个脉冲进行计数,想求教各位普通I/O口怎么实现对外计数功能!
注意:是普通的I/O口,不是外部中断口!
来自小组: 码农
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
暮云凌轩。
1楼-- · 2019-07-17 14:31
你先给I/O置高(P0要加5K左右的上拉电阻),这叫释放IO口
程序如下(以P1^0为例)
先P1^0=0xff;
temp=P1_0;
if(temp==1)
{
num++;
}这样的就可以对外来的脉冲进行计数了,
如果还是不够理解的话,在百度上搜51单片机内部I/O结构分析。



朱枫
2楼-- · 2019-07-17 15:02
暮云凌轩。 发表于 2013-11-9 18:35
你先给I/O置高(P0要加5K左右的上拉电阻),这叫释放IO口
程序如下(以P1^0为例)
先P1^0=0xff;

兄弟你这个程序有问题的,要再加个判断!
朱枫
3楼-- · 2019-07-17 15:54
♥℡信☺仰⊙♥ 发表于 2013-11-10 11:19
这样玩 。。在定时器中每隔10ms检测IO楼状态,用2个静态变量存储按键的值   检测信号的上升沿
sbit  IN = P ...

这位兄弟的答案貌似可行,不管怎么样多谢
♥℡信☺仰⊙♥
4楼-- · 2019-07-17 16:35
 精彩回答 2  元偷偷看……
朱枫
5楼-- · 2019-07-17 22:16
♥℡信☺仰⊙♥ 发表于 2013-11-11 11:00
普通IO口检测边沿,只要速度够快。。用普通IO解码红外都是无压力。。

以后多向你讨教,谢谢
暮云凌轩。
6楼-- · 2019-07-18 03:24
朱枫 发表于 2013-11-9 23:30
兄弟你这个程序有问题的,要再加个判断!

不好意思  当时还没有发帖的时候出了点问题

一周热门 更多>