1、 1单片机多功能数字电子时钟设计绪论概述时间对人们来说是非常宝贵的,准确的掌握时间和分配时间对人们来说至关重要。因此自从时钟发明的那刻起,就成为人类的好朋友。随着时间的流逝,科学技术的不断发展和提高人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好、更方便、更精确的显示时间,这就要求人们不断设计研发。出新型的时钟。高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高稳定性好、使用方便、不需要经常调校。数字式电子钟用集成电路计时时译码代替机械式传动,用 LCD 显示器代替指针进而显示时间、减小了计时误差,这种表具有时、分、秒显示时间
2、的功能,还可以进行时和分的校对,片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用 是保证系统正常工作的基础。在单片机的应用系统中,时钟有两个方面的含义。一是指为保障系统正常工作的基准振荡定时信号、主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢二是指系统的标准定时时钟即定时时间。它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时器/计数器来实现,二是用专门的时钟芯实现。2 研究目的通过利用 STC89C52 单片机和 DS1302 芯片和 DS18B20 以及外围的按键和 LCD 显示器等部件显示完整的日历和温度,设计一个基于单片机的电子时钟。通过设计
3、可以很好的学习单片机的基础知识。具有日历、时间、温度显示功能。设计的电子时钟通过液晶显示器显示并能通过按键对时间进行设置。2第一章 设计要求与方案论证1.1 设计要求1 具有年、月、日、星期、时、分、秒显示功能,2 具有年、月、日、星期、时、分、秒校正功能,3 具有 12/24 小时切换显示功能,4 具有显示温度功能。1.2 系统基本方案选择和论证1.2.1 单片机芯片的选择方案和论证方案一:采用 STC89C52 芯片作为硬件核心。STC89C52 内部具有 8KB ROM 存储空间,512 字节数据存储空间、带有 2K 字节的 EEPROM 存储空间与 MCS-51 系列单片机完全兼容,S
4、TC89C52 可以通过串口下载。方案二:采用 AT89S52。AT89S52 片内具有 8K 字节程序存储空间、256 字节的数据存储空间没有 EEPROM 存储空间也与 MCS-51 系列单片机完全兼容,具有在线编程可擦除技术。两种单片机都完全能够满足设计需要、STC89C52 相对 ATS89C52 价格便宜且抗干扰能力强。考虑到成本因素,因此选用 STC89C52。1.2.2 显示模块选择方案和论证方案一采用点阵式数码管显示。点阵式数码管是由八行八列的发光二极管组成,可用来显示数。但体积较大、且价格也相对较高、从便携实用的角度出发,不采用此种方案。方案二采用 LED 数码管动态扫描。L
5、ED 数码管价格便宜,对于显示数字最合适,但功耗较大 且显示容量不够,所以也不用此种方案。方案三采用 LCD 液晶显示屏。液晶显示屏的显示功能强大,可显示大量文字、显示多样,清晰可见,且价格适中所以采用了 LCD 数码管作为显示。1.2.3 时钟芯片的选择方案和论证方案一直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用、节约成本,但是实现的时间误差较大。所以不采用此方案。方案二采用 DS1302 时钟芯片实现时钟。DS1302 芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作
6、电压2.5V5.5V 范围内 2.5V 时耗电小于 300nA.1.2.4 温度传感器的选择方案与论证:方案一:3使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行 A/D 转换。此设计方案需用 A/D 转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。方案二:采用数字式温度传感器 DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除 A/D 模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范
7、围广等优点。1.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定: 采用 STC89C52 单片机作为主控制系统;采用 DS1302 作为时钟芯片;采用 1602 LCD 液晶作为显示器件。4第二章 主要元器件介绍2.1 STC89C52 介绍2.1.1 STC89C52 主要功能及 PDIP 封装STC89C52 是由深圳宏晶科技公司生产的与工业标准 MCS-51 指令集和输出管脚相兼容的单片机。STC89C52 主要功能如表 1 所示 其 PDIP 封装如表 1 所示 主要功能特性。表 2-1 STC89C52 主要功能表:主要功能特性 32兼容 MCS51 指令系统 8K 可
8、反复擦写 Flash ROM32 个双向 I/O 口 256X8Bit 内部 RAM3 个 16 位可编程定时/计数器中断 时钟频率 024MHZ2 个串行中断 可编程 UART 串行通道两个外部中断 共 6 个中断源2 个读写中中断口线 3 级加密位低功耗空闲和掉电模式 软件设置睡眠和唤醒功能2.1.2 STC89C52 引脚介绍 主电源引脚 (2 根)VCC(Pin40): 电源输入,接+5V 电源GND(Pin20): 接地线外接晶振引脚 (2 根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚 (4 根)RST/VPP(Pin9):
9、 复位引脚 引脚上出现 2 个机器周期的高电平将使单片机复位。ALE/PROG(Pin30): 地址锁存允许信号PSEN(Pin29): 外部存储器读选通信号EA/VPP(Pin31): 程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚 (32 根)STC89C52 单片机有 4 组 8 位的可编程 I/O 口,分别位 P0、P1、P2、P3 口,每个口有 8位(8 根引脚), 共 32 根。P0 口(Pin39Pin32):8 位双向 I/O 口线 名称为 P0.0P0.7P1 口(Pin1Pin8):8 位准双向 I/O 口
10、线 名称为 P1.0P1.7P2 口(Pin21Pin28):8 位准双向 I/O 口线 名称为 P2.0P2.7P3 口(Pin10Pin17):8 位准双向 I/O 口线 名称为 P3.0P3.7其功能引脚如图 2-1 所示。5图 2-1 STC89C52 PDIP 封装图2.1.3 STC89C52 最小系统最小系统是指能进行正常工作的最简单电路。STC89C52 最小应用系统电路如图 2.2 所示。它包含五个电路部分:电源电路、时钟电路、复位电路、片内外程序存储器选择电路、输入/输出接口电路。其中电源电路、时钟电路、复位电路是 保证单片机系统能够正常工作的最基本的三部分电路,缺一不可。
11、电源电路 芯片引脚 VCC 一般接上直流稳压电源+5V,引脚 GND 接电源+5V 的负极,电源电压范围在 45.5 之间,可保证单片机系统能正常工作。为提高电路的抗干扰性能,通常在引角 VCC 与 GND 之间接上一个 10uF 的电解电容和一个 0.1uF 陶片电容,这样可抑制杂波串扰,从而有效确保电路稳定性。时钟电路 单片机引脚 18 和引脚 19 外接晶振及电容,STC89C52 芯片的工作频率可在233MHz 范围之间选,单片机工作频率取决于晶振 XT 的频率,通常选用 11.0592MHz 晶振。两个小电容通常取值 3pF,以保证振荡器电路的稳定性及快速性。复位电路 一般若在引脚
12、RST 上保持 24 个工作主频周期的高电平,单片机就可以完成复位但为了保证系统可靠地复位 复位电路应使引脚 RST 保持 10ms 以上的高电平。如图复位电路带有上电自动复位功能当电路上电时,由于 C1 电容两端电压值不能突变,电源+5V 会通过电容向 RST 提供充电电流,因此在 RST 引脚上产生一高电平,使单片机进入复位状态。随着电容 C1 充电,它两端电压上升使得 RST 电位下降,最终使单片机退出复位状态。正常运行时可按复位按钮对单片机复位,如图 2-2 所示6图 2-2 STC89C52 最小系统2.2 DS1302 时钟芯片介绍2.2.1 DS1302 概述DS1302 是美国
13、 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V 。采用双电源供电,主电源和备用电源,同时提供了对后背电源进行涓细电流充电的能力。采用三线接口与 CPU 进行同步通信,图 2-3 所示图 2-3 DS1302 封装图2.2.2 DS1302 引脚介绍各引脚功能为:VCC:主电源Vcc2: 备用电源。当 Vcc2Vcc1+0.2V 时,由 Vcc2 向 DS1302 供电:当Vcc2Vcc1 时,由 Vcc1 向 DS1302 供电。SCLK: 串行时钟输入端,控制数据的输入与输出
14、I/O: 三线接口时的双向数据线7CE: 输入信号,在读、写数据期间必须为高2.2.3 DS1302 使用方法(1) 时钟芯片 DS1302 的工作原理DS1302 在每次进行读、写程序前都必须初始化,先把 SCLK 端置 “0”,接着把 RST端置“1”,最后才给予 SCLK 脉冲; 读/写时序如图 5 所示。表 2 为 DS1302 的控制字,此控制字的位 7 必须置 1, 若为 0 则不能把对 DS1302 进行读写数据。对于位 6,若对程序进行读/写时 RAM=1,对时间进行读/写时, CK=0。位 1 至位 5 指操作单元的地址。位 0 是读/写操作位,进行读操作时,该位为 1;该位
15、为 0 则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表 6 为 DS1302 的日历、时间寄存器内容:“CH”是时钟暂停标志位 当该位为 1 时,时钟振荡器停止,DS1302 处于低功耗状态 当该位为 0 时 时钟开始运行。 “WP”是写保护位,在任何的对时钟和 RAM 的写操作之前WP 必须为 0。当“WP”为 1 时 写保护位防止对任一寄存器的写操作。(2) DS1302 的控制字节DS1302 的控制字如表所示。控制字节最高有效位(位 7) 必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 为 0,表示存取日历时钟数据,为 1 表示存取 RAM 数
16、据:位5 至位 1 指示操作单元的地址最低有效位(位 0) 如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始传输表 2-2 DS1302 的控制字格式RAM RD1 A4 A3 A2 A1 A0/ CK /WR(3) 数据输入输出(I/O)在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302 数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 7。其读写时序如图 2-4 示图 2-4 DS1302 读写程序(4)DS1302 寄存器;DS
17、1302 中与时间、日期有关的寄存器共有 12 个,其中 7 个存放数据的格式为 BCD 码格8式,其读写地址如下表所示。表 2-3 DS1302 时钟寄存器读寄存器写寄存器 Bit7 Bit7 Bit7 Bit7 Bit7 Bit7 Bit7 Bit7 范围81H 80H CH 10 秒 秒 005983H 82H 10 分 分 005912 1002385H 84H240AM/PM时 时11287H 86H10 月日 02389H 88H 10 月月 1128BH 8AH 0 0 0 0 周 1318DH 8CH 10 年 年 1128FH 8EH WP 0 0 0 0 0 0 0 。第一
18、行秒寄存器,CH 为时钟暂停标志位、该位为 1 时时钟停止,该位为 0 时时钟运行。第二行分寄存器,bit0bit6 表示分钟数 因采用 BCD 编码 所以低四位最大能表示的数字为 9,计数满向高三位进 1。第三行时寄存器、12/24 用来定义 DS1302 小时的运行模式,12 小时模式下 bit5 为1 表示 PM 下午,bit5 为 0 表示 AM 上午。 第八行控制寄存器bit7 是写保护位 WP 当WP 为 1 时 写保护位可防止对任一寄存器的写操作,在任何的对时钟和 RAM 的写操作之前,WP 位必须为 0。此外DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及
19、与RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH,其中奇数为读操作、偶数为写操作,另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。2.3 1602 字符液晶介绍2.3.1 1602 液晶概述工业字符型液晶,1602 是指显示的内容为 16*2,能同时显示两行,每行 16 个字符。常见的 1602 字符液晶有两种,一种显示绿
20、色背光黑色字体,另一种显示蓝色背光白色字体 目前市面上绝大多数基于 HD44780 液晶芯片控制,原理是完全相同的。本课题所用1602 液晶模块,显示屏是蓝色背光白色字体。如图 2-5 所示。9图 2-5 1602 字符液晶2.3.2 1602 引脚介绍图 2-6 LCD 液晶显示表 2-4 1602 字符液晶引脚说明编号 符号 引脚说明 编号 符号 引脚说明1 GND 电源地 2 VCC 电源正极3 V0 液晶显示对比度调解端4 RS 数据/命令选择端5 R/W 读写选择 6 E 使能信号7 D0 数据口 8 D1 数据口9 D2 数据口 10 D3 数据口11 D4 数据口 12 D5 数
21、据口13 D6 数据口 14 D7 数据口15 BLA 背光电源正 16 BLK 背光电源负各个引脚具体功能说明:第 1 脚,GND 为地电源。第 2 脚,VCC 接 5V 正电源。第 3 脚,VO 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用一个 1K 的电位器调整对比度。10第 4 脚:RS 为寄存器选择 高电平时选择数据寄存器 低电平时选择指令寄存器。第 5 脚:R/W 为读写信号线 高电平时进行读操作 低电平时进行写操作。第 6 脚:E 端为使能端 当 E 端由高电平跳变成低电平时 液晶模块执行命令。第 714 脚:DB0DB7 为 8 位双向数据线。第 1516 脚:背光灯电源。2.3.3 1602 字符液晶使用方法1 基本操作时序表 2-5 1602 字符液晶读写状态表操作 输入 输出读指令 RS=L, RW=H, E=H, D0D7=状态字写指令 RS=L,RW=L,D0D7=指令码,E=H, 无读数据 RS=H, RW=H, E=H, D0D7=数据写数据 RS=H,EW=L, D0D7=数据,E=高脉冲, 无读写操作时序如图 2-7 和 2-8 所示:图 2-7 1602 液晶读时序图