单片机的时钟计时器设计

上传人:仙*** 文档编号:171172227 上传时间:2022-11-24 格式:DOC 页数:45 大小:1.17MB
收藏 版权申诉 举报 下载
单片机的时钟计时器设计_第1页
第1页 / 共45页
单片机的时钟计时器设计_第2页
第2页 / 共45页
单片机的时钟计时器设计_第3页
第3页 / 共45页
资源描述:

《单片机的时钟计时器设计》由会员分享,可在线阅读,更多相关《单片机的时钟计时器设计(45页珍藏版)》请在装配图网上搜索。

1、基于单片机的时钟计时器设计摘 要: 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。本设计就是利用单片机的上述优点,采用目前市场上性能价格比较高的MCS-52单片机设计而成的最小系统。它在实际生活中具有广泛的应用。例如:工业生产中的定时启停自动化设备、学校中上下课铃定时控

2、制、农村广播站每天早中晚广播的自动定时控制均可采用本仪器。本设计介绍一种以AT89C52单片机为核心,以LED数码管作为显示器件组成6位数字显示的实用多功能电子时钟的设计。该时钟可显示时,分,秒,也具有整点提醒报时及定时闹钟等功能,还可作电子秒表使用。关键词: 计时器;数字钟;数码管显示;AT89C52Design of the Clock Timer Based on Micro Controller UnitAbstract : SCM since the 20th century since the advent of the 1970s, with its high cost perf

3、ormance, by the peoples attention and concern, a very wide application, developed very quickly. SCM small size, light weight, anti-interference capability and the environment Yaoqiubugao, low price, high reliability, flexibility, and develop more easily. Due to the above-mentioned advantages, in our

4、 country, the SCM has been widely used in industrial automation and control, automatic detection, smart instrumentation, household appliances, power electronics, electrical and mechanical equipment, and other aspects of integration, and 51 is the single-chip microcontroller For the most typical and

5、most representative one.The clock design is used of the above-mentioned advantages, adopting the smallest system designed of MCS-52 microcontroller that has higher price-performance in current market. It has a wide application in real life. For example: the design can be used as a controller in indu

6、strial production timing starting automation equipment, school bell timing control, rural radio stations automatic timing control, and so on.The design introduces a practical electronic clock design which takes AT89C52 as the core, six-digit LED nixie tube as display components. The clock not only s

7、hows hours, minutes and seconds, but also can be used as an alarm clock and electronic stopwatch.Key words: Timer; Digital clock; Nixie tube display; AT89C52目 录1 概 述11.1 单片机的发展历史11.2 单片机的发展趋势12 课题研究背景与意义33 功能要求33.1 时钟功能33.2 计时功能43.3 显示功能43.4 功能按键43.5 中断嵌套和控制44 方案论证44.1 单片机的选择方案和论证44.2显示模块选择方案和论证54.3

8、 电路设计最终方案决定55 系统硬件电路的设计65.1单片机系统65.2 数码管显示电路115.3 驱动电路135.4复位电路165.5 时钟电路175.6 按键电路185.7 报时器的设计196 系统程序的设计206.1 主程序216.2 显示子程序216.3 定时器T0中断服务程序216.4 定时器T1中断服务程序226.5 调时功能程序236.6 秒表功能程序236.7 闹钟时间设定功能程序237 调试及性能分析237.1 硬件调试237.2 软件调试237.3 性能分析248 结 束 语25致 谢26参考文献27附 录28附录1 源程序清单29附录2 基于单片机的时钟计时器设计电路原理

9、图41基于单片机的时钟计时器设计1 概 述单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。本设计通过对它的学习、应用,以AT89C52芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显示时间,而且具有秒表功能。1.1

10、单片机的发展历史经历了SCM、MCU、SoC三大阶段。a)SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。b)MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Inte

11、l逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。c)单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。1.2 单

12、片机的发展趋势自单片机出现至今,单片机技术已走过了几十年的发展路程。纵观几十年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,拉动广泛的应用领域,表现出比微处理器更具个性的发展趋势:A. 采用先进结构以实现高性能在过去的一段时间内,单片机的指令运行速度一直在10MIPS以下,这对于应用在工业控制领域内的单片机来说是足够了,但当单片机被应用在通讯及DSP领域作为高速运算、编码或解码时,就会出现因指令运行速度不够而限制单片机应用的情形,因此提高单片机指令运行速度已经成为迫切需要解决的问题。B. 进一步降低功耗基于80C51的飞利浦低功率、低系统

13、成本微控制器51LPC系列是业界推动单片机向低功耗方向发展的主导单片机系列之一。51LPC系列单片机采用以下三种方法降低功耗:a)使系统进入空闲模式,在空闲模式下,只有外围器件在工作,任意的复位及中断均可结束空闲模式;b)使系统进入低功耗模式,在低功耗模式下,振荡器停止工作,使功耗降到最小;c)使系统进入低电压EPROM操作;EPROM包含了模拟电路,当Vcc高于4V时,可通过软件使这些模拟电路掉电以降低功耗,在上电情况下可使系统退出该模式。C. 采用Flash Memory随着半导体工艺技术的不断进步,MPU的Flash版本逐渐替代了原有的OTP版本。Flash MPU具有以下优点:与多次可

14、编程的窗口式EPROM相比,Flash MPU的成本要低得多;在系统编程能力以及产品生产方面提供了灵活性,因为Flash MPU可在编程后面再次以新代码重新编程;可减少已编程器件的报废和库存;有助于生产厂商缩短设计周期,使终端用户产品更具有竞争力。D. 集成更多功能及兼容性目前单片机的另一个发展趋势是在芯片上集成更多的功能。如模拟功能,包括模拟比较器、A/D和D/A转换器等。具体表现在:兼容性作为设计的第一考虑;额外的新的特点是透明的;使用同一种编程器;OTP使器件快速提升及标准化成为可能。E. 强抗干扰能力不断加强抗干扰能力是单片机进一步发展的必然趋势。ST Microelectronics

15、公司推出的ST62系列单片机在这方面是佼佼者,其优良的抗干扰能力使得许多大公司将其应用在系统中的关键部件上。许多单片机开发商也正朝着这个方向努力。F. 朝系列化、全面化方向发展各大单片机开发商在增加产品功能的同时效力于形成产品的系列化、全面化,以满足各种控制领域的要求,这也是单片机发展的趋势之一。日本TOSHBA公司开发了从4位到64位的多系列单片机,日立公司也有从4位到32位的单片机,目前还没有哪个厂家生产的单片机比东芝公司的种类多。随着单片机性能的不断提高,不断的克服和弥补自身的不足。在各种控制领域,单片机将拥有更加广阔的使用天地。在很长的一段时间内,它将一直是工程设计人员的首选控制芯片之

16、一。2 课题研究背景与意义时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英表、石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显

17、示器代替显示器和指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。本设计利用单片机实现数字时钟计时功能的主要内容,其中AT89C52是核心元件,同时采用数码管动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59 秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。3 功能要求时钟计时器要求用单片机及6位LED数码管显示时、分、秒,以24时计时方式运行,能整点提醒 (短蜂鸣,次数代表整点时间),使用按键开关可实现时、

18、分调整,秒表/时钟功能转换,省电(关闭显示)及定时设定提醒(蜂鸣器)等功能。3.1 时钟功能对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储空间分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。由于时钟是不能停止的,因此需要采用内部定时器自动计时,并使用定时器中断处理程序来定时进行时间数值的刷新。52单片机的2个定时器都具有16位定时器的工作模式。当晶振为12MHz时,16位定时器的最大定时值为65.536ms;要达到1秒钟,可以采用两种方法:采用一个定时器定时与软件计数相结合的方法;或者采用两个定时器级联的方法。由于秒表在计时功能时也需要用到1个

19、定时器,因此,我们采用第一个方法,只使用1个定时器,例如使用T0。为了达到较为准确的计时,使T0的溢出时间为50ms,使用一个字节作为软件计数器ST,计数值为20。定时器的中断处理程序对ST进行减1操作,当ST为0时,1秒到达,此时更新存放小时、分钟、秒钟的显示缓存区。3.2 计时功能当秒表用作计时功能时,也需要一个定时器进行10ms的定时,在本设计中使用单片机的T1。在T1的中断处理程序中对SS和SS的缓存空间进行更新,与上面类似。3.3 显示功能本系统中,用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。3.4 功能按键再看按键

20、的处理。P1.0、P1.1、P1.2和P1.3接4 个按钮开关,用于调时及功能设置。3.5 中断嵌套和控制现在在我的方案中有3个中断,T0、T1中断和外部中断INT0。这3个中断的特点是:T0的工作是连续的,在误差范围内可以被打断但不可以停止;T1的工作同样可以在误差范围内被打断,但可以被INT0停止;INT0是用来启动或停止T1的。4 方案论证4.1 单片机的选择方案和论证单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时

21、计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。单片机性能不断提高,其应用系统也不断发展,就我国的8位单片机应用系统而言,从7080年代盛行的Z80到8090年代的INTEL8031,再到902000年代的INTEL80C51或AT89C51,而目前流行使用的AT89C52单片机是INTEL MCS-51系列的8位单片机。它具有40引脚,片内带8K闪速存储器EEPROM,一般作程序存储器;

22、片内带256字节RAM;提供32条I/O引脚,大部分引脚都可作数字和脉冲输入和输出;3个16位定时计数器,对外计脉冲数可使用单片机的P3.4(T0)或P3.5(T1);6个中断源,其中直接提供外部中断处理可使用P3.2(INT0)或P3.1(INT1);2个可编程标准串口,其引脚为P3.0(RXD)和P3.1(TXD);时钟频率可达424MHz;具有睡眠状态,指令系统与8031指令系统完全兼容。除上述技术性能外,还有价格低廉,保密性强,功耗低,应用灵活、方便等优点。故选择AT89C52单片机为本设计的核心是较佳的选择。这种单片机具有足够的空余硬件资源,可以实现其他的扩充功能。如果考虑使用电池供

23、电,则可采用LV系列单片机。4.2显示模块选择方案和论证方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案二:采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏。方案三:采用LED数码管,LED数码管价格适中,对于显示数字最合适。为了实现LED显示的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些,又考虑到时钟显示只有6位,且系统没

24、有其他复杂的处理任务,所以决定采用动态扫描法实现LED的显示。4.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定:采用AT89C52作为主控制系统; LED数码管动态扫描作为显示。按照系统设计功能的要求,初步确定系统由主控模块、显示模块、按键开关模块和蜂鸣器模块及列驱动模块组成,时钟计时器电路系统的总体设计框图如图4-1所示。图4-1 时钟计时器电路系统的总体设计框图5 系统硬件电路的设计该电路采用AT89C52单片机最小化应用设计。采用共阳7段LED显示器;P0口输出段码数据;P2.0 P2.5口作列扫描输出;P1.0、P1.1、P1.2和P1.3接4 个按钮开关,用于调时及功

25、能设置;P1.7端口接5V的小蜂鸣器,用于按键发音及定时提醒、整点到时提醒等;为了提供共阳LED数码管的列扫描驱动电压,用三极管9012作电源驱动输出;采用12MHz晶振,可提高秒计时的精确性。5.1单片机系统AT89C52单片机具有足够的空余硬件资源,可以实现其他的扩充功能,还有价格低廉,保密性强,功耗低,应用灵活、方便等优点。故选择AT89C52单片机为本设计的核心是较佳的选择。AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生

26、产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可以提供许多较复杂系统控制应用场合。图5-1 AT89C52芯片AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。主要性能参数:与MC

27、S-51产品指令和引脚完全兼容8k字节可重擦写Flash闪速存储器1000次擦写周期全静态操作:0Hz24MHz三级加密程序存储器2568字节内部RAM32个可编程I/O口线3个16位定时/计数器6个中断源可编程串行UART通道低功耗空闲和掉电模式图5-2 AT89C52方框图功能特性概述:AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,1个6向量两级中断结构,2个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许

28、RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。图5-3 POFP/TQFP封装形式图5-4 PLCC封装形式MCS-51单片机共有4个双向的8位并行I/O端口(Port),分别记作P0-P3,共有32根口线,各口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。实际上P0-P3已被归入特殊功能寄存器之列。这四个口除了按字节寻址以外,还可以按位寻址。由于它们在结构上有一些差异,故各口的性质和功能有一些差异。P0口是双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负

29、载。P1口是8位准双向I/O口,可驱动4个LS 型负载。P2口是8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。P3口是8位准双向I/O口,是双功能复用口,可驱动4个LS型TTL负载。P1口、P2口、P3口各I/O口线片内均有固定的上拉电阻,当这3个准双向I/O口做输入口使用时,要向该口先写“1”,另外准双向I/O口无高阻的“浮空”状态,故称为准双向I/O 口。P0 口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位用吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“l”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存

30、储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接收指令字节。而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C5l不同之处是,P1.0和P1.1 还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表5-1

31、。Flash编程和程序校验期间,Pl接收低8位地址。表 5-1 P1.0 和 P1.l 的第二功能引脚号功能特性P1.0T2(定时计数器2外部计数脉冲输入),时钟输出P1.1T2EX(定时计数器2捕获重装载触发和方向控制)P2 口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR, A指令)时,P2口送

32、出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX Ri, A指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。P3 口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:表5-2 P3口特殊功能P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断

33、0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(写入外部存储器控制)P3.7RD(读取外部存储器控制)XTAL1:振荡器反向放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。AT89C52单片机内部设有三个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。本设计主要用到定

34、时器T0与T1,这里简单介绍一下。16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH到8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。5.2 数码管

35、显示电路由于静态显示法需要数据锁存器等硬件,接口复杂一些,又考虑到时钟显示只有6位,且系统没有其他复杂的处理任务,所以决定本设计采用动态扫描法实现LED的显示。5.2.1 七段数码管及其分类数码管按各发光二极管电极的连接方式分为共阳数码管和共阴数码管两种。数码管由7个发光二极管组成,行成一个日字形,它们可以共阴极,也可以共阳极。通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原理。基本的半导体数码管是由7个条状的发光二极管(LED)按图5-5(a)所示排列而成的,可实现数字“09”及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组

36、成,我们分别把这些发光二极管命名为“a,b,c,d,e,f,g,dp” ,排列顺序如下图5-5(a)。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。共阴数码管内部连接如图5-5(c)所示。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阳数码管内

37、部连接如图5-5(b)所示。(a)数码管 (b)共阳数码管内部连接图 (c)共阴数码管内部连接图图5-5 数码管管脚及共阳、共阴连接图5.2.2 数码管的显示方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。a) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp” 的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同

38、的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。b) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一

39、个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动(一个89C52单片机可用的I/O端口才32个),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。表5-3 共阳LED数码管字形(段码)表共阳LED数码管字形(段码)表显示数字(字符)P0.7dp P0.6g P0.5f P0.4eP0.3d P0.2c P0.1b P0.0a 二进制代码十六进制代码011000000C0H111111001F9H210100100A4H31

40、0110000B0H41001100199H51001011092H61000001082H711111000F8H81000000080H91001000090H5.3 驱动电路5.3.1 总线驱动器74LS244为三态输出的八组缓冲器和总线驱动器。74ls244由2组、每组四路输入、输出构成。每组有一个控制端E,由控制端的高或低电平决定该组数据被接通还是断开。图5-6 74LS244芯片表5-4 74ls244功能表图5-7 74LS244逻辑图244内部包含8个单向三态门,分为两组,同时作为总线芯片的另外一个特点是驱动能力加强了,可以提供比较大的输出电流,所以经常用来直接驱动光耦、发光管

41、等,也可以用于驱动微型的继电器!开关量输入的扩展经常使用的芯片是74LS244/74LS245/74LS240等;这些芯片的特点是三态门,可以把多个芯片的输出,并联在一起而不会互相影响;通过138、139、153等译码选通芯片,把RD/WR/地址的高位信号(高3位或者高4位,看单片机系统中的芯片的数量)接到译码芯片,把译码芯片的输出接到锁存器的锁存输入,或者缓冲器的选通输入。5.3.2电源驱动为了提供共阳LED数码管的列扫描驱动电压,用三极管9012作电源驱动输出。三极管是一种控制元件,主要用来控制电流的大小,以共发射极接法为例(信号从基极输入,从集电极输出,发射极接地),当基极电压UB有一个

42、微小的变化时,基极电流IB也会随之有一小的变化,受基极电流IB的控制,集电极电流IC会有一个很大的变化,基极电流IB越大,集电极电流IC也越大,反之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流的变化。但是集电极电流的变化比基极电流的变化大得多,这就是三极管的放大作用。IC的变化量与IB变化量之比叫做三极管的放大倍数(=IC/IB,表示变化量。),三极管的放大倍数一般在几十到几百倍。 三极管在放大信号时,首先要进入导通状态,即要先建立合适的静态工作点,也叫建立偏置,否则会放大失真。 在三极管的集电极与电源之间接一个电阻,可将电流放大转换成电压放大:当基极电压UB升高时,IB变大,I

43、C也变大,IC在集电极电阻RC的压降也越大,所以三极管集电极电压UC会降低,且UB越高,UC就越低,UC=UB。下面简单介绍一下三极管的电流放大原理 。晶体三极管(以下简称三极管)按材料分有两种:锗管和硅管。而每一种又有NPN和PNP两种结构形式,但使用最多的是硅NPN和PNP两种三极管,两者除了电源极性不同外,其工作原理都是相同的,下面仅介绍NPN硅管的电流放大原理。 图5-8 晶体三极管(NPN)的结构 图5-8是NPN管的结构图,它是由2块N型半导体中间夹着一块P型半导体所组成,从图可见发射区与基区之间形成的PN结称为发射结,而集电区与基区形成的PN结称为集电结,三条引线分别称为发射极e

44、、基极b和集电极c。 当b点电位高于e点电位零点几伏时,发射结处于正偏状态,而c点电位高于b点电位几伏时,集电结处于反偏状态,集电极电源Ec要高于基极电源Eb。在制造三极管时,有意识地使发射区的多数载流子浓度大于基区的,同时基区做得很薄,而且,要严格控制杂质含量,这样,一旦接通电源后,由于发射结正确,发射区的多数载流子(电子)及基区的多数载流子(空穴)很容易地越过发射结互相向反方扩散,但因前者的浓度基大于后者,所以通过发射结的电流基本上是电子流,这股电子流称为发射极电流Ie。 由于基区很薄,加上集电结的反偏,注入基区的电子大部分越过集电结进入集电区而形成集电集电流Ic,只剩下很少(1-10%)

45、的电子在基区的空穴进行复合,被复合掉的基区空穴由基极电源Eb重新补给,从而形成了基极电流Ib。根据电流连续性原理得:Ie=Ib+Ic。这就是说,在基极补充一个很小的Ib,就可以在集电极上得到一个较大的Ic,这就是所谓电流放大作用,Ic与Ib是维持一定的比例关系,即:1=Ic/Ib 。式中:1-称为直流放大倍数。集电极电流的变化量Ic与基极电流的变化量Ib之比为:=Ic/Ib 。式中-称为交流电流放大倍数,由于低频时1和的数值相差不大,所以有时为了方便起见,对两者不作严格区分,值约为几十至一百多。 三极管是一种电流放大器件,但在实际使用中常常利用三极管的电流放大作用,通过电阻转变为电压放大作用。

46、 9012是一种最常用的普通三极管。它是一种低电压,大电流,小信号的PNP型硅三极管。其主要特性如下:集电极电流Ic:Max -500mA 集电极-基极电压Vcbo:-40V 工作温度:-55 to +150 和9013(NPN)相对 主要用途:开关应用,射频放大图5-9 9012三极管引脚图图5-9中引脚1是发射极,引脚2是集电极,引脚3是基极。5.4复位电路当MCS-51单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。复位的基本功能是:系统上电时提供复位信号。直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定

47、后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。由于本设计只采用内部存储器,不会执行外部程序,因此EA端一般为高电平。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不

48、改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值。与其他计算机一样,MCS-51单片机系统常常有上电复位和操作复位两种方法。操作复位指用户按下“复位”按钮使计算机进入复位状态。上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。MCS-51单片机的复位是由外部的复位电路来实现的。

49、下图是上电复位和操作复位的相结合的常用电路。图5-10 复位电路5.5 时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。单片机的定时功能是用片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:内部时钟方式和外部时钟方式。本设计用的是内部时钟方式。本系统采用内部时钟方式,片内高增益反相放大器通过XTAL1,XTAL2外接作为反馈元件的晶体(呈感性)与电容组成的并联谐振回路过程的一个自激振荡向内部时钟提供振荡时钟。电容的值通常取30pF左右。电路图如下:图5-

50、11 时钟电路单片机以晶体振荡器的振荡周期为最小的时序单位,片内的各种微操作都以此周期为时序基准。振荡频率二分频后形成状态周期,一个状态周期包含2个振荡周期,振荡频率二分频后形成机器周期,一个机器周期包含有6个状态周期或者12个振荡周期,1到4个机器周期确定一条指令的执行时间,这个时间便是指令周期。在MCS-51单片机的所有指令中,有些完成的比较快,只需一个机器周期就行,有些完成的比较慢,则需两个机器周期或者四个机器周期才能完成。具体的周期计算是这样的。如果外接晶振频率为12MHZ,那么振荡周期为为1/12MHZ=0.0833us,状态周期为0.0167us,机器周期为1us,指令周期为1到4

51、us。当单片机工作于计数模式时,它的初值为(计数个数)求补,当工作于定时模式时,它的初值为(定时时间/机器周期)求补,根据不同的工作模式对初值进行装入。5.6 按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本设计采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会

52、产生互相影响。电路图如下: 图5-12 按键电路a)长按P1.0进入调分状态:分单元闪烁;按P1.0加1,按P1.1减1。再长按P1.0进入时调整状态,时单元闪烁,加减调整同调分。长按P1.0退出调整状态。 b)按下P1.1进入秒表状态:按P1.2暂停,再按P1.2秒表清零,再按P1.2秒表又启动,按P1.1退出秒表回到时钟状态。c)按P1.3进入设定闹时状态:00:00: -,可进行分设定,按P1.2分加1,再按P1.3为时调整,显示为00:00:- ,按P1.2时加1,按P1.1闹铃有效,显示为00:00:-0,再按P1.1闹铃无效(显示00:00:-),按P1.3调闹钟结束。在闹铃时可按

53、P1.3停闹,不按闹铃1分钟。5.7 报时器的设计报时是数字钟的一个重要功能,报时器可用蜂鸣器和扬声器来实现,本设计采用蜂鸣器实现其报时功能。蜂鸣器是一种一体化结构的电子讯响器,常用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。这里用于时钟计时器中做报时器。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共

54、鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。本设计采用压电式蜂鸣器。压电蜂鸣片是将高压极压化后的压电陶瓷片黏贴于振动金属片上。当加入交流电压后,会因为压电效应,而产生机械变形伸展及收缩,利用此特性使金属片振动而发出声响,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。在时钟计时器的设计中,单片机通过一个三极管来放大驱动蜂鸣器,原理图见下图。蜂鸣器的正极接到三极管的集电极上面,蜂鸣

55、器的负极接地,三极管的基级经过限流电阻后由单片机的P1.7引脚控制,当P1.7输出高电平时,三极管截止,没有电流流过蜂鸣器,蜂鸣器不发声;当P1.7输出低电平时,三极管饱和,其发射极与集电极电压差很小,蜂鸣器可看作接高电平,电流形成回路,发出声音。因此,我们可以通过程序控制P1.7脚的电平来使蜂鸣器发出声音和关闭。图5-13 单片机驱动蜂鸣器电路6 系统程序的设计单片机的程序设计有其自身的特点。在单片机系统中,硬件与软件紧密结合,由于硬件电路的设计不具有通用性,所以必须根据具体的硬件电路来设计对应的软件,硬件设计的优劣直接影响到软件设计的难易,软件设计的优劣又直接影响到硬件的发挥。在很多时候,

56、软件可以替代硬件的功能,当然,需要付出额外占用CPU时间的代价。软件程序的设计是根据硬件电路图的连接和各个元器件的功能进行设计。在编写软件时,按各个程序的功能将软件细分为各个功能模块,再通过主程序的调用来实现整个软件系统。而一般编写的程序都是根据事前所用的流程图来编写的,而且,流程图中也包含了对设计所得结果的要求,因此,流程图的设计直接影响到源程序的设计。主程序是软件设计的总体框架,因此主程序流程图的设计决定了程序编写的好坏,主程序的功能主要是读时间将时间数据送到LED显示,并与闹钟的设定时间比较,再判断是否有按键按下,从而进行校时、定时功能。6.1 主程序本设计中计时采用定时器T0中断完成,

57、秒表使用定时器T1中断完成。主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序。其主程序执行流程如图6-1所示 。 图6-1 主程序流程图6.2 显示子程序时间显示子程序每次显示6个连续内存单元的十进制BCD码数据,首地址在调用显示程序时先指定。内存中50H55H为闹钟定时单元,60H65H为秒表计时单元,70H 75H为时钟显示单元。其中70H-71H存放秒数据,72H-73H存放分数据,74H-75H存放时数据,每一地址单元内均为十进制BCD码。由于采用7段共阳LED数码管动态扫描实现数据显示,所以显示用十进制BCD码数据的对应段码存放在ROM中。显示时,先取出内存

58、地址中的数据,然后查得对应的显示用段码从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。为了显示小数点及“-” 、“A”等特殊字符,在显示班级和计时时应采用不同的显示子程序。 6.3 定时器T0中断服务程序定时器TO用于时间计时,定时溢出中断周期设为50ms。中断进入后,先进行定时中断初值校正,当中断累计20次(即1s)时,对秒计数单元进行加1操作。时钟计数单元地址分别在70H-71H(秒)、76H-77H(分)和78H-79H(时)中,最大计时值为23时59分59秒。7AH单元内存放“熄灭符”数据(0AH)。在计数单元中采用十进制BCD码计数,满10进位。图6-2 T0

59、中断计时程序流程图6.4 定时器T1中断服务程序T1中断程序用于指示时间调整单元数字的闪烁或秒表计数,在时间调整状态下,每过0.3s左右,将对应调整单元的显示数据换成“熄灭符”数据(#0AH)。这样,在调整时间时,对应调整单元的显示数据会间隔闪亮。在作秒表计时时,每10ms中断1次,计数单元加1,每100次为1s。秒表计数单元地址在60H61H(10毫秒)、62H63H(秒)、63H64H(分)中,最大数值为99分59.99秒。定时器T0、T1溢出周期为50ms (10ms),T0为秒计数用,T1为调整时闪烁或秒表计数用;P1.0,P1.1,P1.2,P1.3为调整按钮,P0口为字符输出口,采

60、用共阳显示管。 图6-3 T1中断服务程序流程图6.5 调时功能程序调时功能程序的设计方法是:按下P1.0口按键,若按下时间小于1s,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。当再按下P1.0口按键时,若按下时间小于0.5s,则时间加1分;若按下时间大于0.5s,则进入时调整状态。按下P1.1按键时,可以进行减1调整。在时调整状态下,当按键按下的时间大于0.5s时,退出时间调整状态,时钟从0s开始计时。6.6 秒表功能程序在正常时钟状态下,若按下P1.1按键,则进行时钟/秒表显示功能的转换,秒表中断计时程序启动,显示首地址改为60H,LED将显示秒

61、表计时单元60H65H中的数据。按下P1.2口的按键开关,可实现秒表清0、秒表启动、秒表暂停功能;当再按下P1.1口按键时,关闭T1秒表中断计时,显示首地址又改为70H,恢复正常时间的显示功能。6.7 闹钟时间设定功能程序在正常时钟状态下,若按下P1.3口的按键开关,则进入设定闹时调分状态,显示首地址改为50H。LED将显示50H55H中的闹钟设定时间,显示式样为:00:00:,其中高2位代表时,低2位代表分,在定时闹铃时精确到分。按P1.2键,分加1;按P1.0键,分减1。若再按下P1.3键,则进入时调整状态,显示式样为:00:00:,按P1.2键,时加1;按P1.0键,时减1。按P1.1键

62、,闹铃有效,显示式样变为:00:00:-0;再按P1.1键,闹铃无效,显示式样又为:00:00:。再按P1.3键,调整闹钟时间结束,恢复正常时间显示。在闹铃时,可按一下P1.3口的按键开关使蜂鸣停止,不按则蜂鸣器将鸣叫1min后自行中止。在设定闹钟后,若要取消闹时功能,则可按一下P1.3键,当听到“滴“的一声时表明取消了闹铃功能。7 调试及性能分析7.1 硬件调试硬件调试时可先检查印制板及焊接的质量情况,在检查无误后可通电检查LED显示器的点亮状况。若亮度不理想,可以调整P0口的电阻大小,一般情况下取200欧电阻即可获得满意的亮度效果。实验室制作时,可结合示波器测试晶振及P0、P2端口的波形情况进行综合硬件测试分析。7.2 软件调试软件调试在Wave或KeilC51编译器下进行,源程序编译及仿真调试应分段或以子程序为单位逐个进行,最后可结合硬件实时调试。7.3 性能分析按照设计程序分析,LED显示器动态扫描的频率约为167Hz,实际使用观察时完

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!