原创 两条I/O六键C51程序

2006-12-30 00:57 4397 14 14 分类: MCU/ 嵌入式


xwj 发表于 2006-6-16 09:35 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


点击看大图
hotpower 发表于 2006-6-17 21:26 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴


unsigned char scan_key(void) {
unsigned char keyval = 0;//无键,有键1~6
  IO1 = 1;//释放总线
  IO2 = 1;//释放总线
  if (!IO1 && !IO2) keyval = 3;//大强盗键S3
  else if (!IO1) keyval = 2;//小强盗键S2
  else if (!IO2) keyval = 1;//小强盗键S1
  else {//开始扫描,也要考虑小毛贼的问题~~~
    IO1 = 0;//扫描
    if (!IO2) {//这时不能立即判定S4/S6
      IO1 = 1;//释放总线
      IO2 = 0;//反向扫描
      if (!IO1) keyval = 4;//找出小毛贼S4~~~
      else keyval = 6;//S6
    }
    else {//只能是S5了
      IO1 = 1;//释放总线
      IO2 = 0;//反向扫描
      if (!IO1) keyval = 5;//S5
//      else keyval = 6;//S6//上面已判出了S6,这句是废话
    }
//  IO1 = 1;//释放总线//已经释放~~~
    IO2 = 1;//释放总线
  }
  return keyval;//返回键值0-无键,1~6-S1~S6键
}
http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?id=2127509
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
14
关闭 站长推荐上一条 /3 下一条