




免费预览已结束,剩余19页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XX 大学信息科学技术学院 嵌入式系统 大作业设计报告 项目名称项目名称 基于基于 WinceWince 的的 C C 应用程序开发 简易计算器 应用程序开发 简易计算器 姓名 姓名 学号 学号 班级 班级 日期 日期 20112011 年年 6 6 月月 2828 日日 目录目录 1设计任务设计任务 2 1 1序言 2 1 2WINCE系统概述 2 1 3C 语言简单介绍介绍 2 2设计原理设计原理 3 2 1硬件设备准备 3 2 2所需软件 3 3设计方案设计方案 3 3 1计算器程序编写过程 3 3 2硬件平台搭建 7 4系统测试与性能分析系统测试与性能分析 12 4 1程序初始状态 12 4 2对数字按钮测试 12 4 3对运算符测试 13 4 4对等于符号的测试 13 4 5对清空按钮测试 14 4 6对返回按钮测试 14 5结论结论 14 6附录附录 15 6 1参考资料 15 6 2元件清单 15 6 3遇到的问题与解决方法 16 6 4程序清单 16 6 5课程体会 22 1 设计任务设计任务 1 1 序言 众所周知 随着社会的发展 科学的进步 人们的生活水平在逐步提高 尤其是微电 子技术的发展 犹如雨后春笋般的变化 电子产品的更新速度快就不足惊奇 计算器在人们的日常中是比较的常见的电子产品之一 可是它也在发展之中 以后必 将出现功能更加强大的计算器 而制作计算器在编程中 可以算是一门基础的课程 对于 刚接触嵌入式系统的我们 在 Win CE 系统的环境下设计一款简易的计算器 可以说是一门 入门的课程 也对我们日后深入嵌入式系统学习打下坚实基础 本次的大作业的任务是利用 Visual Studio 2005 编写一个可运行在 Windows CE 操作 系统下的 C 应用程序 该应用程序是简易计算器 能对数字进行加 减 乘 除等常见运 算 1 2 Wince 系统概述 Windows CE 是微软公司嵌入式 移动计算平台的基础 它是一个开放的 可升级的 32 位嵌入式操作系统 是基于掌上型电脑类的电子设备操作系统 它是精简的 Windows 95 Windows CE 的图形用户界面相当出色 Win CE 作业系统是 Windows 家族中最新的成员 专门设计给掌上型电脑 HPCs 所 使用的电脑环境 这样的作业系统可使完整的可携式技术与现有的 Windows 桌面技术整合 工作 Windows CE 被设计成针对小型设备 它是典型的拥有有限内存的无磁盘系统 的通 用操作系统 Windows CE 可以通过设计一层位于内核和硬件之间代码来用设定硬件平台 这即是众所周知的硬件抽象层 HAL 在以前解释时 这被称为 OEMC 原始设备制造 适应 层 即 OAL 内核压缩层 即 KAL 以免与微软的 Windows NT 操作系统 HAL 混 淆 1 3 C 语言简单介绍介绍 C 是微软推出的一种基于 NET 框架的 面向对象的高级编程语言 C 由 C 语言和 C 派生而来 继承了其强大的性能 同时又以 NET 框架类库作为基础 拥有类似 Visual Basic 的快速开发能力 ECMA 标准列出的 C 设计目标 C 旨在设计成为一种 简单 现代 通用 以及面 向对象的程序设计语言 此种语言的实现 应提供对于以下软件工程要素的支持 强类型 检查 数组维度检查 未初始化的变量引用检测 自动垃圾收集 Garbage Collection 指 一种自动内存释放技术 软件必须做到强大 持久 并具有较强的编程生产力 2 设计原理设计原理 2 1 硬件设备准备 我们需要准备一台实验箱 并把实验箱与 PC 机进行连接 包括仿真线 把老师为我 们准备的 EBOOT nb0 文件烧录进实验箱的固件 先通过 PC 机建立与实验箱的超级终端 再连接下载老师制作好的才做系统镜像 NK bin 于是实验箱便能启动 Windows Embedded CE 6 0 操作系统 2 2 所需软件 我们需要利用 Visual Studio 2005 集成开发环境 利用其 GUI 式编程环境创建窗体控件 等 使用面向对象的编程原理 再对每一模块进行添加代码 以实现相应需要的功能 最 后完成 C 应用程序的设计 并在 Visual Studio 2005 中的 WinCE 仿真模拟环境下进行本地 调试 3 设计方案设计方案 3 1 计算器程序编写过程 1 首先 使用 C 语言在 Windows 环境下设计一款简易的计算器 具体实现不作详细 介绍 结果如下图所示 2 启动 Microsoft Visual Studio 2005 在 Visual Studio IDE 中单击 File New Projects 菜单 在弹出的对话框左边的 Project types 工程类型 中展开 Other Languages Visual C Smart Device 选择 Windows CE 5 0 在对话框右边的 Templates 模板 中选择 Device Application 在对话框的下面的 Name 保持默认名字以 及工程所保存的位置 G qian ru shi 单击 OK 按钮 3 在窗体上单击右键 选择 Properties 菜单 在 Text 属性项输入 简单计算器简单计算器 4 在窗体上添加 TextBox 控件 和 Button 控件 5 把 Button 控件的 Text 属性按照计算器按钮名称修改 6 分别双击计算器中的各个按钮 再填入代码 具体代码在附录里的程序清单中 7 保存所有修改的内容 然后在 Visual Studio 菜单中选择 Build TextEdit 或选择 Build Solution 菜单 编译测试工程 并在模拟仿真条件下测试 8 最后编译测试工程 并在模拟仿真条件下测试 3 2 硬件平台搭建 1 首先 用网线把 PC 机和实验箱连接 并把 PC 机的 IP 地址修改为 192 168 0 1 使 PC 机 IP 地址与实验箱位于同一网段 再在 PC 机上新建超级终端 测试 PC 机与实验箱是 否可以连通 超级终端的配置如下图 2 连接后出现如图所示菜单 证明 EBOOT nb0 已成功烧入实验箱 3 启动 Visual Studio 2005 打开老师给我们的操作系统镜像 NK bin 如下图所示 4 回到超级终端的界面 在菜单选项中选取 D 项 即按键盘上的 D 键 5 在菜单栏 Target connectivity Option 中打开映象的下载配置选项 6 在 Download 与 Transport 选项都选择 Ethernet 在 Debugger 中选择 None 7 点击 Download 选择右边的 Settings 让 PB 来检测设备名 点击 Active Devices 中的设备名就可以把设备名添加到 Device Boot Name 中去 然后点击 OK 再点 Apply 按钮 然后按 Close 按钮关闭 Target Device connectivity Options 窗口 8 从 Visual Studio2005 的 Target Attach Device 菜单中 连接目标平台 9 在弹出的下载窗口就可以看到 NK 下载的进度 10 显示连接成功后 重启实验箱 则会启动 Windows Embedded CE 6 0 操作系统 界面如下图所示 11 此时在实验箱 Win CE 6 0 建立与 PC 机类似的超级终端 配置如图所示 12 用 USB 先连接 PC 机与实验箱 PC 机上会出现同步提示 如图选择 否 下一 步 13 连通 ActiveSync 后的将会出现如下图所示对话框 14 连接并建立同步后 可以 Debug 程序了 如图选择并完成 15 程序便会在实验箱的 WinCE 环境下启动 运行结果如下图所示 4 系统测试与性能分析系统测试与性能分析 在程序的编写过程中我们虽然遇到了一些问题 但是经过努力也已经解决 下面我们 来对程序进行简单的测试 首先在 wince 下运行程序 接着进行一下测试 4 1 程序初始状态 程序刚开始运行的时候的状态如图所示 4 2 对数字按钮测试 当单击按钮 0 1 2 3 4 5 6 7 8 9 时 textbox 控件的 text 属性就会相应的变成对应 数字 因为调用了 display int i 函数 Display int i 函数代码如下 private void display int i if point dotnum if i 0 this txt result Text this txt result Text 0 if i 0 this txt result Text Convert ToString Convert ToDouble this txt result Text i Math Pow 10 dotnum else this txt result Text this txt result Text Substring 0 this txt result Text Length 1 this txt result Text Convert ToString Convert ToDouble this txt result Text 10 i this txt result Text this txt result Text 4 3 对运算符测试 单击运算符之后就会调用 operat string sign 函数 在这个函数中会有一个变量保 存所按的运算符 输出该变量就可以知道按的运算符 Operat string sign 代码如下 private void operat string sign dblNumA double Parse this txt result Text point false this txt result Text 0 oper sign takeEqual true 4 4 对等于符号的测试 当按下等于号时 就会判断运算符号是什么 接着就运算 并把结果返回显示在 textbox 中 如果有非法操作就会有提示如 MessageBox Show 除数为零 非法操作 通过测试得知实际的结果和编程所要预期的结果一致 4 5 对清空按钮测试 当按下清空按钮时 textbox 的 text 属性值就会清空为 0 再把其他一切其他相关 的属性值改为默认值 this txt result Text 0 oper point false dotnum 0 dblNumA 0 takeEqual true 通过实际的测试可知结果和编程所要预期的结果一致 4 6 对返回按钮测试 当按下返回按钮时 就会截取 textbox 的 text 属性的前 n 1 位 当 text 为空时 text 的属性值就会变为 0 this txt result Text this txt result Text Substring 0 this txt result Text Length 1 if this txt result Text this txt result Text 0 通过实际的测试可知结果和编程所要预期的结果一致 5 结论结论 这一次大作业电子琴的制作非常成功 每一个模块分工制作清晰 代码流畅经过 在 Visual Studio 2005 环境中不断地测试 查错并纠错 简易计算器最终没有出现错误 我们 把 PC 机与实验箱连接后 并调试号 然后在 Visual Studio 2005 中启动 Debug 按钮 选择 如上所示的相应设置 C 应用程序顺利运行在 Windows CE 系统上 程序运行结果的结果 如下图所示 这一次简易计算机的制作 通过 C 语言的实现可以说都是非常基础的东西 本来计算 器制作的实验在各种语言编程中也是属于基础的范畴 同时非常经典 但当联系起嵌入式 系统的学习 这次的制作又增加了难度 其实看起来并不难 但真正要理解理论上的东西 或者说底层代码 还是有很大困难的 在今后的学习还要进行更多的尝试 这种工科学科 或者中想嵌入式系统实践性很强的课 必须要通过手把手的实验 才能把道理弄懂 或许 有时候有些地方弄不懂 但是最后能把结果做出来了 才是硬道理 6 附录附录 6 1 参考资料 1 新编 Visual C 2005 从入门到精通 龙马工作室 人民邮政出版社 2 嵌入式系统设计与开发 马文华主编 科学出版社 3 网上许多关于 C 语言和 WinCE 系统介绍的相关文章 6 2 元件清单 1 高级 ARM 教学实验系统 XSBASE270 EDR V4 0 设备编号 100915A001062 2 PC 机一台 联想启天 M6200 3 不同种类的数据线 6 3 遇到的问题与解决方法 1 对 Win CE 嵌入式系统了解不深入 实验刚开始不熟手 并不清楚如何把 C 编程代码移植到实验箱的环境中 不过在参考老师提供的实验报告和实验手 册 再在老师的指导下 一步一步耐心地走下去 最终成功把程序移植到了 实验箱中 2 Win CE 编程环境下的 textBox 控件的内容只能左靠 找不到属性是能设置成 右靠 所以有别于普通的计算器的界面 暂时无法解决 不过基本功能是不 受影响 结果能正常计算出来并显示 6 4 程序清单 using System using System Collections Generic using System ComponentModel using System Data using System Drawing using System Text using System Windows Forms namespace Calculator public partial class Form1 Form public Form1 InitializeComponent 定义操作数A double dblNumA 0 定义操作数B double dblNumB 0 定义操作符 static string oper 定义操作数是否有小数点 static bool point false 记录小数点后数字的个数 int dotnum 0 用于保存最初的操作数 以便进行连续敲击等号运算 double dblNnm 0 用于记录十分连续敲击等号按钮 bool takeEqual true 显示函数 private void display int i if point dotnum if i 0 this txt result Text this txt result Text 0 if i 0 this txt result Text Convert ToString Convert ToDouble this txt result Text i Math Pow 10 dotnum else this txt result Text this txt result Text Substring 0 this txt result Text Length 1 this txt result Text Convert ToString Convert ToDouble this txt result Text 10 i this txt result Text this txt result Text 0按钮的响应函数 private void button 0 Click object sender EventArgs e display 0 1按钮的响应函数 private void button 1 Click object sender EventArgs e display 1 2按钮的响应函数 private void button 2 Click object sender EventArgs e display 2 3按钮的响应函数 private void button 3 Click object sender EventArgs e display 3 4按钮的响应函数 private void button 4 Click object sender EventArgs e display 4 5按钮的响应函数 private void button 5 Click object sender EventArgs e display 5 6按钮的响应函数 private void button 6 Click object sender EventArgs e display 6 7按钮的响应函数 private void button 7 Click object sender EventArgs e display 7 8按钮的响应函数 private void button 8 Click object sender EventArgs e display 8 9按钮的响应函数 private void button 9 Click object sender EventArgs e display 9 符号函数 private void operat string sign dblNumA double Parse this txt result Text point false this txt result Text 0 oper sign takeEqual true 按钮的响应函数 private void button div Click object sender EventArgs e operat 按钮的响应函数 private void button mul Click object sender EventArgs e operat 按钮的响应函数 private void button sub Click object sender EventArgs e operat 按钮的响应函数 private void button add Click object sender EventArgs e operat 按钮的响应函数 private void button mod Click object sender EventArgs e operat 按钮的响应函数 private void button sign Click object sender EventArgs e this txt result Text Convert ToString double Parse this txt result Text 1 开平方 sqrt按钮的响应函数 private void button sqrt Click object sender EventArgs e if double Parse this txt result Text Convert ToInt64 double Parse this txt result Text point this txt result Text this txt result Text Substring 0 this txt result Text Length point false else this txt result Text this txt result Text this txt result Text this txt result Text Substring 0 this txt result Text Length 1 this txt result Text Convert ToString Math Sqrt Double Parse this txt result Text takeEqual false 等号按钮的响应函数 private void button equ Click object sender EventArgs e if takeEqual dblNnm dblNumB double Parse this txt result Text if oper this txt result Text Convert ToString dblNumA dblNumB if oper this txt result Text Convert ToString dblNumA dblNumB if oper this txt result Text Convert ToString dblNumA dblNumB if oper if dblNumB 0 MessageBox Show 除数为零 非法操作 else this txt result Text Convert ToString dblNumA dblNumB if oper this txt result Text Convert ToString dblNumA dblNumB else if double Parse this txt result Text Convert ToInt64 double Parse this txt result Text else WorkLikeFront takeEqual false 清除按钮的响应函数 private void button c Click object sender EventArgs e this txt result Text 0 oper point false dotnum 0 dblNumA 0 takeEqual true 退格按钮的响应函数 private void button backspace Click object sender EventArgs e this txt result Text this txt result Text Substring 0 this txt result Text Length 1 否则继续截取 if this txt result Text this txt result Text 0 1 X按钮的响应函数 private void button rec Click object sender EventArgs e this txt result Text this txt result Text Substring 0 this txt result Text Length this txt result Text Convert ToString 1 double Parse this txt result Text 小数点按钮的响应函数 private void button dot Click object sender EventArgs e this txt result Text this txt result Text Substring 0 this txt result Text Length 1 this txt result Text this txt result Text point true 在连续敲击 号时用同样的操作数进行上个运算符的运算 private void WorkLikeFront double dblNumB2 double Parse this txt result Text if oper this txt result Text Convert ToString dblNumB2 dblNnm if oper this txt result Text Convert ToString dblNumB2 dblNnm if oper this txt result
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025抵押房产贷款合同样本
- 2025船舶货物运输合同
- 监控工程的技术方案(3篇)
- 国外工程招标方案注意(3篇)
- 2025股权赠与合同范本
- 2025办公家具采购合同范本全文
- 2025标准设备租赁合同格式参考
- 2025年电器生产试题及答案
- 2025年赣榆电工考试试卷及答案
- 2025年工业产品购销合同范本
- 2025至2030中国HPV相关疾病行业项目调研及市场前景预测评估报告
- 2025版全新离婚协议书:财产分割、子女抚养及离婚后财产保全合同范本
- 石油钻井知识课件
- 永辉超市快消培训
- “学回信精神·助改革发展”专题调研报告
- 2025年医学基础知识题库及答案
- (2025秋新版)苏教版三年级数学上册全册教案
- 职业院校实习生考核评价标准
- 3000储罐预制安装施工方案
- 食品工程原理(课堂)课件
- 五年级上册数学课件-《练习一》北师大版 (共10张PPT)
评论
0/150
提交评论