[工学]基于单片机的简易计算器.doc

上传人:sccc 文档编号:4532656 上传时间:2023-04-26 格式:DOC 页数:52 大小:647.50KB
返回 下载 相关 举报
[工学]基于单片机的简易计算器.doc_第1页
第1页 / 共52页
[工学]基于单片机的简易计算器.doc_第2页
第2页 / 共52页
[工学]基于单片机的简易计算器.doc_第3页
第3页 / 共52页
[工学]基于单片机的简易计算器.doc_第4页
第4页 / 共52页
[工学]基于单片机的简易计算器.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《[工学]基于单片机的简易计算器.doc》由会员分享,可在线阅读,更多相关《[工学]基于单片机的简易计算器.doc(52页珍藏版)》请在三一办公上搜索。

1、盐城工学院本科生毕业设计说明书(2011)毕业设计说明书基于单片机的简易计算器设计专业电子信息工程学生姓名雷文涛班级BMZ电子072学号0761417208指导教师袁敏完成日期2011年6月5日基于单片机的简易计算器设计摘 要:计算器在人们的日常中是比较的常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的八位计算器。该设计系统是以AT89C51为单片机,用74LS245为显示位控制, P1口作为输入端,外接4*4的键盘,通过键盘扫描来对输入数的控制,并外接驱动电路,系统采用LED数码管作为显示器,软件程序采用均采用C语言编写,便

2、于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。计算器将完成的功能有整数的加,减,乘,除。本系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。关键词:MCS-51 单片机;计算器;加减乘除 Simple Calculator Based on microcontrollerAbstract:Calculators in people

3、s daily life are among common electronic products. However, it is further developing with more powerful functions. Based on the concept, MCU eight calculator by microcontroller is designed. This system is based on AT89C51 single-chip microcomputer with 74LS245 as control of display position, P1 as i

4、nput and external 4*4 keyboards, input numbers controlled by keyboard scanning and external drive circuits. The system uses LED digital display and software programs are written in C language, facilitating transplantation and upgrade. The report introduces hardware structure, working principle and s

5、oftware programming of the system. The functions of calculators include add, subtract, multiply and divideThis system introduced the aspects as follows: simple calculator based on the basic functions of SCM, a simple exposition of the matrix keyboard and digital dynamic display, design of the whole

6、system, diagram of overall process of the system, analysis of the function module divides and a detailed illustration of electronic components. Detailed descriptions go for functional modules of system software and hardware.Key words: MCS-51 microcontroller; calculator; Math 目 录1绪 论11.1 课题研究背景与意义11.

7、1.1 51单片机11.1.2 课题研究意义22总体方案设计22.1 设计内容与要求22.1.1 设计内容22.1.2 设计要求32.2 设计目标和实现方法32.3方案设计32.4 系统硬件电路设计43硬件设计53.1 运算模块53.2 74ls245芯片103.3 输入模块113.4 显示模块133.4.1数码管显示154系统软件设计164.1 主程序流程图设计174.2 LED显示程序流程图设计204.3 读键输入程序流程图设计215 调试及性能分析245.1 Proteus软件仿真245.2 硬件电路的调试265.3 应用软件的编制、调试265.4 性能分析27结束语28致谢29附录1

8、简易计算器源程序32附 录2 单片机简易计算器原理图46基于单片机的简易计算器设计1绪 论本设计采用89C51 芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LED 显示。如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。另外,实例所设计的计算器是用LED 数码管显示的,当然也可以用其他的器件显示,如LCD 显示屏,这样就可以显示出更多的字符,在此基础上,还可以编写更加完善的程序来实现更多的计算功能。设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。1.1 课题研究背景与意义随

9、着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了, 单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。1.1.1 51单片机近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。单片机的发展趋势:低功耗CMOS化;微

10、型单片化;主流与多品种共存;单片机从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。 纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:A.低功耗CMOS化 MCS-51系列的8951推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象89C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工

11、作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。 B.微型单片化 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LED(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯

12、片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。 C.主流与多品种共存 现在虽然单片机的品种繁多,各具特色,但仍以89C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。所以89C51为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价

13、质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。1.1.2 课题研究意义单片机具有集成度高,系统结构简单,控制性能强,使用灵活方便,成本低等优点。使用单片机的简易计算器,提供了一种低成本、低功耗、可靠的设计系统,它能根据需要进行一些简单的运算,它可以随着编辑软件的不同再加上不同运算方式的计算规则。 通过本次课程设计,运用MCS-51系列单片微型计算机及其应用所学知识及查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高

14、综合运用所学知识和设计能力的目的。通过本次设计训练,在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。2总体方案设计2.1 设计内容与要求2.1.1 设计内容毕业设计任务和主要内容a设计一基于51单片机的简易计算器,允许对输入数据进行加减乘除运算及LED 显示;b完成系统硬件电路设计,包括运算模块 74ls245芯片 输入模块 数码管显示模块 ;c利用protues完成系统软件设计并作出总的硬件电路图;d完成系统调试工作。2.1.2 设计要求a显示部分:采用8位LED数码管显示;b按键部分:采用4*4键盘;c可以完成计算器的键盘输入,

15、进行加、减、乘、除的基本四则运算,并在LED上显示相应的结果。2.2 设计目标和实现方法为了满足计算器的基本要求,可以进行基本的运算(加减乘除),数据归零和出错警告提示,采用基于单片机设计计算器,并用LED 数码管显示数据,4*4 的矩阵键盘实现数据输入。设计和调试要用到Protues软件。2.3方案设计 根据功能和指标要求,本系统选用MCS 51 单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计考虑如下:a由于要设计的是简单的计算器,可以进行四则运算,对数字的大小范围要求不高故采用可以进行四位数字的运算,选用8个LED 数码管显示数据和结果。b另外键盘包括数字键(09

16、)、符号键(+、-、)、清除键和等号键,故只需要16 个按键即可。系统模块图:单片机运算模块显示模块输入模块图2-1 系统模块图启动计算机输入数LED显示初始值始值LED显示按下功能键按下onc键jian是否结束结束LED显示计算结果按下功能键LED显示输入数否是图2-2 程序流程图程序流程图如上面图2-2所示:根据需要可以采用自上而下的程序设计方法,此方法先从主程序开始设计,然后再编制各从属程序和子程序,层层细化逐步求精,最终完成一个复杂程序的设计。这种方法比较符合人们的日常思维,缺点是一级的程序错误会对整个程序产生影响。2.4 系统硬件电路设计硬件电路的设计包含两部分内容:一是系统扩展,即

17、单片机自身的功能单元如ROM、RAM、I/O口、定时器/计数器等容量不能满足应用系统的需要时,必须在片外进行扩展,选择适当的芯片,设计相应的电路;二是系统配置,即按照系统的要求配置外围设备,如键盘、显示器等,要设计合适的接口电路。 很多常用的硬件电路的设计可在Proteus软件中实现,通过Proteus软件的使用,不但可以实现教材上的大部分实验。而且可以学到硬件电路设计的方法硬件电路的设计原则如下:a.在性价比满足应用系统要求的基础上,选择更可靠、更熟悉的单片机,缩短研制周期。b.尽可能选择较成熟的典型应用电路,以提高系统的可靠性。c.单片机内部的资源与外部扩展资源应在满足应用系统设计要求的基

18、础上留有余地,位进一步升级和扩展其功能提供方便。d.应充分结合软件方案统筹考虑硬件结构,通常硬件功能较完善,其相应的软件就简单,但硬件的成本较高;而硬件功能略低,其相应的软件就复杂。实际中应尽量以软件替代硬件来降低成本。e.整个系统的相关器件应尽可能做到性能匹配。f.充分考虑整个系统的抗干扰设计,如选择具有抗干扰设计的单片机并充分筛选芯片与器件,在电路中采用隔离和屏蔽措施等。简易计算器的硬件设计主要包括系统单片机运算模块,数码管显示模块,74ls245芯片模块,编码键盘模块3硬件设计3.1 运算模块MCS-51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一

19、台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能,如图3-1所示:图3-1 AT89C51引脚图与此同时AT89C51也是一种带4K字节FLASH存储器(FPEROMFlash Programmable

20、and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:a与MCS-51 兼容 b4K字节可编程FLASH存储器c寿命:10

21、00写/擦循环 d数据保留时间:10年 e全静态工作:0Hz-24MHz f三级程序存储器锁定 g1288位内部RAM h32可编程I/O线 i两个16位定时器/计数器 j5个中断源 k可编程串行通道 l低功耗的闲置和掉电模式 m片内振荡器和时钟电路 管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P

22、1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部

23、上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0

24、外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 P1P3端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。除此之外P3端口还用于一些专门功能,具体请看下表3-1:表3-1 P3口功能表P3引脚兼用功能P3.0串行通讯输入(RXD)P3.1串行通讯输出(TXD)P3.2外部中断0( INT0)P3.3外部中断1(INT1)P3.4定时器0输入(T0)P3.5定时器1输入(T1)P3.6外部数据存储器写选通WRP3.7外部数据存储器写选通RDR

25、ST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存

26、储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。51系列单片机8031、8051及89c51/89s51均采用40Pin封装的双列直接DIP

27、结构。上图是它们的引脚配置:40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。Vcc40脚正电源脚,工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。GND20脚接地端。 外接晶体引脚如图3-2所示:图3-2 外接晶体管引脚Pin19:时钟XTAL1脚, Pin18:时钟XTAL2脚,XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率

28、可以在1MHz-24MHz内选择。电容取30PF左右。 型号同样为AT89C51的芯片,在其后面还有频率编号,有12,16,20,24MHz可选。大家在购买和选用时要注意了。如AT89C51 24PC就是最高振荡频率为24MHz,40P6封装的普通商用芯片。在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的0000H处开始运行程序。常用的复位电路如下图3-3所示。图3-3 复位电路图复位

29、操作不会对内部RAM有所影响。当8951通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。什么叫复位?复位是单片机重新执行程序代码的意思。8951的复位方式可以是自动复位,也可以是手动复位,如图3-6所示。此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源, 以保证单片机内部RAM的数据不丢失。图3-4复位方式目前为止,单片机复位电路主要有四种类型:a.微分型复位电路;b.积分型复位电路;c.比较器型复位电路;d.看门狗型复位电路。为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电

30、路正常工作需要供电电源为5V5%,即4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。AT89C51的上电复位电路,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电

31、时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在一般的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。3.2 74ls245芯片 7

32、4ls245是常见的芯片,在这里它用来驱动LED,它是8路同相三态双向总线收发器,可以双向传送数据。74ls245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须介入74L245等 总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)*DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。74ls245: 8 双向3态缓冲电路。主要使用在数据的双向缓冲,原来常见于51的数据接口电路,比如,早期电路中,扩展了很多的8255/8155/8251/8253/573

33、等芯片的时候,担心8031的数据驱动能力不足,就使用一片245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路;245是双向的。看真值表就知道了。G0,DIR0,B-A;G=0, DIR=1, A-B;G=1, DIR=X, X=0或者1,输入和输出均为高阻态;高阻态的含意就是相当于没有这个芯片74ls245芯片如图3-5所示:图3-5 74ls245引脚图图3-6 74ls245内部结构3.3 输入模块 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式。为此,引入了矩阵键

34、盘的应用,采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为44个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率,如图3-7所示:图3-7 键盘按键键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。矩阵按键扫描程序是一种节省IO口的方法,按键数目越多节省IO口就越可观,思路:

35、先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省了硬件资源。另外,本键盘扫描程序,每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电阻接VCC,而接地

36、是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。当无按键闭合时,P10P13 与P14P17 之间开路;当有键闭合时,与闭合键相连的两条I/O 口线之间短路。判断有无按键按下的方法是:第一步,置列线P14P17 为输入状态,从行线P10P13 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P14P17

37、读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。图3-8 键盘电路3.4 显示模块发光二极管LED 是单片机应用系统中的一宗简单而常用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等。因而作为典型的外围器件,LED 显示单元是反映系统输出和操作输入的有效器件。LED 具备数字接口可以方便的和大年纪系统连接;它的优点是价格低,寿命长,对电压电流的要求低及容易实现多路等,因而在单片机应用系统中获得了广泛的应用,所以在此设

38、计中我首先选用了LED作为显示器件。如图3-9所示: 图3-9 数码显示管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用

39、时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字09的共阴极字形代码如下表3-2所示:表3-2 09八段数码管共阴级字形代码显示字型gFedcBa段码001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh9

40、11011116fhLED显示器由八段发光二极管组成,排列成8字形状,因此也成为八段LED显示器,器排列形状如下图所示: 图3-10 LED段码3.4.1数码管显示在本任务中用8位数码管显示当前数值的千,百,十,个,由于数码管个数多,如采用静态显示方式,则占用单片机的I/O口线太多,如果用定时器/计数器的串行移位寄存器工作方式及外接串入并出移位寄存器74LS164的方式,则电路复杂。所以,在数码管个数较多时,常采用动态显示方式。8位数码管的相同段并联在一起,由一个8位I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口(P0口)输出的字位码控制,即数码管显示的字形是

41、由单片机I/O口输出的字形码确定,而哪个数码管点亮是由单片机I/O口输出的字位码确定的。8个数码管分时轮流循环点亮,在同一时刻只有1个数码管点亮,但由于数码管具有余辉特性及人眼具有视觉暂留特性,所以适当地选取循环扫描频率,看上去所有数码管是同时点亮的,察觉不出闪烁现象。动态显示方式所接数码管不能太多,否则会因每个数码管所分配的实际导通时间太少,使得数码管的亮度不足。在本任务中,为了简便,字形码和字位码都没由加驱动电路,在实际应用中应加驱动电路。数码管有共阴极和共阳极两种,对于共阳数码管,字形驱动输出0有效,字位驱动输出1有效;而对于共阴数码管则相反,即:字形驱动输出1有效,字位驱动输出0有效。

42、LED有共阴极和共阳极两种。如图所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。LED数码管结构原理图:图3-11 高电平驱动共阴极 图3-12 低电平驱动共阳极4系统软件设计流程程序图是程序分析中最基本、最重要的分析技术,它是进行流程程序分析过程中最基本的工具。 流程程序图运用工序图示符号对生产现场的整个制造

43、程序做详细的记录,以便对零部件、产产品在整个制造程序中的操作、搬运、检验、储存、等待作详细的研究与分析,特别是用于分析其搬运距离和等待、储存等“隐藏成本”的浪费。 流程程序图是方法研究改进工作方法的有用工具。不论作业研究过程中运用何种技术,流程程序图总是必经的一步,它是应用最普遍的一种工具。 流程程序图由操作、搬运、检验、储存、等待五种符号构成。 流程程序图与工艺流程图的结构极为相似,其差别仅为加入了“搬运”,“贮存”,“暂存”,三种符号,除记录时间之外,再加上搬运距离。程序流程图是人们对解决问题的方法、思路或算法的一种描述。 1.流程图的优点: a采用简单规范的符号,画法简单; b结构清晰,

44、逻辑性强; c便于描述,容易理解。4.1 主程序流程图设计主模块是系统软件的主框架。结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。它的合理与否关系到程序最终功能的多少和性能的好坏。a.数据流程图上所有图形符号必须是前面所述的四种基本元素。 b.数据流程图的主图必须含有前面所述的四种基本元素,缺一不可。 c.数据流程图上的数据流必须封闭在外部实体之间,外部实体可以是一个,也可以是多个。 d.处理过程至少有一个输入数据流和一个输出数据流。 e.任何一个数据流子图必须与它的父图上的一个处理过程对应,两者的输入数据流和输出数据流必须一致,即所谓“平衡”。

45、 f.数据流程图上的每个元素都必须有名字。主程序流程图4-1所示:图4-1 运算主程序框图运算主程序设计,首先初始化参数,送LED低位显示“0”,高位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是功能键(“+”“-”“*”“/”“=” ),是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。程序代码如下:#include void Operation(char first16,char second16,char opn)float a,b;/数组转换成浮点数sscanf(first,%f,&a);sscanf(second,%f,&b);if(opn=+)a=a+b;else if(opn=-)a=a-b;else if(opn=*)a=a*b;else if(opn=/)a=a/b;/浮点数转化成数组if(a1000000)sprintf(first,%e ,a); elsesprintf(first,%f,a);194.2 LED显示程序流程图设计 8位LED显示的程序框图如图4-2所示:开始初始化显示电路关所有位显示取显示数据输出端码数据输出为选信号延时为选通信号移位指向下一个显示数据位完成返回否是图4-2 LED显示

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号