




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
...wd......wd......wd...毕业设计(论文)任务书?!!下面的行距都跟原来的封面不一样了,连论文题目也没有。。。你能不能用“?!!下面的行距都跟原来的封面不一样了,连论文题目也没有。。。你能不能用“论文〞封面〔2016届〕所属系〔部〕:机电工程学院所学专业:通信技术班级:13通信技术班姓名:xxx学号:xxx指导教师:xxx2015年7月7日AT89C52单片机设计设计单片机设计单片机通信技术XxxXxx摘要计算器是微型电子计算机的一种特殊类型。它与一般通用计算机的主要区别在于程序输入方式的不同。计算器的程序一般都已经固定,只需按键输入数据和运算符号就会得出结果,很容易就能掌握。而一般计算机的程序可以根据需要随时改动,或重新输入新的程序。简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断开展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D转换器,D|A转换器等多种电路。完成一定区间和条件的简单四则运算过程。关键词:计算器,AT89C52,矩阵按键,LCD1602目录第一章绪论11.1课题的提出及意义11.2设计的任务及要求1第二章总体方案设计32.1芯片比拟32.1.1单片机选择32.1.2显示器的选择32.1.3按键局部的选择42.2总体设计及系统原理4第三章单片机硬件设计63.1单片机局部63.1.1单片机开展历史63.1.2单片机开展趋势63.1.3计算器系统现状73.1.4AT89C52系列单片机简介83.2矩阵按键局部163.3液晶显示器局部18第四章单片机软件设计254.1主程序设计254.2键扫程序设计254.3算术运算程序设计264.4显示程序设计27第五章单片机安装、调试295.1软件仿真295.2安装步骤305.2.1检查元件的好坏305.2.2放置、焊接各元件305.3调试345.3.1硬件调试345.3.2软件调试34完毕语35致谢36参考文献37第一章绪论1.1课题的提出及意义随着社会的开展,科学的进步,人们的生活水平在逐步地提高,尤其是微电子技术的开展犹如雨后春笋般的变化。计算器在人们的日常中是比拟常见的电子产品之一,如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好地为各个行业服务,成了如今电子领域重要的研究课题。现在人们的日常生活中已经离不开计算器了,社会的各个角落都有它。因此设计一款简单实用的计算器会有很大的实际意义。本设计在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的根本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力你的本设计不就是“毕业设计〞吗怎么本设计去提高解决毕业设计的能力,为单片机应用和开发打下良好的根基。你的本设计不就是“毕业设计〞吗怎么本设计去提高解决毕业设计的能力对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外特性有较清楚的认识,并会使用LCD〔液晶显示模块〕实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶显示模块的驱动和操作;在充分分析内部逻辑的概念,进展软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序。这些要不放在论文最后总结那里。这一节讲的是这些要不放在论文最后总结那里。这一节讲的是“计算器〞本身的意义,不是做这个对你的意义。1.2设计的任务及要求eq\o\ac(○,1)目的:通过本次工程实践,运用《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》所学知识及查阅相关资料,完成简易计算器的设计,到达理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。通过本次设计训练,可以使我们在根本思路和根本方法上对基于MCS-51单片机的嵌入式系统设计有一个比拟感性的认识,并具备一定程度的设计能力。逻辑不对吗不是先理论设计好了,再实践的吗上面那段都实践完了,这里才理论设计逻辑不对吗不是先理论设计好了,再实践的吗上面那段都实践完了,这里才理论设计eq\o\ac(○,2)要求:使用硬件:MCS-51单片机,中央处理器,数据存储器(RAM),程序存储器(ROM)等。使用软件:电子绘图软件Protel。〔1〕通过网络及各种相关书籍查找相关信息,确定使用的元器件。〔2〕以MCS-51单片机为核心,开发一个完整的系统,包括硬件设计和软件的编程。〔3〕使用Protel软件,绘制原理图、PCB,并进展元器件安装、焊接及调试检测到达预期的目的。矩阵按键输入、LCD1602液晶显示,构成一套可以运算两个数之间的加减乘除的设计。最大运算是:9999*9999,可以运算负数。第二章总体方案设计2.1芯片比拟2.1.1单片机选择AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器〔PEROM〕和256bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器〔CPU〕和FLASH存储单元,功能强大AT89C52单片机适用于许多较为复杂控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进展编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。2.1.2显示器的选择在单片机应用系统中,使用的显示器主要有LED〔发光二极管显示器〕、LCD液晶显示。方案一:使用8位LED数码管来显示,LED显示器是由发光二极管显示字段组成的显示器件,在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极和共阳极两种,它具有本钱低廉、配置灵活和单片机接口方便等特点。方案二:使用液晶显示器来显示。液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的浑浊固态。在电机的作用下,产生冷热变化,从而影响它的透光性,来到达显示的目的。LCD还具有以下优点:〔1〕低压、微功耗;〔2〕显示信息量大;〔3〕长寿命;〔4〕无辐射、无污染。选择液晶显示屏。为了适应本课题的需要,本设计采用液晶显示屏LCD1602进展显示。2.1.3按键局部的选择根据操作需要和毕业设计需要,按键局部采用4*4行列式键盘,分别设定数字键和功能键。2.2总体设计及系统原理大致原理图如图2.2.1所示:这里是总体设计方案,应该放的是系统的原理框图,不是整体电路图。总的电路图都全搞好了,后面的章节你打算讲什么这里是总体设计方案,应该放的是系统的原理框图,不是整体电路图。总的电路图都全搞好了,后面的章节你打算讲什么另外,这个图也太太模糊了吧根本看不清楚,打印出来就更不知道是什么图2.2.1原理图总的电路设计方案以单片机AT89S52来作为核心元器件,外围采用4*4行列式键盘作为输入,采用lcd1602液晶显示来做输出。这里重点介绍液晶输出,它是一个双行显示的液晶显示器,其采用标准的16脚接口。1.vssVss为地电源;Vss2.vddVdd后面的自己改。接5v正电源;Vdd后面的自己改。3.vo为液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高,比照度过高会产生影子,使用时可以通过一个10k的电位器调整比照度;4.rs为存放器选择,高电平时选择数据存放器、低电平时选择指令存放器;5.rw为读写信号线,高电平时选择读操作,低电平时选择写操作。当rs和rw共同为低电平时可以写入指令或者显示地址,当rs为低电平rw为高电平时可以读忙信号,当rs为高点平rw为低电平时可以写入数据。6.e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令;7.7~14d0~d7为8位双向数据线;8.15~16分别为背光灯正负极,A接正极,K接负极。第三章单片机说真的~~你要设计一块新型“单片机〞吗如果你说的是设计8952,小心别人告你侵权呢硬件设计说真的~~你要设计一块新型“单片机〞吗如果你说的是设计8952,小心别人告你侵权呢3.1单片机局部目前,52系列单片机在我国的各行各业得到了广泛应用,各大专业院校、职业培训学校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须通过一系列的软硬件实验、理论联系实际,才能学好、学懂,取得较好的学习效果。后面两节都删了,这局部也没什么用了。都不要了。后面两节都删了,这局部也没什么用了。都不要了。3.1.1单片机开展历史单片机〔Microcontrollers〕诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上开展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开场出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大开展,单片机技术得到了巨大提高。随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。3.1.2单片机开展趋势单片机的开展趋势:低功耗CMOS化;微型单片化;主流与多品种共存;单片机从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的开展历程,可以发现单片机的开展趋势大致有:1、低功耗CMOS化MCS-51系列的8051推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗的要求越来越低,现在的各个单片机制造商根本都采用了CMOS(互补金属氧化物半导体工艺)。像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定了其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期内单片机开展的主要途径。2、微型单片化现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口、中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗),有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就更强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(外表封装)越来越受欢送,使得由单片机构成的系统正朝微型化方向开展。3、主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍是以80C51为核心的单片机占主流,兼容其构造和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。因此以80C51为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的开展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,以其价低质优的优势,占据一定的市场份额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种形势将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同开展的道路。这两节都不要。单片机怎么开展跟你这个系统根本没什么关系。你都选好了用哪种单片机了,没什么好说的。这两节都不要。单片机怎么开展跟你这个系统根本没什么关系。你都选好了用哪种单片机了,没什么好说的。3.1.3计算器系统现状此标题去掉,下面两段的内容作为第三章的开头。加上“3.1单片机最小系统〞一节此标题去掉,下面两段的内容作为第三章的开头。加上“3.1单片机最小系统〞一节计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据。键盘是计算器的输入部件,一般采用接触式或传感式。为减小计算器的尺寸,一键常常有多种功能。显示器是计算器的输出部件,有发光二极管显示器和液晶显示器等。除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器或电池,电池可用交流转换器或太阳能转换器再充电。为节省电能,计算器都采用CMOS工艺制作的大规模集成电路〔见互补金属-氧化物-半导体集成电路〕,并在内部装有定时不操作自动断电电路。计算器可选用的外围设备有微型打印机、盒式磁带机和磁卡机等。本计算器是以MCS-51系列单片机AT89C52为核心构成的简易计算器系统。该系统通过单片机控制,实现对4*4键盘扫描进展实时的按键检测,并把检测数据存储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进展储存与相应处理转换,之后送入LED显示器动态显示。整个系统可分为两个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据1602显示。3.1.4AT89C52系列单片机简介你这是单片机教材吗你都用了8页纸来说单片机了,加上前面那页9页!!!这根本就是把单片机那本书的第一章粘贴上去吧!!全部删掉,51单片机是谁都知道是啥的东西,根本不需要你来给大家介绍。你如要介绍单片机,就简单点说说单片机的构造,重点放在单片机的最小系统,幅面一页纸以内,加上图,最多不能超过1页半纸。把单片机的内容全放在“3.1单片机最小系统〞一节中。你这是单片机教材吗你都用了8页纸来说单片机了,加上前面那页9页!!!这根本就是把单片机那本书的第一章粘贴上去吧!!全部删掉,51单片机是谁都知道是啥的东西,根本不需要你来给大家介绍。你如要介绍单片机,就简单点说说单片机的构造,重点放在单片机的最小系统,幅面一页纸以内,加上图,最多不能超过1页半纸。把单片机的内容全放在“3.1单片机最小系统〞一节中。eq\o\ac(○,1)AT89C52单片机的硬件构造如图3-1所示,为AT89C52的硬件构造图。AT89C52单片机的内部构造与MCS-51系列单片机的构成根本一样。CPU是由运算器和控制器所构成的。运算器主要用来对操作数进展算术、逻辑运算和位操作的。控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各局部能自动而协调地工作。它的程序存储器为8K字节可重擦写Flash闪速存储器,闪烁存储器允许在线+5V电擦除、电写入或使用编程器对其重复编程。数据存储器比51系列的单片机相比大了许多为256字节RAM。AT89C52单片机的指令系统和引脚功能与MCS-51的完全兼容。单片机AT89C52构造框图如图3.1.1所示。小四号不过反正可能要删了,后面的单片机局部有问题我就不标注了小四号不过反正可能要删了,后面的单片机局部有问题我就不标注了FLASHCPU串行通讯口RAMFLASHCPU串行通讯口RAM输入输出接口计数器定时器时钟输入输出接口计数器定时器时钟图3.1.1单片机AT89C52构造框图eq\o\ac(○,2)主要性能参数•8K字节可重擦写Flash闪速存储器•1000次可擦写周期•全静态操作:0Hz-24MHz•三级加密程序存储器•256×8字节内部RAM•32个可编程I/O口线•3个16位定时/计数器•8个中断源•可编程串行UART通道•低功耗空闲和掉电模式AT89C52外部引脚图如图图3.1.2所示:图3.1.2AT89C52外部引脚图eq\o\ac(○,3)AT89C52管脚说明VCC:电源GND:接地P0口:P0口是一个8位漏级开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0口端口写〞1〞时,引脚作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来承受指令字节:在程序效验时,输出指令字节。程序效验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位是双向I/O口,P1的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑电平。对P1口写〞1〞时,内部上拉电阻的原因,将输出电流ILL。此外,与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入〔P1.0/T2〕和输出〔P1.1/T2EX〕,具体如表3.1.1所示。表3.1.1P1.0和P1.1的第二功能引脚号功能特性P1.0T2〔定时/计数器2外部计数脉冲输入〕,时钟输出P1.1T2EX定时/计数2捕获/重装载触发和方向控制在Flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲级可驱动吸收或输出电流4个TTL逻辑电平。对P2口写〞1〞时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。在访问外部好曾许存储器或用16位地址读取外部数据存储器时,P2口送出高8位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口接收低8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑电平。对P3口写〞1〞时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。P3口除了作为一般、的I/O口线外,更重要的是它的第二功能,如表3.1.2所示:表3.1.2P3口引脚第二功能引脚号第二功能P3.0RXD〔串行输入〕P3.1TXD〔串行输出〕P3.2INT0〔外部中断0〕P3.3INT1〔外部中断1〕P3.4T0〔定时器0外部输入〕P3.5T1〔定时器1外部输入〕P3.6WR〔外部数据存储器写选通〕P3.7RD〔外部数据存储器读选通〕在Flash编程和校验时,P3口也接收一些控制信号。RST:复位输入。晶振工作时,RST脚持续2个机器周期以高电平将使用单片机复位。ALE/:地址锁存器控制信号〔ALE〕是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚〔〕也使用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置〞1〞,ALE操作无效。这一位置〞1〞,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位的设置对微控制器处于外部执行模式下无效。:外部程序储存器选通信号〔〕是外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据储存器时,将不被激活。:访问外部程序存储器控制信号。为使能从0000H—FFFFH的外部程序存储器读取指令,端必须保持低电平〔接地〕。为了执行内部程序指令,应该接VCC。在flash编程期间,也承受12伏VPP电压。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。eq\o\ac(○,4)存储器构造MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。1.程序存储器如果EA引脚接地,程序读取只从外部存储器开场。对于89C52,如果EA接VCC,程序先从内部存储器〔地址为0000H~1FFFFH〕开场,接着从外部寻址,寻址范围为:2000H~FFFFH。2.数据存储器AT89C52有256字节RAM。高128字节与特殊功能存放器重叠。也就是说高128字节与特殊功能存放器有一样的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高字节RAM还是特殊功能存放器空间。直接寻址方式访问特殊功能存放器〔SFR〕。eq\o\ac(○,5)定时器1.定时器0和定时器1在AT89C52中,定时器0和定时器1都是16位加法计数构造,分别由TH0〔地址8CH〕和TL0〔地址8AH〕及TH1〔地址8DH〕和TL1〔地址8BH〕两个8位计数器组成。这4个计数器均属于专用存放器之列。每个定时器/计数器都有定时和计数两种功能。2.计数功能所谓的计数功能是指对外部事件进展计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外脉冲进展计数。MCS-51系列的芯片有T0〔P3.4〕和T1〔P3.5〕两个信号引脚,分别就是这两个计数器的计数输入端。外部输入的脉冲在负跳变时有效,进展计数器加1。计数方式下,单片机在每个机器周期的S5P2拍节对外部计数脉冲进展采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效计数脉冲。在下一个机器周期的S3P1进展计数。可见采样计数脉冲是在2个机器周期进展的。鉴于此,计数脉冲的频率不能高于振荡脉冲的频率不能高于振荡脉冲频率的1/24。3.定时功能定时器也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。也就是每个机器周期计数加1。由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。如果单片机采用12MHz晶体,则计数频率为1MHz。即每微秒计数器加1。这样不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预置值。4.定时器2定时器2是一个16位定时器/计数器,它既可以作定时器,又可以做事件计数器。其工作方式由特殊存放器T2CON中的C/T2位选择〔如表2所示〕。定时器2有三种工作模式:捕捉方式、自动重载〔向上或向下计数〕和波特率发生器。如表3.3所示,工作模式由T2CON中的相关为选择。定时器2有2个8位存放器:TH2和TL2。在定时工作方式中,每个机器周期,TL2存放器都会加1。由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。定时器2工作模式如表3.1.3所示:表3.1.3定时器2工作模式RCLK+TCLKCP/RL2TR2MODE00116位自动重载01116位捕捉1×1波特率发生器××0不用在计数工作方式下,存放器在相关外部输入角T2发生1至0的下降沿时增加1。在这种方式下,每个机器周期的S5P2期间采样外部输入。一个周期采样到高电平,而下一个周期采样到低电平,计数器加1。在检测到跳变的这个周期的S3P1期间,新的计数值出现在存放器中。因为识别1—0的跳变需要2个机器周期〔24个晶振周期〕,所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在采样前采样到一次,电平应该至少在一个完整的机器周期内保持不变。T2MOD-定时器2控制存放器如表3.1.4所示:表3.4T2MOD-定时器2控制存放器T2MOD地址:0C9H复位值:×××××00BT2OEDCEN76543210符号功能—无定义,预留扩展T2OE定时器2输出允许位DCEN置1后,定时器2可配置向上或向下计数eq\o\ac(○,6)中断AT89C52有6个中断源:两个外部中断〔INT0和INT1〕,三个定时中断定时器0、1、2和一个串行中断。每个中断源都可以通过置位或去除特殊存放器IE中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断总控制位EA,它能制止所有中断。如表3.5所示,IE.6位是不可用的。对于AT89S52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被存放器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2或EXF2激活中断。标志位也必须由软件清0。定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2的标志位TF2在计数溢出的那个周期被置位,在同一个周期被电路捕捉下来。中断允许控制位如表3.1.5所示:表3.1.5中断允许控制位符号位地址功能EAIE.7中断允许控制位,EA=0,中断总制止;EA=1,各中断由各自的控制位设定-IE.6预留ET2IE.5定时器2中断允许控制位ESIE.4串行口中断允许控制位ET1IE.3定时器1中断允许控制位EX1IE.2外部中断1允许控制位ET0IE.1定时器0中断允许控制位EX0IE.0外部中断0允许控制位eq\o\ac(○,7)晶振特性AT89C52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟远驱动器件的话,XTAL2可以不接,而从XTAL1接入。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。石英晶振C1,C2=30PF+-10PF陶瓷谐振器C1,C2=40PF+-10PFeq\o\ac(○,8)空闲模式在空闲工作模式下,CPU处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能存放器的内容保持不变。空闲模式可以被任一个中断或硬件复位中止。由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件制止访问内部RAM,而可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。eq\o\ac(○,9)掉电模式在掉电模式下,晶振停顿工作,激活掉电模式的指令是最后一条执行指令。片上RAM和特殊功能存放器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。复位重新定义例如SFR的值。在VCC未恢复到正常工作电压时,硬件复位不能无效。并且应保持足够长的时间以使晶振重新工作和初始化。空闲模式和掉电模式下的外部引脚状态如表3.1.6所示:表3.1.6空闲模式和掉电模式下的外部引脚状态模式程序存储器ALEPESNPORT0PORT1PORT2PORT3空闲内部11数据数据数据数据空闲外部11浮空数据地址数据掉电内部00数据数据数据数据掉电外部00浮空数据数据数据以上8页均为单片机内容,全部删了。以上8页均为单片机内容,全部删了。3.2矩阵按键局部键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,假设无硬件去抖动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。矩阵按键扫描程序是一种节省I/O口的方法,按键数目越多节省I/O口就越可观,思路:先判断某一列〔行〕是否有按键按下,再判断该行〔列〕是哪一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。采用4x4键盘与单片机的P1口相连,连接电路如图4所示。*设为复位键,按下时,清零,液晶显示为0。按键说明图如图3.2.1所示:句号。下同句号。下同按键电路流程图如图3.1.2所示:图3.2.1按键说明图模糊。图和图名要放在同一页。位置不够另起页。模糊。图和图名要放在同一页。位置不够另起页。图3.1.2按键电路流程图3.3液晶显示器局部eq\o\ac(○,1)1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图3.3.1所示:图3.3.11602字符型液晶显示器实物图eq\o\ac(○,2)1602LCD的根本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大局部为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差异,两者尺寸差异如图3.3.2所示:图3.3.21602LCD尺寸图eq\o\ac(○,3)1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最正确工作电压:5.0V字符尺寸:2.95×4.35(W×H)mmeq\o\ac(○,4)引脚功能说明1602LCD采用标准的14脚〔无背光〕或16脚〔带背光〕接口,各引脚接口说明如表3.3.1所示:表3.3.1引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器比照度调整端,接正电源时比照度最弱,接地时比照度最高,比照度过高时会产生〞鬼影〞,使用时可以通过一个10K的电位器调整比照度。第4脚:RS为存放器选择,高电平时选择数据存放器、低电平时选择指令存放器。第5脚:R/W为读写信号线,高电平时进展读操作,低电平时进展写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。eq\o\ac(○,5)1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表3.3.2所示:表3.3.2控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM〕10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。〔说明:1为高电平、0为低电平〕指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表如表3.3.3所示:表3.3.3根本操作时序表读状态输入RS=L,R/W=H,E=H输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无读写操作时序如图3.3.3和3.3.4所示:图3.3.3读操作时序图3.3.4写操作时序图eq\o\ac(○,6)1602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,1602的内部显示地址图如图3.3.5所示:图3.3.51602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B〔40H〕+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器〔CGROM〕已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比方大写的英文字母〞A〞的代码是01000001B〔41H〕,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母〞A〞,字符代码与图形对应图如图图3.3.6所示:图3.3.6字符代码与图形对应图eq\o\ac(○,7)1602LCD的一般初始化〔复位〕过程延时15mS写指令38H〔不检测忙信号〕延时5mS写指令38H〔不检测忙信号〕延时5mS写指令38H〔不检测忙信号〕以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置eq\o\ac(○,8)硬件使用原理图1602液晶显示模块可以和单片机AT89C51直接接口,电路如图3.3.7所示:图3.3.7硬件使用原理图第四章单片机!!系统软件设计软件设计!!系统软件设计本系统程序包括主程序、键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序等。主程序用于系统初始化,子程序调度等。键盘扫描子程序用于扫描键盘状态,将被按键的位置号存入缓冲器中。发送键码子程序用于将缓冲区键的接通码或断开码发送给单片机接口。发送数据子程序用于将数据发给单片机接口。接收命令子程序用于接收单片机接口发来的键盘命令。4.1主程序设计主程序通过键盘扫描子程序进展各行扫描是否有按键,消抖及重键处理:通过软件上延时程序来消除抖动;采用后按键优先处理,即多键同时按下时,只重复发送最后按下键的扫描码。主程序流程图如图4.1.1所示:图4.1.1主程序流程图4.2键扫程序设计键扫程序的过程为:开场时,先判断是否有键闭合,无键闭合时,返回继续判断,有键闭合时,先去抖动,然后确定是否有键按下,假设无键按下,则返回继续判断是否有键闭合,假设有键按下,则判断键号,然后释放,假设释放按键完毕,则返回,假设没有释放按键,则返回继续释放。其流程图如图4.2.1所示。YYN开场有键闭合否去抖动确有键按下判断键号释放返回返回YNYN图4.2.1键扫程序流程图为什么这图这里缺一点点,那里又没一点,字又不全为什么这图这里缺一点点,那里又没一点,字又不全4.3算术运算程序设计算术运算程序的过程为:先判断输入的运算符是+、-、*、/中的哪一个,假设是+或-,则要判断运算结果是否溢出,溢出则显示错误信息,没溢出就显示运算结果,假设是/,则要先判断除数是否为零,为零就显示错误信息,不为零则显示运算结果,假设是-,则直接显示运算结果。其流程图如图4.3.1所示:开场开场运算符加乘减除运算结溢出除数为0错误送显示缓冲数值送显示缓冲YYNN图4.3.1算术运算程序设计流程图4.4显示程序设计显示程序的过程为:显示开场时,先进展LCD的初始化,然后依次判断显示位置。其流程图如图4.4.1所示:这图的字是太太太大了吧,最多跟正文一样就好啦,这是得显示这图有多么多么重要这图的字是太太太大了吧,最多跟正文一样就好啦,这是得显示这图有多么多么重要图4.4.1显示程序流程图第五章单片机系统安装、调试系统5.1软件仿真单片机做的系统的仿真单用PROTEL怎么仿真呢连软件也没有,起码都要用proteus吧你这个仿真局部干脆就不要了。电路图还是要的,移个位置,见下标注。单片机做的系统的仿真单用PROTEL怎么仿真呢连软件也没有,起码都要用proteus吧你这个仿真局部干脆就不要了。电路图还是要的,移个位置,见下标注。利用Protel仿真软件进展全面的仿真测试,截图如图5.1.1所示,硬件连接PCB图如图5.1.2图所示:图太小了,论文是允许把总电路这类大图旋转90度放置的。还有个问题,从这个图,也看不出仿真效果呀。。。图太小了,论文是允许把总电路这类大图旋转90度放置的。还有个问题,从这个图,也看不出仿真效果呀。。。这最多就是个系统电路图吧你的第三章硬件设计,还欠个总电路图呢。把这个移到第三章最后那,说完各局部,总的该出场了。图5.1软件仿真截图图5.1.2硬件连接PCB图5.2安装步骤如果你没有真正的仿真,那这升级为5.1.如果你没有真正的仿真,那这升级为5.1.5.2.1检查元件的好坏按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进展检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。5.2.2放置、焊接各元件按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。现在列出电源自锁开关、供电方式和轻触按键的制作安装方式。其中,电源自锁开关的连接方式如图5.2.1所示:eq\o\ac(○,1)电源自锁开关制作安装图5.2.1电源开关软件及硬件图图5.2.1中,P2是电池盒接口或者是USB输入的接口,图5.3中SW1为电源开关,用来接通电源和断开电源。eq\o\ac(○,2)供电方式制作安装原理图如图5.2.2所示,实物图如图5.2.3所示:图5.2.2供电原理图图5.2.3供电实物图eq\o\ac(○,3)轻触开关制作安装轻触开关的原理图如图5.2.4所示,实物图如图5.2.5所示:图5.2.4轻触开关原理图图5.2.5轻触开关按键接法这种按键接法:1.上下接两个脚〔一个接地,一个接单片机IO口〕2.接斜对脚是绝对不会接错的〔一个接地,一个接单片机IO口〕基于以上制作出来的计算器能进展根本的四则运算,仿真软件中的功能实现成功。实际效果图如以下列图所示,包括正反面以及运算界面,如图5.2.6所示:图5.2.6实物图5.3调试5.2?5.2?5.3.1硬件调试常见故障:1、逻辑错误:它是由设计错误或加工过程中的工艺性错误所造成的。这类错误包括错线、开路、短路等。2、元器件失效:有两方面的原因:一是器件本身已损坏或性能不符合要求;二是组装错误造成元件失效,如电解电容、集成电路安装方向错误等。3、可靠性差:因其可靠性差的原因很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;走线和布局不合理也会引起系统可靠性差。4、电源故障:假设样机由电源故障,则加电后很容易造成器件损坏。电源故障包括电压值不符合设计要求,电源引线和插座不对,功率缺乏,负载能力差等。调试方法:包括多级调试和联机调试。在调试过程中要针对可能出现的故障认真分析,直至检查出原因并排除。本次硬件调试过程中,对所出现的问题进展了认真的分析和改正,最后能够很好的到达设计要求的效果。5.3.2软件调试软件调试一般分为以下四个阶段:1、编写程序并查错;2、在C语言的编译系统中编译源程序3、对程序进展编译连接,并及时发现程序中存在的错误;4、改正错误。在本次调试中出现的问题有:1、在程序中有的函数名未定义;2、在抄录程序时,少录入一些字符,如:〞;〞、〞{“、〞-〞等符号,而出现错误;3、有一些函数名录入时少写一个字母或顺序颠倒;4、没有注意函数名的调用及定义;5、芯片引脚定义出错而导致没有实验现象。在软件调试过程中,对出现的错误进展了认真的分析和修改,屡次调试成功后,能够很好的到达既定的设计效果。完毕语通过这次电子综合实践的学习,着重培养了我独立思考、综合运用所学有关知识的能力,能更好的稳固单片机、c语言、模拟电路、数字电路学习的内容。我的题目是基于AT89C52的计算器设计,对于我来说,这是一次考验。怎样才能找到课堂所学与实际应用的最正确结合点怎样让自己的业余更接近专业怎样让自己的方案更具有序性,而不会忙无一用这都是我们所要考虑和努力的。这次毕业设计我学到很多很多的东西,学会了怎么样去制定方案,怎么样去实现这个方案,并掌握了在执行过程中怎么样去抑制心理上的不良情绪。不仅稳固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进展一些简单的编程。通过这次毕业设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的缺乏之处,例如对以前所学过的知识理解得不够深刻,掌握得不够结实,对编程语言掌握得不够好等。致谢首先,衷心感谢我的指导教师。本文是在何惠芳精心指导下完成的。何教师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生了重要影响。对于我在写作论文过程中给予的指导,严谨求实的治学态度,使我受益匪浅。在此表示衷心的感谢。衷心感谢所有给予我支持、帮助和关心的领导、教师、亲友和同学们!另外,我还要特别感谢同学们对我实验以及论文写作的指导,他们为我完成这篇论文提供了巨大的帮助。最后,再次对关心、帮助我的教师和同学表示衷心感谢。参考文献[1]杨文龙编.单片机原理及应用[M].西安:西安电子科技大学出版社,2005.[2]杨将新,李华军编.单片机程序设计及应用[M].北京:电子工业出版社,2006.[3]陈有卿,张晓东编.报警集成电路和报警器制作实例[M].北京:北京人民邮电出版社2001.[4]高文焕,刘润生编.电子线路根基[M].北京:北京高等教育出版社,1997.[5]王世昌编.电子线路辅导和题选[M].上海:上海科学技术文献出版社,1999.[6]王远编.模拟电子技术根基学习指导书北[M].北京:清华大学出版社,1998.[7]邱关源主编.电路〔上﹑下册〕[M].第四版.北京:高等教育出版社,1999.附录-程序源代码/*接盘按键说明:|1|2|3|+|-------------|4|5|6|-|-------------|7|8|9|*|-------------|C|0|=|/|*///操作简介//按第一个数,再按'+-*/',再按'='显示出结果,然后按C清屏//加最大9999+9999=19998//减最大9999-0=9999//乘最大9999*9999=99980001//除1/9=0.1111保存小数点后4位#include<reg51.h>#defineuintunsignedint#defineucharunsignedchar//LCD1602//P00-07====D0-7sbitrs=P2^7;//指令or数据sbitwela=P2^6;//读or写sbitlcden=P2^5;//使能信号//LCD1602//KEY//P1口//KEYucharcodetable[]=““;longintdata_a,data_b;//第一个数和第二个数longintdata_c;//计算结果uchardispaly[10];//显示缓冲//************************************************************************///描述:延时tus函数//************************************************************************/voidLCD_Delay_us(unsignedintt){while(t--);//t=0,退出}//************************************************************************///描述:延时tms函数//************************************************************************/voidLCD_Delay_ms(unsignedintt){unsignedinti,j;for(i=0;i<t;i++)//执行t次循环for(j=0;j<113;j++)//执行113次循环;}//************************************************************************///描述:1602液晶写指令//************************************************************************/voidwrite_com(ucharcom)//1602液晶写指令{rs=0;//写指令lcden=0;//使能1602P0=com;//写入指令comLCD_Delay_ms(1);//延时1mslcden=1;//使能1602LCD_Delay_ms(2);//延时2mslcden=0;//使能1602}//************************************************************************///描述:1602液晶写数据//************************************************************************/voidwrite_date(uchardate)//1602液晶写数据{rs=1;//写数据lcden=0;//使能1602P0=date;//写入数据dateLCD_Delay_ms(1);//延时1mslcden=1;//使能1602LCD_Delay_ms(2);//延时2mslcden=0;//使能1602}//************************************************************************///描述:指定x,y写入字符函数//************************************************************************/voidW_lcd(unsignedcharx,unsignedchary,unsignedcharData){if(y==0){write_com(0x80+x);}//第一行else{write_com(0xc0+x);}//第二行write_date(Data);//写入数据}//指定x,y写入字符串函数voidLCD_Write_String(unsignedcharx,unsignedchary,unsignedchar*s){if(y==0){write_com(0x80+x);}//第一行else{write_com(0xC0+x);}//第二行while(*s)//{write_date(*s);s++;}//写入数据}//************************************************************************///描述:初始化液晶,及画面初始化//************************************************************************/voidinit_lcd(void)//初始化液晶,及画面初始化{wela=0;//写液晶lcden=0;//使能1602write_com(0x38);//8位总线,双行显示,5X7的点阵字符LCD_Delay_us(100);//延时100uswrite_com(0x0c);//开显示,无光标,光标不闪烁write_com(0x06);//光标右移动write_com(0x01);//清屏write_com(0x80);//DDRAM地址归0}//************************************************************************///描述:反转法键盘扫描//************************************************************************/shortkeycheckdown()/*反转法键盘扫描*/{shorttemp1,temp2,temp,a=0xff;P1=0xf0;/*输入行值〔或列值〕*/LCD_Delay_ms(20);/*延时*/temp1=P1;/*读列值〔或行值〕*/P1=0xff;LCD_Delay_ms(20);/*延时*/P1=0x0f;/*输入列值〔或行值〕*/LCD_Delay_ms(20);/*延时*/temp2=P1;/*读行值〔或列值〕*/P1=0xff;temp=(temp1&0xf0)|(temp2&0xf);/*将两次读入数据组合*/switch(temp)/*通过读入数据组合判断按键位置*/{case0x77:a=0x0d;break;//按键/case0x7b:a=0x0e;break;//按键=case0x7d:a=0;break;//按键0case0x7e:a=0x0f;break;//按键CEcase0xb7:a=0x0c;break;//按键*case0xbb:a=0x9;break;//按键9case0xbd:a=0x8;break;//按键8case0xbe:a=0x7;break;//按键7case0xd7:a=0x0b;break;//按键-case0xdb:a=0x6;break;//按键6case0xdd:a=0x5;break;//按键5case0xde:a=0x4;break;//按键4case0xe7:a=0x0a;break;//按键+case0xeb:a=3;break;//按键3case0xed:a=2;break;//按键2case0xee:a=1;break;//按键1default:a=0xff;}returna;/*返回按键值*/}voiddisplay_a()//显示数据a{dispaly[3]=data_a%10000/1000;//千dispaly[2]=data_a%1000/100;//百dispaly[1]=data_a%100/10;//十dispaly[0]=data_a%10;//个write_com(0x80+0);//显示数据aif(data_a>999){write_date('0'+dispaly[3]);}//显示千位if(data_a>99){write_date('0'+dispaly[2]);}//显示百位if(data_a>9){write_date('0'+dispaly[1]);}//显示十位write_date('0'+dispaly[0]);//显示个位}voiddisplay_b()//显示数据b{write_com(0x80+7);//第一行dispaly[3]=data_b%10000/1000;//千dispaly[2]=data_b%1000/100;//百dispaly[1]=data_b%100/10;//十dispaly[0]=data_b%10;//个if(data_b>999){write_date('0'+dispaly[3]);}//显示千位if(data_b>99){write_date('0'+dispaly[2]);}//显示百位if(data_b>9){write_date('0'+dispaly[1]);}//显示十位write_date('0'+dispaly[0]);//显示个位}//计算结果voiddisplay_c(x){if(data_c<100000000&&data_c>-1)//溢出时显示错误{dispaly[8]=data_c%1000000000/100000000;//万万di
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 痘肌专用控油爽肤水企业制定与实施新质生产力战略研究报告
- 保险行业法律风险警示
- 水上运动装备设计企业制定与实施新质生产力战略研究报告
- 桥梁建筑外观设计行业深度调研及发展战略咨询报告
- 高端品牌专卖店拓展企业制定与实施新质生产力战略研究报告
- 音乐产业创新创业大赛行业跨境出海战略研究报告
- 生态污水处理景观行业跨境出海战略研究报告
- 2025年LNG工艺包及装置合作协议书
- 创意视觉设计平台企业制定与实施新质生产力战略研究报告
- 人教版版八年级下册英语一至三单元知识点
- 屋顶分布式光伏发电EPC项目 投标方案(技术方案)
- JTG D30-2015 公路路基设计规范
- 一年级下册口算题卡大全(50套直接打印版)
- 【基于AMPL数学建模的S发电厂燃料收购运输线路优化设计方案11000字(论文)】
- JJG(交通) 187-2023 水泥混凝土搅拌机
- 2022-2023学年湖南省衡阳市七年级(下)期末数学试卷(含解析)
- A型肉毒素治疗知情同意书 注射知情同意书
- 盘扣式落地外脚手架施工方案
- 混凝土采购项目整体供货方案
- 江苏省徐州市2023年英语小升初试卷(含答案)
- 慢性肾脏病英文
评论
0/150
提交评论