单片机课程设计报告计算器4_第1页
单片机课程设计报告计算器4_第2页
单片机课程设计报告计算器4_第3页
单片机课程设计报告计算器4_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计报告计算器学 院 信息工程学院 专 业 信息工程 (电子信息工程方向) 年级班别 2007级1班 学 号 3107002948 学生姓名 指导教师 答辩记录开始时间结束时间考题:答辩结果:主要特点或功能1实现加减乘除四则运算功能2lcd显示运算式和运算结果3退格功能2010年 7 月1 设计要求:实现普通十进制计算器的功能,按键采用实验箱上的44键盘,显示采用实验箱上162点阵式字符lcd,键盘符号定义如下:1234567890+-*/=-右下角的“-”表示退格,按一次删除lcd的最后一个数字或已经输入的符号。lcd的第一行显示运算式,第二行显示运算结果。比如要计算12+34,在

2、键盘上按下相应键后,lcd的第一行显示“12+34”,按下“=”号后,lcd的第二行显示“=46”。其他功能同普通计算器相同(只实现加减乘除四则运算功能)。2 设计思路所设计的计算器总共由4部分组成1) 从键盘读取键值;2) 按键对应在lcd上的显示功能;3) 退格键的操作;4) 对算式的运算功能。3 设计步骤1) 用codewarrior ide软件,新建一个基于mc9s12xe100的工程;2) 添加头文件keyboard.h,ili9320.h,ili9320_font.h和myhead.h,其中keyboard.h在此前的实验中已经编写好并成功使用,myhead.h对相关变量和类型进行

3、了声明。3) 编写main函数,实现计算器功能;4) 编译,调试,完成课程设计。4 程序流程(含流程图及详细步骤解释)参数初始化有没有按键?键入等号?yn显示算式开始数据存储键值识别运算并显示结果yn5 操作方法功能定义:按键名19abcdef对应功能19+-*/=-1) 仿真开始,系统初始化,可在键盘输入想要计算的式子,形式为a+b;2) 键入“=”号即可显示运算结果。3) 再按下任意键清零,开始新的计算。6 设计过程遇到的问题以及解决思路及方法l 首先是用函数ili9320_putchar(x,y,key,0x0000,0xffff);显示不出想要的字符解:原来用函数ili9320_put

4、char(x,y,key,0x0000,0xffff);显示的是key的ascii码,要显示key值的符号就要加上0,所以要用函数ili9320_putchar(x,y,key+0,0x0000,0xffff)实现。l 关于lcd显示问题:开始时我们输进去的数都只显示最后的一个数解:我们每执行一次ili9320_putchar(x,y,key+0,0x0000,0xffff)后,将lcd横坐标往后移一个字符的位置(约8像素),即添加x=x+8语句。这样便可解决问题。l 计算1+1的时候结果“=00002”,前面多了一堆没用的“0”解:通过设置一个符号标志位(如sign)跟一个指针*str来实现,一开始置sign=1,当检测到*str!=0&sign=1时开始打印显示字符,并置sign=0跳出循环检测;此时第一位即为有效位。l 当输入第一个数小于第二个数也就是结果小于0时,负号无法显示;解:用指针*str从高位开始检测,当检测到第一位有效位为“-”号时,输出“-”并通过一个变量j自加,开始检测后面的字符;l 第二次运算之后等于号显示有多个解:通过清零函数(如setzero)来实现,运算结束都把nu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论