单片机矩阵键盘数码管不亮(4矩阵键盘两位数码管显示0)

fhuyi0XCV 精选 3 0

一、矩阵键盘的扫描与数码管数值的,具体用到了哪些模块

键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。而靠软件编程来识别的称为非编码键盘。

在一般嵌入式应用中,用的最多的是非编码键盘,也有用到编码键盘的。非编码键盘又分为独立键盘和行列式(又称为矩阵式)键盘。所谓独立式键盘,即嵌入式CPU(或称MCU)的一个GPIO口对应一个按键输入,这个输入值的高低状态就是键值。矩阵键盘用于采集键值的GPIO是复用的,一般分为行和列采集,例如4*4矩阵键盘就只需要行列各4个按键就可以了,矩阵键盘的控制较独立键盘要复杂得多,本实验未涉及,所以对其原理不做详细介绍。

独立按键一般有2组管脚,虽然市面上我们常常看到有4个管脚的按键,但它们一般是两两导通的,这2组管脚在按键未被按下时是断开的,在按键被按下时则是导通的。基于此原理,我们一般会把按键的一个管脚接地,另一个管脚上拉到VCC,并且也连接到GPIO。这样,在按键未被按下时,GPIO的连接状态为上拉到VCC,则键值为1;按键被按下时,GPIO虽然还是上拉到VCC,但同时被导通的另一个管脚拉到地了,所以它的键值实际上是0。

我们的SF-CY4开发板上有一组4*4矩阵键盘。通过P12的PIN1-2短接时,其实S1/S2/S3/S4可以作为独立按键使用,它的一端接地,另一端在上拉的同时连接到FPGA的I/O口。当I/O口的电平为高(1)时,说明按键没有被按下,当I/O口的电平为低(0)时,说明按键被按下了。这是8.4节中我们的使用方法。在本实例中,我们不再只局限于独立按键这么low的应用了,这里我们将要把所有16个按键都使用起来,实现我们真正的矩阵按键功能。要做矩阵按键,那么大家首先要确认把自己的SF-CY4开发板上插座P12的PIN2-3用跳线帽短接。矩阵按键的原理图如图8.85所示。

二、3×3矩阵键盘数码管显示0到8

那就选择数码管吧,假设矩阵键盘连P1口,数码管连P0口,上电后数码管显示0,然后3*3键盘控制显示1~9,程序c语言如下:/****************************************************************************************************************扫描法监测键盘,显示按键数值。我的板子是4*4的,所以没调试,有不对的地方我再给你调我看有别人也再问,不介意我去赚点分吧~~~ o(︶︿︶)o******************************************************************************************************************/#include<reg52.h>//文件包含

#define uint unsigned int

#define uchar unsigned char//宏定义,方便使用

uchar code table[]={

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90};//数码管显示编码

uchar num,temp,num1;//全局变量定义

/************************延时子函数***********************************/void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

/**************************主函数*************************************/uchar keyscan();//定义键扫描函数void display(uchar aa);//定义显示函数 void main()

{

num=0;

P0= 0xc0;

while(1)

{

display(keyscan());//调用键盘扫描子函数

}

}

/*************************显示子函数**********************************/void display(uchar aa)

{ P0=table[aa];

}/************************键盘扫描子函数*******************************/uchar keyscan()

{

P1=0xfe;//P1赋值,低位送0

temp=P1;//temp读回P1的值,

三、单片机4***4矩阵键盘两位数码管显示0***16

步骤如下:

1、将4x4矩阵键盘连接到单片机上,并将数码管连接到单片机上。

2、编写程序以实现键盘扫描和数码管显示。

3、使用行扫描法识别键盘输入。将行线设置为高电平,然后逐行扫描列线。

4、使用两位数码管显示0-16的数值。将数码管的段选线连接到单片机的GPIO引脚上,并将位选线连接到另一个GPIO引脚上。

5、了消除按键抖动的影响,可以在程序中添加去抖动逻辑。

四、矩阵键盘与八段数码管实验元件有哪些

矩阵键盘与八段数码管实验元件如下:

1、矩阵键盘:矩阵键盘是一种常用的数字输入元件,由多个按键组成,按键排列成矩阵状,每个按键都对应一个行列坐标。在数字电路实验中,可以使用矩阵键盘进行数字输入实验、密码锁设计实验等。

2、八段数码管:八段数码管是一种常用的数字显示元件,由8个发光二极管组成,可以显示09和AF等16个字符。在数字电路实验中,可以使用八段数码管进行数字显示实验、计数器设计实验等。

抱歉,评论功能暂时关闭!