1、单片机课程设计报告 单片机课程设计报告 计算器计算器 学 院 信息工程学院 专 业 信息工程 (电子信息工程方向) 年级班别 2007 级 1 班 学 号 学生姓名 指导教师 2010 年 7 月 主要特点或功能 1 实现加减乘除四则运算功能 2 LCD 显示运算式和运算结果 3 退格功能 答辩记录 开始时间 结束时间 考题: 答辩结果: 单片机课程设计报告 第 1 页 共 3 页 1 设计要求:设计要求: 实现普通十进制计算器的功能,按键采用实验箱上的 44 键盘,显示采用实验箱上 162 点阵式字符 LCD,键盘符号定义如下: - 右下角的“-”表示退格,按一次删除 LCD 的最后一个数字
2、或已经输入的符号。 LCD 的第一行显示运算式,第二行显示运算结果。比如要计算 12+34,在键盘上按下相应 键后,LCD 的第一行显示“12+34” ,按下“=”号后,LCD 的第二行显示“=46” 。 其他功能同普通计算器相同(只实现加减乘除四则运算功能) 。 2 设计思路设计思路 所设计的计算器总共由 4 部分组成 1) 从键盘读取键值; 2) 按键对应在 LCD 上的显示功能; 3) 退格键的操作; 4) 对算式的运算功能。 3 设计步骤设计步骤 1) 用 CodeWarrior IDE 软件,新建一个基于 MC9S12XE100 的工程; 2) 添加头文件“keyboard.h“,“
3、ili9320.h“,“ili9320_font.h“和“myhead.h“,其中“keyboard.h“ 在此前的实验中已经编写好并成功使用,“myhead.h“对相关变量和类型进行了声明。 3) 编写 main 函数,实现计算器功能; 4) 编译,调试,完成课程设计。 单片机课程设计报告 第 2 页 共 3 页 4 程程序流程(含流程图及详细步骤解释)序流程(含流程图及详细步骤解释) 5 操作方法操作方法 功能定义: 按键名 19 A B C D E F 对应功能 19 + - * / = - 1) 仿真开始,系统初始化,可在键盘输入想要计算的式子,形式为 a+b; 2) 键入“=”号即可
4、显示运算结果。 3) 再按下任意键清零,开始新的计算。 参数初始化 有没有按键? 键入等号? Y N 显示算式 开始 数据存储 键值识别 运算并显示结果 Y N 单片机课程设计报告 第 3 页 共 3 页 6 设计过程遇到的问题设计过程遇到的问题以及解决思路及方法以及解决思路及方法 首先是用函数 ili9320_PutChar(x,y,key,0x0000,0xFFFF);显示不出想要的字符 解: 原来用函数 ili9320_PutChar(x,y,key,0x0000,0xFFFF);显示的是 key 的 ASCII 码, 要显示 key 值的符号就要加上0 ,所以要用函数 ili9320_PutChar(x,y,key+0,0x0000,0xFFFF)实现。 关于 LCD 显示问题:开始时我们输进去的数都只显示最后的一个数 解:我们每执行一次 ili9320_PutChar(x,y,key+0,0