一个简易计算器的实现
Author: bripengandre
相关源码见链接:http://download.youkuaiyun.com/source/982727
摘要:嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本文为嵌入式系统课程设计的报告,文中给出了一个简易计算器的设计与实现过程。本文先通过需求分析,介绍该计算器要实现的功能;接着通过概要设计,给出了该计算器的整体框架;然后通过详细设计及实现,讲述该计算器的具体实现;最后通过测试结果及分析,给出了对该计算器的评价及改进意见。
关键词:嵌入式;计算器;栈
本课程设计的项目名称是“一个简易计算器的实现”。本项目要实现的计算器的名称为“计算精灵(Calculator Daemon)”。本文的后续部分将使用“计算精灵”来称呼本项目。
计算精灵的功能框图如 图 1 所示,从左到右,对应计算精灵从输入到输出所要具备的功能。
图 1 计算精灵的功能框图
输入模块要有的功能是:采用键盘中断的方式来读取输入,能修改计算表达式(如支持后退功能)。
处理模块是计算精灵的核心,所支持的功能有:能够检查计算表达式的有效性(如输入不合法,能及时给出提示),支持加减乘除四则运算,操作式支持多位数和浮点数,同时预留扩充接口(以后可能将增添支持其它操作符、支持十六进制计算、支持函数、支持表达式记忆、支持保存计算结果等功能)。
输出模块的功能简单,只需支持串口输出和lcd(液晶显示屏)显示即可。但为了使输出美观,对串口输出和lcd的显示还要做一定的美工设计。
在需求分析的基础上,得到如 图 2 所示的系统框图。
图 2 计算精灵的系统框图
系统分为键盘输入模块、计算处理模块、串口及LCD输出模块,各模块分别提供需求分析中提到的输入模块、处理模块和输出模块的功能。
图 2 中的箭头代表数据的流动方向。系统的IPO表(输入、处理和输出表)如 表 1 所示。
编号 |
输入数据 |
处理 |
输出数据 |
备注 |
1 |
用户操作键盘 |
键盘输入模块读取键值,形成计算式 |
计算式 |
无 |
2 |
计算式 |
计算处理模块按流程处理计算式,如果中途判断出计算式非法,则及时给出提示 |
计算结果或非法提示 |
计算结果和非法提示都看成是处理结果 |
3 |
计算处理结果 |
串口和LCD根据结果得出要显示的内容 |
处理结果通过串口输出,并显示在LCD上 |
无 |