1、 1 目 录 摘要.I 1 任务及要求 2 1.1 设计任务 . 2 1.2 设计要求 2 2 设计思想 . 2 2.1 硬件设计思想 . 2 2.2 软件设计思想 . 2 3 电路原理与电路图. 3 3.1 电路原理 3 3.2 电路原理图 3 4 流程图与算法描述. 3 4.1 流程图 3 4.2 算法描述 5 5 仿真结果 . 6 6 设计总结 12 参考文献 12 致谢12 附录14 2 1 任务及要求 1.1 设计任务 设计一个44的键盘的简易计算器和LED数码管的显示电路的Proteus仿真 及汇编程序设计。 1.2 设计要求 (1)、设计一个十六个按键的矩阵式计算器的模拟系统。
2、(2)、该系统具有加减乘除等功能。 (3)、用Proteus 7仿真工作的全过程。 (4)、掌握44矩阵式键盘程序识别原理,4 4矩阵式键盘按键的设计方法。 2 设计思想 2.1 硬件设计思想 用单片机的并行口P1连接4 4矩阵键盘, 并以单片机的P1.0P1.7各管脚作 输入线,以单片机的P2.0P2.7和P0.0P0.7各管脚作输出线,在数码管上显示 每个按键 “09”的序号。键盘中对应按键的序号排列如图()所示。数字0、 1、2、3接X0;4、5、6、7接X1;8、9、10、11接X2;12、13、14、15 接X3。即16个按钮空接,即十六个键一端低电平,另一端接高电平;当按下任意 一
3、个按钮时显示对应数字。该系统可以实现四则运算,当分别按下2个数字,再按 任意一个功能键即可实现相应的运算。 2.2 软件设计思想 整个程序可以实现十进制内的加减乘除,其中包含了延时子程序(去抖动),加 法、减法、除法、乘法等子程序。 (1 1)按键的识别)按键的识别 判断键盘上有无按键闭合,先判断行线X0X3输出低电平“0”,然后判断 列线Y0Y3的状态,若为全1,即列线全为高电平,说明键盘上没有按键闭合, 若Y0Y3不全为1,说明有键按下。 (2 2)消抖处理)消抖处理 当判断有键按下后,需要进行消除抖动,这里使用了软件方法即程序中采用时间 延时0.5秒,待信号稳定后再判别键盘的状态,若有键
4、按下,则再进行键号的计算。 3 (3 3)判别键号)判别键号 先判断行线X0X3是否有输出低电平“0”,若有键按下,则相应的列线也 为低电平“0”,例如行线X1输出为低电平“0”,且列线Y2为低电平,即X1与 Y2相交的键被按下,进行键号=行号*4+列号 的计算。 (4)显示结果)显示结果 显示器接高电频,左边显示器接P0,右边显示接P2,当按下一个数字时右显示 器显示相应的数字,按第2个数字时左边显示器显示相应数字;当进行除法运算时, 除的的数据要看接口P0.7接高还是低电频,低电频则结果为几点几,为高电频则几 十几。其它运算直接看数据即可。 3 电路原理与电路图 3.1 电路原理 单片机最小系统。一个AT89C51单片机做为控制电路,运用其P0、P1口来 控制数码管和键盘,通过P0和P2口来显示键值(09)。通过P1口来控制键盘。 3.2 电路原理图 图 3.1 电路原理图 4 流程图与算法描述 4.1 流程图 4 主函数流程图:主函数流程图: 图 4.1 主函数流程图 开始 P1 口高四位置一 扫描键盘 按下键? 消除抖动 计算键入的