历史上的今天
返回首页

历史上的今天

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

2021年04月06日 | 矩阵键盘C语言程序设计

2021-04-06 来源:eefocus


下面是c语言源程序:


#include

#define uint unsigned int

#define uchar unsigned char

uintled[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,

0x88,0x83,0xc6,0xa1,0x86,0x8e};

uchar a,b,c,temp;

void delay7ms(void) //误差 -0.217013888891us

{

unsigned char a,b;

for(b=208;b>0;b--)

for(a=14;a>0;a--);

}


ucharkey()

{

P1=0x0f;

if(P1!=0x0f)

{

delay7ms();

if(P1!=0x0f);


P1=0xfe;

a=P1^0xfe;

switch(a)

{

case 0x80:c=0;break;

case 0x40:c=1;break;

case 0x20:c=2;break;

case 0x10:c=3;break;

}

temp=P1;

while(temp!=0xfe)

{

temp=P1;

}

}


P1=0x0f;

if(P1!=0x0f)

{

delay7ms();

if(P1!=0x0f);

P1=0xfd;

a=P1^0xfd;

switch(a)

{

case 0x80:c=4;break;

case 0x40:c=5;break;

case 0x20:c=6;break;

case 0x10:c=7;break;

}

temp=P1;

while(temp!=0xfd)

{

temp=P1;

}

}



P1=0x0f;

if(P1!=0x0f)

{

delay7ms();

if(P1!=0x0f);

P1=0xfb;

a=P1^0xfb;

switch(a)

{

case 0x80:c=8;break;

case 0x40:c=9;break;

case 0x20:c=10;break;

case 0x10:c=11;break;

}

temp=P1;

while(temp!=0xfb)

{

temp=P1;

}

}


P1=0x0f;

if(P1!=0x0f)

{

delay7ms();

if(P1!=0x0f);

P1=0xf7;

a=P1^0xf7;

switch(a)

{

case 0x80:c=12;break;

case 0x40:c=13;break;

case 0x20:c=14;break;

case 0x10:c=15;break;

}

temp=P1;

while(temp!=0xf7)

{

temp=P1;

}

}

return c;

}


void main(void)

{

while(1)

{

P2=led[b];

b=key();

}

}


推荐阅读

史海拾趣

DBM REFLEX公司的发展小趣事

在光学器件领域,技术创新是企业发展的关键。DBM REFLEX深知这一点,因此不断投入研发资源,致力于技术创新和产品创新。公司成功研发出了一系列具有高性能、高可靠性和高稳定性的光学器件,这些产品不仅满足了市场的需求,还为公司赢得了良好的口碑。

成都振芯/国腾(CORPRO)公司的发展小趣事

2003年,成都国腾微电子有限公司(后更名为成都振芯科技股份有限公司)正式成立,标志着CORPRO的起点。公司由成都国腾电子集团投资设立,创始人团队汇聚了来自中国物资储运集团、电子科技大学等单位的精英。在成立之初,CORPRO就致力于集成电路、微波组件及相关电子器件的设计、开发与销售,奠定了其在电子行业的基础。

Anritsu公司的发展小趣事

2003年,成都国腾微电子有限公司(后更名为成都振芯科技股份有限公司)正式成立,标志着CORPRO的起点。公司由成都国腾电子集团投资设立,创始人团队汇聚了来自中国物资储运集团、电子科技大学等单位的精英。在成立之初,CORPRO就致力于集成电路、微波组件及相关电子器件的设计、开发与销售,奠定了其在电子行业的基础。

Arco Electronics公司的发展小趣事

Arco Electronics公司深知品牌建设对于企业发展的重要性。因此,公司投入大量资源用于品牌建设和市场推广。公司通过与知名企业合作、赞助行业展会等方式提升品牌知名度;同时,还积极运用新媒体进行线上推广,与消费者建立更紧密的联系。这些举措有效地提升了Arco的品牌形象和市场影响力。

Eaton公司的发展小趣事

除了能源管理领域外,伊顿公司还在商用车领域取得了显著成就。自1985年首次将技术引进中国以来,伊顿的变速器产品已经进入中国市场30多年。通过与国内各个商用车生产企业的紧密合作,伊顿成功地将其先进的变速器技术应用于各种商用车型中,提高了车辆的燃油经济性和驾驶舒适性。特别是在物流行业,伊顿的变速器产品帮助车队降低了油耗成本,提高了运营效率。

Aces Electronics Co Ltd公司的发展小趣事

Aces Electronics Co., Ltd.自成立之初,就致力于电子技术的研发与创新。在公司发展早期,Aces面临技术壁垒和市场竞争的双重压力。然而,公司通过不断投入研发资源,终于在某一关键领域取得了重大技术突破,推出了一款具有颠覆性的电子产品。这款产品凭借其卓越的性能和创新的设计,迅速在市场上获得了广泛认可,为Aces打开了新的发展空间。

问答坊 | AI 解惑

arm Linux中的IPv6协议怎么用起来?

两块板子,一块单片机板子,一块ARM9板子。单片机板子上没有操作系统,ARM9板子上加载了Linux操作系统。 一方面,在ARM9板子上,需要把单片机板子通过无线传送过来的IPv6包解析,并最终把包中应用层的数据传给PC机服务器;另一方面,ARM9板子要接 ...…

查看全部问答>

DDK6001安装不了,总是提示 Remove: EULA

DDK6001安装不了,总是提示 Remove: EULA,好像是说有有不需要的一个组件已经安装,必须把它先卸载了,但是按提示操作了无数次,还是装不了,是怎么回事呢,谢谢…

查看全部问答>

烧写NK.BIN出现的地址错误

用pb自定义了一个Microsoft DeviceEmulator_ARMV4系统,生成SDK,编译都通过,就是在烧写到ARM9板的时候出现错误,以下是串口消息 Now,Downloading [ADDRESS:400000H,TOTAL:0X01C711DF(29823455) bytes] RECEIVED FILE SIZE: 0x00100000Date CRC0 ...…

查看全部问答>

有关流接口驱动程序的问题

最近调试流接口驱动程序出了些问题,麻烦论坛里的牛牛们指教,问题描述如下: 三星2440平台,wince5.0,调试ADC的流接口驱动程序,我只为了测试所以很多功能都简化了,就是往寄存器里写一次,直接读回,用了virtualalloc和virtualcopy函数映射地址 ...…

查看全部问答>

FPGA板子哪家的板子比较好

本人想买FPGA板子,不知道哪家提供的板子和服务比较好,请大家帮忙说说啊!…

查看全部问答>

有两个恒流源的运放电路不太理解,希望请教一下大家

书上说左边的电路Io=Vin/R2,我能理解到根据负反馈,运放工作于虚短的状态,R2上的电压为Vin,根据KCL定理,Vin/R2=Io+Ir1(FET 源漏极电流),书里没有说为什么可以忽略这个源漏极电流,想请教一下大家。 另外右边的电路,是引入了正反馈,不能用虚 ...…

查看全部问答>

51单片机开发板 原理图 集合下载

51单片机开发板 原理图 集合下载 ,欢迎下载学习 [ 本帖最后由 y789 于 2012-5-14 15:33 编辑 ]…

查看全部问答>

谁做过超声波发射电路,用的是升压中周,有谁做过吗。。帮忙指点一下电路

不知道他的工作原理(中周不了解)按着焊好,又不行。。急死了…

查看全部问答>

[转]降低 SAR ADC 驱动器的放大器功耗

    由于 SAR ADC 的功耗随着每一代新器件的推出而不断降低,放大器成了功耗敏感型应用的制约因素。那么我们如何才能进一步降低功耗?在寻找可能的解决方案之前,让我们先考虑一下 ADC 功耗降低的原因。下图 1 直接显示了我们 12 位、4MS ...…

查看全部问答>

I2C读写问题

现在用STM32驱动1音频芯片,初始化已经通过,貌似也能写,为了验证写入数据的正确性,现在要把写的数据读出来加以比较。此时,却发现问题,读出的数据 全部为0,求指教!!! …

查看全部问答>