已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
答辩记录开始时间结束时间考题:答辩结果:主要特点或功能1十进制复合运算、连续运算2 退格,清屏、重启3 触屏、键盘混合操作4 综合考虑了各种非正常输入报错并重启2011年 6 月1 设计要求:LCD的第一行显示运算式,第二行显示运算结果。比如要计算机12+34,在键盘上按下相应键后,LCD的第一行显示“12+34”,按下“=”号后,LCD的第二行显示“=46”。其他功能参考普通计算器。扩展功能:负数、小数运算、复合运算。连续运算、2进制、8进制运算。亦可直接在LCD上显示一个计算器,用触摸屏操作。2 设计思路在LCD上显示一个与键盘功能相同的计算器,可实现用键盘、触摸屏混合操作。1、在LCD显示屏上按下某一个符号或者在键盘上某一个按键符号时,将相应字符存入数组中并显示在LCD上。2 按下“=”就运算处理并在第二行显示计算结果。3、按下“C”就进行退格操作。4、按下“=”后显示结果,并且能连续运算,其中,将操作数和操作码全部显示在第一行,第二行显示当前计算结果。5、当出现连续按两个操作符、按等号前一个字符为操作符、最开始按下的不是操作数等非法输入时,自动在LCD屏幕上报错并实现清屏重启计算器。3 设计步骤1、 添加基本计算器的+、-、*、/ 四则运算和退格功能;2、 在1的基础上实现复合运算和连续操作;3、 在LCD上通过调用函数在下方画出计算器的按键图画并实现与键盘同等的功能;4、综合调试并进行优化。4 程序流程(含流程图及详细步骤解释)初始化否有按键?否输入表达式是清屏重启是退格操作非法输入计算结果显示连续运算?清屏完成运算否是是退格键?“=”?LCD显示计算器是是否详细步骤解释程序运行时即进行初始化,在LCD显示屏上显示计算器界面。接着判断是否有键盘按键按下或者有触屏,没有就继续扫描判断,有则将按下的键所对应的字符存入数组savedata。在此之中,也在判断键入的字符是否是退格键,如果是则将上一个字符清除掉。当检测到字符“=”时,将savedata数组中所存储的字符分离,其中,数值存在操作数数组op1中,操作符存在操作符数组op2中,然后进行运算。运算开始时,先扫描op2数组,当检测到操作符则将op1数组中对应操作符前后的两个操作数进行运算(先乘除后加减),结果放在两个操作数的前一个的位置,将op1和op2数组向前移动一个位置以覆盖已经运算过的操作数和操作符。当继续进行连续运算时,将字符继续存到savedata数组后面,否则清除op1的值,将字符存到savedata数组第一个开始的位置。程序中考虑了各种非法输入的情况:当连续输入两个操作符时、当按“=”时检测到前一个字符是操作符时、当程序第一个字符不是操作数时,都报错,自动清屏并重启计算器。按照实际中计算器的原则,当按下“=”后,退格键不能清除,比如1+2=3;不能将“2”、“+”、“1”退格。如果是连续运算,继续按下“-3+8/2”时,退格键有效,能清“-3+8/2”中的字符。清除后继续连续运算。5 操作步骤及方法下载完程序后:1、普通计算:例如计算123+456,直接在显示屏上连续触发“123+456”,然后触“=” 就可以在第二行显示=579;2、连续运算。例如先计算123+456,结果为579,此时再按下“+” “1” 先在第一行显示123+456+1,在第二行就会显示=580,再按下“-” “9” ,第一行显示123+456+1-9,在第二行就会显示=571,依次类推。3、当输入的字符是非法输入时,在LCD第三行显示 illeagle enter!然后自动清屏重启计算器。6 设计过程遇到的问题、原因及解决方法日期时间问题和难点描述问题的原因及解决思路和方法2011-6-15 显示不了负的结果。难点在于要先对负值进行处理原因:没有判断最综计算的结果是否出现负值。解决方法:先判读结果的正负,将-或0存入结果数组最后一个位置,如果是负值则将负值取反,然后在将结果从结果数组第一个位置开始存入结果的各个位的,再把结果数组在LCD上逐个显示出来2011-6-16计算结果要显示在屏幕上时数值前总是有0原因:问题在1的原因上,正负号放在数组最后一个位置,计算结果的各个位放数组的第一个开始的位置,数组中间肯定会有位置是默认存入0的。解决方法:重写显示函数ili9320_Text(),在将结果数组的内容输出到LCD上时,判读数值前是否为0,是则跳过不显示。2011-6-17计算结果如果 等于零,那总是显示不出来,其他计算结果正确.原因:问题在2的原因上,当结果为正时,我默认符合是0(就算我将正号标志符改成空格或其他也是一样),如果结果为0,则数组中全为0,没有所谓的非0数值,显示结果肯定是全部跳过不显示。解决方法:在每次计算得到结果后,再增加一个变量midval用以保存结果.当要显示结果时,先通过判断idval是否等于0,若是则只调用ili9320_PutChar()显示符号0.否则rsl数组中的各个数输出,其中数值前面的0不显. 2011-6-18当出现输入是非法输入时,报错了,但无法实现重启。原因:本来是想在清屏后将所有变量自动恢复原始值的,但发现要写很长程序,而且效果不佳,总是出现错误。解决原因:直接中断,重新调用主函数,实现重启计算器。2011-6-192011-6-20显示屏幕上每次计算后不会自动清屏,而且第一次计算完毕后,下一次计算时,输入的数的横坐标一直在加,当接触屏幕下方或者右边缘时无法再显示输入的数了。原因:ili9320_PutChar()显示函数中行、列坐标变量使用不合理。解决办法:将所有输入的操作数和操作符只显示在第一行,第二行只显示当前计算结果。我在这说没用,实际中才看到效果,而且最终只用到两行,下面的空白为以后的触屏预留空间。两全其美。2011-6-21用LCD触屏做结果显示出错。要不触屏没效果,要不就是就算我没按屏幕,LCD第一行连续输出一些我不希望出现的乱码。原因:触屏没效果,而且当我调试单步走时发现获取触屏点的X、Y坐标时总是出现坐标几千的情况,但屏幕行、列最多几百。这是不可能的。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- YY/T 1948-2026α-氰基丙烯酸酯类医用粘合剂
- 管理商务促销培训
- 上海科教版品社四上《主题1 无声的朋友》课件3
- 小学信息技术《网上寻宝》课件
- 人教版新课标三上《槐乡的孩子》课件3
- 人教新课标六上《青山不老》课件
- 北师大版数学五上《分数与除法》课件1
- 高职高考语文文言文阅读专题之文言实词
- 小学信息技术课程《学会设置语言》课件
- 外墙保温工程施工组织设计编制规范
- 2026北京市朝阳区卫生健康委员会所属事业单位第二批招聘241人笔试备考题库及答案解析
- 2026年内蒙古中考语文试卷及答案
- T/CATCM 033-2025中成药临床应用规范
- 成人术中外周静脉输液技术操作及管理指南
- 2026年艺术史考试指南:中外艺术史重难点及全题型预测试题
- 2026粉末冶金开发高速钢刀片脱模剂适用性分析报告
- 水泥毯的施工方案(3篇)
- 中医执业医师考试《针灸学》巩固题及答案
- 2026年辽宁省公安厅招聘警务辅助人员笔试试题(含答案)
- 24J113-1 内隔墙-轻质条板(一)
- 2025年国家烟草专卖局、中国烟草总公司招录笔试题库附答案解析
评论
0/150
提交评论