简易计算器设计课程设计.doc_第1页
简易计算器设计课程设计.doc_第2页
简易计算器设计课程设计.doc_第3页
简易计算器设计课程设计.doc_第4页
简易计算器设计课程设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

接口技术课程设计 题 目: 简易计算器设计 院 (系): 信息科学与工程学院 专业班级: 计算机科学与技术 学生姓名: 学 号: 指导教师: 20XX年 X 月 X 日至20XX 年 X 月 X 日X大学X分校制 接口技术 课程设计任务书一、设计题目简易计算器设计二、设计主要内容(1) 广泛查找文献资料,认真研究,反复论证,精心设计技术方案。严格遵守各项纪律,勤奋学习,认真思考,敢于挑战困难并勇于创新。(2) 深入了解UP-TECH S2410嵌入式开发平台的基本结构、原理及使用方法,掌握在其上进行嵌入式开发的方法和步骤,熟悉相关工具的使用方法,最终利用此平台独立构造一个具备一定实用功能的ARM9(S3C2410)控制系统,在此系统基础上实现一些基本的控制功能。(3) 本设计是基于ARM9处理器来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除基本四则运算,并在LCD上显示相应的结果。(4) 在执行过程中,开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。(5) 错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示overflow;当除数为0时,计算器会在LCD上提示error。(6) 分析结果,独立撰写设计总结报告陈述自己的观点,格式应严格遵守学校规范。内容尽量翔实,其中必须要有自己独立的见解和认识。三、原始资料硬件资源:博创UP-TECH S2410 DVP嵌入式开发平台、PC机、可调电源、数字示波器。文件:实验室元器件清单、课程设计管理方法、设计任务书、实验指导书。四、要求的设计成果(1) 要求基于UP-TECH S2410 DVP嵌入式开发平台设计一款具备简单数学运算功能的计算器,可以完成一般计算器的键盘输入,进行加、减、乘、除等基本四则运算,并在LCD上显示相应的结果。同时具备基本的错误检测及报错功能。(2) 撰写课程设计说明书,要求简洁、通顺,格式规范,设计方案正确,实现技术路线明确,论述内容完整、清楚、规范,数据、资料真实可靠,软件程序运行良好。(3) 要求提供完整的源代码并确保其原创性。五、进程安排(1)第 1 天:任务布置及相关知识讲解(2)第2-3天:资料查阅与方案制定(3)第4-8天:硬件设计、程序编制与调试阶段(4)第 9 天:撰写设计报告(5)第 10 天:答辩与考核阶段六、主要参考资料1 博创科技. 2410DVP用户手册. 配套实验指导手册,2010.2 博创科技. 经典平台硬件说明书. 配套实验指导手册,2010.3 周立功. ARM微控制器基础与实战(第2版).北京航天航空大学出版社,2005.4 周立功. C程序设计高级教程. 北京航天航空大学出版社,2013指导教师(签名): 20 年 月 日目 录1 简易计算器 11.1课设目的11.2设计内容11.3设备及工具12设计工作原理22.1开发平台22.2 LCD液晶屏22.3 功能模块图32.4 工作流程图42.5 设计步骤42.5.1外部接口连接42.5.2设置超级终端52.5.3 H-JTAG 使用方法 52.6 软件设计 72.7调试过程遇到的问题与解决方案183. 实验结果截图194. 总结211 简易计算器1.1课设目的设计一个能够实现简单的加减乘除运算的简易计算器,主要是键盘的输入和数据的显示,利用实验箱上的键盘进行数据和运算符号的输入,LED数码管实现数据和结果的显示,通过本设计的分析,主要实现一下功能:(1)实验箱上数字键盘的数据输入,运算符的输入(2)LED动态显示输入的数据和计算的结果1.2设计内容广泛查找文献资料,认真研究,反复论证,精心设计技术方案。严格遵守各项纪律,勤奋学习,认真思考,敢于挑战困难并勇于创新。深入了解UP-TECH S2410嵌入式开发平台的基本结构、原理及使用方法,掌握在其上进行嵌入式开发的方法和步骤,熟悉相关工具的使用方法,最终利用此平台独立构造一个具备一定实用功能的ARM9(S3C2410)控制系统,在此系统基础上实现一些基本的控制功能。本设计是基于ARM9处理器来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除基本四则运算,并在LCD上显示相应的结果。在执行过程中,开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示overflow;当除数为0时,计算器会在LCD上提示error。分析结果,独立撰写设计总结报告陈述自己的观点,格式应严格遵守学校规范。内容尽量翔实,其中必须要有自己独立的见解和认识。1.3设备及工具硬件:ARM嵌入式开发平台、H-JTAG仿真器、PC机Pentium100以上、示波器。软件:PC机操作系统Win2000或WinXP、ARM集成开发环境、仿真器驱动程序、超级终端通讯程序2 设计工作原理2.1 开发平台(1)深入了解UP-TECH S2410嵌入式开发平台的基本结构、原理及使用方法,掌握在其上进行嵌入式开发的方法和步骤,熟悉相关工具的使用方法,最终利用此平台独立构造一个具备一定实用功能的ARM9(S3C2410)控制系统,在此系统基础上实现一些基本的控制功能。(2)博创经典UP-TECH S2410 DVP简介:博创经典UP-TECH S2410 DVP 是博创科技推出的国内最强配置的嵌入式开发平台,可以满足不同院校的ARM9嵌入式教学要求。该平台可与博创PXA270核心板兼容,是目前国内性价比最高的一款实验平台。它采用Samsung S3C2410 为微处理器,并采用专业稳定的CPU 内核电源芯片和复位芯片来保证系统运行时的稳定性。博创经典UP-TECH S2410 DVP 的PCB 采用专业等长布线,保证关键信号线的信号完整性,生产采用机器贴片,批量生产。(3)博创经典UP-TECH S2410 DVP图如图3-1。图2-1开发平台视图2.2 LCD液晶屏液晶得名于其物理特性:它的分子晶体,以液态存在而非固态。这些晶体分子的液体特性使得它具有两种非常有用的特点:1、如果让电流通过液晶层,这些分子将会以电流的流向方向进行排列,如果没有电流,它们将会彼此平行排列。2、如果提供了带有细小沟槽的外层,将液晶倒入后,液晶分子会顺着槽排列,并且内层与外层以同样的方式进行排列。液晶的第三个特性是很神奇的:液晶层能使光线发生扭转。液晶层表现的有些类似偏光器,这就意味着它能够过滤除了那些从特殊方向射入之外的所有光线。此外,如果液晶层发生了扭转,光线将会随之扭转,以不同的方向从另外一个面中射出。液晶的这些特点使得它可以被用来当作一种开关即可以阻碍光线,也可以允许光线通过。液晶单元的底层是由细小的脊构成的,这些脊的作用是让分子呈平行排列。上表面也是如此,在这两侧之间的分子平行排列,不过当上下两个表面之间呈一定的角度时,液晶随着两个不同方向的表面进行排列,就会发生扭曲。结果便是这个扭曲的螺旋层使通过的光线也发生扭曲。如果电流通过液晶,所有的分子将会按照电流的方向进行排列,这样就会消除光线的扭转。如果将一个偏振滤光器放置在液晶层的上表面,扭转的光线通过(如图A),而没有发生扭转的光线(如图B)将被阻碍。因此可以通过电流的通断改变LCD中的液晶排列,使光线在加电时射出,而不加电时被阻断。也有某些设计为了省电的需要,有电流时,光线不能通过,没有电流时,光线通过。偏振滤光器没有扭转的光线扭转的光线图A 加电时图B 不加电时图2-2光线穿过与阴断示意图LCD显示器的基本原理就是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元的通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)。2.3 功能模块图该设计主要有数据的输入和数据的显示,数据的输入靠键盘实现,主要是数据的输入和运算符的输入,在输入运算符之后数码管全灭等待下一个数据的输入,按下Enter键计算两次输入数据的运算结果,能够实现数码管的动态显示。图2-3模块图2.4 工作流程图图2-4工作流程图2.5 设计步骤2.5.1 外部接口连接(1)用我们提供的直连串口线连接 博创经典UP-TECH S2410 DVP 的串口0 和PC 机串口。(2)用我们提供的并口线连接 博创经典UP-TECH S2410 DVP 的并口和PC 机的并口。(3)们提供的交叉网线将 博创经典UP-TECH S2410 DVP 的网络接口与PC 相连。(4)们提供的 12V 电源适配器连接到板上的 12V 输入插座。(5)箱或者耳机的插头接入板上的音频输出口(绿色)。(6)USB 电缆连接博创经典UP-TECH S2410 DVP 和PC。2.5.2 设置超级终端为了通过串口连接博创经典UP-TECH S2410 DVP,必须使用一个模拟终端程序,几乎所有的类似软件都可以使用,其中MS-Windows 自带的超级终端是最常用的选择,当你安装Windows9x 时需要自定义选择安装该项,Windows2000 及更高版本则已经缺省安装。在此着重介绍一下Windows自带的超级终端程序并以WindowsXP 为例,或许其他Windows 版本的程序界面有所不同。超级终端程序通常位于开始-程序-附件-通讯中,选择运行该程序,一般会跳出如图所示窗口,询问你是否要将Hypertrm作为默认的telnet程序,此时你不需要,因此点“否”按钮。接下来,会跳出如下窗口,点“取消”。图2-5 设置ttyso此时系统提示“确认取消”,点“是”即可,接着点提示窗口的“确定”,进入下一步。当所有的连接参数都设置好以后,打开电源开关,系统会出现 vivi 启动界面。选择超级终端“文件”菜单下的“另存为”,保存该连接设置,以便于以后再连接时就不必重新执行以上设置了。2.5.3 H-JTAG使用方法 解压光盘光盘中 /windows平台工具/H-JTAG V0.6.1.zip 双击H-JTAG V0.6.1.EXE进行安装 点击Finish 即完成了软件的安装 图2-6安装H-JTAG安装完毕,会在桌面生成H-JTAG H-Converter和H-Flasher 快捷方式,双击运行H-JTAG即可运行。 设置JTAG 端口 图2-7设置JTAG端口 选择菜单项SettingsJtag Settings 修改选项配置,正常应该弹出 使用UP-LINK接通开发板和主机,开启电源 设置初始化脚本,检测目标器件 使用开发板附带的 JTAG 小板连接开发板的JTAG 接口,并接上打开电源。点主菜单Operations-Detect Target,或者点工具栏相应的图标也可以,这时就可以看到已经检测到目标器件了。2.6 软件设计程序代码如下:/*Copyright (c) 2004-2007 , All rights reserved.by threewter2004.5.12*/* #说明: C main 函数,ucos-ii初始化等定义- Bug- TODO list -修正-2004-5-12创建*/程伟#include ./ucos-ii/includes.h /* uC/OS interface */#include ./ucos-ii/add/osaddition.h#include ./ucos-ii/add/ustring.h#include ./inc/drivers.h#include#include ./inc/sys/lib.h#include ./src/gui/gui.h#include #include #define maxs 200#define react 100#define xz 130#define yz 100char calmaxs;char readmaxs;int number=1,clear=1;double result;U16 str120;char repolmaxs; /*存储后缀表达式*/void Main_Task(void *Id); /Main_Test_Taskvoid calculate();void str2repol();void onKey(unsigned int nkey, int fnkey);char *doub2str(double d, char *str);/*任务定义*/OS_STK Main_StackSTACKSIZE=0, ; /Main_Test_Task堆栈#define Main_Task_Prio 12void ontouch(unsigned int x, int y);OS_STK test_StackSTACKSIZE=0, ; /test_Test_Task堆栈void test_Task(void *Id); /test_Test_Task#define test_Task_Prio 15/*主函数*/int main(void)ARMTargetInit(); OSInit(); OSInitUart();initOSFile();#if USE_MINIGUI=0initOSMessage();initOSList();initOSDC();initOSCtrl();/LoadFont();#endifloadsystemParam();LCD_printf( 20121183011_Chengwein);OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_StackSTACKSIZE-1, Main_Task_Prio);OSAddTask_Init(1);LCD_printf( please use ji suan qin);OSStart(); return 0;/*任务*/void Main_Task(void *Id) POSMSG pMsg=0;/创建消息结构 ClearScreen(); for(;) pMsg=WaitMessage(0); /等待消息switch(pMsg-Message)case OSM_KEY:/键盘消息 onKey(pMsg-WParam,pMsg-LParam); break; case OSM_TOUCH_SCREEN: break; DeleteMessage(pMsg);/删除消息,释放资源 void onKey(unsigned int nkey, int fnkey) int ret; /char *str; char skey16;cal0=0; if(clear=1)clear=0;/清屏if(nkey&KEY_DOWN)=0)return; switch(nkey&0xff)case N:/str=NumLock; break;case r:/str=Enter; calnumber=; printf(Expression:%sn,cal+1); LCD_printf(Expression:%sn,cal+1); str1number=calnumber; str2repol();calculate(); for(ret=1;ret=number;ret+) calret=0; if(ret=number)number=1;ret=2; clear=2;break;default:skey0=nkey;skey1=0;/str=skey; calnumber=nkey; str1number=calnumber; number+=1; if(clear=2) clear=1; printf(%sr,cal+1); LCD_printf(%sr,cal+1); void str2repol() /*将算术表达式转化为后缀表达式*/char strmaxs,strtemmaxs; /*存储原算术表达式*/char stackmaxs; /*作为栈使用*/char ch;int i,t,top=0,sum,st;i=0; /*获取用户输入的表达式*/do i+; stri=cali; while(cali!= & i!=maxs); sum=i; /sum中记录了str表达式中的字符的个数t=1;i=1; if(str1=-) for(st=1;stsum;st+) strtemst=strst+1; str1=0; str2=-; for(st=3;st=0&ch=0&ch=9|ch=.) if(ch!=.&zh=1) d1=10.0*d1+ch-0; if(ch=.)zh=0; if(ch!=.&zh=0) d0=10.0*d0+ch-0; counter+; ch=repolt;t+; /计算 zh=1; for(i=0;icounter;i+) d0=d0/10.0; dd=d1+d0; top+; stacktop=dd; ch=repolt;t+; /转换运算 result=stacktop; rez=doub2str(result,restr); printf(result:%snn,rez); if(p) LCD_Cls(); LCD_printf(result:%snn,rez); char *doub2str(double d, char *str)char str240; double f=-1.0;int j=0,k,i,st,tem,temz,tem2; if(d=0.0)str0=0;str1=0; else if(d0.0)printf(d=%ftn,d);tem2=d*f;d=tem2;st=1;str0=-; else st=0; temz=(int)d; tem=d; i=(int)d; /浮点数的整数部分 while(i!=0) str2j+=i%10+0;i /= 10; for(k=0;kj;k+) strk+st = str2j-1-k; if(st=1)j=j+st;st=0; strj+=.; d -= (int)d; for(i=0;i10;i+) d *= 10; strj+ = (int)d+0;d -= (int)d; wh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论