找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2027|回复: 5
收起左侧

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

[复制链接]
ID:116418 发表于 2017-1-16 15:18 | 显示全部楼层 |阅读模式
有谁写过用二极管的4IO口扫描16按键的单片机程序
回复

使用道具 举报

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
回复

使用道具 举报

ID:158734 发表于 2017-1-17 07:54 | 显示全部楼层
路过 我也要用这个程序 谢谢
回复

使用道具 举报

ID:116418 发表于 2017-1-18 08:35 | 显示全部楼层

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

使用道具 举报

ID:116418 发表于 2017-1-18 09:10 | 显示全部楼层

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

使用道具 举报

ID:104472 发表于 2017-1-18 13:56 | 显示全部楼层
不错的程序,好好学习。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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