《基于单片机的数字秒表设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的数字秒表设计.doc(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 2011届学士学位论文 基于单片机的数字秒表设计学院 、 专业 物理与电子信息学院 电子信息工程 研 究 方 向 单板微型计算机 学 生 姓 名 学 号 指导教师姓名 指导教师职称 2011年4月29日基于单片机的数字秒表设计摘要 21世纪,单片机的发展非常的迅速。单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。它是一种集计数和多种接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种。本设计的数字电子秒表系统采用STC89C52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及独立键盘来设
2、计秒表,将软、硬件有机地结合起来。本设计的软件系统是用C语言编写的.包括一个定时器中断,4个独立键盘及软件消抖等。最后做成一个具有打开、关闭、复位、记忆功能的数字秒表。关键字 单片机;数字电子秒表;仿真,STC89C52Digital stopwatch design based on Single-Chip MicrocomputerSchool of Physics and Electronic Information Huaibei Normal University Abstract In the 21st century,the technology of SCM develops
3、very quickly. SCM which is a major piece of computer components is integrated into the chip micro-computer. It is a multi-interface and counting on the micro-controller integration, and intelligence products are widely used in industrial automation, and MCS-51 microcontroller is a typical and repres
4、entative. This design of digital electric stopwatch system employs STC89C52 single-chip microcomputer as the core part. Based on the principle of timing and counting, the stopwatch is designed by integrating display electric circuit, LED digital pipe and independent keyboard, combining both software
5、 and hardware. The software system of this design is written in C. The design includes a timer interrupt and four independent keyboards,software away shaking and so on. Finally it makes a digital stopwatch with functions of opening, closing , resting and memory. . Keyword Single-chip microcomputer;D
6、igital stopwatch;Simulation;STC89C52目 录1 引言11.1 单片机的背景11.2 单片机的应用22 整体设计方案42.1 单片机的基本结构42.2 单片机的选择93.秒表的硬件设计123.1 LED显示电路123.2 键盘控制电路153.3 译码器的使用163.4 单片机晶振和复位电路174 秒表的软件设计194.1 C程序整体设计思路194.2 主程序设计204.3 中断设计215 软件调试和结果265.1软件调试与烧写265.2 硬件仿真27结 论30参考文献31附 录31致 谢381 引言1.1 单片机的背景单片机即单片机微型计算机。用专业语言讲,单片
7、机就是在一块硅片上集成了微处理器、存储器及各种输入输出借口的芯片,这样一块芯片就具有了计算机的属性,因为被称为单片机微型计算机,简称单片机。单片机的前身叫做单板机,是将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备等装配在一块印刷电路板上,再配上监控程序,就构成一块单板机。单片机基本用于教学,后来发展为单片机。可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的
8、最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械里。它在整个装置中,起着至关重要的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机、智能手机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。将8位单片机的推出作为起点,单片机的发展历史大致可分为以下几个阶段:1
9、.第一阶段(1976-1978):单片机的控索阶段。以Intel公司的MCS48为代表。MCS48的推出是在工控领域的控索,参与这一控索的公司还有Motorola 等,都取得了满意的效果。这就是SCM的诞生年代,“单机片”一词即由此而来。2.第二阶段(1978-1982)单片机的完善阶段。Intel公司在MCS48基础上推出了完善的、典型的单片机系列MCS51。它在以下几个方面奠定了典型的通用总线型单片机体系结构:1)完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有很多机通信功能的串行通信接口。2)CPU外围功能单元的集中管理模式。
10、3)体现工控特性的位地址空间及位操作方式。4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。3.第三阶段(1982-1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着MCS51系列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。4.第四阶段(1990):微控制器的全面
11、发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。1.2 单片机的应用目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的
12、科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。1在智能仪器仪表上的应用。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能
13、化控制、各种报警系统,与计算机联网构成二级控制系统等。3在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。此外,单片机在工商,金融,科研、教育,国防航空航天等
14、领域都有着十分广泛的用途。 2 整体设计方案2.1 单片机的基本结构单片机是一种可通过编程控制的微处理器,单片机芯片自身不能单独运用于工程或者产品上,它必须要依靠外围数字器件或者模拟器件的协调才能发挥自身的强大功能。单片机内部包含中央处理器CPU、程序存储器ROM、数据存储器RAM、I/O口、定时计数器、外部中断、串行通信等内部结构。 1.中央处理器CPU中央处理器CPU是整个单片机的核心部件,是整个单片机最重要的部件。由运算与控制逻辑组成,还有终端系统与部分外部特殊功能寄存器等。是负责控制、指挥和调度整个单元系统的工作。2.运算器运算器的功能是进行算术运算和逻辑运算。可以对半字节(4位)、单
15、字节等数据进行操作。例如能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算和与、或、异或、求补、循环等逻辑操作,操作结果的状态信息送至状态寄存器。89C52运算器还包含有一个布尔处理器,用来处理位操作。它是以进位标志位C为累加器的,可执行置位、复位、取反、等于1转移、等于0转移、等于1转移且清0以及进位标志位与其他可寻址的位之间进行数据传送等位操作,也能使进位标志位与其他可移位寻址的位之间进行逻辑与、或操作。3.程序计数器PC程序计数器PC用来存放即将要执行的指令地址,共16位,可对64K程序存储器直接寻址。执行指令时,PC内容的低8位经P0口输出,高8位经P2口输出。4.令
16、寄存器指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经译码后由定时与控制电路发出相应的控制信号,完成指令功能。本设计采用ATMEL的AT89C52微处理器,主要基于以下几个因素:1) AT89C52为51内核,仿真调试的软硬件资源丰富。2) 性价比高,货源充足。3) 功耗低,功能强,灵活性高。4) DIP40封装,体积小,便于产品小型化。5) 为EEPROM程序存储介质,1000次以上擦写周期,便于编程调试。6) 工作电压范围宽:2.7V6V,便于交直流供电。5.数据存储器RAM 数据存储器用于存放各种运算的中间结果,用作缓存和数据暂存,以及设置特征标
17、志等。分为片内数据存储器和片外数据存储器。8052内部有128个8位用户数据存储单元和128个专用寄存器单元,他们是统一编址的。 6.程序存储器ROM程序存储器用于存放程序代码和表格常数。像我们用的STC89C52单片机,它的ROM大小为8KB。7.I/O口 I/O口为4并行输入输出口。对于输入,是检测外部有没有在控制它。对于输入,是在写程序的时候控制其管脚的输出为高电平还是低电平。 8.T/C 对于89C52单片机,有2个16位的可编程定时/计数器,用来实现定时或者计数产生中断用于控制程序转向。 9.中断系统 8052要比8051的中断系统更加完善。有2个外部中断,2个定时/计数器中断和一耳
18、光串行中断,可满足不同的控制要求,并且具有2级优先级别选择。 10.UART 一个全双工UART(通用于异步接收发送器)的串口I/O口。用于实现单片机间和单片机与计算机之间的串口通信, 11.时钟电路片内振荡器与时钟产生电路,8052内置最高频率高达12MHZ的时钟电路,但是石英晶体与微调电容仍需外接。而且一般最高震荡频率取决于单片机的型号与性能。总线(BUS)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是CPU内部之间的连线。如图1所示,外部总线是指CPU与其它部件之间的连线。 外部总线有三种: 数据总线DB(Data Bus), 地址总线 AB(Addre
19、ss Bus)和控制总线 CB(Control Bus)。如图1,为8051内部结构。对于8051来说,ROM为4KB;对于8052来说,ROM为8KB。单片机总共有40个引脚,如图2所示,每个引脚都有其不同的功能,有的引脚还有第二功能作用。8051时钟数据总线地址总线控制总线程序存储器数据存储器定时计数器并行I/O口串行通信口中断系统图1 8051内部结构 1I/O口引脚-P0口、P1口、P2口、P3口对于P0口是一双向8位三态I/O口,每个口可以独立控制。P0口内部没有上拉电阻,为高阻态,一般选择10欧姆的上拉电阻。对于其他的3组引脚,为准双向8位I/O口,每个口可以独立控制,内带上拉电阻
20、。因为内带上拉电阻,所以这种借口输出没有高阻状态,输入也不能锁存,所以不是真正的双向I/O口。因为在使用前,要先进行写1操作,然后单片机内部才可以正确独处外部信号,有一个准备的过程,所以称为准双向口。对于P3口,不仅有输入输出功能,还有第二功能。RXD为串口输入,RXD为串口输出。INR0为外部中断0输入,INT1为外部中断1输入。T0为定时器0外部输入,T1为定时器1外部输入,WR为外部写控制,RD为外部读控制。1)P0口P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻
21、抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。2)P1口 P1口是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计
22、数输入(P1.0/T2)和输入(P1.1/T2EX)。3)P2口 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑 门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2 口输出P2 锁存器的内容。 Flash 编程或校验时,P2亦接收
23、高位地址和一些控制信号。4)P3口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号 2电源和时钟、复位引脚RST为单片机的复位引脚。当输入连续两个时钟周期以上高电平有效,用来完成单片机的复位初始化操作。Vcc、GND为单片机的电源引脚,一个接高电平,一个接低电平。XTAL1和XT
24、AL2为外接时钟引脚。一个是片内震荡电路输入端,一个是输出端。对于8052时钟有2种方式。一个为两个引脚外接石英晶体和震荡电容,另一个是1接地,2输入。P1.0 VCCP1.1 P0.0P1.2 P0.1P1.3 P0.2P1.4 P0.3P1.5 P0.4P1.6 P0.5P1.7 P0.6RST/VPD P0.7P3.0/RXD /VPPP3.1/TXD P3.2/ P3.3/ P2.0P3.4/T0 P2.1P3.5/T1 P2.2P3.6/ P2.3P3.7/ P2.4XTAL2 P2.5XTAL1 P2.6 VSS P2.7STC89C521234567891011121314151
25、6171819204030383736353433323130292827262524232221图2 单片机的引脚结构3全称是程序存储器允许输入控制端。在度外部程序存储器时低电平有效,以实现外部程序存储器单元的读操作。当内部ROM读取时候,该引脚不动作;外部ROM读取时,每个机器周期会动作2次;外部RAM读取时,2个脉冲被跳过不会输出;外接ROM时,与ROM的OE脚相接。4ALE/ 在单片机扩展外部RAM时,ALE用于控制把P0口得输出低8位地址送锁存器锁存起来,以实现地位地址和数据的隔离。ALE为高电平时,允许地址锁存信号;ALE为低电平时,P0口上的内容和锁存器输出一致。为编程脉冲的输入
26、端,单片机的内部有程序存储器,用来存放用户需要执行的程序,我们可以通过编程脉冲输入写入ROM。5/Vpp接高电平时,单片机读取内部程序存储器。当扩展有外部ROM时,当读取完内部ROM后自动读取外部ROM。接低电平时,单片机直接读取外部EOM。单片机内部本身就各种周期设置。像机器周期、指令周期等。如果单片机的定时器/计数器为定时功能的时候,计数器记录的就是单片机内部的机器周期。 1)振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期,TX实验板上为11.0592MHZ。 2)状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。 3)机器周期: 一个机器
27、周期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。 4)指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。2.2 单片机的选择单片机微型计算机是微型计算机的一个重要分支,也是颇具有生命力的机种。单片机微型计算机简称单片机,特别适用控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可称为
28、一个单片机控制系统。单片机经过4代发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性发展方向。其发展趋势不外乎一下几个方面:1.多功能单片机中尽可能的把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。比如A/D、PWD、PCA(可片成计数器阵列)、WDT(监视定时器)、高速I/O口及计数器的捕获和比较逻辑等。有的单片机针对某一个应用领域、集成了相关的控制设备,以减少应用系统的芯片数量。例如,有的芯片以51内核为核心,集成了USB控制器,SMART CARD借口、MPS解码器,CAN或者I*I*C总线控制器、LED、LCD或者
29、VFD显示驱动器也开始集成在8位单片机中。2高效率和高性能为了提高执行速度和实行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高。比如,单片机的时钟频率得到提高;童谣的平率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。由于系统资源和系统复杂程度的增加,开始使用高级语言(入C语言)来开发单片机的程序,使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。3低电压和低功耗单片机的嵌入式应用决定了低电压和低功耗特性十分重要。由于CMOS等工
30、艺的大量采用,很多单片机可以在更低的电压下工作。这些特性使得单片机系统可以在更小的电源的支持下工作更长的时间。4低价格单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品价格。选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了 STC89S52。因为STC89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,
31、片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可为您提供许多较复杂系统控制应用场合。89系列单片机以其卓越的性能、完善的兼容性、快捷便利的电擦写操作,低廉的价格、超强的加密功能,完全替代87C51/62和8751/52,低电压、低电源、低功耗,有DIP、PLCC、QFP封装,有民用型、工业级、汽车级、军品级等多种温度等级,是当今世界上性能最好、价格最低、最受欢迎的八位单片机。STC89C52为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内
32、部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。3.秒表的硬件设计3.1 LED显示电路单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显
33、示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(58、88点阵等)。这里我们采用的是发光二管LED。发光二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光
34、二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。如图3所示,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。1共阳数码管共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字
35、段就不亮。2共阴数码管共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。本次设计中,采用的是共阴极数码管。将共阴极数码管一端接地,一端接在单片机上,通过操纵单片机的高低电平,去控制数码管。abcdefg dpppabcdefgdp图3 共阴极和共阳极数码管+5VLED显示器工作方式有两种:静态显示方式和动态显示方式。1静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如
36、BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。2.数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,
37、b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳
38、定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低,如表1,为数码管显示的16进制代码。表1 8段数码管显示数表0x3f00x06 10x5b 20x4f 30x66 40x6d 50x7d 60x07 70x7f 80x6f 90x77 A0x7c B0x39 C0x5e D0x79 E0x71 F0x00无显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都
39、在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;由于数码管是有P0口来驱动,它内部没有上拉电阻,作为输出口时驱动能力比较弱,不能点亮数码显示管,因此P0口必须接上拉电阻来提高驱动能力。另外一位共阴数码管的驱动电流一般为20mA左右,如果电流太大容易造成数码管损坏,所以也需要根据电源的电压值来确定上拉电阻的大小。如果电阻过小,势必会形成灌电流过大,造成单片机IO的损坏,如果电阻过大,那么对拉电流没有太
40、大的影响。电源供电电压为5V,当上拉电阻选用220电阻时灌电流为22mA。不会损坏单片机的I/O口,同时也可以为数码显示管起到限制电流的保护作用。3.2 键盘控制电路键盘是指经过系统安排操作一台机器或设备的一组键(如打字机、电脑键盘),主要的功能是输入资料.从编码的功能上,键盘又可以分成编码键盘和非编码键盘两种。1编码键盘 键盘上闭合健的识别由专用的硬件编码器实现,并产生键编码号或键值(计算机键盘靠软件编码来识别)。编码键盘是由硬件完成键盘识别功能的,它通过识别键是否按下以及所按下键的位置,由全编码电路产生一个唯一对应的编码信息(如ASCII码)。非编码键盘是由软件完成键盘识别功能的,它利用简
41、单的硬件和一套专用键盘编码程序来识别按键的位置,然后由CPU将位置码通过查表程序转换成相应的编码信息。2非编码键盘靠软件编码来识别的键盘。非编码键盘的速度较低,但结构简单,并且通过软件能为某些键的重定义提供很大的方便。单片机一般都是编码键盘。而对于单片机的非编码键盘,又分为独立键盘和行列式键盘。行列式键盘又可称为矩阵键盘。1)独立键盘因为对于P3口来说,是准双向I/O口。因此不能直接识别输入,但是可以直接进行输出。要对其进行赋值为1.让P3口全部为高电平。对于P3口来说,全部为位与的关系:当P3口和其连接的借口都为高电平时,结果是高电平;如果一个为高电平一个为低电平,则结果为电平;如果两个都是
42、低电平,则结果为低电平。有上图电路图可以看到,4个独立键盘一段连接的是P3,.1、P3.2、P3.3、P3.4,另外一端口全部接地。当按键按下后,因为其两端一端为电平,一端为高电平,则结果为电平,所以此时结果为低电平。由此P3口的变化判断按键有没有被按下。2)矩阵键盘矩阵键盘分为很多种,我们这里用的是4*4的矩阵键盘。很明显,共有16个按键,如果每个都当做是独立键盘使用的话,当应该有16个借口与此相连接,对于总共就40的借口的AT89C52单片机来说,实在是浪费资源。如果按键更多的话,则更加不好使用。所以出现了矩阵键盘。矩阵键盘,只用8个I/O接口,也就是P3口就控制了全部的16个键盘,十分的
43、节省资源。对于这16个按键,我们可以把他们分成4行、4列。其中的4行分别接P3.0、P3.1、P3.2、P3、3。而他们的4列则接在P3.4、P3.5、P3.6、P3.7上。这样可以通过行与列的高低电平来判断哪个键盘被按下了。举个例子,我们现在按下了第一个键盘,但是计算机并不知道是哪个按键按下,这样计算机当然无法进行相应的操作。此刻,可以在程序中,对P3口分别赋值,进行4次判断,先判断到底是哪行被按下,这样就可以把范围缩小到某一行。然后在改行的判断语句中,再进行4次比较,找出是哪一列的键盘发生变化,这样就可以轻松的找到到底按下的是哪一个按键了。不过在程序中需要进行多次判断,也就是说,每一次按下
44、按键后,计算机必须对所有的程序扫描一遍才可以。3.3 译码器的使用译码器是组合逻辑电路的一个重要的器件,其可以分为:变量译码和显示译码两类。 变量译码一般是一种较少输入变为较多输出的器件,一般分为2n译码和8421BCD码译码两类。显示译码主要解决二进制数显示成对应的十、或十六进制数的转换功能,一般其可分为驱动LED和驱动LCD两类。译码是编码的逆过程,在编码时,每一种二进制代码,都赋予了特定的含义,即都表示了一个确定的信号或者对象。把代码状态的特定含义“翻译”出来的过程叫做译码,实现译码操作的电路称为译码器。或者说,译码器是可以将输入二进制代码的状态翻译成输出信号,以表示其原来含义的电路.根据需要,输出信号可以是脉冲,也可以是高电平或者低电平。译码器的种类很多,但它们的工作原理和分析设计方法大同小异,其中二进制译码器、二-十进制译码器和显示译码器是三种最典型,使用十分广泛的译码电路。译码器是典型的组合数字电路,译码器是将一种编码转换为另一种编 译码器码的逻辑电路,学习译码器必须与各种编码打交道。从广义的角度看,译码器有四类:二进制码译码器,也称最小项译码器,N中取一译码器,最小项译码器一般是将二进制码译为十进制码;