基于89c51的计算器设计内容摘要:

和显示模式设置 I/D:光标移 动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效。 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8位总线 N:低电平时为单 行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10 的点阵字符。 指令 7:字符发生器 RAM 地址设置。 指令 8: DDRAM 地址设置。 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令 10:写数据。 指令 11:读数据 单片机系统课程设计 15 写时序: 读时序 : 程序下载电路 串口 ISP 下载线, ISP(insystem programming)在线系统编程,一种无需将存储芯片(如 EPROM)从嵌入式设备上取出就能对其进行编程的过程,缩略为 ISP。 ISP(insystem programming)在线系统编程 ,一种无需将 存储芯片 (如EPROM)从嵌入式设备上取出就能对其进行编程的过程,缩略为 ISP。 在系统编程需要在目标板上有额外的电路完成编程任务。 其优点是,即使器件焊接在电路板上,仍可对其(重新)进行编程。 在系统可编程是 Flash 存储器的固有特性(通 单片机系统课程设计 16 常无需额外的电路), Flash 几乎都采用这种方式编程。 ISP 下载线就是一根用来在线下载程序的线,类似 USB 线,但不一样。 串口 ISP 下载线。 可以用 MAX232 芯片进行搭建。 需要 104 电容等基本原件。 相关原件及电路图都可在网上找到。 值得注意的是 104 电容应选择电解电容而不是瓷片电容。 后者不能很好传输数据,而且容易失败。 建议使用电解电容。 +5I S P 下载口1P 1. 535R S T7P 1. 79P 1. 6108642I S P 4 系统软件设计 系统软件设 计主要包括显示子程序,键盘子程序,输入处理程序。 主程序软件设计 主程序的流程图如图所示。 单片机系统课程设计 17 初 始 化是 否 按 键 按 下开 始输 入 处 理1602显 示NY结 束 图 主流程图 主程序 构成无限循环,主要完成单片机初始化, 之后是程序进入一个死循环,从而不断地检测是否有按键按下,如果有按键按下则进入按键处理,在按键处理函数中有显示函数来进行数值显示。 单片机系统课程设计 18 输 入 处 理按 键 是 0 ~ 9且 w = 1N u m 1 采 集按 键 是 “ = ”且 w = 2调 用 初 始 化 程序 清 屏N u m 2 采 集 并 记录 运 算 符按 键 是 否 为 0 ~ 9按 键 为 “ = ”调 用 计 算 函 数并 显 示调 用 计 算 函 数并 显 示记 录 运 算 符f h , 以 这 次 的结 果 为 N u mNYNYNYNY 图 输入处理流程图 处理函数式主程序中的关键环节主要进行一些输入处理和显示,硬件图中共有按键 16个分别是: 7 8 9 + 4 5 6 1 2 3 * 0 = / % 单片机系统课程设计 19 输入识别部分可以分为三类, 数值输入( 0~9), 等于( =) 运算符号输入( +、 、 /、 *、 %)。 对于数值输入,可以先判断是数值 1还是数值 2输入,通过标记符 W来判断,如果 W=1,则是数值 1 输入,再进行输入类型判断,如果是数值输入值 num1=num1*10+key,如果是等于输入,而且还是在对数值 1进行处理则进行初始化,如果是符号输入,则将符号位 W=2,进入数值 2输入处理,并记录符号,在对数值 2 进行处理是同数值 1一样只有当输入是‘ =’号是不再是初始化而是进行运算数值 1和数值 2处理并输出结果。 在输出结果后如果想利用前一次运算结果进行计算,则直接输入符号,不用进行 num1 输入,这时系统会自动将将上一次运算结果 的值赋给数值 1,然后将标记 W=2,进行数值 2输入。 键盘程序设计 在操作按键时,无论是按下还是松开,触点在闭合和断开时均会产生抖动,此时逻辑电平是不稳的,如果得不到正确处理,可能会引起单片机对按键命令的错误执行。 解决这个问题的简单方法是利用软件延时。 在单片机处理按键操作后都延时 5ms,如果确定是按键后再延时 20ms,这样基本可以避免键盘的抖动。 然后由单片机进行键码分析,并执行相应的命令,显示并且返回。 下图 是键盘程序设计流程图。 单片机系统课程设计 20 开 始有 按 键 闭合。 调 用 延 时 子 程序 20ms有 按 键 闭 合键 码 分 析执 行 对 应 功 能并 显 示结 束YYNN 图 键盘程序流程图 按键 设置采用了扫描法,要判断键盘中有无键按下时将全部行线 Y0Y3 置低电平,列线置高电平,然后检测列线的状态。 只要有一列的电平为低, 则表示键盘中有键被按下,而 且闭合的键位于低电平线与 4 根行线相交叉的 4 个按键之中。 若所有列线均为高电平,则键盘中无键按下。 判断闭合键所在的位置时,在确认有键按下后,即可进入确定具体闭合键的过程。 其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。 在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。 若某列为低,则该列线与置为低电平的行线 交叉处的按键就是闭合的按键。 例如将单片机的 P1 口用作键盘 I/O 口,键盘的列线接到 P1 口的低 4 位,键盘的 单片机系统课程设计 21 行线接到 P1 口的高 4 位。 列线 分别接有 4 个上拉电阻到正电源 +5V,并把列线 设置为输入线,行线 设置为输出线。 4 根行线和 4根列线形成 16 个相交点,这些交点即为键盘按键。 在单片机应用系统设计中,系统有两性能很大一部分取决于键盘处理程序。 在按 键时按得快了没有反应,按慢了一连响应几次,总给人迟钝感,不能使人满意。 在该设计中用以下思路设计的键处理程序。 首 先要判断有没有键值,若有键值,再判断是否为首次按下: ( 1)若首次按下:判断是否与上次按下的键值相同 :是否已经按下了 300ms。 1).若已经按下 300ms 则将此键做为连键处理。 2).若不是连键则判断:是否按下 20ms。 1.若确认按下 20ms,得到有效键值等待弹起 2.若不是按下 20ms 直接结束处理( ret)。 ( ret)。 ( 2)若不 是首次按下:将键值暂存起来,标志置位结束处理。 如果无键值,则判断是否有键值已被确认 ( 1)若有键已被确认:判断按键是否首次抬起 :判断抬起延时时间( 20ms)是否到达 1.若延时到则将标志处理结束处理。 2.若延时未到直接结束处理( ret)。 :直接结束处理( ret)。 ( 2)若没有键被确认:直接结束处理( ret)。 5 系统仿真与调试 仿真部分采用 proteus 软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。 首先打开 proteus 软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择已经编译好的 *.hex 文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。 以下是本次实验通过 proteus 的结果的截图: 单片机系统课程设计 22 图 proteus 仿真结果 1 图 proteus 仿真结果 2 通过 proteus 软件仿真,已经能够满足本次课程设计任务书中的要求,下面通过实物的单片机开发板来进行调试,通过 usb 连接电脑拷入程序,运行,也能 单片机系统课程设计 23 够 完成任务书的要求,结果如下: 图 单片机开发板调试结果 1 单片机系统课程设计 24 图 单片机开发板调试结果图 2 单片机系统课程设计 25 图 单片机开发板调试结果 2 6 总结 课程设计是培养学生运用所学的专业知识,发现,提出,分析和解决实际问题,锻炼实际动手能力的重要环节,是对学生实际工作能力的具体训练和考察,随着科学技术日新月异的发展,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说遍布我们生活之中。 这次设计进一步端正了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求。 急于求成是不好的,通过此 次毕业设计我深有体会。 如果省略了 单片机系统课程设计 26 那些必要的步骤,急于求成,不仅会浪费时间,还会适得其反。 我觉得动手之前,应该有清楚的步骤,这一步是很重要的。 就目前来说,我的动手能力虽然还有差距,但我知道,通过我的不懈努力,在动手方面,我会得到提高。 这一点,我坚信。 在此次的毕业设计中我最大的体会就是进一步认识到了理论联系实践的重要性。 一份耕耘,一份收获。 通过这段时间的设计,让我明白科学的思维方法和学习方法是多么重要,只有这样才能够有很高的效率,才能够让自己的工作更完美。 总而言之,此次毕业设计让我学到了好多平时在课堂上学不到的东西,增加了我的知识运用能力,增强我的实际操作能力。 谢谢老师给我们提供这么好的机会,为我们之后走向社会奠定了一个好的基础。 参考文献 [1] 杨家成. 单片机 原理与应用及 C51 程序设计 [M]. 北京 :清华大学 出版社 ,2020 [2] 夏路易 石宗义 . Protel 99se 电路原理图与电路板设计教程 [M]. 北京:北京希望电子 出版社, 2020 [6] 阎石 .数字电子技术基础 [M].北京 :高等教育出版社 ,2020. 附录 1 系统原理图 单片机系统课程设计 27 1 2 MC R Y S T A LC13 0 p FC23 0 p FR11 0 KV C CS1C31 0 p FVSS1VDD2VEE3RS4RW5E6D07D18D29D310D411D512D613D714L C D 1 6 0 2L C D 1 6 0 2G N D1 0 kP O T 2S07S18S29S31S44S55S66S7+S81S92S 1 03S 1 1*S 1 20S 1 3=S 1 4%S 1 5/P 1 .0P 1 .1P 1 .2P 1 .3R21KR31KR41KR51KR61KR71KR81KR91K+5P 1 .78P 1 .67P 1 .56P 1 .45P 1 .34P 1 .2。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。