版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于51单片机的数字时钟 实训单位: 系 别: 工程技术系 专 业: 姓 名: 56摘 要本文介绍了基于at89c51单片机的数字式时钟的设计,详细叙述了系统硬件、软件的具体实现过程。本文在硬件、软件设计上均采用模块化的方法,使得在设计和调试方面取得很大的方便。软件同样采用模块化的设计,包括中断模块、时间调整模块等设计,并采用简单流通性强的c语言编写实现。本设计实现了时、分、秒的显示和时间修改的功能。通过对比实际的时钟,查找出误差的来源,确定调整误差的方法,尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。关键字:at89c51单片机;数字钟;模块化;目 录1 绪 论11.1 课题
2、背景11.2 课题意义21.3 数字式时钟的应用21.4 本章小结32 单片机简介32.1 单片机的选择32.1.1 单片机的特点52.1.2 单片机的应用领域52.2 at89c51单片机的基本结构62.3 本章小结113 数字式时钟的硬件设计123.1 最小系统设计133.2 数字式时钟的外围电路设计143.3 本章小结194 数字式时钟的软件设计194.1 系统软件设计内容194.2主程序204.3时钟设置子程序224.4中断子程序244.5 lcd显示子程序244.6 本章小结265 数字式时钟的protues软件仿真265.1 protues软件的概述265.2 protues软件的
3、功能特点275.3 protues软件具有4大功能模块275.4 数字式时钟的proteus软件仿真295.5 本章小结35结 论36致 谢37单片机介绍37附录421 绪 论1.1 课题背景单片机自1976年由intel公司推出mcs-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的各个方面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、pc机外围以及网络通讯等广大领域。单片机有两种基本机构形式:一种是在通用微型
4、计算机中广泛采用的,将程序存储器和数据存储器合用一个存储空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求,而且还有很多功能可供开发,有着广泛的应用领域。20世纪80年代中期以后,intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如atmel、philps、analog、de
5、vices、dallas等。这些厂家生产的芯片是mcs-51系列的兼容产品,准确地说是与mcs-51指令系统兼容的单片机。这些兼容机与8051的系统机构(主要是指令系统)相同,采用cmos工艺。因而,常用80c51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。其功能和市场竞争力更强,不该把它们直接称为mcs-51单片机,因而mcs只是intel公司专用的单片机系列型号。mcs-51系列及80c51单片机有很多种品种。它们引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使用的mcs-51系列单片机及其兼容产品通常分为以下几类:基本型、增强型、
6、低功耗型、专用型、超8位型、片内闪烁存储器型。1.2 课题意义在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器
7、,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,他可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。1.3 数字式时钟的应用数字点钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但显示当前的时间,而且可以显示日期、农历、以及星期等,给人
8、们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前时间。忘记了要做的事情,当事情不是很重要的时候,这种遗憾无伤大雅。但是一旦重要事情,一时的耽误可能酿成大祸。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。1.4 本章小结本章主要介绍了单片机
9、的历史发展过程,单片机的产生与发展给人们带来了那些影响。以及数字钟在日常生活中的具体应用给日常生活带来的方便。2 单片机简介本次设计的主要思想:使用整个单片机作为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。时钟芯片产生时钟信号,利用单片机的i/o口传输给单片机;并通过i/o口实现lcd的显示。系统设有4个按键可以对时、分、秒、进行调整。整个框图如图2-1所示。图2-1 系统整体框图2.1 单片机的选择随着计算机及电子技术的飞跃发展,单片机也在不断更新换代,并成为电子系统中进行数据采集,信息处理,通信联络和实施控制的重要器件。单片机技术已渗入到了各个领
10、域,在智能仪器仪表,工业监测控制,电力电子,汽车电子等方面得到了广泛的应用,并取得了巨大的成果。在今后若干年,mcs-51单片机的应用仍将占主要地位,仍然是我国单片机应用领域的主流机型。现今各个领域的工程技术人员都应掌握单片机应用技术。单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件cpu、内存内部和外部总线系统。单片机是将中央处理器,随机存储器。只读存储器,定时器芯片和i/o接口电路集成于一个芯片上的微控制器。单片机也被称为微控制器(microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅
11、有cpu的专用处理器发展而来。最早的设计理念是通过将大量外围设备和cpu集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。intel的z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的cd4000系列这些纯硬件来搞定的话,电路一定是一块大pcb板!但是如果要是用美国70年代成功投放市场的系列单片机,结
12、果就会有天壤之别!只因为单片机是通过你编写的程序可以实现高智能,高效率,以及高可靠性!单片机的组成如图 2-2:图 2-2 单片机组成框图目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能ic卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。2.1.1 单片
13、机的特点(1)控制性能和可靠性高实时控制功能特别强,其cpu可以对i/o端口直接进行操作,位操作能力更是其它计算机无法比拟的。另外,由于cpu、存储器及i/o接口集成在同一芯片内,各部件间的连接紧凑,数据在传送时受干扰的影响较小,且不易受环境条件的影响,所以单片机的可靠性非常高。近期推出的单片机产品,内部集成有高速i/o口、adc、pwm、wdt等部件,并在低电压、低功耗、串行扩展总线、控制网络总线和开发方式(如在系统编程isp)等方面都有了进一步的增强。(2)体积小、价格低、易于产品化单片机芯片即是一台完整的微型计算机,对于批量大的专用场合,一方面可以在众多的单片机品种间进行匹配选择;同时还
14、可以专门进行芯片设计,使芯片的功能与应用具有良好的对应关系;在单片机产品的引脚封装方面,有的单片机引脚已减少到8个或更少,从而使应用系统的印制板减小、接插件减少、安装简单方便。2.1.2 单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1)在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、
15、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。(2)在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。(3)在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。(4)在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的
16、通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。(5)单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。本次我们设计选用的是at89c51系列单片机,是由atmel公司生产的。2.2 at89c51单片机的基本结构2.2.1 at89c51单片机简介at89c51是一种带4k字节flash存储器(fperomflas
17、h programmable and erasable read only memory)的低电压、高性能cmos 8位微处理器,俗称单片机。at89c2051是一种带2k字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c51的引脚封装概述图2-3 89c51的引脚封装(1)主电源引脚:vcc(40脚):接+5 v
18、电源正端。vss(20脚):接+5 v电源地端。(2)时钟电路引脚:外接晶体振荡器,不能超过24m;需加微调电容,一般为30pf;xtal1:接外部晶振和微调电容的一端,在单片机内部,它是构成片内振荡器的反向放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部振荡器的输入端。xtal2:接外部晶振和微调电容的另一端,在单片机内部,它是构成片内振荡器的反向放大器的输出端。当采用外部振荡器时,此引脚应悬空。(3)复位电路引脚rst/vpd:rst是复位信号输入端,高电平有效。当此输入端保持2个机器周期的高电平时,就可以完成复位操作。rst引脚的第二功能是备用电源的输入
19、端。单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。复位作用是使cpu以及其他功能部件,如串行口,中断都恢复到一个确定初始状态,并从这个状态开始工作。复位电路有两种:上电、按钮复位,考虑到各部件影响,采用按钮复位,当电阻给电容充电,电容的电压为高电平,当按下按钮时芯片复位脚近似低电平,于是芯片复位。(4)控制信号引脚:ale/prog:(address latch enable/ programming)地址锁存允许信号端,当单片机上电正常工作后,ale引脚不断向外输出正弦脉冲信号,此频率为振荡器频率的1/6。cpu访问外部存储器时,ale作为锁存
20、低8位地址的控制信号。此引脚的第二功能prog作为8751编程脉冲输入端使用。psen:(program store enable)在访问片外存储器时,此端定时输出负脉冲作为片外存储器的选通信号。ea/vpp:(enable address/voltage pulse of programming)当ea接高电平时,cpu访问片内rom,并执行内部程序存储器中的指令,但当pc(程序计数器)的值超过4k时,将自动转去执行片外存储器内的程序。当ea脚接低电平时,cpu只访问片外rom并执行外部程序存储器中的指令,而不管是否有片内程序存储器。vpp是对8751片内rom固化程序时,作为施加较高编程电
21、压(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口时,可作为准双向输入/输出口。在接有片外存储器或扩展i/o口时,p0口分时复用为低8位地址总线和双向数据总线。2) p1口(1-8脚):p1.0
22、-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口使用外,还可以将每一位用于第二功能,而且p3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。2.2.2 at89c51单片机工作的
23、基本时序机器周期和指令周期:1. 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期。2. 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。(3) 机器周期: 一个机器周期包含 6 个状态周期s1s6, 也就是 12 个时钟周期。在一个机器周期内, cpu可以完成一个独立的操作。 (4) 指令周期: 它是指cpu完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。mcs - 51 系统中, 有单周期指令、双周期指令和四周期指令。2.2.3 at89c51单片机的内部结构及存储器配置(1)at89c51单片机内部的结构cpu
24、:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;ram:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;rom:用以存放程序、一些原始数据和表格;i/o口:四个8位并行i/o口,既可用作输入,也可用作输出;t/c:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式。图2-4 mcs-51的内部结构框图(2)at89c51单片机的存储器配置 图2-5 单片机的内部存储器配置从用户的角度存储器分3个逻辑地址空间:1)片内外统一编址的64kb程序存储器地址空间0000hffffh即(a)图;2)256b的片内数据存储器地址空间00hffh(包括低12
25、8b的内部ram地址00h7fh和高128b的特殊功能寄存器地址空间)即(b)图;3)64kb的外部数据存储器或扩展i/o接口地址空间0000hffffh;4)画出ram的组成;ram共有256个单元,按功能分为两部分低128单元(单元地址00h7fh)和高128单元(单元地址80hffh)。其中高128单元是供给专用寄存器使用,因这些寄存器的功能已作为专门规定故此称之为特殊功能寄存器sfr11个sfr有位寻址作用,而且要说明低128单元是单片机的真正ram存储器。表2.1 ram的组成30h7fh通用ram区20h2fh位寻址区(00h7fh)18h1fh工作寄存器3区(r7r0)10h17
26、h工作寄存器2区(r7r0)08h0fh工作寄存器1区(r7r0)00h07h 工作寄存器 0区(r7r0)低128单元是单片机的真正ram存储器,按其用途划分为三个区域:(1)通用寄存器区 通用寄存器为cpu提供了就近数据存储的便利,有利于提高单片机的运算速度。此外,使用通用存储器还能提高程序编制的灵活性,因此在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。(2)位寻址区内部ram的20h2fh单元,即可作为一般ram单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。(3)工作寄存区用户存储数据的。2.3 本章小结本章节先介绍单片机
27、的发展及其在现代生活中的广泛应用,然后再详细讲解了单片机内部各引脚的作用,如 i/0口,xtal1、xtal2晶振接口,vcc电源接口端等等,为进一步理解单片机的功能打下初步的基础;最后提到了单片机的存储器rom、ram在单片机运行中的作用,为我们进一步认识单片机有很好的帮助。通过这章单片机知识的学习,可以让我们对单片机从抽象到具体的一个认识,也为下面章节的应用打下坚实的基础。3 数字式时钟的硬件设计本章节主要介绍数字式时钟的硬件设计,从单片机最小系统出发,然后讲解该设计的外围电路设计。该设计的外围电路包括时钟电路模块,lcd显示模块,电源模块,按键模块以及复位电路模块,通过对各个模块的详细介
28、绍,让我们对整个设计方案有一个深入的了解。整个数字式时钟的硬件设计电路图如图3-1所示。图3-1 数字式时钟硬件整体图3.1 最小系统设计单片机要正常运行,必须具备一定的硬件条件,其中最主要的就是三个条件:(1)电源正常;(2)时钟正常;(3)复位正常。at89c51的引脚如图3-2所示,在at89c51单片机的40个引脚中,电源引脚两根,晶振引脚2根,控制引脚4根,可编程输入输出引脚32根。(1)工作电源电源是单片机工作的动力源泉,对应的接线方法为:40引脚(vcc)电源引脚,工作是接+5电源,20引脚(gnd)为接地线。(2)时钟电路时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都
29、是在同一的时序脉冲的驱动下进行的,时钟电路就好比人的心脏一样重要。当采用内部时钟时,连接方法如图3-1所示,在晶振xtal(19引脚)和xtal(18引脚)之间接入一个晶振,两个引脚对地分别再接入一个电容可产生所需的时钟信号,电容的容量一般取30pf。图 3-2 at89c51的最小系统(3)复位电路在复位引脚(9引脚)持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号 将使单片机复位。如图3-1所示,电容c和电阻r构成了单片机上电自动复位电路。复位后,单片机从0000h单元开始执行程序,并初始化一些专用寄存器为复位状态值,受影响的专用寄存器如表3-1所示。表3.1 寄存器状态表寄存器
30、状态寄存器状态pc000htcon00hacc00htl000hpsw00hth000hsp07htl100hdptr0000hth100hp0-p3ffhscon00hipxxx00000hsbuf不确定ieoxx00000hpcon0xxx0000htmod00h(4)控制引脚ea接法ea/vpp(31引脚)为内外程序存储器选择控制引脚,当ea为低电位时,单片机从外部存储器取指令;当ea接高电平时,从单片机内部程序存储器取指令。at89c51单片机内部有4kb可反复擦写1000次以上的程序存储器,因此要把ea接+5v高电平,让单片机运行内部的程序,这样就可以反复烧写来验证程序了。这就是at
31、89c51单片机最小化系统的连接,只要把编写好的程序烧写到单片机内部,并接上5v电源就可以正常运行了,在17引脚上接上的发光二极管可以用来验证系统是否正常。3.2 数字式时钟的外围电路设计3.2.1 时钟电路时钟时单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。如图3-3所示。图3-3 单片机时钟at89c51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚xtal1,输出端为引脚xtal2.这两个引脚跨界石英晶体振荡器
32、和微调电容,就构成一个稳定的自激振荡器。3.2.2 lcd显示电路液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型夜晶显示模块已经是单片机应用设计中最常用的信息显示器件了。本次设计,我们使用的是长沙太阳人电子有限公司smc1602a lcd液晶。1602a液晶实物如图3-4,1602a主要参数如表3.2所示。 图3-4 1602b液晶实物图该模块也可以只用d4-d7作为四位数据分两次传送。这样的话,可以节省mcu的i/o口资源。1602a可以显示2行16个字符,有8为数据总线d0-d7,和rs、r/w、en三个控制端口,工作电压为5v,并且带有字符对比度调节和背光。表3.2 16
33、02a液晶主要技术参数显示容量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数据/命令选择端(h/l)12d5data i/05r/w读/写选择端(h/l)13d6data i/06e使能信号14d7data
34、i/07d0data i/015bla背光源正极8d1data i/016blk背光源负极从该模块的正面看,引脚排列从右至左为:15引脚、16引脚,然后才是1至14引脚。vdd:电源正极,4.55.5v,通常使用5v电压;vl:lcd对比度调节端,电压调节范围为05v。接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“重影”,因此,通常使用一个10k的电位器来调整对比度,或者直接串接一个电阻到地;rs:mcu写入数据或指令选择端。mcu要写入指令时,使rs为低电平;mcu要写入数据时,使rs为高电平;r/w:读写控制端。r/w为高电平时,读写数据;r/w为低电平,写入数据;e:
35、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 电源指示灯电路电源指示电路主要用于查看电路是否供电,有电阻和发光二极管组成。图3-6 系统电源指示灯电路3.2.4 按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键
36、闭合过程在相应的i/o端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定。这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动的持续时间长短与开关的机械特性有关,一般在510ms之间。为了避免cpu多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用i/o口线构成单个按键电路,每个按键占用一条i/o口线,每个按键的工作状态不会产生相互影响。按键电路如图3-7所示。图3-7 按键电路图p2.5口:表示功能移位键,按键选择要调整的时、分、秒、p2.6口:表示数字“+”键,按一下则对应的数字加1。p2.7口:表示数字“”键,按一下则对应的数字减1。 3.2
37、.5 复位电路at89c51单片机的复位是由外部的复位电路来实现的。复位引脚rst通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的s5p2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。上电复位:上电复位电路时一种简单的复位电路,只要在rst复位引脚接一个电容到vcc,接一个电阻到地就可以了。上电复位是指给系统上电时,复位电路通过电容加到rst复位引脚一个短暂的高电平信号,这个复位信号随着vcc对电容的充电过程而回落,所以rst引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,rst引脚的高电平信号必须维持
38、足够长的时间。 如图3-8所示,上电自动复位是通过外部复位电路的电容充电来实现的。只要vcc的上升时间不超过1ms,就可以实现自动上电复位。 图3-8 复位电路3.3 本章小结本章介绍了多功能数字钟系统的硬件模块组成,详细介绍了各个模块的组成及功能。mcu的组成和特点、单片机时钟、显示模块的构建与运用、电源电路的设计制作。基本上是完成了作为单片机所需的硬件结构。同时也显示了对软件支持的强烈要求。4 数字式时钟的软件设计4.1 系统软件设计内容本设计的软件程序包括主程序、中断子程序、时钟显示程序以及延时子程序等。该设计有三个弹性小按键组成的小键盘,这些键盘可以修改时钟的显示状态。按功能移位键一次
39、,表示当前要校对的是 “秒”位;按两次,表示当前校对的是“分”位;按三下,表示当前要校对的是“时”位;而当移位功能正在调整时,可以使用“+”键、“-”键对当前校对位的数字进行增加1或者减去1运算。系统软件采用c语言编写。时钟的最小计时单位是秒,但是使用定时器的方式1,最大的定时时间也只能达到131ms。我们可以把定时器的设定时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计时20次可以用软件实现。秒计时是采用中断方式进行溢出次数的累积,记满20次,即可得到秒计时。从秒到分,分到时都是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加1;“秒”单元
40、满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,同时将时、分、秒的内容全部清零;依此类推,实时时钟程序设计步骤:(1)选择工作方式,计算初值;(2)采用中断方式进行溢出次数累计;(3)从秒分时是通过累加和数值比较实现的;(4)时钟显示缓冲区:时钟时间在lcd液晶显示器上进行显示,为此在内部ram中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值;(5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来;(6)中断服务程序:进行计时操作;(7)加1子程序:用于完成对时、分、秒等的加操作,
41、中断服务程序在秒、分、时等加1时调用加1子程序。(8)减1子程序:用于完成对时、分、秒等的减操作,中断服务程序在秒、分、时等减1时调用减1子程序4.2主程序主程序主要有main()组成通过对相关子程序的调用,实现对时间的设置与修改、lcd显示等主要功能。相关的调整是靠对功能键的判断来实现的。我们用流程框图来表示,如下图4-1所示:图4-1 主程序流程主程序段如下:#include#include#define uchar unsigned char#define uint unsigned intsbit lcdrs=p35; /数据/命令选择端sbit lcdrw=p36; /读/写选择端s
42、bit lcded=p37; /液晶使能端sbit s1=p25; /功能键sbit s2=p26; /数字加1键sbit s3=p27; /数字减1键uchar num,tt,i,j;uchar keycount;char shi,fen,miao; uint nian,yue,ri; main() /主函数 init();/初始化while(1)keysanf(); /读键void init()/初始化函数shi=12;fen=0;miao=0;/起始时间为12:00:00nian=2012;yue=5;ri=28;keycount=0;/按键标志清零p1=0x0f;/按键接口高电平tmo
43、d=0x01;/计时器初始化 tt=0;th0=(65536-50000)/256;tl0=(65536-50000)%256;tr0=1;/开定时器ea=1;/开中断et0=1;/开定时器中断lcdrw=0;lcded=0;write_com(0x38);/显示器初始化write_com(0x0c);/开显示,关光标,关光标闪烁write_com(0x06);/读写字符后地址加一write_com(0x01);/清屏write_nyr(nian,yue,ri); write_sfm(shi,fen,miao);4.3时钟设置子程序时钟的修改首先要按功能键并停止时间的输出显示,否则系统继续刷新
44、时间则无法修改,所以时间是不输出到lcd的。修改的部分以修改的为准,没有修改的通过中断保护起来,等修改成功后继续显示。主要流程图如图4-2所示。时钟修改程序中,首先将时钟年份单元设为显示首地址,然后,以年份,月份,日期,时,分,秒为顺序进行相对应的修改。而年份,月份,日期,时,分,秒的功能子程序都相同,所以我们就以秒位功能修改子程序为例,如下:if(s1=0) /功能键被按下delay(5);if(s1=0)while(!s1);keycount+;if(keycount=1) /秒位调整tr0=0;/计时器关 时间停止走动write_com(0x80+0x40+10);/光标移到秒位上wri
45、te_com(0x0d);/光标闪烁而在时间修改功能中,我们要用到1个数字加减的问题,加1和减1的程序大体相同,故我们以加1程序为例,把它作为一个子程序,流程方框图如4-3所示。通过判断功能键的状态,也就是纪录值来确定,然后在相应位上进行数字的增减,由于年份,月份,日期,时,分,秒的加1,减1程序类似,我们就以秒位修改程序为例。if(s2=0) /加1键delay(5);if(s2=0)while(!s2);miao+;if(miao=60)miao=0;write_com(0x0c);/光标停止闪烁write_sfm(shi,fen,miao);/将调解后是时间显示write_com(0x8
46、0+0x40+12);/光标再次移到秒位write_com(0x0d);/光标继续闪烁if(s3=0) /减1键delay(5);if(s3=0) while(!s3);miao-;if(miao=-1)miao=59;write_com(0x0c);write_sfm(shi,fen,miao);write_com(0x80+0x40+12);write_com(0x0d);4.4中断子程序mcs-51系列单片机有5个中断源,中断分为2个中断优先级,即高优先级和低优先级,每个中断源的优先级都可以有软件来设定。中断地址如表4.1所示。表4.1 中断地址表5个中断源入口地址外部中断0(/int0
47、)0003ht0溢出中断000bh外部中断1(/int1)0013ht1溢出中断001bh串口中断0023hvoid time0()interrupt 1 /中断程序th0=(65536-45872)/256;tl0=(65536-45872)%256;tt+;if(tt=20)tt=0;图4-2 功能键子程序流程框4.5 lcd显示子程序lcd显示子程序可对1602液晶上面的字符进行设置和时间的修改,程序如下:uchar code table2= ; /显示空格void delay(uint s) /延时函数uchar a, b;for(a=0;as;a+)for(b=0;b110;b+);
48、void write_com(uchar com) /写命令函数lcdrs=0; /选择写命令方式lcdrw=0;p1=com;delay(6); lcded=1; /开启使能端delay(6);lcded=0;void write_date(uchar date) /写数据函数lcdrs=1; /选择写数据方式lcdrw=0;p1=date;delay(6);lcded=1; /开启使能端delay(6);lcded=0;void write_nyr(uint nian,uint yue,uint ri)void write_sfm(uchar shi,uchar fen,uchar mia
49、o)uchar shi,ge;shi=date/10;/分解一个2位数的十位和个位ge=date%10;lcd_write_cmd(one+add);/设置显示位置lcd_write_data(0x30+shi);/送去液晶显示十位lcd_write_data(0x30+ge); /送去液晶显示个位write_com(0x80+0x40); /第二行输入time字符write_com(0x80+0x40+4);/从第二行第四位开始写时冒号分冒号秒write_date(shi/10+0x30);/时 的十位 数字的代码为代码加0x30write_date(shi%10+0x30);/时个位wri
50、te_date(0x3a);/冒号的字符代码为3awrite_date(fen/10+0x30); /分write_date(fen%10+0x30);write_date(0x3a);write_date(miao/10+0x30); /秒write_date(miao%10+0x30);write_com(0x80+0x40+13);for(i=0;i2;i+)write_date(table2i);/输入空格 4.6 本章小结本章介绍了本设计的软件设计,所有的功能在流程图里清晰的表现力出来,包括主程序流程图、时钟及闹钟修改流程图等,并附有相关程序的主要部分。在软件的设计中模块化设计很重要
51、,显示很直观不会发生混乱现象,容易上手。5 数字式时钟的protues软件仿真5.1 protues软件的概述protues软件是英国labcenter electronics公司出版eda工具软件。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真
52、软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、8086和msp430等,2010年即将增加cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar和mplab等多种编译。5.2 protues软件的功能特点protues软件具有其它eda工具软件(例:multisim)的功能。这些功能是: (1)原理布图 (2)pcb自动或人工布线 (3)spice电路仿真 革命性的特点: (1)互动的电路仿真。用户甚至可以实时采用诸如ram,rom,键盘,马达,le
53、d,lcd,ad/da,部分spi器件,部分iic器件。 (2)仿真处理器及其外围电路。可以仿真51系列、avr、pic、arm、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,protues建立了完备的电子设计开发环境。5.3 protues软件具有4大功能模块(1)智能原理图设计(isis)丰富的器件库:超过27000种元器件,可方便地创建新元件。智能的器件搜索:通过模糊搜索可以快速定位所需要的器件。智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间。支持总线结构:使用总线器件和总线布线使电路设计简明清晰。可输出高质量图纸:通过个性化设置,可以生成印刷质量的bmp图纸,可以方便地供word、powerpoint等多种文档使用。(2)完善的电路仿真功能(prospice)prospice混合仿真:基于工业标准spice3f5,实现数字/模拟电路
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关法律服务所律师工作计划例文
- 高二英语下整整学期教学计划
- 工作计划农业干部学习计划
- 春季幼儿总园学期工作计划范文
- 小学语文四年级教学工作计划表
- 任职目标2025年干部综合科个人写作目标计划
- 公司会计、财务工作计划文稿
- 《多基因病》课件
- 《蛋白质化学最终版》课件
- 《高血压病及其相关》课件
- 试验检测单位安全培训课件
- 二年级下册加减混合竖式练习360题附答案
- 公路沥青路面设计标准规范
- 2024年湖北交投智能检测股份有限公司招聘笔试参考题库含答案解析
- 2023年银行安全保卫知识考试题库(含答案)
- 水库白蚁防治标书
- 广东省深圳市宝安、罗湖、福田、龙华四区2023-2024学年数学九年级第一学期期末联考试题含解析
- 电子电路EWB仿真技术
- 小学三年级语文教研活动记录表1
- 初中九年级化学课件化学实验过滤
- 教学课件:《新时代新征程》
评论
0/150
提交评论