1、I单片机电子时钟的设计摘 要单片机自 20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而 51 单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以 AT89S51 芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由 4.5V 直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达
2、学习、设计、开发软、硬件的能力。关键词:单片机 AT89S摘 要 .IAbstract.II第一章 前言 .1第二章 方案论证与比较 .22.1 数字时钟方案 .22.2 数码管显示方案 .2第三章 系统设计 .33.1 总体设计 .33.1.1 系统说明 .33.1.2 系统框图 .33.2 模块设计 .43.2.1 电源部分 .43.2.2 复位电路 .43.2.3 程序下载接口 .53.2.4 位选部分 .53.2.5 数码管的连接电路 .63.2.6 控制部分 .6第四章 原理图与 PCB 图 .8第五章 软件设计 .95.1 程序流程图 .95.2 源程序 .11第六章 总结 .18
3、6.1 物品清单与元件特性 .186.2 设计总结 .19参考文献(References): .20致 谢 .201第一章 前言时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用 LED 显示器代替显示器代替指针显示进而显示时间,
4、减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887
5、,X1203等都可以满足高精度的要求。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机 AT89S51 芯片和 LED 数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。第二章 方案论证与比较2.1 数字时钟方案数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。方案一:本方案采用 Dallas 公司的专用时钟芯片 DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于 10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池
6、。当电网电压不足或2突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现 1 秒定时中断,每产生一次中断,存储器内相应的秒值加 1;若秒值达到 60,则将其清零,并将相应的分字节值加 1;若分值达到 60,则清零分字节,并将时字节值加 1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当
7、单片机不上电,程序不执行时,时钟将不工作。基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。2.2 数码管显示方案方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个 8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的 I/O 口太多,造成了资源的浪费。方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于
8、点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了 I/O 口,降低了能耗。从节省 I/O 口和降低能耗出发,本设计采用方案二。3第三章 系统设计3.1 总体设计3.1.1 系统说明利用单片机(AT89S51)制作简易电子时钟,由六个 LED 数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。6 个 PNP 管(9012)分别控制六个数码管的亮灭,一个按键用于时间调整。3.1.2 系统框图显示部分控制部分单片机(AT89S51)按键 S2复位电路电源部分直流电源 4.5V6 个七段共阴极数码管显示秒,分钟及小时位位选部分6 个 PNP 三极管
9、( 9012)图 3-143.2 模块设计3.2.1 电源部分图 3-2如图 3-2 所示,从外部引入 4.5V 的直流电,为单片机、复位电路提供电源。3.2.2 复位电路图 3-3如图 3-3 所示,复位电路主要由型号为 1N4148 的二极管,型号为 10UF/16V 的电解电容,型号为 104 的瓷片电容,10K 的电阻以及按键 S1 构成,S1 接芯片的相应引脚 RST,当开关按下时引脚 RST 为高电平 1,断开时引脚为低电平 0。53.2.3 程序下载接口图 3-4如图 3-4 所示,由 AT89S ISP 构成的两排十针下载口,板图上有一个小方框,为1 号引角;下载线的凸口为正方
10、向,凸口的右侧边的第一个插孔为 1 号引角。3.2.4 位选部分图 3-5图 3-5 为位选电路,三极管的集电极接数码管的公共端,当 P2 口对应的引脚输出高电平时三极管导通,对应的数码管显示数据。这样,在同一时刻,6 位 LED 中只有选通的那 1 位显示出字符,而其他 5 位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于
11、LED的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位同时亮6的假象,达到同时显示的效果。3.2.5 数码管的连接电路图 3-6图 3-6 为数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与 1 个 8 位的锁存器输出相连,由 AT89S51 控制组合 09 十个数据,如令其显示 1则 b,c 引脚(即 2,3 引脚)送高电平,此时数码管显示 1。由于各位的段码线并联,8 位 I/O 口输出段码对各个显示位来说都是相同的。73.2.6 控制部分图 3-7AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS 8 位单片机,片内含 4K b
12、ytes 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度,非易失性存储技术生产,兼容标准 8051 指令系统及引脚。 AT89S51 提供以下标准功能:4K 字节 Flash 闪速存储器,128 字节内部 RAM, 32I/O 口线,看门狗(WDT) ,两个数据指针,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。如图 3-7 所示,AT89S51 有 40 引脚,双列直插( DIP)封装,所用引脚功能如下:1. VCC 运行时加 4.5V2. GND 接地3. XTAL1 振荡器反相放大器及内部时钟发生器的输
13、入端4. XTAL2 振荡器反相放大器的输出端5. RST 复位输入,高电平有效,在晶振工作时,在 RST 引脚上作用2 个机器周期以上的高电平,将使单片机复位。WDT 溢出将使该引脚输出高电平,设置 SFT AUXR 的 DISRTO 位(地址 8EH)可打开或关闭该功能。DISRTO 位缺省为 RESET 输出高电平打开状态。86. EA/VPP 片外程序存储器访问允许信号。欲使 CPU 仅访问外部程序存储器(地址为 0000H-FFFFH) ,EA 端必须保持低电平(接地) ,如果 EA 端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器中的指令。7. P1 口,P2 口P1,P2 是一组带内部上拉电阻的 8 位双向 I/O 口。运行时通过 P1 口控制驱动电路的工作,将数据送到数码管,显示相应的段码,为了达到减少功耗或满足端口对最大电流的限制,应加上一限流电阻。P2.0P2.5口控制数码管的位选,使六个数码管轮流显示数据,等于 1 时位选三极管导通,等于 0 时位选三极管截止。8. 无自锁开关(S2P3.7 )开关接相应引脚 P3.7,当开关按下时,相应引脚为低电平 0,断开时引脚为高电平 1。第四章 原理图与 PCB 图9图 4-1图 4-2第五章 软件设计