MCU综合课程设计---基于单片机的汇编语言计算器设计11.doc.doc

MCU综合课程设计---基于单片机的汇编语言计算器设计11.doc.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCU综合课程设计---基于单片机的汇编语言计算器设计11.doc

实 验 报 告 课程名称: MCU(微控制器)综合课程设计 简易计算器设计(汇编语言) 院 (系): 专 业: 姓 名: 学 号: 实 验 室: 实验组别: 同组人员: 无 实验时间:2012年 5月 日 评定成绩: 审阅教师: 目 录 实验目的和要求………………………………………第3页 实验原理………………………………………………第3页 实验方案与实验步骤…………………………………第3-4页 实验设备与器材配置…………………………………第5页 实验记录………………………………………………第2页 实验总结………………………………………………第2页 思考题或讨论题………………………………………第2页 八.附上源代码………………………………………………第2页 实验目的和要求 用EEEC-030B型单片机,在单片机/ISP综合设计实验箱平台上用汇编语言设计简单的科学计算器实现两位数(0--99)的加、减、乘、除。 由于用汇编语言实现,为了简单起见,操作数都必须是正整数,且在做减法的时候结果不能是负数。 计算器的输入键盘是实验平台上的4*4矩阵键盘,输出显示用到了8个8段数码管和4个LED。 LED7—LED4分别点亮时,分别表示+ 、- 、* 、/ 、。8个数码管从右到左依次是:第一二两个数码管显示第一个操作数,第三四两个数码管显示第二个操作数,最后四个数码管显示运算结果。对于除法,第 五六两个数码管显示商,第七八两个数码管显示余数。 实验原理 本次综合课程设计主要包括两大部分,一是键盘扫描部分,二是数据显示部分。两个部分的相关操作都在以前的实验中有所设计。 键盘扫描部分主要是给行线写0,判断是否有键按下,若有,就查表计算键值并将相应的键码存入规定的内存。程序在没有进行计算和显示时要一直循环查询是否有键被按下。其次是做一个按键的“弹起”功能,即当键按下时只判断有输入,当放手时再计算键值。这一点非常重要,后面还会有比较详细的说明。 显示部分分为LED显示和8段数码管显示。LED的显示相对来说很简单,只要对相应的地址输入0或者1就能实现点亮或者关灭LED。8段数码关的显示则分为位控和段控,这在前面的实验中已经有了详细的说明,我也有了比较深刻的认识,这里就不再敖述。 要实现两位数的加减法可以说比较简单,计算机将输入的十进制数不经转换直接当做十六进制数来进行加减法,再通过对结果进行DA指令调整,即可以得出正确的十进制结果。 要实现两位数的乘除法就相对来说很难了。这里的难主要体现在如何用汇编语言将十六进制的数转化为十进制的数(用DA指令时肯定不行的)。因为在进行乘除法时,计算机将输入的十进制数转化为十六进制数进行乘除法的运算,所以讲十六进制的结果(有可能是两个字节)转换为十进制就显得非常难。我也是花了很多时间才搞好的。 实验方案与实验步骤(最好绘制程序流程图) 本次综合课程设计其实是在平时四次实验的基础上有了一个比较大的难度提高。但是基础还是在四次实验上。 首先我是利用四次实验的基本知识,对大体的程序框架进行了设计。当然会有各种各样的问题,至于各种问题的调试解决,我会在代码中详细说明。 这次综合课程设计真的费了好大的功夫才基本搞定,前前后后三周时间。好多次的单步调试,才有了个正确的结果,是在不容易啊。做之前觉得可能有点难,做的过程中觉得确实有点难,当做完了,又觉得其实也就那么回事儿。 想想做个加减乘除的计算器都花了那么多功夫,那平时用的卡西欧士怎么整出来的,才卖10多块钱。 实验流程图如下: 开始 DISPLAYA函数: 开始 显示操作数、计算结果 键盘扫描 DISPLAY1函数: 键盘扫描 显示当前键盘的输入 是否有键被按下 DISPLAY2函数: 是否有键被按下 清零显示,即所有数码 计算键值 Y 管都显示0 计算键值 键键码放入A中 键键码放入A中 是否为 = 是否为 = 调用DISPLAY函数 Y 调用DISPLAY函数 是否为清0 N 是否为清0 调用DISPLAY2函数 Y 调用DISPLAY2函数 调用DISPLAY1函数 N 调用DISPLAY1函数 将A中的值存入指定内存 将A中的值存入指定内存

文档评论(0)

allap + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档