ARM计算器实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广东科学技术职业学院广州学院
实训报告
题目:简易计算器
专业:计算机应用技术班级:
学生姓名:学号:
20 11 年 6 月
一、设计任务与要求
实训的任务是基于ARM平台下进行简易电子计算器的设计。
实训设计要求是实现十以内数的加法,实现简单的加法运算,且具有清零功能和简单的报错功能。
二、总体方案与说明
本系统功能是实现个位数的加法运算,即在键盘上按下一个数字键,在数码管上显示其对应的数值,按下+,再按下一个数字键,在数码管上显示其数值,按下=,则调用软件的运算模块,进行运算,并回显结果,输出到数码管显示器上。
硬件电路应分为两个模块,一是键盘接口电路,(如下所示)二是LED 显示模块。
LED显示包含2对8段数码管(LED_CS2 、LED_CS3),以及流水灯LED_CS4。
4*4小键盘:
1 2 3 +
4 5 6 -
7 8 9 *
C 0 = ∕
三、电路原理图
CPU电路图
使用旧版实验箱,其键盘电路图如下所示:
直入键盘电路图
矩阵键盘电路图
LED_CS2电路图
LED_CS3电路图
四、软件主要模块流程图主函数
五、问题分析与解决方案
遇到的问题:
1、如何根据按键值显示相应的0到9。
2、在做运算编写时,烧写进去后,不能够正确显示对应的按键值。
3、按键对应的GPIO口的设置。
4、连续运算功能与显示的设置。
5、多位数值的显示设置。
解决方案:
1、根据所用的开发板的按键的键值,将其存放在一个数组key_code中,并且将对应键值的符号值存放在另一个数组key_val中,其对应映射显而易见。
2、先用常数代入display()函数中,看能否正常显示数值。
如果能的话,确定display()函数没有出错。
然后,在直入和矩阵键盘判断处,将display()函数中得到的变量的值用常量来替换,在烧写进去,查看是否有错误,这样逐步排错。
3、首先由键盘的硬件电路图查找硬件对应按键部位的输入输出,再根据输入输出在270手册里在GPIO单元根据其是输入输出功能查找相应的GPIO口,找到口后,即可查看相应口的具体设置。
4、连续运算功能,一种是连续按下“=”键,程序会自动执行“上次的结果加、减、乘、除第二个数”这种功能;或者是运算完一次,就继续按运算符号和需要进行运算的数,最后显示运算结果。
使用变量,每次运算之后,将结果赋给第一个数和第二个数,这样,每次执行的都会是第一个数的结果与第二个数的运算,从而实现连续运算的功能。
5、显示多位数值,是要根据数值的位数进行计算判断,编写if语句判断输入数值的位数,如果是一位,则直接显示数值;如果是两位数,则个位由数值余十得到,十位由数值除十得到,并对应相应的位显示;如果是三位数,则个位由数值余十得到,十位由数值除十再余十得到,百位数则由数值除一百显示在LED_CS2中;如果是四位数值,其余位方法不变,千位由数值除一千再余十得到。
六、实验体会
通过简易计算器的实训项目,对于arm的学习更有兴趣,理论的东西得到了实际的应用,自己也认识到自身的不足。
实训的要求已经实现,通过查表、询问、操作等多种渠道完成。
对于今后arm专业工作也有了一个初步的了解,虽然现在有很多不足,但自己也正朝这个方向不断的努力,相信自己能够做的更好!。