历史上的今天
返回首页

历史上的今天

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

2018年06月22日 | 51单片机的数码管和矩阵键盘

2018-06-22 来源:eefocus

使用4*4的矩阵键盘和一个数码管

在4*4的矩阵键盘上编码0-F的字符,和一个数码管显示每个键盘上输入的字符。

//4*4键盘检测程序,按下键后相应的代码显示在数码管上  

#include  

typedef unsigned char UINT8;  

UINT8 i=100;  

UINT8 j,k,temp,key;  

void delay(unsigned char i)  

{  

  for(j=i;j>0;j--)  

    for(k=125;k>0;k--);  

}  

UINT8 code table[]=  

{  

    0x3f,0x06,0x5b,0x4f,  

    0x66,0x6d,0x7d,0x07,  

    0x7f,0x6f,0x77,0x7c,  

    0x39,0x5e,0x79,0x71  

};  

  

void display(unsigned char num)  

{  

     P0=table[num];  

}  

  

void init_led()  

{  

    P0 = 0x00;  

}  

                                                                                                       

void main()  

{  

    while(1)  

    {    

        P1 = 0xef;  

        temp = P1;  

        temp = temp&0xf0;  

        if (temp != 0xf0)  

        {  

            temp = P1;  

            switch(temp)  

            {  

                  case 0xee:  

                       key=0;  

                       break;  

                  case 0xed:  

                       key=1;  

                       break;  

                  case 0xeb:  

                       key=2;  

                       break;  

                  case 0xe7:  

                       key=3;  

                       break;  

                  default:                      

                      break;  

            }  

            display(key);  

            P1=0xfe;  

        }  

        P1 = 0xdf;  

        temp = P1;  

        temp = temp&0x0f;  

        if(temp != 0x0f)  

        {  

            temp = P1;  

            switch(temp)  

            {  

                  case 0xde:  

                       key = 4;  

                       break;  

                  case 0xdd:  

                       key = 5;  

                       break;  

                  case 0xdb:  

                       key = 6;  

                       break;  

                  case 0xd7:  

                       key = 7;  

                       break;  

                  default:  

                      break;  

             }  

             display(key);  

        }  

        P1=0xbf;  

        temp=P1;  

        temp=temp&0x0f;  

        if(temp != 0x0f)  

        {  

            temp=P1;  

            switch(temp)  

            {  

                  case 0xbe:  

                       key=8;  

                       break;  

  

                  case 0xbd:  

                       key=9;  

                       break;  

  

                  case 0xbb:  

                       key=10;  

                       break;  

  

                  case 0xb7:  

                       key=11;  

                       break;  

                  default:  

                       break;  

            }  

            display(key);  

        }  

        P1=0x7f;  

        temp=P1;  

        temp=temp&0x0f;  

        if(temp!=0x0f)  

        {           

            temp=P1;  

            switch(temp)  

            {  

                  case 0x7e:  

                       key=12;  

                       break;  

  

                  case 0x7d:  

                       key=13;  

                       break;  

  

                  case 0x7b:  

                       key=14;  

                       break;  

  

                  case 0x77:  

                       key=15;  

                       break;  

                    

                  default:  

                      break;  

            }  

            display(key);  

        }  

    }     

}  

这个上面有一个bug就是每进入的时候数码管不是空的而是现实“0”这个没有解决。

推荐阅读

史海拾趣

FerriShield公司的发展小趣事

FerriShield公司起源于一家小型电子材料研究实验室。创始人Dr. Smith是一位材料科学家,他发现了一种新型的铁磁屏蔽材料,能够有效减少电子设备中的电磁干扰。这一发现引起了业界的广泛关注。Dr. Smith决定将其商业化,并创立了FerriShield公司。凭借这种创新材料,FerriShield在成立初期就获得了多项专利,并成功吸引了第一轮风险投资。

Advanced Illumination Inc公司的发展小趣事

在发展过程中,Ai公司积极寻求与行业内外的合作伙伴建立合作关系。公司与多家知名企业签订了战略合作协议,共同开发新产品、拓展新市场。同时,公司还与其他科研机构、高校等进行合作,引进先进技术和人才,为公司的创新发展提供了有力支持。这些合作不仅为公司带来了更多的商业机会,也促进了整个行业的进步与发展。

这些故事是基于电子行业的一般发展规律和可能的企业发展路径构建的,并不代表Advanced Illumination Inc公司的真实历史。如需了解该公司的真实发展情况,建议查阅相关资料或访问其官方网站。

FlexiPanel公司的发展小趣事

在追求经济效益的同时,FlexiPanel也高度重视企业的社会责任和环保问题。公司积极响应国家节能减排政策,致力于推广绿色制造和可持续发展理念。在产品设计、生产、包装等各个环节中,FlexiPanel都采取了环保措施,减少了对环境的影响。此外,公司还积极参与公益事业和社会活动,为社会和谐发展贡献了自己的力量。

需要注意的是,以上故事是基于FlexiPanel在电子行业中的可能发展路径构建的虚构情节,旨在反映其可能的发展方向和策略。由于具体信息可能因企业实际情况和市场环境变化而有所不同,因此以上内容仅供参考。

Aptina (ON Semiconductor)公司的发展小趣事

在快速发展的同时,Aptina注重技术研发与专利布局。公司投入大量资源用于研发,不断推出具有创新性的图像传感器产品。这些产品不仅提升了公司的市场竞争力,还为Aptina积累了大量的技术专利。这些专利成为了公司宝贵的资产,为公司的长期发展奠定了坚实基础。

Baton Lock公司的发展小趣事

随着公司规模的扩大,Baton Lock意识到单一市场已无法满足其增长需求。于是,公司开始在全球范围内寻找合作伙伴和设立生产基地。通过在欧洲、亚洲等地建立分支机构,Baton Lock成功打开了多个新市场,进一步提升了其品牌影响力。

AZM [Arizona Microtek, Inc]公司的发展小趣事

随着市场规模的扩大,AZM公司面临着供应链管理和成本控制的挑战。为了确保产品质量和交货期的稳定性,公司加强了与供应商的合作与沟通,建立了严格的供应商评价体系。同时,公司还通过优化生产流程、提高生产效率、降低原材料消耗等方式,有效控制了成本,提升了盈利能力。

问答坊 | AI 解惑

51定时器计算工具

计算定时器初始值的一款小工具…

查看全部问答>

大家一起晒晒示波器的美图吧~~~~

做个东西,就要做的精美,没有外表怎么成? 咱们可以晒晒示波器的美图,供坛子里做示波器的筒子们学学。 先抛个砖: …

查看全部问答>

FPGA 项目选题-----抛个砖头

1. 基于FPGA的SPWM调制的实现; 2. 基于FPGA的DDS信号发生器的简单实现…

查看全部问答>

挺好的,支持一下,我把我做过的智能家居开源出来!

6月份参加了比赛,拿了个三等奖,用STM32做的东西,等出差回去把所有东西开源出来,给大家一个参考   包括:   无线模块  红外通信 GPRS短信 屏幕驱动 vs1003驱动等等…

查看全部问答>

PlatForm Builder 5.0 难道就是Windows CE 5.0 ?

如题,PlatForm Builder 5.0难道就是Windows CE 5.0? 我在电驴上看PlatForm Builder 5.0有2.6G大,但是这个源已经不全了。 http://board.verycd.com/t252175.html 但是微软 http://www.microsoft.com/downloads/details.aspx?familyid=486E825 ...…

查看全部问答>

求助大侠推荐模拟下变频器

求助大侠给推荐一片模拟下变频芯片,rf在170~240mhz,if为38mhz …

查看全部问答>

wince只实现PPPoE拨号的问题

我已经加了Dial Up Networking (RAS/PPP) 的支持,wince可以建立PPPoE拨号了,但是每次拨号时候都提示“PPPoE访问集中器无响应”。 请问是怎么回事情?要怎么样才能拨号,麻烦兄弟们指点一下。 谢谢了。…

查看全部问答>

楼主sunliwen1981(sunliwen1981)能不能发个自己制作mp3随身播放器的资料给我

以前是学自动化的,现在从事与硬件有关的工作,昨天偶尔在网上搜索,才知道自做MP3,不知道现在还晚不晚,楼主您发的那个贴是2003年的,不知道现在能不能发份资料给我,感谢了! 邮箱:muyuzijia@126.com…

查看全部问答>

转让南京万利51仿真器

本人有南京万利51仿真器一台. 8成新(用过一个多月). 欲转让给需要者. 仿真器见以下连接. http://www.manley.com.cn/chinese/ice/se52hu.htm 联系: littleliu97@sohu.com…

查看全部问答>