历史上的今天
返回首页

历史上的今天

今天是:2025年03月08日(星期六)

2018年03月08日 | 一个stc89c52单片机下的矩阵键盘程序

2018-03-08 来源:eefocus

    下面是一个stc89c52单片机下的矩阵键盘程序,P0口接键盘,显示在P2口.

     #include
 #define uchar unsigned char
 #define uint unsigned int
 sbit key1=P3^2;
 sbit key2=P3^3;
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};  //定义八个灯的工作状态。
uchar code wep[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
 void yanshi(uint t)
  {
  while(--t);
 }

     
 void main()
 {
  
    uchar han,lei,key;
 while(1)
 {
  P0=0xf0;    //初始化为开关状态。11110000
  han=P0;    //han变量读取P0口的值。第一次扫描键盘。
  han=han&0xf0; //对han变量与0xf0与.
                //如果结果等于P0口初值(0xf0)说明没有键被按下.
                //如果结果不等于P0(0xf0)口初值,说明有键按下.
  if(han!=0xf0)
    yanshi(125*5); //延时消抖.
    if(han!=0xf0)  //语句执行到这里说明真的有键按下.
    {        //例如按下S1键.则P0=1110 0000
  lei=P0&0xf0;  //lei读取P0口的值.
  lei=lei|0x0f; //lei=11101111
  P0=lei;    //P0=11101111
  han=P0;    //han=11101110 第二次扫描键盘,
          //因为这里按键S1还是闭合的状态。
  han=han&0x0f; //han=00001110
  lei=lei&0xf0; //lei=11100000
  key=han+lei;  
  }
  switch(key)  
  {
  case 0xee: P2=tab[0]; break;
  case 0xde: P2=tab[1]; break;
  case 0xbe: P2=tab[2]; break;
  case 0x7e: P2=tab[3]; break;
  case 0xed: P2=tab[4]; break;
  case 0xdd: P2=tab[5]; break;
  case 0xbd: P2=tab[6]; break;
  case 0x7d: P2=tab[7]; break;
  case 0xeb: P2=tab[8]; break;
  case 0xdb: P2=tab[9]; break;
  case 0xbb: P2=tab[10]; break;
  case 0x7b: P2=tab[11]; break;
  case 0xe7: P2=tab[12]; break;
  case 0xd7: P2=tab[13]; break;
  case 0xb7: P2=tab[14]; break;
  case 0x77: P2=tab[15]; break;
  }
  }
  
   }


推荐阅读

史海拾趣

Galaxy Semi-Conductor Co Ltd公司的发展小趣事

山西飞虹激光科技有限公司于2010年在中国山西成立,并迅速在北京设立分公司,将北京作为战略重心,拓展全国市场。仅两个月后,飞虹激光的研发&生产中心便设立并投入生产,展现了公司的强大执行力和决心。2012年,飞虹激光积极参与国际展会,如慕尼黑上海光博会,展示了其F3015激光切割机、激光熔覆系统等高端产品,不仅提升了公司知名度,也彰显了其在激光技术领域的专业水平和创新能力。

福斯特半导体(Foster)公司的发展小趣事

飞虹光电科技集团在转型过程中,相继成立了多家高科技企业,如山西飞虹微纳米光电科技有限公司、山西飞虹半导体照明有限公司等。这些企业之间形成了良好的协同发展机制,共同推进半导体激光器和LED材料的研发与应用。通过产学研一体化模式,飞虹系列企业依托多所高等院校技术平台,不断提升自身研发实力和市场竞争力,为中国电子行业的发展贡献了重要力量。

Futaba Electric Co Ltd公司的发展小趣事

飞虹半导体自2002年建厂之初,便意识到大功率半导体产品市场几乎被国外进口产品垄断。为了改变国内电子厂家在价格与交货期上的被动局面,飞虹半导体毅然踏上了大功率半导体国产化生产研发的道路。尽管面临重重困难,但飞虹半导体坚持不懈,逐步在LED驱动、工业开关电源、新能源电动车等多个领域取得突破。其功率器件产品因性能优越,逐渐获得市场认可,为国产半导体替代进口产品贡献了重要力量。

APM Hexseal公司的发展小趣事

随着公司的发展,APM Hexseal不断拓展其产品线,推出了包括断路器、密封开关、过滤器和密封件等一系列产品。这些产品都经过了严格的测试和认证,以确保其能够满足各种恶劣环境下的使用要求。其中,许多产品都获得了UL认证,进一步证明了其卓越的品质和可靠性。

Antex公司的发展小趣事

Antex公司始于1917年,当时它主要从事锻件的制造和销售。这一时期的Antex,凭借着对锻造技术的深入研究和不断创新,逐渐在电子行业中崭露头角。公司注重产品质量和客户需求,通过设计、锻造、机械加工、装配的一站式服务,赢得了客户的信赖。

华润华晶公司的发展小趣事

到了1965年,Antex公司迎来了一次重要的技术突破。公司成功研发出“环形件轧机”,这一创新技术不仅提高了生产效率,还大幅提升了产品的精度和稳定性。这一技术的成功应用,使得Antex的业务范围得到了进一步扩大,公司在电子行业中的地位也愈发稳固。

问答坊 | AI 解惑

想请教下,目前在学校、小区等用的多的摄像机牌子有哪些?

设计方案需要,可本人缺乏经验,想请教高人,目前在学校、小区等用的多的摄像机牌子有哪些?当然,经济实用的最好了。…

查看全部问答>

loadcell如何测量它的好坏?

怎么用电阻量啊?我单位的loadcell是梅特勒托利多的 和开创的,传感器传输的是数据TX+,TX-,RX+,RX-等。据说要通过测量频率来判断是否好的还是坏的。是吗?…

查看全部问答>

初学射频,请问基站的工作做啥?

今天下午闲来无事,在网上找了一些资料,贡献给坛子里的朋友。 想请教下:基站的工作,咱电子工程师都可以做啥? 请大家指点。…

查看全部问答>

专业方向求助中

我们现在大二,学校让选专业方向,有嵌入式和J2EE两种,选哪种会好点儿呢,大虾给点儿建议!谢谢…

查看全部问答>

CE60下的模拟器SDK的NK能不能直接用新版本去替换而用不着每次更新NK就得编译新SDK,卸载老SDK再重新装新SDK.这样用模拟器太不方便了.

CE60下的模拟器SDK的NK能不能直接用新版本去替换而用不着每次更新NK就得编译新SDK,卸载老SDK再重新装新SDK.这样用模拟器太不方便了.…

查看全部问答>

救助 用VHDL 设计一个指令寄存器 紧急 谢谢

救助 用VHDL  设计一个指令寄存器  紧急 谢谢  大家新年快乐哈…

查看全部问答>

写好嵌入式实时OS核,寻找合作开发产品

自己写了个嵌入式实时OS核,取名LOS,即Learn  Operate System。LOS是应用于工业控制领域和车载设备中的可剪裁的嵌入式实时操作系统。      LOS具有的功能目录如下:      1   任 ...…

查看全部问答>

wince windows mobile如何用c++实现通信,这个如何操作,包括与服务器的配置?

wince windows mobile如何用c++实现通信,这个如何操作,包括与服务器的配置?…

查看全部问答>

新人弱弱的问题:单片机仿真器与开发板的区别?

我是新来的,什么都不懂,请教下各位大虾单片机仿真器与开发板的区别,各有什么功能.谢谢!…

查看全部问答>

万年历、温度12864液晶显示

replyreload += \',\' + 1109623; 这个是实物效果哦! 这个是仿真图哦! 这是仿真显示部分。   电路包括温度检测、时钟控制、闹铃报警、液晶显示等、、、、 粗糙的焊接工艺,望大家见谅啊! 带纽扣电池,可以给时钟芯片 ...…

查看全部问答>