历史上的今天
返回首页

历史上的今天

今天是:2025年04月26日(星期六)

2020年04月26日 | 51单片机实验7:矩阵按键

2020-04-26 来源:eefocus

开发板矩阵按键模块电路图如下:

开发板数码管模块电路图如下:

矩阵按键扫描原理:


方法一:逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。


方法二:行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。

在本程序中,扫描矩阵按键采用行列扫描的方式!


在本程序中,采用行列扫描的方式扫描矩阵按键!

程序目的:将矩阵按键中的16个按键分别赋值为0、1、······、15,按下时,将标号在第一位数码管显示。

注意:


value表示按下的按键,找出按键之间的行列关系,只需要一维的数值即可确定出按键的位置,而不需要分别找出行/列序号。

等待按键释放语句:while()与独立按键实验程序中的while()有所不同,注意区分!

新的技巧:可在程序前,及时将io口等寄存器赋予新的变量名,便于程序的修改等操作,增加程序的可读性!

#include

#define uc unsigned char

#define dig P0

#define key P1

sbit lsa=P2^2;

sbit lsb=P2^3;

sbit lsc=P2^4;

int value; 

uc code x[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void delay(uc x)

{

uc i,j;

for(i=1;i<=x;i++)

for(j=1;j<=110;j++);

}

void keypros()

{

uc a=0;

key=0x0f;

if(key!=0x0f)

{

delay(10);

if(key!=0x0f)

{

key=0x0f;

switch(key)

{

case(0x07): value=0;break;

case(0x0b): value=1;break;

case(0x0d): value=2;break;

case(0x0e): value=3;break;

}

key=0xf0;

switch(key)

{

case(0x70): value=value;    break;

case(0xb0): value=value+4;  break;

case(0xd0): value=value+8;  break;

case(0xe0): value=value+12; break;

}

}

while((key!=0xf0)&&(a<50))

{

a++;

delay(10);

}

        /*while(key!=0xf0);*/

}

}

void main()

{

lsa=lsb=lsc=0;

while(1)

{

keypros();

dig=x[value];

}

}

推荐阅读

史海拾趣

格科微电子(GALAXYCORE)公司的发展小趣事

格科微电子(GALAXYCORE)公司的发展故事

故事一:创立与初期发展

格科微电子(GALAXYCORE)公司成立于2003年,由中国半导体行业的领军人物赵立新创立。赵立新曾在新加坡国立半导体公司和美国ESS公司积累了丰富的半导体设计经验,回国后,他凭借对CMOS图像传感器的深刻理解,创立了这家公司。初期,格科微电子专注于设计和开发具有成本优势的CMOS图像传感器,这些传感器主要用于功能手机和PC摄像头市场。随着技术的不断积累和产品线的扩展,格科微电子逐渐在市场上站稳了脚跟。

故事二:抓住智能手机市场机遇

进入2007年,随着国内智能手机市场的快速发展,格科微电子敏锐地捕捉到了这一机遇,迅速调整经营重点,将主要资源投入到智能手机图像传感器的研发和销售中。通过不断创新和优化产品设计,格科微电子的CMOS图像传感器在智能手机领域获得了广泛应用,逐渐在行业内崭露头角。这一转型不仅推动了公司的快速发展,也奠定了格科微电子在CMOS图像传感器领域的市场地位。

故事三:技术突破与市场份额提升

在持续的技术创新和研发投入下,格科微电子于2013年实现了重大技术突破,成为中国首家将背照技术应用于200万像素CMOS图像传感器并成功实现批量交付的国内企业。这一技术突破极大地提升了公司产品的性能和市场竞争力,使得格科微电子在全球CMOS图像传感器市场的份额迅速提升。到2014年,格科微电子已稳坐国内CMOS图像传感器出货量第一的宝座,并在全球市场占有率上达到了第二,全年出货量超过9.4亿颗芯片。

故事四:科创板上市与资本助力

2023年8月18日,格科微电子在上海证券交易所科创板成功上市,盘前市值一度突破千亿。此次上市不仅为公司带来了大量的资金支持,也进一步提升了公司的品牌影响力和市场竞争力。在资本市场的助力下,格科微电子将继续加大在技术研发、市场拓展和产能扩张等方面的投入,推动公司业务的持续快速增长。

故事五:新项目建设与未来展望

为了满足市场日益增长的需求,格科微电子启动了“12英寸CIS集成电路特色工艺研发与产业化项目”。该项目旨在通过引进先进设备和技术,提升公司在中高阶CIS产品的生产能力。目前,项目已完成首批设备的安装调试,并顺利产出了良率符合预期的合格产品。随着更多设备的安装和投产,公司的产能将进一步提升,预计最终将实现月产20,000片晶圆的产能。这一项目的成功实施将有助于公司在未来市场竞争中占据更有利的位置,实现更大的发展。

深圳杜因特(DOINGTER)公司的发展小趣事

为了进一步提升自身实力和市场竞争力,杜因特积极寻求与国内外一流芯片代工厂、封装测试代工厂的合作。通过紧密的合作关系,杜因特不仅获得了先进的技术支持,还实现了产品质量的稳步提升。同时,公司还积极与国内外知名电子企业建立战略合作关系,共同开拓市场,实现共赢发展。

Datapro International Inc公司的发展小趣事

Datapro International Inc公司成立于20世纪90年代初,当时正值电子信息技术飞速发展的时期。公司的创始人是一群充满激情和创新精神的年轻工程师,他们看到了在数据存储和处理方面的巨大潜力。于是,他们决定成立Datapro International Inc公司,致力于开发高效、稳定的数据存储解决方案。

在创立初期,Datapro International Inc公司面临着重重困难,包括资金短缺、技术挑战和市场竞争等。然而,他们凭借坚定的信念和不懈的努力,成功开发出了第一款具有创新性的数据存储产品,该产品凭借其卓越的性能和稳定性迅速赢得了市场的认可。这一成功为Datapro International Inc公司的发展奠定了坚实的基础。

DIPTRONICS MANUFACTURING INC公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,圜达实业始终坚持创新发展。公司不断推出新产品、新技术,以满足客户的多样化需求。同时,公司还积极与国内外知名企业开展合作,共同研发新技术、新产品,推动电子开关行业的持续发展。

请注意,以上故事梗概仅基于公开信息和一般行业趋势进行编写,可能无法涵盖圜达实业发展的所有细节和具体情况。

AMERICASEMI [America Semiconductor, LLC]公司的发展小趣事

AMERICASEMI深知产品质量对于企业发展的重要性。因此,公司建立了严格的质量管理体系,从原材料采购到生产制造的每一个环节都进行严格把控。同时,AMERICASEMI还注重品牌建设,通过参加国际电子展会、发布技术论文等方式提升品牌知名度和影响力。这些努力使得AMERICASEMI在半导体行业中树立了良好的口碑和形象。

Gamewell-FCI ( Honeywell )公司的发展小趣事

为了进一步扩大市场份额,AMERICASEMI积极寻求与其他企业的合作机会。公司与多家知名电子产品制造商建立了稳定的合作关系,为其提供优质的半导体产品和技术支持。同时,AMERICASEMI还积极开拓国际市场,将产品出口到全球多个国家和地区,实现了业务的快速增长。

问答坊 | AI 解惑

求助,在5502中SDRAM的写入过程要用210ns,如何提升速度

在TMS320VC5502中,对SDRAM写操作,居然要210ns,简直无法干活,请教前辈,怎样解决这个问题?我对EMIF的相关寄存器进行设置,如WRITE SETUP 、WRITE STROBE 、WRITE HOLD ,对写操作消耗时间一点都没变化,很郁闷呀,在论坛上有说这是5502本身问题 ...…

查看全部问答>

WinCE6.0 系统定制及应用开发 问题

在定制WinCE操作系统的时候,我想添加对C#的支持。可是选项中有 .NET Compact Framework 2.0  跟  .NET Compact Framework 2.0-headless两个选择项目。 请问各位大侠,两个有什么不同呢? 还有就是我刚开始添加的是前者,编 ...…

查看全部问答>

软件工程应届生找不到工作

我是上海一大学软件工程专业的09届应届生,本科,不是很会说话。 在学校里学的是单片机开发之类的(偏软件 C语言),接触过ARM+Wince之类的嵌入式软件的开发。(其实学校里嵌入式软件方面的课基本就没有,都是我凭着兴趣自学的)单片机的水平达到自 ...…

查看全部问答>

射极跟随器问题

本帖最后由 paulhyde 于 2014-9-15 09:04 编辑 我想用三极管打一个射极跟随器  应该选取什么型号三极管 …

查看全部问答>

关于port1 中断

对于不同的pin中断该如何区分呢?有没有类似P1IV这样的register ?谢谢…

查看全部问答>

看门狗定时时间到,怎么跳不出循环

#include void main(void) { WDTCTL=WDT_ADLY_1000;//设置看门狗定时时间1000ms IE1|=WDTIE;         //WDT使能 P5DIR|=0x02;        //P5.1输出 P5OUT=0X02; _EINT();//中断 ...…

查看全部问答>

TC1-1T+ 巴伦 用的是什么型号的磁芯?

TC1-1T+ 巴伦 用的是什么型号的磁芯?…

查看全部问答>

整理电脑有一些以前下载的文档

整理电脑有一些以前下载的文档…

查看全部问答>