- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式--计算器--实验报告.doc
计算器实验(1)首先构造一个运算符栈,此运算符在栈内遵循越往栈顶优先级越高的原则。 (2)读入一个中缀表示算术表达式(3)从左至右扫描该算术表达式,从第一个字符开始判断,如果该字符是数字,则分析到该数字串的结束并将该数字串直接输出。 (4)如果不是数字,该字符则是运算符,此时需比较优先关系。 :
运算符栈顶将该字符与运算符栈顶的运算符的优先关系相比较。
该字符优先关系高于运算符栈顶的运算符,则将该运算符入栈。
若该字符优先关系高于运算符栈顶的运算符,则将栈顶的运算符从栈中弹出,直栈顶运算符的优先级低于当前运算符,将该字符入栈。
运算符栈重复上述操作
五、程序实现主要函数功能说明
void Main_Task(void *Id):主任务函数;
功能:创建消息结构;
清除屏幕;
调用创建按钮控件函数;
等待消息;
判断消息;
调用消息处理函数;
void myButtonall():创建按钮控件函数
功能:调用相关函数;
SetRect();
CreateButton();
DrawButton(b19);
创建按钮;
(3)void onKey(unsigned int nkey, int fnkey):键盘消息响应函数
功能:判断按键;
调用相关按键响应函数;
(4)void myontouch(int xxx,int yyy):触摸屏消息响应函数
功能:识别触摸区域;
调用响应触摸键响应函数;
(5)void str2repol():字符表达式转逆波兰表达式函数
功能:判别首位字符是否为-号,是则将字符串后移一位,首位置0;
判别有无非法字符.有则标志位err=1;
将输入字符串转成逆波兰表达式;
(6)void calculate():计算函数
功能:判别标志位err。为1则输出“Syntax Error!!”并退出,否则继续-
判别逆波兰表达式内容;
判别小数点-对数字做相应加权
判别运算符-做相应运算
调用double型转字符串函数;
调用字符串结果显示函数。
(7)char *doub2str(double d, char *str):double型转字符串函数
功能:判别d是否为负数。是则字符串首位置-;d取反,继续-
判别d小数部分是否为零。是则整数转字符串,否则再继续—小数转字符串
将double型数字转换成字符串类型;
存储字符串并返回。
(8)void lcddisplay(char *str,int xx,int yy):字符串显示函数
功能:将字符串str[]显示在LCD的指定坐标(xx,yy)。
void redraw(char key):重画按钮函数
功能:响应相应函数;
重画相应按钮;
延时100ms后恢复原按钮。
char zb2key(int x,int y):坐标转按键函数
功能:将触摸点坐标(x,y)转换成相应按键字符。
void dcr(char key):退格、清屏、读文件函数
功能:响应退格键,屏幕显示去除最后一位字符,当前输入后前一次输入置\0;
响应清屏键,清楚显示区域内容;
响应读文件,调用读文件函数。
void readfile():读文件函数
功能:读取指定目录文本文件;
显示文本内容;
计算内容(表达式)并显示。
void clc():清屏函数
功能:清除显示区域内容。
六、完整【main.c】程序
#include ../ucos-ii/includes.h /* uC/OS interface */
#include ../ucos-ii/add/osaddition.h
#include ../ucos-ii/add/ustring.h
#include ../inc/drivers.h
#includemath.h
#include ../inc/sys/lib.h
#include ../src/gui/gui.h
#include string.h
#include stdio.h
char TextFilename[]=/sys/ucos/fj/2.txt; //自定义声明
//文件test: 1+2+3+4+5+6+7+8+9=
//文件1: 1+2+3+4+5+6+7+8+9=
//文件2: 0.7+5*((1+2)
您可能关注的文档
- 吴中区12-13学年第一学期初二物理第一次调研.doc
- 员工流失率高怎麼办.pdf
- 咨询公司组织职能管理办法.doc
- 商洛学院2017年艺术类招生简章.doc
- 四珍项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案.docx
- 四轮子驱动拖拉机项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案.docx
- 四轮驱动分动箱项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案.docx
- 四轮驱动底盘台架项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案.docx
- 四轮驱动拖拉机项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案.docx
- 四轮驱动沙滩车项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案.docx
文档评论(0)