标题: 求4IO口扫描16按键的单片机程序 [打印本页]

作者: 昱丶绯    时间: 2017-1-16 15:18
标题: 求4IO口扫描16按键的单片机程序
有谁写过用二极管的4IO口扫描16按键的单片机程序

作者: angmall    时间: 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, 下载次数: 55)

4io16keys.jpg

作者: chenggong999    时间: 2017-1-17 07:54
路过 我也要用这个程序 谢谢
作者: 昱丶绯    时间: 2017-1-18 08:35
angmall 发表于 2017-1-16 23:50

感谢,我自己写了一个,已经做样出来C:\Users\321\Desktop\IMG_20170118_083156.jpg
作者: 昱丶绯    时间: 2017-1-18 09:10
angmall 发表于 2017-1-16 23:50

你这个能工作吗,感觉着代码有问题啊
作者: jiajuntao    时间: 2017-1-18 13:56
不错的程序,好好学习。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1