找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2187|回复: 5
打印 上一主题 下一主题
收起左侧

求4IO口扫描16按键的单片机程序

[复制链接]
跳转到指定楼层
楼主
有谁写过用二极管的4IO口扫描16按键的单片机程序
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2017-1-16 23:50 | 只看该作者


  1. uchar keyscan()
  2. {
  3.         uchar key,i,keyscan;
  4.         P3=0x3d;    //准备读取P3.2~P3.5  51的I/0为准双向I/0口 作为输入是最好先将其置1
  5.         //读取接地按键值
  6.         if((P1&0x3d)!=0x3d){ //若无按键按下 P3.2~P3.5为高
  7.                 delay();      //延时去抖动
  8.                 if((P1&0x3d)!=0x3d){//判断哪个按键按下
  9.                         key=P1&0x3d;
  10.                         return key;
  11.                 }
  12.         }

  13.         keyscan=0x3D;
  14.         for(i=0;i<4;i++){
  15.                 P1=keyscan;    //输出I/O口扫描 输出  判断
  16.                 if(P1!=keyscan){  //读取I/O口,看输出扫P1.0~P1.5的值是否与扫描不同
  17.                         key=P1&0x3D; //转换扫描码
  18.                         return key;
  19.                 }
  20.                 keyscan=(keyscan<<1)|0x01; //逐行输出扫描 0
  21.         }
  22.         return 0;
  23. }

复制代码

4io16keys.jpg (62.9 KB, 下载次数: 50)

4io16keys.jpg
回复

使用道具 举报

板凳
ID:158734 发表于 2017-1-17 07:54 | 只看该作者
路过 我也要用这个程序 谢谢
回复

使用道具 举报

地板
ID:116418 发表于 2017-1-18 08:35 | 只看该作者

感谢,我自己写了一个,已经做样出来C:\Users\321\Desktop\IMG_20170118_083156.jpg
回复

使用道具 举报

5#
ID:116418 发表于 2017-1-18 09:10 | 只看该作者

你这个能工作吗,感觉着代码有问题啊
回复

使用道具 举报

6#
ID:104472 发表于 2017-1-18 13:56 | 只看该作者
不错的程序,好好学习。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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