找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3583|回复: 7
收起左侧

求助:关于单片机独立按键的检测问题

[复制链接]
ID:76241 发表于 2015-5-12 10:28 | 显示全部楼层 |阅读模式
各位大神,小弟我最近在毕业设计中遇到了一个问题,就是关于单片机按键检测的(单片机我刚刚学一两周),主要表现在:当我按下按键的时候,运行的数码管会熄灭,释放按键数码管又恢复,检测程序是我根据书上和网上写出来的如下:
void keyscan()
{
   if((key2==0)&&(s==2))
   {
    delay(10);
    if((key2==0)&&(s==2))
     {
      count1++;
   while(!key2);
     }
   }
   if((key1==0)&&(s==1))
   {
    delay(10);
    if((key1==0)&&(s==1))
     {
      count2++;
   while(!key1);
     }
   }
}

这个keyscan()函数我在中断中调用了。
void Time0 () interrupt 1
{  
   time=10;//设置改变的时间基数为10s。
   TH0 = (65536 - 50000)/256;
   TL0 = (65536 - 50000)%256; //设置定时时间为50MS
   keyscan();
    t ++ ;
      if( t == 10)  //0.5秒
   {
     half_sec ++;
     t = 0;。。。。。。。。
求大神指导。先谢谢你们了。
回复

使用道具 举报

ID:77707 发表于 2015-5-12 11:57 | 显示全部楼层
把delay(10);延时中的10改短些试试。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:76241 发表于 2015-5-13 10:48 | 显示全部楼层
dpj555 发表于 2015-5-12 11:57
把delay(10);延时中的10改短些试试。

谢谢你的回复。我试过了,也会出现按键按下时数码管的熄灭的情况。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:7485 发表于 2015-5-17 20:08 | 显示全部楼层
把“延时函数”用“显示函数”代替试一试。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:80426 发表于 2015-5-18 22:27 | 显示全部楼层
修改延时就好了。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:12312 发表于 2015-5-19 09:38 | 显示全部楼层
完整的贴出来,
回复

使用道具 举报

ID:12312 发表于 2015-5-19 09:40 | 显示全部楼层
按下去时好象是程序不动了

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:79943 发表于 2015-5-19 10:37 | 显示全部楼层
能运行程序就可以吧  之前在课设时做的也是按下去数码管短暂熄灭 问题应该不大

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表