51单片机矩阵按键程序

文中所述的单片机为STC单片机
开发板具体型号我忘了。
上面有一个4*4的矩阵按键
可以通过程序来实现当依从左向右从上到下的次序按下时,第一个数码管显示0~15的十六进制数。下面就说一下具体实现

操作方法

  • 01

    下述为程序: #include <reg51.h>#define Keyvalue P1   //按下的键的代号#define Digvalue P0   //用宏定义来定义一下数码管的发送数据端口typedef unsigned int ut;typedef unsigned char uc;ut k;sbit LSA=P2^2; //定义三八译码器的三个输入端口sbit LSB=P2^3;sbit LSC=P2^4; ut smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //从0~15的十六进制编码void delay(ut i)   //延时函数{ while(i) i--;}void anjian()  //检测按键是否按下,若按键按下则给k附上按下的键的序号{ ut a; Keyvalue=0x0f; if(Keyvalue!=0x0f) { delay(1000); if(Keyvalue!=0x0f) { Keyvalue=0x0f; switch(Keyvalue) { case(0x07):k=0;break; case(0x0b):k=1;break; case(0x0d):k=2;break; case(0x0e):k=3;break; } Keyvalue=0xf0; switch(Keyvalue) { case(0x70):k=k;break; case(0xb0):k=k+4;break; case(0xd0):k=k+8;break; case(0xe0):k=k+12;break; } } } while((a<50)&&(Keyvalue!=0x0f)) { delay(1000); a++; }}void main(){ LSA=0;  //让第一个数码管显示数字 LSB=0; LSC=0; while(1) { anjian(); Digvalue=smgduan[k]; //显示数字 }}

(0)

相关推荐

  • 一种简单的单片机矩阵键盘的程序

    通过计算法来实现单片机的4*4矩阵键盘.程序比较简捷. 操作方法 01 unsigned char Keycan(void) //按键扫描程序 P1.0--P1.3为行线 P1.4--P1.7为列线 ...

  • 51单片机C程序实验LED灯:[4]花样流水灯

    前篇的升级版. 目标:实现花样流水灯. 由于花样流水灯的变换很多,所需变量太多,所以一般没有使用移动语句,而是利用数组编译好每个时刻各个灯的赋值,然后读取数据输出到端口显示. proteus电路图 0 ...

  • 51单片机程序编写软件keil如何使用

    keil是一款51单片机程序的编写软件,据百科介绍有80%的工程师在使用这款软件,小编大体介绍下这款软件的使用. 操作方法 01 下载一个keil软件包,并安装. 02 打开keil,看到如图界面. ...

  • 51单片机C程序实验LED灯:[3]来回点亮

    一个简单的LED灯例子. 两种编译方法. 目标:实现8个LED灯来回点亮 proteus电路图 01 画proteus电路图,给出元件清单: 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二 ...

  • 51单片机C程序实验LED灯:[2]左到右的流水灯

    依旧是基础的LED灯部分的实验 说明:实现一排灯从左到右依次一个一个点亮熄灭,实现流水灯 proteus电路图 01 元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极 ...

  • 51单片机C程序实验LED灯:[5]模拟交通灯

    名称:LED 模拟交通灯 目的:东西向绿灯亮若干秒,黄灯闪3次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁3次后变红灯,东西向变绿灯,如此重复. 分析一共有12个灯,每个与每个又 ...

  • 51单片机C程序实验LED灯:[1]单个灯闪烁

    说明:单片机控制LED灯间隔时间闪烁 所用程序很简单,实际情况可作相应变化,也有多种方式实现. proteus电路图 01 所需元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 ...

  • 51单片机C程序实验LED灯:单个灯闪烁

    我们在学习单片机的时候,最开始接触的就是用单片机点亮LED灯.今天,小编就来说说,如何用51单片机做单个LED灯闪烁的实验. 操作方法 01 首先,打开电脑中的proteus软件,其界面如图所示. 0 ...

  • 51单片机系列:单片机最小系统

    单片机是一种集成电路芯片.在单片机程序的控制下能准确.迅速.高效地完成程序设计者事先规定的任务.单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.下面给大家介绍51单片 ...