Proteus+keil仿真软件在单片机矩阵键盘教学中的应用

2014-11-18 04:45马华玲
科教导刊 2014年30期

摘 要 单片机结合电子自动设计软件proteus+keil仿真软件的教学模式,使得教学效果相比纯理论教学提高很多,文章使用了proteus+keil实现单片机软件和硬件相结合的虚拟教学实验平台,并以4X4矩阵键盘为例,给出了proteus+keil仿真软件在单片机矩阵键盘中的应用。

关键词 proteus+keil 单片机教学 矩阵键盘

中图分类号:G424 文献标识码:A

0 引言

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Keil是一款单片机开发系统平台,支持C语言、汇编、PLM、以及混合编程。

利用Proteus+keil 仿真软件来辅助单片机的教学具备以下意义:

其一,在教学中老师可以直观展示各种硬件电路的设计,同时也可以向学生展示软件的编写过程和调试过程,使学生容易掌握单片机学习的各个过程。

其二,Proteus+keil仿真软件可使学生有更多的动手机会,包括硬件设计和软件调试,易于修改程序或者硬件电路的各种错误,在实际电路设计前使用仿真软件能有效缩短了单片机电路设计的时间,提高了电子电路设计的效率。

其三,利用Proteus+keil的仿真可以实现实践和理论相结合的一体化教学的效果,可以提高教学质量,对教学效果产生积极的影响。

本文将以单片机接口电路中的重要内容矩阵键盘的扫描为例,利用Proteus+keil仿真软件实现4X4矩阵键盘软硬件的三种扫描方式,并在仿真过程中遇到的问题给出相应的解决方案。

1 单片机矩阵键盘的扫描方式

单片机连接矩阵键盘是为了节省单片机的I/O口,常用的有4X4,8X8等矩阵键盘,按键较多的一般要加扩展芯片,但按键使用较少时则直接连接到单片机的I/O口上,以节省硬件成本,下面以单片机直接连接4X4矩阵键盘为例,按下的按键返回值直接显示在共阴极数码管上,介绍Proteus软件仿真电路的三种扫描方式。

1.1 直接赋值扫描

4X4矩阵键盘在Proteus仿真时常用到直接赋值扫描,这种键盘扫描方式软件和硬件都简单,本文所举例子如图1所示的硬件电路的连接方法是将键盘的4行连接到单片机P1口的低4位,将4列连接到P1口的高4位,编写程序时先将行控制的4位置低电平,4列置高电平,如若有按键按下,则4列的高电平中必然有一列拉低为低电平,此时编写程序存高4位的列值,将低4位的行值与0相与,以便后面返回键值。然后将4列置低电平,4行置高电平,如若有键按下,则其中一行必定为低电平,此时编程存低4位的行值,将高4位的列值与0相与,最后将两次存下的行列值相或后作为键值返回,本例中如果0号键按下则返回0x11,1号键按下返回0x21,其他按键按下的返回值以此类推。其软件流程图如图2所示。

1.2 高电平扫描

矩阵键盘的另一种扫描方式为高电平扫描,即将键盘的列接低电平,如图3所示,只需在键盘的行使用高电平一行一行扫描即可,如果有键按下则该列会被拉至高电平,图3的硬件电路扫描初值赋值0x01,扫描到P13口后又从P10口开始扫描即可。但在Proteus里连接此电路时要增加三极管,主要是因为如果不加入三极管,则有按键按下该列的电平将达不到高电平状态,影响键盘返回值,所以加入NPN型的开关三极管即可解决该问题,利用NPN三极管的基极为高电平时三极管导通,基极为低电平时三极管截止的原理。实际的硬件电路可以不必加入三极管,其软件流程图如图5所示。

1.3 低电平扫描

在矩阵键盘扫描中常用的第3种硬件连接方式为低电平扫描,如图4所示,这种扫描方式是将按键的一端连接高电平,这样只需在用低电平扫描4行,本例所示扫描初值为0xfe,扫描到P13口后又从P10口开始扫描即可。如果有键按下则相应的列将为低电平,但在Proteus里由于软件本身的原因,按键按下后检测到的列值并无法被拉至低电平,相反而是相应的行被拉为高电平,而实际的硬件电路是将列值拉至低电平。如果想要和实际硬件电路保持一致,在本例中,在列连接按键处加入了反相器,这样就可以在按键按下时正常地将列拉至低电平,而检测到的列值为反相后的高电平,以本例所示0号键返回的键值为0x1e,1号键返回值为0x2e,其余按键值类推即可。低电平扫描软件流程图如图5所示。

2 结论

本文以Proteus+keil 仿真软件辅助单片机教学,并以单片机接口电路中最重要的矩阵键盘为例,列举了4X4矩阵键盘的三种硬件连接电路和软件扫描方式,并对高、低电平扫描方式在Proteus仿真软件教学中出现的问题进行分析和列举,并给出了解决方案,使得仿真教学和实际电路的教学保持一致,因此合理利用电子仿真技术,能有效解决在单片机教学中实践和理论相结合的问题。

项目编号:武昌工学院校级教研项目(2013JY33)

参考文献

[1] 马华玲,Proteus+keil在单片机教学中的应用[J].高等函授学报,2012(4):26-27.

[2] 杜力,肖学玲. Proteus仿真矩阵键盘时遇到的问题和解决方案[J].科技经济市场,2011(2):10-11.

[3] 马忠梅,籍顺心,马凯,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2007:182-192

[4] 苏变玲,朱志平,袁卫.基于Proteus的单片机仿真教学研究[J].实验室研究与探索,2009(4):75-78.

[5] 王玮,曹会宁.Proteus仿真软件在单片机一体化教学中的应用[J].机电产品开发与创新,2009(5):207-208.