版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2 3 33、计算器总体设计框图 34、计算器详细设计过程 44.1输入模块 44.2键盘输入电路 54.3主程序模块 6 6 8 8 8 99.1主程序 99.2延时函数delay 9.3显示函数display 9.4键盘扫描函数 9.5预定义函数 3图1所示:键盘输入数据和运算符键盘输入数据和运算符8位数码管动态显示图3整体框图践设计的具体流程图如下图2所示:有按键按下键输入字符在数码管上显示键Y以作运算用死循环,等待键键之前输入的数据保存对保存的字符串数据转换成浮点数、整数进行的运算数据进行运算将运算结果转换成字符并在数码管上显示计算器设计原理图计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I情况下都不采用这种方式。为此,我们引入了矩阵键盘的应用,采用四条I/0线作为行线,四条I/O线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高图3键盘按键每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。线P1.4-P1.7为输入状态,从列线P1.一列线为高电平,则该列线上有键闭合。第二步,读入列线值,将该值输出到列线值,之后再读出列线值。综合一二两步的结果,最后键盘最后组合码值可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。6这次设计共涉及到了处理器、矩阵键盘、独立键盘、数码管显示等主要的模块,在软件主程序中,通过函数的调用实现相应的功能模块处理。通过num=KeyPro()函数的调用实现了将通过4*4矩阵行列反转扫描法得到的数据送入单片机,用于处理器进一步处理数据。因为该课程实践要求计数器具有2位小数的加减乘除运算,所以我们在读取矩阵键盘之后,使用语句sscanf(temp,"%f",&a),该语句的意思是将字符串数组temp中的字符以浮点数的形式输出到变量a,因此键盘输的的数据都被转换成了浮点数,所以可以很方便的实现带小数的加减乘除运算,运算所得结果也是浮点数的形式。在对输出结果输出到数码管的过程中,使用语句sprintf(temp,"%f",a);,该语句的意思是把浮点数变量a输出到字符串数组temp中,此时就可以调用显示函数对字符形式的在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。设计的中心思想是把一个复杂应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程和调试,然和调试,容易实现多个程序共存,但各个模块之间的连接有一定的难度。根据需要我们可以采用自上而下的程序设计方法,此方法先从主程序开始设计,然后再编制各从属程序和子程序,层层细化逐步求精,最终完成一个复杂程序的设计。这种方法比较符合人们的日常思维,缺点是一级的程序错误会对整个程序产生影显示输入值、单片机处理输入的数据、数码管动态显示计算结果。在整个的设计电路中,输入输出的数据均采用字符的形式(temp[i]=num+'0’(键盘输入)sprintf(temp,"%f",a)(数码管输出));使用在单片机进行数值运算的过程中,数据使用函数sscanf(temp,"%f",&a),即将数据缓冲区的字符型数据转换成浮点型并存到a变量所对应的地址,这样之后在对变量进行加减乘除运算。因为是浮点数运算,所以结果也是浮点数,在输出的时候,小数点也能够输出,从而免去在运算结果中对小数的定位工作。按照上面的思想,在进行小数运算时,输入输出小数并不能正常显示。后来通过和组员一起仔细研究,发现数码管段码中并没有小数点,所以我们在输入数据时将每一个输入的与小数点的ASCII码进行比较(if(num=='.’)),一旦条件成立,将小数点存入数据缓冲temp[8]数组中,同时也将小数点的ASCII码存入显示缓冲区TempData[8]中(定义小数点的段码0x98)。这样之后关于小数点显示问解决题。本次实践所设计的计算器的操作数为浮点型,当两个数参与运算之后,运算结果如果出现小数部分全为0的情况,根据实际应该只显示整数部分,但是实验结果是小数0全显示。但是由于时间关系我们没有调试成功。现提供一个思路:在显示小数点的时候,设置一个for循环,将小数点后的各位与'0'进行比较,如果该位等于0,设置一个新变量自加一次,之后依次比较,新变量记录小数点后0的个数。循环结束之后,将变量值与小数点后的总位数进行比较,如果相等说明小数点后全为0.之后设置一个for循环将小数点后的数据的ASCII全部赋值0。部分程序如下:}8经过近一周的努力,终于顺利完成了单片机课程实践-计数器的设计。刚开始,我们头绪不是很清楚,不知道从哪里入手,但通过老师的耐心指导并和同学认真研究设计课题,跑图书馆查资料、确定基本设计方案、对所用芯片功能进行整个设计的过程中遇到的问题主要有以下二点,第一:基础知识掌握的不牢固,主要表现在一些常用的电路的形式和功能不清楚,对书本上的内容理解不够透彻。第二:相关知识掌握的不够全面,缺少系统设计的经验。这次设计进一步端了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求,不能够一知半解,要力求明明白白。急于求成是不好的,我有所感受。如果省略了那些必要的步骤,急于求成,不仅会浪费时间,还会适得其反。我觉得动手之前,头脑里必须清楚该怎么做,这一点是很重要的。就目前来说,我的动手能力虽然差一点,但我想,通过我的不懈努力,在这方面,我总会得到[1]C语言程序设计教程/张宗杰主编.-北京:电子工业出版社,2013.8[2]增强型51单片机与仿真技术/肖金球,冯骥编著.-北京:清华大学出版社,9httpbaikebaiducomlinkurlUoSyMEKcbqW6SneiaFwvoWFZfPxWn7Cec29PIiSelKdcg40-svLlkQaDCYf {if(num=='+numnumnumnum//判断当前符号位并做相应处理//如果不是等号记下标志位breakdefault:break.进制是0x300~255这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5uS0~255这里使用晶振12M,精确延时请使用汇编 * *}__ {{}按键值处理函数,返回扫键值 case0xe7:return'/;break;//f#ifndef_____externunsignedcharTempData[8];//存储显示值的全局变量显示函数,用于动态扫描数码管如输入0表示从第一个显示。Num表示需要显示的位数,如需要显示99两位数值则该值输入2 #endif #ifndefREG52H__=0xD0;B=0x82;TCON=0x88;RCAP2H=0xCB;TH2=0xCD;CY=PSW^3;=PSW^2;PTF1TR1TR0ET2=IE^5;//8052EX0=IE^0;PX1=IP^2;PX0=IP^O;TXDSM0SM1SM2REN=SCON^6;=SCON^5;=SCON^4;EXEN2=T2CON^3;TR2=T2CON^2;__#endif#ifndefHH0~255这里使用晶振12M,精确延时请使用汇编 #endif #ifndefKEYBOARDH____/*------------------------------------------------------------------/*---------------------------------------------- #endif/*-------
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医体质辨识评估标准流程
- 野山鸡育雏期保温饮水管理规范
- 顾客进店接待引导服务规范流程
- 身体机能体能测试评估流程规范
- 蔬菜水肥一体化操作流程指引
- 肉牛快速育肥增重技术操作规程
- 青椒蓟马药剂防治农药使用规范
- 农产品品牌包装标识设计规范
- 经络艾灸安全操作规范
- 婴幼儿辅食添加顺序操作标准
- 2026年人教版初一政治(道德与法治)下学期期末考试试卷及答案(共四套)
- 2026眼镜镜片制造过程评估及镀膜工艺Plus偏光镜研发趋势说明
- 2026宁夏电投永利能源有限公司招聘21人考试备考题库及答案解析
- 广东省湛江航运集团有限公司招聘笔试题库2026
- 成都市青白江区区属国有企业2026年春季第一批次公开招聘工作人员(17人)考试参考题库及答案解析
- 一对一党员帮扶工作制度
- 山东博政投资发展(集团)有限公司招聘笔试题库2026
- 国铁集团考试题库及答案
- 《中华人民共和国传染病防治法》试题及答案
- (一模)东北三省三校2026年高三第一次联合模拟考试英语试卷(含答案)+听力音频+听力原文
- 圆抗滑桩施工方案(3篇)
评论
0/150
提交评论