《单片机技术》课程设计-计算器设计.docx_第1页
《单片机技术》课程设计-计算器设计.docx_第2页
《单片机技术》课程设计-计算器设计.docx_第3页
《单片机技术》课程设计-计算器设计.docx_第4页
《单片机技术》课程设计-计算器设计.docx_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

单片机技术课程设计说明书 计算器 学 院: 学生姓名: 指导教师: 职称 专 业: 班 级: 学 号: 完成时间: 湖南工学院单片机技术课程设计课题任务书学院: 专业:指导教师学生姓名课题名称计算器内容及任务一、设计任务设计一个具有特定功能的计算器。二、设计内容1、计算器的硬件系统(1)、单片机最小系统模块(2)、供电模块(3)、显示模块(4)、键盘模块2、计算器的软件系统(1)、系统监控程序模块(2)、显示程序模块(3)、键盘程序模块(4)、各种计算程序模块三、设计要求该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。能实现(1)基本的加、减、乘、除、平方、开方;(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其它功能。主要参考资料1李广弟.单片机基础M.第3版.北京:北京航空航天大学出版社,2003.6.2李全利.单片机原理及应用(C51编程)M.北京:高等教育出版社,2012.12.3马忠梅.单片机的C语言应用程序设计M.第4版.北京:北京航空航天大学出版社,2003.6. 4李光飞.单片机C程序设计指导M.北京:北京航空航天大学出版社,2003.01.5李光飞.单片机课程设计实例指导M.北京:北京航空航天大学出版社,2004.9.教研室意见 教研室主任:(签字)年 月 日I摘 要 随着社会的发展,科学的进步,人们的生活水平在逐步的提搞,尤其是微电子技术的发展,犹如雨后春笋般变化。单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。计算器在人们的日常中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器。基于这样的理念,本次设计是用单片机来设计的计算器。该设计以STC89C54RD+单片机为控制运算器,以4*4矩阵键盘和6个独立按键控制,以LCD1602液晶显示,以USB接口充电来供电。对于此计算器我用了23个按键,10个数字键,4个常用运算键,1个等号键,1个清零键,1个平方键,1个开方键,3个三角函数运算键,1个十进制转十六进制按键和1个十六进制转十进制按键。该计算器上电后能自动显示系统提示符“P.”,进入准备工作状态。能实现基本的加、减、乘、除、平方、开方;还能实现三角函数运算和十进制、十六进制转换运算。已符合设计要求,具有一定的推广价值。 关键词:单片机;LCD1602液晶显示;矩阵键盘;独立式键盘II目 录1 绪论11.1 计算器研究意义11.2 实现功能11.3 工作原理22 计算器硬件系统设计32.1 STC89C54RD+单片机简介32.2 电源模块42.3 复位模块42.4 时钟模块42.5 下载模块52.6 显示模块52.7 输入模块62.8 电路原理图72.9 电路实物图72.10 元器件清单73 计算器软件系统设计73.1 单片机资源使用83.2 监控函数模块83.3 显示模块83.4 键扫模块93.5 延时模块93.6 定时模块103.7 系统程序清单104 实物调试114.1 操作使用说明114.2 测试过程114.3 计算器误差分析144.4 设计体会14结束语16参考文献17致 谢18附 录19附录A 电路原理图19附录B 电路实物图20附录C 元器件清单21附录D 程序清单22IV1 绪论 1.1 计算器研究意义 中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。 直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。 17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的“纳皮尔算筹”,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。随着电子技术的不断发展,计算器的功能也越来越强大,已经不仅仅限于单纯的数学运算和函数运算,各种功能强大的计算器在财务、银行、工程、测绘等方面也得到了广泛的应用。国内的计算器从产生到发展成熟,也经历了一段过程。从简单的计算到复杂的计算,从单功能到多功能。近年来国内的计算器呈现出新的特点,不仅设计精巧、紧凑,功能实用、简练。包括:数据记录、声音提示、公式运算、财务计算、外币兑换、解方程式、衡(计)量换算、 将数值转换为中文大写金额和英文 等,而且成本也减少了。而随着计算机的普及,又出现了软件计算器,软件计算器的功能更加强大,而且计算的位数增加,更加精确,而且懂得计算机的人可以借助软件来设计各种不同的计算器,实现功能裁剪,因此非常灵活。软件计算器的缺点是携带不便。真正来说国内计算器的设计是以实用为前提的。而国外的计算器的发展已经发展到各行各业,外设大多凝集了其它产品的功能,而且许多功能让人觉得实在离谱。把实用性和科学应用联合起来才能适应更多的应用场合,因此决定设计一个实用性和科学性相结合的计算器作为我的研究课题。在检测系统设计中熟悉并了解将作为单片机为控制核心,并辅以矩阵键盘和独立式键盘以实现课题所要求的功能。本课题主要要求掌握计算器相应的软硬件实现方法。扎实掌握并运用课题相关的学科理论知识,根据实际电路尽量设计制作出完美的计算器,以实现理论与实践的统一。1.2 实现功能(1) 计算器在上电或按键复位之后能自动显示系统提示符“P”,进入准备工作状态。(2) 计算器能实现基本的加、减、乘、除、平方、开方。(3) 实现三角函数运算。(4) 能十进制、十六进制转换运算。1.3 工作原理设计一个计算器,设计中采用的是STC89C54RD+ 单片机用软件实现数据信号的输出。该单片机是一个微型计算机,包括中央处理器 CPU,RAM,ROM,I/O 接口电路、定时计数器、串行通讯等,是计算器设计的核心。总体原理为:利用 STC89C54RD+ 单片机构造多功能处理,可进行计时以及监控外部中断系统,通过C语言对单片机的编程即可进行运算传送信号,并可以通过键盘进行各种功能的转换,当输出的信号通过显示器显示输出的信息。硬件系统以STC89C54RD+单片机为控制核心,辅以LCD1602液晶显示、键盘输入模块等电路实现计算器的基本功能;软件系统包括包含延时模块、键扫模块、显示模块、定时模块、监控函数模块。总体设计框图如图1所示。图1 总体硬件电路框图2 计算器硬件系统设计2.1 STC89C54RD+单片机简介 以STC89C54RD+单片机为控制核心,外扩外围电路,完成计算器所需要的外围电路。显示模块,输入模块,复位模块等。STC89C54RD+单片机内部配以基本单元:即三个定时/计数器、5个中断源。可由编程来实现根据定时、计数时计数溢出而产生的中断申请信号中断功能,并由LCD1602液晶对被测值进行显示。STC89C54RD+系列单片机,具有反应速度极快,工作效率特高的特点。 STC89C54RD+单片机的基本特点是低功耗、高性能,片内由4KB可编程/擦除只读存储器的8位COMS微控制器组成,通过结合高密度、非易失存储技术来保证单片机引脚与相应指令系统的高兼容度。由于芯片里FLASH的存在,因此可以通过通用的非易失存储编程器实现在线编程以及重复编程等功能。在通常情况下,当系统掉电时,数据存储器的内容立即会被保存下来,而此时单片机其他一切都会停止工作,直到产生下一个中断或硬件复位信号整个系统才会重新开始工作。STC89C54RD+的内部特点:具有40个引脚、8K片内程序存储器空间、256B的随机存取数据存储器,32个外部双向输入/输出I/O口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个狗(WDT)电路,片内时钟振荡器。STC89C54RD+引脚图如图2所示。 图2 STC89C54RD+引脚图2.2 电源模块电源电路是给计算器提供电源,此电路包括一个发光二极管、电阻、导线组成。光二极管的作用主要是:运用二极管的单向导电特性来提示电源是否接通或观察电源是否一直保持通电正常、稳定,并且100的电阻与二极管串联,其作用是保护二极管不会因为电流突然变大而被烧坏。电源电路是采用USB接口来供电,如图3所示。图3 电源电路2.3 复位模块复位电路的作用是按下复位键可以使显示界面回到最开始的地方。课程设计按键复位电路由一个电阻一个电容和一个按键组成,大小分别为10F,1k,200,1K电阻一端接电源,另一端接电容的正极接到单片机的复位引脚,按键与10F电容并联,当按键按下时,1k电阻与VCC直接相连,在RST产生复位所需的高电平。当按键松开的,VCC给电容充电,RST仍为高电平,而当电容充电完成后,相当于短路,则为低电平,正常工作。复位电路如图4所示。 图4 复位电路2.4 时钟模块晶振电路的作用是产生单片机所必须的时钟频率。单片机工作所需的同步时钟信号由由以下两种方法获得,第一:由单片机片内时钟电路结合外部晶振、电容产生;第二:直接从单片机外部引入脉冲信号。设计中用第一方法,有石英晶体和微调电容(一般取值30pF左右)组成,石英晶体产生震荡,单片机振荡电路产生的脉冲信号称振荡信号,它的频率等于石英晶体的振荡频率(fosc),简称晶振频率,振荡脉冲信号还不是单片机工作所需的时钟信号,时钟信号必须由振荡脉冲信号经单片机片内时钟电路的处理后才能产生。课程设计晶振电路主要由振荡电路和分频电路组成。其中振荡电路由高增益反相器以及并联外接的石英晶体和电容构成产生振荡脉冲。而分频电路则用于把振荡脉冲分频,已得到所需的时钟信号。振荡电路由单片机芯片的XTAL1端输入,XTAL2端输出。此时同时并接一个石英晶体振荡器以及两个30pF电容。而STC89C54RD+中自带有分频电路所以不需要外接电路对脉冲信号进行分频。晶振频率是12MHz。如图5所示。 图5 时钟电路2.5 下载模块由于STC89C54RD+支持flash在线写入、擦除,所以下载电路是必不可少的部分。由下载口进行单片机与电脑的连接。并由下载电路产生电源提供给单片机工作。主要是由P30、P31两个引脚下载,实现计算机与单片机的通信。2.6 显示模块 发光二极管LED是单片机应用系统中的一宗简单而常用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等。因而作为典型的外围器件,LED显示单元是反映系统输出和操作输入的有效器件。LED具备数字接口可以方便的和大年纪系统连接;它的优点是价格低,寿命长,对电压电流的要求低及容易实现多路等,因而在单片机应用系统中获得了广泛的应用。 液晶LCD1602显示器用于输入信号以及运算结果的显示。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。 1602型LCD基本操作程序如表1所示。表1 LCD1602基本操作程序操作输入输出读状态RS=L,R/W=H,E=HD0D7=状态字写指令RS=L,R/W=L,D0D7=指令码,E=高脉冲无读数据RS=H,R/W=H,E=HD0D7=数据写数据RS=H,R/W=L,D0D7=数据,E=高脉冲无电路主要由电位器、可变换串行及并行通信方式的短接电路、供电电路构成,具体电路如图6所示。图6 LCD1602显示电路2.7 输入模块输入模块的作用是给单片机系统提供输入信号。通过外部按键使单片机接收信号,课程设计采用的是4*4的矩阵键盘和6个独立式键盘。在矩阵式键盘中,行连接线和列连接线分别占用4条I/O口线,共连接16个按键。行线连接的接口为输入口,用于输入按键的行位置信息,列线连接的接口为输出口,用于输出扫描电平,当按键按下键时由高电平变为低电平,如图7所示。6个独立式键盘按键的一端并接在一起接地。当按下某个键,该键处变为低电平。如图8所示。 图7 4*4矩阵式键盘图8 6个独立式键盘2.8 电路原理图 电路原理图见附录A。2.9 电路实物图 电路实物图见附录B。2.10 元器件清单 元器件清单见附录C。3 计算器软件系统设计应用C语言编来编写课题程序,它由监控函数、液晶显示、键扫、延时、定时等模块组成。具体程序见附录D。3.1 单片机资源使用 P1: 基本输入输出口; P2.7:E(1602液晶); P2.6:RW(1602液晶); P2.5:RS(1602液晶); P2.4:T0(定时/计数器);3.2 监控函数模块监控函数 ,用于设置上电或复位后能自动显示系统提示符“P”,调用各个主要模块,主要实现计算器的加、减、乘、除、开方、平方等功能。相关程序流程图如图9所示,具体程序见附录D。图9 监控函数流程图3.3 显示模块液晶显示是通过在主程序中调用相关的液晶功能函数来执行相应功能,经过液晶接在单片机上的P2部分管脚,通过液晶功能函数LCD1602的调用对液晶进行操作,将各类指令写入液晶模块,用来驱动液晶以实现不同的显示功能。简单来说,就是用作LCD1602液晶屏显示,将显示的数据传送至LCD1602模块化函数中,将需要显示的内容显示在LCD1602液晶屏上。相关程序流程图如图10所示,详细程序见附录D。图10 液晶显示流程图3.4 键扫模块当有操作按键按下时,单片机首先会先判断键值,然后依据判断出的键值来执行相应的键功能程序,并由液晶显示操作状态。相关程序流程图如图11所示,详细程序见附录D。图11 按键程序流程图3.5 延时模块 延时模块用于延时,等待等需要的调用。3.6 定时模块 定时器0,以工作方式1工作,采用中断方式。3.7 系统程序清单 课题软件系统程序清单见附录D。4 实物调试4.1 操作使用说明该设计利用4*4矩阵键盘和6个独立按键作为数据和命令的输入装置,LCD1602液晶为显示器,实现的运算有加、减、乘、除、平方SQU、开方SQR、三角函数(sin、cos、tan)、十进制转十六进制DEC、十六进制转十进制HEX。采用4*4矩阵键盘和6个独立按键作为输入端,实现数据输入功能。设计键盘的各个按键功能如表2所示。表2 按键功能设置0123tan复位4567cosDEC89+sinHEX*/=SQUSQR无 如表2所示,此计算器我用了23个按键,10个数字键,4个常用运算键,1个等号键,1个清零键,1个平方键,1个开方键,3个三角函数运算键,1个十进制转十六进制按键和1个十六进制转十进制按键。当计算器上电后能自动显示系统提示符“P.”,进入准备工作状态。这时输入数字,液晶屏会显示输入的数据,输入完数据后按下功能键,再按“=”键,屏幕上显示出计算的结果。如果要再次计算,按下复位键,重新初始化。4.2 测试过程 界面显示以及测试的结果:各层界面显示以及测试的结果与示波器所测得图形及参数为:(1)当上电显示后,显示的是系统提示符“P.”,进入准备工作状态。如图12所示。图12 上电显示界面(2) 当输入12加27后,得出计算结果39。如图13所示图13 计算结果显示界面(3)当输入数字765,按下十进制转十六进制DEC功能键后,计算的的数据为2FD。如图14所示。图14 计算结果显示界面(4)当输入数字2,按下平方SQU功能键后,计算的数据为4。如图15所示。 图15 计算结果显示界面(5)当输入数字8乘11时,计算的数据为88。如图16所示。图16 计算结果显示界面 4.3 计算器误差分析 计算器的计算功能有精度上的误差,不适用保留小数点的计算,因为不能约到整数。 误差分析:(1)硬件电路中焊接时,不能做到所有器件的线路都很合理,在操作是会有相互影响。(2)程序参数设计不够合理,以及计算过程中没有保留小数点,计算量多的话导致不精准,主要是精确度不高。 (3)实验用的元器件,如芯片易受温度的影响,实验时间过长,即会产生误差。 4.4 设计体会 通过做计算器的课程设计,我收获良多。我大体总结了以下几点:(1)基本功要过硬,不能马虎经常犯小错误。提高自己找错纠错能力,通常错误总是那几种,多练习就熟练了。(2)要善于查找资料,提高自己的资料查询能力,要善于利用网络来获得知识,获得帮助。开始着手程序设计时,有些功能感觉无从下手,都不知道要干什么,这些问题这要找到相关的资料就会得到提示从而理解所要解决问题的大致方向。有了明确的目的,就可以发挥自己的头脑来完成它了。 (3)要善于思考,程序中有些实现难点和最初完成程序时免不了的许多不足就需要自己根据代码认真思考来解决。只有这样才能纠正程序的不足,并使其更加人性化。 这次课程设计让我们学到了很多,不仅巩固了C语言知识,而且也培养了我们的动手能力,令我们的创造性思维得到拓展。期待今后有更多类似的锻炼机会。 通过这次课程设计,可以明显的感觉到它弥补了课程教学的和实验中知识的深度和广度方面的不足,也让我们进一步掌握了程序设计的基本方法和编程技巧,同时也巩固所学理论知识,似然花费了不止一点点的时间和精力,不过那确实挺值得的,既让我们认识到自己知识方面的缺陷,又培养了我独立分析问题、解决问题的能力。 课程设计是需要大量时间去动手练习才能体验到它的内涵的,同时还需要用心地投入,时间和情感花下去之后,的确感受到有所收获,增加了对编程的兴趣。通过这次课程设计,掌握了对话框的相关操作,也体会到书写代码一定要仔细,有时候一小点拼写错误会浪费很多调试程序的时间。总之,这次课程设计学到了很多,通过实践真正的做到了学有所用。结束语通过这次设计,攻克了许多难题。从LCD1602的使用,到各个数字如何入,这些是我们学过,但是还不是太懂的。而且许多芯片并不像我们想象的那么难,只要知道读写程序序,只要知道命令字,就可以很容易使用这些芯片了,并不是我们要学一个才能用一个,只要我们有说明书,我们可以很好的使用很大部分器件。对于51单片机,我一直是用汇编的,但对于此次设计我完全用C语言,因为C语言的可读性很好,层次分明,而不像汇编都是在寄存器器间操作,很烦琐,对于写太长的程序很不好写,而且用C语言我们可以用到C语言函数库,这是个很好的东西,也可以用到变量,而不像汇编只能用到寄存器,这样有助于运用。最后要说的是这次程序写得有点痛苦,刚开始的时候无从下手,不知道怎么开始写。所以对于程序流程图是个很重要的东西,我们应该先考虑功能,考虑好主流程,再从主流程出发,再到各个基本模块,写程序不是很难,难的是你要如何写。所以最先做个详细的分析,结构分析,再着手写程序,这样各部分就很好的衔接下去了,而不是一个头就扎到程序里去,这样做不好。只有明确的任务才能写的更好。万事开头难,只要你去做,你就会发现这个没有你想象中的那么难,你不去做,就会觉得很难。而且这次设计对我来说是一次宝贵的经验,不是说写这个程序有多难,硬件设计有多难,而是我对于设计流程的掌握,如果我再做一个设计我会知道首先该如何做,而不是像现在这样在摸索,这是一个很好的开始。参考文献1 常喜茂,孔英会,付小宁.C51基础与应用实例.北京:电子工业出版社,2009.1.2 陈志旺,陈志茹,阎巍山.51系列单片机系统设计与实践。北京:电子工业出版社,2009.3 戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲.北京:电子工业出版社,2005.4 刘文涛.单片机语言C51单片机典型应用设计.北京:人民邮电出版社,2005.5 边春元.C51单片机典型模块设计与应用.北京:机械工业出版社,2006.致 谢本次课程设计得到班导凌老师的热心指导,在这里对凌老师表示最衷心的感谢。凌老师平易近人,对学生的设计进度和学习很关心。在毕业设计的前期,首先给我们介绍了不少有用的资料和书籍;在硬件设计等方面给予悉心的指导;在调试的过程中凌老师给每个出现的问题给予及时的指导。在写课程设计的阶段,凌老师让我们提前给她评审,不论内容字体,还是格式上的问题都一一指出。待人平和、工作认真、治学严谨,给我留下很深刻的印象。更重要的是,她善于与学生沟通,不仅在毕业设计上给我及时的指导,更为我大学最后阶段的学习提出了许多宝贵的意见。这一切都在潜移默化地影响着我,为我以后进入工作岗位树立了良好的榜样。 最后向所有帮助和关心过我的人表示衷心感谢!附 录附录A 电路原理图 附录B 电路实物图附录C 元器件清单元器件名称规 格 数 目 单片机 STC89C54RD+ 1 单片机紧锁插座1 排阻10K1 USB接口公头1 USB接口母头1 液晶屏LCD16021 轻触开关23 瓷片电容22pF2 电解电容 10uF1 自锁开关1 晶振12MHZ1 电阻10K1 电阻3201 蜂鸣器5V1 LED5mm1附录D 程序清单/*程 序 名:计算器编 写 者:李月洁指导老师:凌云时 间:2016.12.20班 级:电气本1405班功 能:计算器能进行加、减、乘、除、开方、平方、三角函数(sin、cos、tan)、十进制与十六进制的转换等运算。说 明:LCD SCLK(E)连至P27,SID(RW)连至P26,CS(RS)连至P25型 号:STC89C54RD+ 使用晶振为12MHz*/#include #include #include #define uint unsigned int#define uchar unsigned char#define K 3.1415926/180sbit RS=P25;sbit RW=P26;sbit EN=P27; /使能信号sbit BEEP=P24;sbit SQUARE=P20;/开方是16号键sbit COS=P21;sbit SIN=P22;sbit TAN=P23;sbit HEX=P36;sbit DEC=P37;#define GPIO_KEY P1uchar code keycode16=0xEE,0XDE,0XBE,0X7E,0XED,0XDD,0XBD,0X7D,0XEB,0XDB,0XBB,0X7B,0XE7,0XD7,0XB7,0X77;/待查询的按键值uchar dat16=p.;uchar result16= ;uchar opr4=n;int result_size=0;int opr_flag=0;int count=0;char hex16=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;void delay(uint z);void init();void write_command(uchar com);/写指令void write_data(uchar date);/写数据void show_word(int row,int size,char* dat);void show_value(int row,int size,char* str);int keyscan();uchar getkey(int value);uchar* getValue(uchar* temp);double func_calc(uchar* key,int flag);char* decToHex(char* d,int count,int* s);int hexToDec(char* h,int count);int getIntegerSize(double n);char* ftoa(double num,int iSize,int dSize);void clear()write_command(0x01);/清屏uchar busy_check()/忙检查(有返回值) uchar temp;RS=0;/选择命令寄存器RW=1;/读操作选择EN=1; /一个高脉冲读走delay(1);temp=P0;/读回P0的值EN=0;return temp;/返回值void main()int statu=0;int KeyValue;int i=0;double temp;int size;uchar key16=n;uchar screen16=n;init();/初始化BEEP=0;write_command(0x80);while(1)KeyValue=keyscan();if(KeyValue!=0)/如果有键按下count+;if(count=1)/第一次按下时,清屏clear();if(KeyValue0 & KeyValue0 & KeyValue0 & KeyValue15 & KeyValue=4)/如果opr_flag=4,显示相应的符号到第一行show_word(1,4,opr);if(KeyValue0 & KeyValue=4)clear();show_word(1,4,opr);show_value(1,count,key);if(KeyValue=15 & opr_flag=4 & opr_flag10)temp=func_calc(key,opr_flag);result_size=getIntegerSize(temp);ftoa(temp,result_size,3); show_word(2,result_size+4,result);else if(KeyValue=15 & opr_flag=10) decToHex(key,count-1,&size); /show_word(2,size,result); show_word(2,size,decToHex(key,count-1,&size); /show_word(2,5,ok);/十进制转十六进制char* decToHex(char* d,int count,int *s) int i; int temp=0; int size; int rem;/remainder for(i=0;i0) resulti+=hextemp%16; temp/=16; size=i; *s=size; for(i=0;isize-i-1;i+)/反序 temp=resulti; resulti=resultsize-i-1;resultsize-1-i=temp; return result;/十六进制转十进制int hexToDec(char* h,int count) int dec; int i=0; int temp=0; for(i=0;icount;i+) temp*=16; temp+=hi-0; return temp;/计算整形数据的位数int getIntegerSize(double n) int count=0; int temp; if(n0); return count;/浮点强制转换成字符串函数char* ftoa(double num,int iSize,int dSize) int i=0; int j=0; double decimal; int temp=(int)num; int a; decimal=num-temp; if(num=0) for(i=0;iiSize;i+) a=temp/pow(10,iSize-i-1); temp%=(int)pow(10,iSize-i-1); resulti=a+0; else result0=-; temp=-temp; for(i=1;iiSize+1;i+) a=temp/pow(10,iSize-i); temp%=(int)pow(10,iSize-i); resulti=a+0; if(decimal!=0) resulti+=.; if(decimal0) decimal=-decimal; temp=(int)(pow(10,dSize)*decimal); for(j=0;j=4 & flag=0 & tempi=0 & tempi=0 & tempi0)val_tmp/=10;i+;result_size=i;val_tmp=val;for(i=0;iresult_size;i+)resulti=val_tmp/(int)pow(10,result_size-i-1) +0;val_tmp%=(int)pow(10,result_size-i-1);for(i=0;i0;c-) for(b=142;b0;b-) for(a=2;a0;a-); /LCD

温馨提示

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

评论

0/150

提交评论