方法是:依次将列线置0,此时再将行线依次置1,看行线是否被拉为低电平。若该行被拉为低电平,则该列线与置为高电平的行线交叉处的按键就是闭合的按键。
键盘和单片机的连接图
4.3软件设计
4.3.1软件开发环境介绍 4.3.2主程序设计及流程图
4.3.3中断程序设计及流程图
4.3.4软件模块1设计
判断过程:
当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED指示希望抵达的楼层),若键入新的希望停的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停,对其他情况则先停原希望停的楼层,然后按运行键后继续进行。以下解释所用单元的含义:
FLAG:上升下降标志。FLAG=1上升,FLAG=0下降。 NOW:电梯当前值。 FIR:第一次按键值(即第一次按下希望到的楼层)。 SEC:第二次按键值(即第二次按下希望到的楼层)。
4.3.5软件模块2设计
LED的控制只需送数据LED即可,但键盘扫描的值为16进制,必须转化成01H,02H,04H,08H,10H,20H,40H,80H来模拟1-8层的亮灯情况。这可采用查表来实现。 键盘扫描子程序:
所谓按查询方式工作的子程序,就是当引用该子程序的时候若用户按下了键盘上的按键就会获得一个“有效键值”,否则将获得一个“无效键值”,对于M行N列的键盘来说,可认为的规定有效键值的取值范围为0~M*N-1,无效键值的数值为M*N。 此处给出该实验用到的键值及定义:
1-8:对应的电梯楼层键。按下表示该楼层有请求。
0:运行键。电梯按下需要到达的楼层显示对应的LED,需按下此键才能运行到相应的楼层。 9-F:可做为扩展功能的实现。
5总结
本次实习我们选择了模拟日常生活中常见的电梯运行过程。 这次实习让我对程序的设计、调试有了更深刻的认识。尤其是写单片机这类的与硬件相关的程序。在调试的时候会有不少意想不到的结果。这要求除了对程序充分了解,还要对硬件的特性,电路的连接也深刻认识。
关于程序,总结如下:必须养成在写之前仔细分析需求、要求,画出流程图,先明确各个模块的作用。最后分块细化,从底向上设计的习惯。否则很容易出现程序写了一半发现理解出错,功能达不到的情况。还有程序注释必须及时,不能等到写完了再注释,否则可能之后连自己也看不懂程序。及时的修改记录也是必要的。
对于硬件、电路:要熟练掌握如何用c、汇编语言操作芯片。要掌握常用芯片的用法、特性,至少要熟悉其datasheet,需要使用时通过查阅手册,能快速、熟练的使用该芯片。
参考文献
[1] 屈辉立,陈可明,石武信.JSP网站编程教程[M].第1版, 北京:北京希望电子出版社,2005 [2] 白勇.用B/S模式构建在线考试系统[J],重庆电力高等专科学校学报,2003,10(4): 100~130. [3] Jiang Guo,Yuehong Liao,Behzad Parviz.A Survey of J2EE Application Performance Management Systems[J],Proceedings of the IEEE International Conference on Web Services (ICWS'04),2004.6(5):17~32.
[4] VB数据库管理范例:http://www.vbnew.net/down/2j.asp?id=14&cid=23[EB/OL]
参考文献要求:
1.标题:黑体,小三,1.5倍行距,居中;
2.内容:小四号,中文宋体,西文Times New Roman);
3.出版物、正文期刊、外文期刊、网站的参考文献格式分别参照[1][2][3][4]。