打印

51单片机求助

[复制链接]
3107|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangyang1|  楼主 | 2013-8-19 00:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2013-8-19 08:09 | 只看该作者
那你需要定义什么叫稳定低电平,连续一段时间?时间多少?

使用特权

评论回复
板凳
yangyang1|  楼主 | 2013-8-19 08:47 | 只看该作者
ayb_ice 发表于 2013-8-19 08:09
那你需要定义什么叫稳定低电平,连续一段时间?时间多少?

是这个意思,就是说一个开关,接到单片机上, 开关接到地上,这个开关会不停的开合,这个时候单片机不会做什么,直到它接地稳定一段时间,单片机就会发出控制信号,我该怎么做啊 谢谢啊

使用特权

评论回复
地板
南宫云明| | 2013-8-19 08:53 | 只看该作者
定义一个全局变量或者静态变量count=0

开个定时器,检测IO口信号,如果为1,则count++,如果为0,则count=0

如果count大于某个值(根据稳定时间计算),就认为IO口在这一段时间内是稳定的,你就发出控制信号。


使用特权

评论回复
5
yangyang1|  楼主 | 2013-8-19 09:04 | 只看该作者
南宫云明 发表于 2013-8-19 08:53
定义一个全局变量或者静态变量count=0

开个定时器,检测IO口信号,如果为1,则count++,如果为0,则count=0 ...

谢谢啊 真是太感谢了

使用特权

评论回复
6
原野之狼| | 2013-8-19 09:09 | 只看该作者
这不就是键盘扫描的思路么

使用特权

评论回复
7
airwill| | 2013-8-19 09:11 | 只看该作者
4楼的方法是最常用的. 还可以有很多灵活的变化.
高低电平的加权计算, 有效触发处理等

使用特权

评论回复
8
tong1991海深| | 2013-8-19 09:41 | 只看该作者
南宫云明 发表于 2013-8-19 08:53
定义一个全局变量或者静态变量count=0

开个定时器,检测IO口信号,如果为1,则count++,如果为0,则count=0 ...

不错

使用特权

评论回复
9
xiaox314| | 2013-8-19 09:56 | 只看该作者

使用特权

评论回复
10
yangyang1|  楼主 | 2013-8-19 12:01 | 只看该作者
yangyang1 发表于 2013-8-19 09:04
谢谢啊 真是太感谢了

还是有点不明白啊 是在定时器中检测么 假如稳定时间是10s  就发出控制信号  是定时器定10S么

使用特权

评论回复
11
yangyang1|  楼主 | 2013-8-19 12:02 | 只看该作者
airwill 发表于 2013-8-19 09:11
4楼的方法是最常用的. 还可以有很多灵活的变化.
高低电平的加权计算, 有效触发处理等 ...

能说点具体点么 有点着急 谢谢

使用特权

评论回复
12
airwill| | 2013-8-19 12:07 | 只看该作者
可以在定时器里检测

使用特权

评论回复
13
草民| | 2013-8-19 12:36 | 只看该作者
小弟献丑一下,抛砖引玉。
定时器时基部分没写。

bit DelaFlag;        //标记位
unsigned int count;  //计数值
//------------------------------
//处理函数
{   
    if(IO口 == 0)
    {
        DelaFlag=1;
        if(count>10S计数值)
          { 处理任务; }
      }
     else
     {DekaFlag = 0;}
}
//-----------------------------
//定时器函数
{
    //省去定时器处理部分
    if(DelaFlag)
    {
         count++;
    }
    else
        count = 0;
}

使用特权

评论回复
14
yangyang1|  楼主 | 2013-8-19 12:36 | 只看该作者
airwill 发表于 2013-8-19 12:07
可以在定时器里检测

这个时间怎么定时,怎么确定10S 的到来???谢谢啊  这个能精确吗

使用特权

评论回复
15
yangyang1|  楼主 | 2013-8-19 12:38 | 只看该作者
草民 发表于 2013-8-19 12:36
小弟献丑一下,抛砖引玉。
定时器时基部分没写。

膜拜一下,谢谢了啊 我试试

使用特权

评论回复
16
草民| | 2013-8-19 12:39 | 只看该作者
yangyang1 发表于 2013-8-19 12:36
这个时间怎么定时,怎么确定10S 的到来???谢谢啊  这个能精确吗

时间你自己按照定时器使用方法设置啊,上面代码供参考一下。

使用特权

评论回复
17
linfeng24| | 2013-8-19 12:53 | 只看该作者
同意四楼。如果定时器不够用的话,那么就用延时咯。。。按键扫描的办法

使用特权

评论回复
18
新光科技| | 2013-8-19 15:05 | 只看该作者
建议LZ拿出课本翻开定时\计数器一章,复习一下,其实很简单的.....

使用特权

评论回复
19
tergy2012| | 2013-8-19 16:00 | 只看该作者
路过学习的

使用特权

评论回复
20
79xiaozaizai| | 2013-8-19 16:23 | 只看该作者
用按键去抖的思路

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

68

帖子

0

粉丝