- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《开放式单片机应用系统专题设计》 专题名称:4位数简易计算器 班级:光信1001班 姓名: 洪艺涵 学号:U201013225 指导教师:罗志祥 一 .任务要求 1. 可以进行简单的+-×÷四则运算。 2. 参与运算的数据可以是整数,也可以是小数 3. 有运算错误提示功能和输入限位功能(声光提示) 4. 其它指标可参考现有的计算器。 二、 功能特点与使用说明 功能特点:该运算器可以进行整数和小数的四则运算, 当运算错误时和输入位超标时会发生声光提示。 使用说明:键盘上0~9为数字按键,F1代表小数点,F2代表等号,F6,F5,F4,F3分别代表+,-,×,÷。有按键输入即可进行运算。 三、 方案设计 1,资源分配: 全局变量数组:reg1[4],reg2[4]分别保存第一次输入的数和第次次输入的数的位数字。 全局变量数组:dot1[4],dot2[4]分别保存第一次输入和第二次输入的数的小数点的位置。 如第一次输入的数为4.123,则reg1[4]={3,2,1,4},dot1[4]={0,0,0,1} 全局变量数组:dispreg[4],disdot[4]分别保存显示缓存中数的4位数字 全局变量Cap标记输入数的位数,全局变量keyval保存得到键值,全局变量operate为符号标志符,位变量ready,regindex,dots,getkey分别表示等号标识符,输入数顺序标识符,小数点标识符,按键输入标识符。 局部变量数组resnum[4],resdot[4]分别保存计算结果的4位数字和符号。 设计思路: 首先进行初始化后,设计读取键值函数,每读取一次键值,getkey置1,跳出读取键值函数,判断键值:如果是数字键并且是输入的第一个数,则转入storetoreg1函数保存输入的数字,并调用transtodisreg函数保存到显示缓存的数组中。并且是输入的第二个数,则转入storetoreg2函数保存输入的数字,并且ready置1,并调用transtodispreg函数保存到显示缓存的数组中.如果是符号键则转入inputoperate函数用operate保存下键值,并且将regindex置1.如果是等号则转入result函数处理,如果ready=0表示输入错误,ready=1则根据operate的值分别转到相应的加减乘除程序中执行。执行完运算后再转入breakresult函数求出计算结果的每一位和小数点的位置,并调用storetoreg函数保存到显示缓存的数组中。执行完后按下复位键,显示清零重新进行运算。 显示函数则在中断函数中执行,每隔一段时间定时扫描一次显示缓存的内容,然后显示。 分析与计算: 这个程序算法并不很复杂,主要在于要细分成很多子模块,将存数,显示,计算三大块分开处理,这样不仅思路清晰,而且便于调试。但是全局变量较多,所占内存较多,在调试的过程中会出现很多问题。 四.流程图 1.main函数 读取键值函数KEY_getvalue storetoreg1(keyval)键值储存函数,存储到reg[1] Storetoreg2(keyval)键值储存函数,存储到reg[2] 显示小数点缓存函数inputdot() 显示缓存函数transtodispreg(int *reg,int *dot) result()执行运算程序 小数点输入判断函数inputoperate(); add()加法函数 减法函数sub() 乘法函数mul() 除法函数div() 获取运算数的函数 getreg(int *reg,int *dot) breakresult(float result)求出运算结果各位的函数
您可能关注的文档
最近下载
- SL631-2012水利水电工程单元工程施工质量验收评定标准-土石方工程.docx VIP
- 一横老师感恩老师演讲稿 演讲稿 .docx VIP
- 三年级《万以内的加减法》单元测试卷.doc VIP
- 14.2三角形全等的判定(第4课时尺规作图) 课件 人教版(2024)八年级数学上册.pptx VIP
- 采矿方法课程设计.pdf VIP
- 《信访工作条例》150题及答案.docx VIP
- 重庆市直机关遴选公务员面试真题及解析.docx VIP
- 简约清新自我介绍PPT模板课件.pptx VIP
- 2025年玉溪市市直事业单位选调工作人员考试笔试试题(含答案).pdf VIP
- 淡雅朦胧述职报告PPT模板 .pptx VIP
文档评论(0)