ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:36.85KB ,
资源ID:24489206      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24489206.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(科学计算器.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

科学计算器.docx

1、科学计算器JIU JIANG UNIVERSITY DSP应用课程设计题 目: 科学计算器设计 英文题目: Design Of Scientific Calculator 院 系: 电子工程学院 专 业: 通信工程 姓 名: 年 级: 指导教师: 实训地点: 电子信息实验楼203室 二零 一四年 五 月 摘 要计算器有标准型和科学型。标准型带有足够大、可用手指来操作的按钮,数字大而清晰并能够满足基本的计算,标准模式支持显示12位数字,算术操作、平方根、百分比、记忆功能。 科学型带有所有普通的函数,所有的函数都分布在键盘上以致于你可以很简便的使用。科学计算器支持显示24位数字,支持运算优先选择模

2、式、进制转换功能、标准数学函数、百分比计算、方根计算、对数、次方、记忆等等功能。科学计算器的常见品牌有卡西欧。【关键字】:数学计算 按键触发信号 常用工具 计算器AbstractCalculator with standard and scientific Standard with a big enough, use your fingers to operate button, big and clear digital and can satisfy the basic calculation, the standard model support shows 12 digits, ar

3、ithmetic operations, square root, percentage, and memory functions scientific with all common functions, all the functions are distributed on the keyboard so that you can very easy to use.The Scientific calculator support 24 digits display, support operational priorities, hexadecimal conversion func

4、tion, standard mathematical functions, percentage, root, logarithm, power, memory, etc. FunctionThe common brand of scientific calculator has Casio.【 key words 】 : Mathematical calculation button trigger signal Common tools calculator 第1章 绪论1.1 科学计算器发展史1666年,在英国Samuel Morland发明了一部可以计算加数及减数的机械计数机。167

5、3年, Gottfried Leibniz 制造了一部踏式(stepped)圆柱形转轮的计数机,叫“Stepped Reckoner”,这部计算器可以把重复的数字相乘,并自动地加入加数器里。1694年,德国数学家,Gottfried Leibniz ,把巴斯卡的Pascalene 改良,制造了一部可以计算乘数的机器,它仍然是用齿轮及刻度盘操作。1775年,The third Earl of Stanhope 发明了一部与Leibniz相似的乘法计算器。1893年,第一部四功能计算器被发明。1931年,Vannever Bush 发明了一部可以解决差分程序的计数机,这机器可以解决一些令数学家,科

6、学家头痛的复杂差分程序。1935年,IBM (International Business Machine Corporation) 引入 IBM 601”,它是一部有算术部件及可在1秒钟内计算乘数的穿孔计算机器。 它对科学及商业的计算起很大的作用。总共制造了1500 部。1937年,Alan Turing 想出了一个 “通用机器(Universal Machine)” 的概念,可以执行任何的算法,形成了一个“可计算(computability)”的基本概念。Turing 的概念比其它同类型的发明为好,因为他用了符号处理(symbol processing) 的概念。1.2 科学计算器的介绍计

7、算器是一种小型的手持或桌面的设备,用于完成数学计算。一般的数学计算器与计算机是不一样,数学计算器通常仅能完成算术运算和少量逻辑操作并显示其结果,但一般不能修改其程序。除了某些尺寸可比掌上型计算器的PDA之外,计算器的可携性通常高于计算机。计算器的复杂度随着使用目的而有所不同。最简单的计算器模块应该包含下列部件:学计算器支持三角函数、微积分、统计与其他函数。而最先进的现代计算器甚至可显示图型,并且包含计算机代数系统。这种计算器可以编写程序,且内含了代数方程式求解程序、经济模型甚至游戏程序。这类计算器可显示填满显示屏的单一数值。并可将数字以科学记数法表现至9.999999999*1099。如果用户

8、试图输入一过大的数值或运算产生过大数值的算式,则计算器仅显示“错误”(error)一词。因为存储器如此有限的计算器无法存储如此巨大的输入(=10160)。 “错误”也用以表示数学上未定义的函数或操作,例如除以零或对负数取平方根(除了某些高级的科学计算器拥有可处理复数的特殊函数,大部分科学计算器不允许复数的存在)。某些少数计算器可分别这两种错误的不同,虽然用户依然难以了解error 1与error2的差别何在。仅有少数公司研发与制造现代职业工程师与经济学家用的计算器:最有名的是Casio、夏普、HP与德州仪器。这些计算器都是嵌入式系统的典范型。第二章 科学计算器的DSP实现在我们的设计中使用的是

9、ICETEK-VC5416-USB-EDU型DSP实验系统,ICETEK-VC5416-A是一块以TMS320VC5416DSP为核心的DSP扩展评估板,它通过扩展接口与实验箱的显示/控制模块连接,可以控制其各种外围设备。2.1 TMS320VC5416DSP的通用引脚1、TMS320VC5416DSP提供两个通用I/O引脚:/BIO和XF.。/BIO 用于检测外设的状态,这在时间要求严格的中断中特别有用。当外部输入是引脚/BIO的电位为低电平事,若带有此测试条件的条件跳转指令BCD会做出相应的跳转操作。XF用于扩展输出标志,软件可编程。XF的状态位在CPU状态寄存器ST1的bit3位,默认为

10、1(高点平),执行汇编指令“RSBX XF”使引脚XF为低电平,类似执行“SSBX XF”使XF=1。2、3个多通道缓冲串口(McBSPx,x=0,1,2)的各个引脚满足2个条件是也可以设置成通用I/O引脚使用。每个McBSP均有7个引脚完成数据的发送和接收,它们分别是串行数据接收引脚DR、串行数据接收时钟引脚CLKR、串行数据接收帧同步引脚FSR、串行数据发送引脚DX、串行数据发送时钟引脚CLKX.、串行数据发送帧同步引脚FSX和外部时钟输入引脚CLKS。每个McBSP均有多个控制寄存器设置状态,这些寄存器的访问是通过映射在DSP数据区的两个地址上的寄存器进行。有关子地址寄存器和子地址数据寄

11、存器的地址见表1,有关子地址见表2,McBSP作通用I/O引脚的配置见表3。表1子地址寄存器和子地址数据寄存器地址表: 多通道缓冲串口名称McBSP0McBSP1McBSP2子地址寄存器(SPSAx)地址38H48H34H子地址数据寄存器(SPSDx)地址39H49H35H表2子地址:子地址寄存器名称McBSP寄存器说明0x0000SPCR1x串口控制寄存器10x0001SPCR2x串口控制寄存器20x0002RCR1 x接收控制寄存器10x0003RCR2 x接收控制寄存器20x0004XCR1 x发送控制寄存器10x0005XCR2 x发送控制寄存器20x0006SRGR1 x采样率发生寄

12、存器10x0007SRGR2 x采样率发生寄存器20x0008MCR1 x多通道控制寄存器10x0009MCR2 x多通道控制寄存器20x000ARCERA x接收通道使能寄存器A0x000BRCERB x接收通道使能寄存器B0x000CXCERA x发送通道使能寄存器A0x000DXCERB x发送通道使能寄存器B0x000EPCR引脚控制寄存器表3McBSP作通用I/O引脚的配置:引脚使能通用I/O引脚的设置选作输出引脚的设置发送输出值的寄存器选作输入引脚的设置读引脚输入值的寄存器CLKX/XRST=0XIOEN=1CLKXM=1CLKXPCLKXM=0CLKXPFSXFSXM=1FSXP

13、FSXM=0FSXPDX只作输出DX-STAT-CLKR/RRST=0RIOEN=1CLKRM=1CLKRPCLKRP=0CLKRPFSRFSRM=1FSRPFSRM=0FSRPDR-只作输出DR-STATCLKS/XRST=/RRST=0XIOEN=RIOEN=1-只作输出CLKS-STAT2.2实现功能要求1)能够实现按键数值的识别。2)能够进行简单的加减运算。3)能够进行小数运算思路设计。2.3程序流程图图1程序流程图2.4 实现步骤1、编写科学计算器的代码程序;2、创建工程程序;3、将ICETEK-VC5416-A按要求与装有ccs2.0软件的计算机连接,启动软件 运行下载并运行程序,

14、观察结果;4、通过调试后可实现科学计算器的相关数学计算功能; 第三章 总结 这一次的实践让人感受良多,在做硬件方面的时候充分的考验了自己的焊接技术,也反映了自己的动手能力,明白了自身的不足,需加强,在做软件方面的时候感觉更加的困难,编写的程序有很多错误,不熟悉各种指令代码的运用,出错了不知道怎样解决,诸多方面显示出理论基础知识功底不扎实,出现各种问题,在老师耐心的指导下诸多难题迎刃而解,从这一次的设计更好的认识到了自身的不足,不论是理论知识还是动手能力都需要加强。附录void xint0_init() *(unsigned int*)IMR=0x0001; /使能int0中断 asm( rsb

15、x INTM); /开总中断interrupt void int0() /中断0中断子程序 UINT16 temp;int l; if(x=1) /全局变量x如果为0,则表示上次运算完毕,运行以下语句,数组清零。for(l=0;l10;l+)data_buff1l=48;for(l=0;l10;l+)data_buff2l=48;for(l=0;l10;l+)data_buff3l=48;for(l=0;l10;l+)data_buff4l=48;x=0;delay_100us();SendCMD(CLEAR); /清除显示 *(unsigned int*)IFR = 0xFFFF; /清除所

16、有中断标志,写1清0 send_buff = CMD_READ; /读键值指令 send(); receive(); asm( nop ); asm( nop ); send_buff = DECODE1; send(); send_buff = rece_buff; /将接收到的键值送显示 send(); show = show; cs_high(); /7279CS置高 asm( rsbx INTM); /开总中断 return;接受数据程序:void receive() UINT16 p,l; port0005 = 0; /DIR配置成输入 asm( nop); delay_50us()

17、; for(l=0;l8;l+) port0007 = 0; /7279clk高 delay_8us(); key7279 = port0009& 0x0001; asm( nop ); /接收到的数据在D0位 data_buff=data_buff|(key72798) & 0x00ff; /接收到的数据右移给rece_buff data_buff=0x0000; /清除data_buff if(rece_buff=15) /判断是否摁下了等于按键 switch(h) /判断符号,选择加减乘除运算 case(10):shuchu=s1+s2;break; case(11):shuchu=s1

18、-s2;break; case(12):shuchu=s1*s2;break; case(13):shuchu=s1/s2;break; xianshi(); x=1;y=0;s1=0;s2=0; /运算完成,更改全局变量值,数值清零 else if(rece_buff9) /给符号位赋值 xianshi(); h=rece_buff; y=1; else if(y=0) /选择为那个数赋值 s1=s1*10+rece_buff; else s2=s2*10+rece_buff; temp7279 = port0005; /DIR配置成输出LCD显示函数:void xianshi() int

19、l,k,z,i; data_buff10=s1%10+48; /把个位付给data_buff1数组第一位 for(l=1;l10;l+) /把数值的十位百位等赋值给相应的数组上 for(k=0;kl;k+) z=s1/10; data_buff1l=z%10+48; data_buff30=s2%10+48; /把个位付给data_buff3数组第一位 for(l=1;l10;l+) for(k=0;kl;k+) /把数值的十位百位等赋值给相应的数组上 z=s2/10; data_buff3l=z%10+48; switch(h) /给符号位赋值 case (10):data_buff20=43;break; /赋给相应的ASCII码字 case (11):data_buff20=45;break;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1