单片机(飞思卡尔)课程设计报告_飞思卡尔单片机选型
单片机(飞思卡尔)课程设计报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“飞思卡尔单片机选型”。
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显示屏上显示计算器界面。接着判断是否有键盘按键按下或者有触屏,没有就继续扫描判断,有则将按下的键所对应的字符存入数组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设计过程遇到的问题、原因及解决方法