导航:首页 > 电器电路 > 矩阵键盘显示电路的设计

矩阵键盘显示电路的设计

发布时间:2022-02-21 07:14:48

① 能不能用mcs-51单片机做一个4x4矩阵键盘及四位显示电路 实现四位数加减法

这个是可以做的,不过数码管位数还是少了,四位数加减,要用5位数码管才能正确显示结果,加法的结果可能出现5位。减法的结果,可能出现负数和4位值,这都需要5位数码管才能显示出来。至于实现代码,网络一下,有很多的,下来后稍加修改就可以了。不要期望得到完全符合你要求的代码,那样一方面出现几率较低,另一方面也不利于你的学习。

② 用verilog设计一个4*4矩阵键盘,来对模拟开关进行控制从而实现对输入电压不同倍数的放大

从程控放大电路的实际应用来讲,楼主所作的方案没有什么必要。当然,就题目来讲,一个经典的4*4矩阵键盘可以一键输入0~F的信息,还是很有价值的。原来也没有作过这方面的东西,尝试着在网络上找了别人的文档,感觉如下链接交待的最好,它不仅有4*4矩阵键盘外围电路的示意图,也有关于代码的流程图说明(当然对于verilog设计--即作为硬件来讲,把它表述成为状态图会更好),还有对于所设计模块接口信号的简单说明。可以一起学习一下。
http://www.cnblogs.com/yuphone/archive/2010/11/09/1783623.html

③ 单片机键盘显示电路设计的程序要求输入64个按键,8个LED显示

用8*8的矩阵键盘组成64个按键,只需要16个IO口,8个LED需要8个IO口,所以选用STC89C51的单片机就够用了。

④ 51单片机数码管显示矩阵键盘的按键,电路图如下:

我的网络空间复里面,有雷制同的东西。可以参考。

--同理显示一百二十三,一千二百三十四,
其实,输入数字,能移位显示出来 123、1234,这就可以了。

只有当按下+-×÷=的时候,才需要把显示的各个数码,组合成一个数字,用来计算。

⑤ 设计一个4X4矩阵键盘键信号检测电路 EDA

这个做起来抄不难的,关键是把内部变量想清楚。但是你要求设计完整的EDA程序,还要详细解释。这要求有点过了,除非有现成的,否则谁闲着蛋疼花这么多时间来做这种事情。知道上问问题最好还是具体一点的--连我这种最近看起来像是闲的蛋疼的都不想回答啊。:(

⑥ vhdl4x4键盘扫描与数码管显示电路设计

网络上搜一下4*4矩阵键盘,这个给你参考...
自己做点小小修改吧...

/*******************************************************************/
/* */
/* 单片机开发系统演示程序 - 矩阵键盘键值显示 */
/* */
/* 一位数码管显示 */
/* */
/*******************************************************************/

#include <reg51.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

uchar table[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, //0,1,2,3,4,5,6
0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF};//7,8,9,A,B,C,D,E,F,-

sbit BEEP = P3^7; //蜂鸣器驱动线
uchar dis_buf; //显示缓存
uchar temp;
uchar key; //键顺序吗

void beep(); //蜂鸣器
void delay0(uchar x); //x*0.14MS
//--------------------------------------------------
/* 延时子程序*/

void delay(uchar x)
{ uchar j;
while((x--)!=0)
{ for(j=0;j<125;j++)

}
}
//--------------------------------------------------
/*键扫描子程序*/
void keyscan(void)
{
P1=0x0F; //低四位输入
delay(1);
temp=P1; //读P1口
temp=temp&0x0F;
temp=~(temp|0xF0);
if(temp==1)
key=0;
else if(temp==2)
key=1;
else if(temp==4)
key=2;
else if(temp==8)
key=3;
else
key=16;

P1=0xF0; //高四位输入
delay(1);
temp=P1; //读P1口
temp=temp&0xF0;
temp=~((temp>>4)|0xF0);
if(temp==1)
key=key+0;
else if(temp==2)
key=key+4;
else if(temp==4)
key=key+8;
else if(temp==8)
key=key+12;
else
key=16;

dis_buf=table[key]; //查表得键值
}
//--------------------------------------------------
/*判断键是否按下*/
void keydown(void)
{
P1=0xF0;
if(P1!=0xF0)
{
keyscan();
beep();
while(P1!=0xF0); //等待键释放
}
}
//--------------------------------------------------

void beep()
{
unsigned char i;
for (i=0;i<180;i++)
{
delay0(6);
BEEP=!BEEP; //BEEP取反
}
BEEP=1; //关闭蜂鸣器
delay(250); //延时
}
//--------------------------------------------------
void delay0(uchar x) //x*0.14MS
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++) {}
}
}
//--------------------------------------------------
main()
{
P0=0xFF; //置P0口
P2=0xFF; //置P2口
dis_buf=0xBF;

while(1)
{
keydown();
P0 = dis_buf; //键值送显示
delay(2);
P2 = 0x7F;
}
}
//--------------------------------------------------

⑦ 请教4x4矩阵键盘控制LCD显示字符串一个按键显示一条字符的程序和仿真电路图

我不知道你会不会矩阵,我把程序写下给你,你按我说的仿真下试试。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num,temp;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,
0x5e,0x79,0x71};
void delay(uint t);
void main()
{
P2=0xff;
P0=0;
num=0;
while(1)
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xee:num=1;
break;
case 0xde:num=2;
break;
case 0xbe:num=3;
break;
case 0x7e:num=4;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
P2=0;
P0=table[num-1];
}
}

P3=0xfd;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:num=5;
break;
case 0xdd:num=6;
break;
case 0xbd:num=7;
break;
case 0x7d:num=8;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
P2=0;
P0=table[num-1];
}
}

P3=0xfb;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xeb:num=9;
break;
case 0xdb:num=10;
break;
case 0xbb:num=11;
break;
case 0x7b:num=12;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
P2=0;
P0=table[num-1];
}
}

P3=0xf7;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xe7:num=13;
break;
case 0xd7:num=14;
break;
case 0xb7:num=15;
break;
case 0x77:num=16;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
P2=0;
P0=table[num-1];
}
}
}
}
void delay(uint t)
{
uint x,y;
for(x=0;x<t;x++)
for(y=0;y<110;y++);
}

你把P0口接上拉电阻之后接到数码管(共阴),P2接数码管的公共端,P3口接矩阵键盘。
你看程序去理解下把。

⑧ 简单的51系列单片机控制4*4矩阵键盘显示电路图

可以在P0.0/P0.1/P0.2/P0.3四个I/O口上每个接四个按键,,在P0.4/P0.5/P0.6/P0.7四个口线上与前面的四个口线上的按键交插相连,这样可以通过查询的方式,比如是第查到P1.0口上有按键按下了,再转向查看P0.1,P0.5,P0.6,P0.7哪个口的电平发生的变化,这样就很容易找到是哪个按键了

⑨ 谁能看懂这个电路图,是个矩阵键盘

键盘是行列反转扫描法,P3口高、低半字节分别控制行与列,扫描分两次完成,版下面的链接介绍的很权详细。
http://wenku..com/view/42d12fc60c22590102029dd2.html
显示部分没啥好说了,ls244是数码管段缓冲器,三极管是位驱动器。

阅读全文

与矩阵键盘显示电路的设计相关的资料

热点内容
民房如何申请翻新重建 浏览:352
avarte家具 浏览:50
无锡工薪之家电话多少 浏览:621
广联达防水沥青涂刷两遍怎么套 浏览:760
家居改造王月 浏览:509
家用电器罩手工教程 浏览:664
广州白云家电维修 浏览:755
启德家居 浏览:890
蚯蚓木头盒子怎么防水 浏览:380
家用电器发生火灾原因 浏览:598
家居空间床 浏览:366
复杂电路改写 浏览:584
阳春家具店 浏览:901
家用电器平均使用寿命10 浏览:466
出风口方向调节维修要多少钱 浏览:329
红米海口维修点 浏览:809
并联型电路 浏览:411
自行车电瓶如何维修 浏览:176
国家电网简历社会实践怎么填 浏览:367
找家电代理需要注意哪些 浏览:504