1、 摘 要本文介绍了基于AT89C51单片机的数字式时钟的设计,详细叙述了系统硬件、软件的具体实现过程。本文在硬件、软件设计上均采用模块化的方法,使得在设计和调试方面取得很大的方便。论文重点阐述了数字钟硬件中MCU模块、按键模块、显示模块等相关模块的模块化设计及制作;软件同样采用模块化的设计,包括中断模块、时间调整模块等设计,并采用简单流通性强的C语言编写实现。本设计实现了年、月、日及时、分、秒的显示和时间修改的功能。通过对比实际的时钟,查找出误差的来源,确定调整误差的方法,尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。关键字:AT89C51单片机;数字钟;模块化;Abstrac
2、t This paper introduced the design of digital clock based on SCM of AT89C51,The specific process of how the system hardware and software achieved were detailed description through the design of multifunction digital clock. The modular design and production ,which consisted of MCU module ,key module,
3、 display module and the associated control module ,were mainly recounted; As well as hardware designing, software design use the same method ,consists suspension module, time adjust module, and that ues the C language to achieve because of its simple and strong negotiability. In this design the func
4、tions of time adjusting and displaying year, month, day and hour, minute, second have been achieved. And by comparing the actual clock ,find out the source of the error and determined the method of adjusting error, reduce errors as much as possibly, so this system can achieve a practical digital clo
5、ck with error within the permissible range.Key words : AT89C51 microcontroller ; Digital clock; Module design;II目 录摘 要IAbstractII1 绪 论11.1 课题背景11.2 课题意义11.3 数字式时钟的应用21.4 本章小结22 单片机简介32.1 单片机的选择32.1.1 单片机的特点42.1.2 单片机的应用领域52.2 AT89C51单片机的基本结构62.2.1 AT89C51单片机简介62.2.2 AT89C51单片机工作的基本时序82.2.3 AT89C51单片
6、机的内部结构及存储器配置82.3 本章小结103 数字式时钟的硬件设计113.1 最小系统设计113.2 数字式时钟的外围电路设计133.2.1 时钟电路133.2.2 LCD显示电路133.2.3 电源电路153.2.4 按键电路153.2.5 复位电路163.3 本章小结164 数字式时钟的软件设计174.1 系统软件设计内容174.2 主程序184.3 时钟设置子程序204.4 中断子程序224.5 LCD显示子程序254.6 本章小结265 数字式时钟的Protues软件仿真275.1 Protues软件的概述275.2 Protues软件的功能特点275.3 Protues软件具有4
7、大功能模块285.4 数字式时钟的Proteus软件仿真295.4.1 Proteus软件仿真295.4.2 电路功能仿真295.4.3 Keil软件305.4.4 数字式时钟的Protues软件仿真325.5 本章小结35结 论36致 谢37参考文献38附 录391 绪 论1.1 课题背景单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的各个方面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品
8、、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。单片机有两种基本机构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求,而且还有很多功能可供开发,有着广泛的应用领域。20世纪80年代中期以后,Intel公司以专利转让
9、的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILPS、ANALOG、DEVICES、DALLAS等。这些厂家生产的芯片是MCS-51系列的兼容产品,准确地说是与MCS-51指令系统兼容的单片机。这些兼容机与8051的系统机构(主要是指令系统)相同,采用CMOS工艺。因而,常用80C51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。其功能和市场竞争力更强,不该把它们直接称为MCS-51单片机,因而MCS只是Intel公司专用的单片机系列型号。MCS-51系列及80C51单片机有很多种品种。它们引脚及指令系统相互兼容,主要
10、在内部结构上有些区别。目前使用的MCS-51系列单片机及其兼容产品通常分为以下几类:基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。1.2 课题意义在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能
11、各异的微电子产品。随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,他可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。1.3 数字式时钟的应用数字点钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但是
12、人们对电子产品的应用要求越来越高,数字钟不但显示当前的时间,而且可以显示日期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前时间。忘记了要做的事情,当事情不是很重要的时候,这种遗憾无伤大雅。但是一旦重要事情,一时的耽误可能酿成大祸。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳
13、定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。1.4 本章小结本章主要介绍了单片机的历史发展过程,单片机的产生与发展给人们带来了那些影响。以及数字钟在日常生活中的具体应用给日常生活带来的方便。2 单片机简介本次设计的主要思想:使用整个单片机作为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。时钟芯片产生时钟信号,利用单片机的I/O口传输给单片机;并通过I/O口实现LCD的显示。系统设有4个按键可以对时、分、秒、年、月、日进行调整,还可以设置闹钟。整个框图如图2-1所示。图2-1 系统整体框图2.1 单片机的选择随着计算机及电子技术的飞跃
14、发展,单片机也在不断更新换代,并成为电子系统中进行数据采集,信息处理,通信联络和实施控制的重要器件。单片机技术已渗入到了各个领域,在智能仪器仪表,工业监测控制,电力电子,汽车电子等方面得到了广泛的应用,并取得了巨大的成果。在今后若干年,MCS-51单片机的应用仍将占主要地位,仍然是我国单片机应用领域的主流机型。现今各个领域的工程技术人员都应掌握单片机应用技术。单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统。单片机是将中央处理器,随机存储器。只读存储器,定时器芯片和I/O接口电路集
15、成于一个芯片上的微控制器。单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或
16、者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机是通过你编写的程序可以实现高智能,高效率,以及高可靠性!单片机的组成如图 2-2:图 2-2 单片机组成框图目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领
17、域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。2.1.1 单片机的特点(1)控制性能和可靠性高实时控制功能特别强,其CPU可以对I/O端口直接进行操作,位操作能力更是其它计算机无法比拟的。另外,由于CPU、存储器及I/O接口集成在同一芯片内,各部件间的连接紧凑,数据在传送时受干扰的影响较小,且不易受环境条件的影响,所以单片机的可靠性非常高。近期推出的单片机产品,内部集成有高速I/O口、ADC、PWM、WDT等部件,并在低电压、低功耗、串行扩展总线、控制网络总线和开发方式(如在系统编程ISP)等方面都有了进一步的增强。(2)体积
18、小、价格低、易于产品化单片机芯片即是一台完整的微型计算机,对于批量大的专用场合,一方面可以在众多的单片机品种间进行匹配选择;同时还可以专门进行芯片设计,使芯片的功能与应用具有良好的对应关系;在单片机产品的引脚封装方面,有的单片机引脚已减少到8个或更少,从而使应用系统的印制板减小、接插件减少、安装简单方便。2.1.2 单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1)在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现
19、诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。(2)在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。(3)在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。(4)在计算机网络和通信领域中
20、的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。(5)单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。本次我们设计选用的是AT89C51系列单片机,是由ATMEL公司生产的。2.2 AT
21、89C51单片机的基本结构2.2.1 AT89C51单片机简介AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2
22、051是它的一种精简版本。AT89C51的引脚封装概述图2-3 89C51的引脚封装(1)主电源引脚:VCC(40脚):接+5 V电源正端。VSS(20脚):接+5 V电源地端。(2)时钟电路引脚:外接晶体振荡器,不能超过24M;需加微调电容,一般为30pF;XTAL1:接外部晶振和微调电容的一端,在单片机内部,它是构成片内振荡器的反向放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部振荡器的输入端。XTAL2:接外部晶振和微调电容的另一端,在单片机内部,它是构成片内振荡器的反向放大器的输出端。当采用外部振荡器时,此引脚应悬空。(3)复位电路引脚RST/VPD:
23、RST是复位信号输入端,高电平有效。当此输入端保持2个机器周期的高电平时,就可以完成复位操作。RST引脚的第二功能是备用电源的输入端。单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。复位作用是使CPU以及其他功能部件,如串行口,中断都恢复到一个确定初始状态,并从这个状态开始工作。复位电路有两种:上电、按钮复位,考虑到各部件影响,采用按钮复位,当电阻给电容充电,电容的电压为高电平,当按下按钮时芯片复位脚近似低电平,于是芯片复位。(4)控制信号引脚:ALE/PROG:(Address Latch Enable/ Programming)地址锁存允许信号
24、端,当单片机上电正常工作后,ALE引脚不断向外输出正弦脉冲信号,此频率为振荡器频率的1/6。CPU访问外部存储器时,ALE作为锁存低8位地址的控制信号。此引脚的第二功能PROG作为8751编程脉冲输入端使用。PSEN:(Program Store Enable)在访问片外存储器时,此端定时输出负脉冲作为片外存储器的选通信号。EA/VPP:(Enable Address/Voltage Pulse Of Programming)当EA接高电平时,CPU访问片内ROM,并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过4K时,将自动转去执行片外存储器内的程序。当EA脚接低电平时,CPU只
25、访问片外ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。VPP是对8751片内ROM固化程序时,作为施加较高编程电压(12V21V)的输入端7。(5)输入输出引脚:P0-P3:4个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个端口都可以做输入输出口使用,其中,P0和P2通常用于对外部存储器的访问。在这种方式下,把P0口作为地址/数据总线使用,分时输出外部存储器的地址和传送8位数据。当扩充外部存储器的地址为16位时,P2口作为地址总线的高8位地址使用。1)P0口(39-32脚):P0.0-P0.7统称为P0口。在不接片外存储器与不扩展I/O口时,可作为准双
26、向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。2) P1口(1-8脚):P1.0-P1.7统称为P1口,可作为准双向I/O口使用。对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。3) P2口(21-28脚):P2.0-P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。4) P3口(10-17脚):P3.0-P3.7统称为P3口。除作为准双向I/O口使用外,还
27、可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。2.2.2 AT89C51单片机工作的基本时序机器周期和指令周期:(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期。(2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。(3) 机器周期: 一个机器周期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。在一个机器周期内, CPU可以完成一个独立的操作。 (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中,
28、有单周期指令、双周期指令和四周期指令。2.2.3 AT89C51单片机的内部结构及存储器配置(1)AT89C51单片机内部的结构CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式。图2-4 MCS-51的内部结构框图(2)AT89C51单片机的存储器配置 图2-5 单片机的内部存储器配置从用户的角度存储器分3个逻辑地址空间:1)
29、片内外统一编址的64KB程序存储器地址空间0000HFFFFH即(a)图;2)256B的片内数据存储器地址空间00HFFH(包括低128B的内部RAM地址00H7FH和高128B的特殊功能寄存器地址空间)即(b)图;3)64KB的外部数据存储器或扩展I/O接口地址空间0000HFFFFH;4)画出RAM的组成;RAM共有256个单元,按功能分为两部分低128单元(单元地址00H7FH)和高128单元(单元地址80HFFH)。其中高128单元是供给专用寄存器使用,因这些寄存器的功能已作为专门规定故此称之为特殊功能寄存器SFR11个SFR有位寻址作用,而且要说明低128单元是单片机的真正RAM存储
30、器。表2.1 RAM的组成30H7FH通用RAM区20H2FH位寻址区(00H7FH)18H1FH工作寄存器3区(R7R0)10H17H工作寄存器2区(R7R0)08H0FH工作寄存器1区(R7R0)00H07H 工作寄存器 0区(R7R0)低128单元是单片机的真正RAM存储器,按其用途划分为三个区域:(1)通用寄存器区 通用寄存器为CPU提供了就近数据存储的便利,有利于提高单片机的运算速度。此外,使用通用存储器还能提高程序编制的灵活性,因此在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。(2)位寻址区内部RAM的20H2FH单元,即可作为一般RAM单元使用,进行
31、字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。(3)工作寄存区用户存储数据的。2.3 本章小结本章节先介绍单片机的发展及其在现代生活中的广泛应用,然后再详细讲解了单片机内部各引脚的作用,如 I/0口,XTAL1、XTAL2晶振接口,VCC电源接口端等等,为进一步理解单片机的功能打下初步的基础;最后提到了单片机的存储器ROM、RAM在单片机运行中的作用,为我们进一步认识单片机有很好的帮助。通过这章单片机知识的学习,可以让我们对单片机从抽象到具体的一个认识,也为下面章节的应用打下坚实的基础。3 数字式时钟的硬件设计本章节主要介绍数字式时钟的硬件设计,从单片机最小系统出发,然后
32、讲解该设计的外围电路设计。该设计的外围电路包括时钟电路模块,LCD显示模块,电源模块,按键模块以及复位电路模块,通过对各个模块的详细介绍,让我们对整个设计方案有一个深入的了解。整个数字式时钟的硬件设计电路图如图3-1所示。图3-1 数字式时钟硬件整体图3.1 最小系统设计单片机要正常运行,必须具备一定的硬件条件,其中最主要的就是三个条件:(1)电源正常;(2)时钟正常;(3)复位正常。AT89C51的引脚如图3-2所示,在AT89C51单片机的40个引脚中,电源引脚两根,晶振引脚2根,控制引脚4根,可编程输入输出引脚32根。(1)工作电源电源是单片机工作的动力源泉,对应的接线方法为:40引脚(
33、VCC)电源引脚,工作是接+5电源,20引脚(GND)为接地线。(2)时钟电路时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在同一的时序脉冲的驱动下进行的,时钟电路就好比人的心脏一样重要。当采用内部时钟时,连接方法如图3-1所示,在晶振XTAL(19引脚)和XTAL(18引脚)之间接入一个晶振,两个引脚对地分别再接入一个电容可产生所需的时钟信号,电容的容量一般取30Pf。图 3-2 AT89C51的最小系统(3)复位电路在复位引脚(9引脚)持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号 将使单片机复位。如图3-1所示,电容C和电阻R构成了单片机上电自动复位电路。复位后,
34、单片机从0000H单元开始执行程序,并初始化一些专用寄存器为复位状态值,受影响的专用寄存器如表3-1所示。表3.1 寄存器状态表寄存器状态寄存器状态PC000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXXX00000HSBUF不确定IEOXX00000HPCON0XXX0000HTMOD00H(4)控制引脚EA接法EA/VPP(31引脚)为内外程序存储器选择控制引脚,当EA为低电位时,单片机从外部存储器取指令;当EA接高电平时,从单片机内部程序存储器取指令。AT89C51单片机内部有4K
35、B可反复擦写1000次以上的程序存储器,因此要把EA接+5V高电平,让单片机运行内部的程序,这样就可以反复烧写来验证程序了。这就是AT89C51单片机最小化系统的连接,只要把编写好的程序烧写到单片机内部,并接上5V电源就可以正常运行了,在17引脚上接上的发光二极管可以用来验证系统是否正常。3.2 数字式时钟的外围电路设计3.2.1 时钟电路时钟时单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。如图3-3所示。图3-3 单片机时钟AT89C51单片机内部有一个
36、用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2.这两个引脚跨界石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。3.2.2 LCD显示电路液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型爷晶显示模块已经是单片机应用设计中最常用的信息显示器件了。本次设计,我们使用的是长沙太阳人电子有限公司SMC1602A LCM液晶。1602A液晶实物如图3-4,1602A主要参数如表3.2所示。 图3-4 1602B液晶实物图该模块也可以只用D4-D7作为四位数据分两次传送。这样的话,可以节省MCU的I/O口资源。1602A可以显示2
37、行16个字符,有8为数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。表3.2 1602A液晶主要技术参数显示容量162个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.954.35(WXH)mm该模块也可以只用D4-D7作为四位数据分两次传送。这样的话就可以节省MCU的I/O口资源。各引脚的功能见表3.3。表3.3 1602A液晶引脚说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/02VDD电源正极10D3Data I/03VL液晶显示偏压信号11D4Data I/04RS
38、数据/命令选择端(H/L)12D5Data I/05R/W读/写选择端(H/L)13D6Data I/06E使能信号14D7Data I/07D0Data I/015BLA背光源正极8D1Data I/016BLK背光源负极从该模块的正面看,引脚排列从右至左为:15引脚、16引脚,然后才是1至14引脚。VDD:电源正极,4.55.5V,通常使用5V电压;VL:LCD对比度调节端,电压调节范围为05V。接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“重影”,因此,通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;RS:MCU写入数据或指令选择端。MCU要写入指令
39、时,使RS为低电平;MCU要写入数据时,使RS为高电平;R/W:读写控制端。R/W为高电平时,读写数据;R/W为低电平,写入数据;E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。D0-D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。BLA:LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右。BLK:LED背光地端。1602A液晶与单片机系统的连接图如3-5所示。图3-5 1602A液晶与单片机系统的连接图3.2.3 电源电路电源电路包括变压器、桥式整流器、电容
40、和稳压器。通过变压器变压,使得220V电压变为12V,再通过桥式整流,电容的滤波作用,稳压器的稳压作用,可输出5V的稳定电压。如图3-6所示。图3-6 系统电源电路3.2.4 按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定。这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动的持续时间长短与开关的机械特性有关,一般在510ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工
41、作状态不会产生相互影响。按键电路如图3-7所示。图3-7 按键电路图P3.0口:表示功能移位键,按键选择要调整的时、分、秒、年、月、日。P3.1口:表示数字“+”键,按一下则对应的数字加1。P3.2口:表示数字“”键,按一下则对应的数字减1。 3.2.5 复位电路AT89C51单片机的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。上电复位:上电复位电路时一种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就
42、可以了。上电复位是指给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。 如图3-8所示,上电自动复位是通过外部复位电路的电容充电来实现的。只要VCC的上升时间不超过1ms,就可以实现自动上电复位。 图3-8 复位电路3.3 本章小结本章介绍了多功能数字钟系统的硬件模块组成,详细介绍了各个模块的组成及功能。MCU的组成和特点、单片机时钟、显示模块的构建与运用、电源电路的设计制作。基本上是完成了作为单片机所
43、需的硬件结构。同时也显示了对软件支持的强烈要求。4 数字式时钟的软件设计4.1 系统软件设计内容本设计的软件程序包括主程序、中断子程序、时钟显示程序以及延时子程序等。该设计有三个弹性小按键组成的小键盘,这些键盘可以修改时钟的显示状态。按功能移位键一次,表示当前要校对的是 “秒”位;按两次,表示当前校对的是“分”位;按三下,表示当前要校对的是“时”位;按四下,表示当前要校对的是“日期”位;按五下,表示当前要校对的是“月份”位;按六下,表示要校对的是“年份”位;按七下,系统恢复到正常运行状态。而当移位功能正在调整时,可以使用“+”键、“-”键对当前校对位的数字进行增加1或者减去1运算。系统软件采用
44、C语言编写。时钟的最小计时单位是秒,但是使用定时器的方式1,最大的定时时间也只能达到131ms。我们可以把定时器的设定时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计时20次可以用软件实现。秒计时是采用中断方式进行溢出次数的累积,记满20次,即可得到秒计时。从秒到分,分到时,时到日,日到月,月到年都是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则“日期”单元中的内容加1,同时将时、分、秒的内容全部清零;依此类推,便可以得到月份,年
45、份。实时时钟程序设计步骤:(1)选择工作方式,计算初值;(2)采用中断方式进行溢出次数累计;(3)从秒分时日月年是通过累加和数值比较实现的;(4)时钟显示缓冲区:时钟时间在LCD液晶显示器上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值;(5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来;(6)中断服务程序:进行计时操作;(7)加1子程序:用于完成对时、分、秒等的加操作,中断服务程序在秒、分、时等加1时调用加1子程序。(8)减1子程序:用于完成对时、分、秒等的减操作,中断服务程序在秒、分、时等减1
46、时调用减1子程序4.2主程序主程序主要有main()组成通过对相关子程序的调用,实现对时间的设置与修改、LCD显示等主要功能。相关的调整是靠对功能键的判断来实现的。我们用流程框图来表示,如下图4-1所示:开始I/0口初始化时间显示单元首地址调入按键扫描程序减1功能键时间、标识位初始化是否有键输入?是不是抖动?调用加1功能程序时钟功能修改键调动查键号程序加1功能键调用时钟功能修改程序调用减1功能程序是是否是否是是否否图4-1 主程序流程主程序段如下:#include#include#define uchar unsigned char#define uint unsigned intsbit lcdrs=P20; /数据/命令选择端sbit lcdrw=P21; /读/写选择端sbit lcded=P22; /液晶使能端