新学单片机一个多月,请教各位大侠;

[复制链接]
2761|14
 楼主| sonic245 发表于 2012-3-1 10:09 | 显示全部楼层 |阅读模式
如何用51单片机的IO口给50Hz的方波计数。
我用的是高低电平判断的方法,IO口连到按键上计数没有问题,
可连到方波上,数字就是不跳啊。
电路也应该没有错误,用中断来计数也没有问题。
请各位大侠给点帮助,小弟只会写C语言。。。
ayb_ice 发表于 2012-3-1 10:22 | 显示全部楼层
查询也可以,中断也可以,计数也可以
墨羽谨年 发表于 2012-3-1 10:34 | 显示全部楼层
也许是一个电平的判断问题吧,你要看你的单片机是把多少伏以上的判断为高电平,多少伏以下的电平算低电平。(个人愚见,有误莫怪)
墨羽谨年 发表于 2012-3-1 10:34 | 显示全部楼层
也许是一个电平的判断问题吧,你要看你的单片机是把多少伏以上的判断为高电平,多少伏以下的电平算低电平。(个人愚见,有误莫怪)
墨羽谨年 发表于 2012-3-1 10:34 | 显示全部楼层
也许是一个电平的判断问题吧,你要看你的单片机是把多少伏以上的判断为高电平,多少伏以下的电平算低电平。(个人愚见,有误莫怪)
 楼主| sonic245 发表于 2012-3-1 10:53 | 显示全部楼层
5# 墨羽谨年

应该不是电压的问题,电压我刚刚量过了
 楼主| sonic245 发表于 2012-3-1 10:54 | 显示全部楼层
2# ayb_ice
能细说说么,谢谢
 楼主| sonic245 发表于 2012-3-2 09:02 | 显示全部楼层
还是没有解决
ayb_ice 发表于 2012-3-2 09:14 | 显示全部楼层
本帖最后由 ayb_ice 于 2012-3-2 09:18 编辑

unsigned long counter;

void io_counter(void)
{
    bit new,old;

    new = old = io;

    while(1){
        new = io;

        if(new != old){
            counter++;
            old = new;
        }
    }
}
liang7143 发表于 2012-3-2 09:49 | 显示全部楼层
LZ 是不是 用的 delay() 这类阻塞的延时函数 进行的 去抖啊?
把这些 都干掉吧
查询用ls的  哈哈
最好用中断 和 计数
rtgchym 发表于 2012-3-2 10:20 | 显示全部楼层
用定时器定时输出一个高电平和低电平
 楼主| sonic245 发表于 2012-3-2 17:10 | 显示全部楼层
先对楼上提供帮助的几位朋友表示感谢  
出结果之后再来:)
 楼主| sonic245 发表于 2012-3-2 18:28 | 显示全部楼层
调试成功,不过问题是出在电路上,该了就解掉啦
同样感谢
q553178245 发表于 2012-3-9 15:56 | 显示全部楼层
最好是用中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

10

帖子

1

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