基于51单片机的多功能时钟.docx
- 文档编号:2850806
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:48
- 大小:326.13KB
基于51单片机的多功能时钟.docx
《基于51单片机的多功能时钟.docx》由会员分享,可在线阅读,更多相关《基于51单片机的多功能时钟.docx(48页珍藏版)》请在冰豆网上搜索。
基于51单片机的多功能时钟
可以实现时钟日期温度实时显示,带源程序
基于DS1307的多功能时钟系统
摘要:
以AT89S52单片机为控制核心,通过实时时钟芯片DS1307和数字温度传感器DS18B20构成了一个多功能的数字时钟系统。
本报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。
系统采用液晶LCD128*64作为显示器,具有实时时间与日历显示、环境温度显示、按键调时、闹铃定时等功能。
软件程序采用均采用C语言编写,便于移植与升级。
关键词:
实时时钟日历单片机DS1307DS18B20LCD128*64
引言
目前家用的数字电子钟,多数只能显示小时、分钟等信息,功能单一,而且大都采用LED数码管作为显示器件,功耗大,不能令消费者满意。
为此,我开发了一款多功的数字式电子钟,它可以显示年、月、日、小时、分钟等时间信息,同时可以显示环境的温度信息。
还具有按键调时、设定闹铃等功能,而且通过一块3.18V的备用电池,在单片机断电后让时钟芯片DS1307独立工作,因此每次给单片机上电即可显示当前时间,无需调整。
时钟采用LCD作为显示器,界面友好,功耗低。
一、系统的硬件构成
系统以AT89S52单片机作为核心控制器件,外围主要有实时时钟芯片DS1307、温度传感器DS18B20等,均为串行通信器件,使得系统线路简单可靠性高。
系统结构框图1所示。
图1系统结构框图
1.1单片机主控模块
系统采用AT89S52单片机作为控制核心。
AT89S52单片机与MCS_51系列单片机产品兼容,采用了Flash存储器结构,可以在线下载程序,易于日后的升级。
它主要负责各个模块的初始化工作;设置定时器、寄存器的初值;读取并处理时间、温度等信息;处理按键响应;控制液晶实时显示等。
硬件电路连接如图2所示。
系统采用12M晶振;P2.0,P2.1,P2.2口为单片机与液晶显示器连接的控制和通信的数据端口;C_RESET和R_RESET组成系统上电复位电路;P2.6和P2.7为单片机与时钟芯片DS1307通信的端口;P2.3为闹铃的控制端口;P1.6为单片机与温度传感器DS18B20的通信端口;P1.0,P1.1为按键模块的接口。
图2单片机主控电路
1.2实时时钟日历模块
系统采用DS1307实时时钟芯片。
电路连接如图3。
Y2为32.768kHz的晶振,为时钟芯片提供计时脉冲;Vbat为DS1307的备用电源,以便在没有主电源的情况下能够保存时间信息和一些重要的数据;两个电阻为
总线的上拉电阻。
⑴DS1307是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,它是一款
总线接口的时钟日历芯片,采用两线与CPU进行通信,片内含有8个特殊功能寄存器和56bit的SRAM。
主要技术性能指标:
具有秒、分、时、日、星期、月、年的计数功能,并且具有12小时制和24小时制的计数模式,可自动调整每月的天数,具有闰年调整的功能,具有自动掉电保护和上电复位的功能。
1DS1307的引脚功能
DS1307的引脚图如图3所示,采用8引脚双列直插dip封装,芯片内部结构图如图4所示。
各个引脚功能如下:
Vcc:
主电源;
Vbat:
备份电源。
当Vbat>Vcc+0.2V时,由Vcc2向DS1307供电,当Vbat GND: 逻辑地; SCL: 总线时钟线; SDA: 总线数据线; SQW/OUT: 图3DS1307的引脚分配 图4DS1307的内部结构 2DS1307的内部寄存器 DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如图5所示。 小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。 当为高时,选择12小时模式。 在12小时模式时,位5是 ,当为1时,表示PM。 在24小时模式时,位5是第二个10小时位。 秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。 当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。 控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。 在任何的对时钟和RAM的写操作之前,WP位必须为0。 当WP位为1时,写保护位防止对任一寄存器的写操作。 图5DS1307的时间寄存器 3DS1307硬件电路设计 DS1307采用与CPU进行通信,电路连接简单。 DS1307的内部振荡电路结构如图6所示,在芯片内部连接有两个电容,目的是为了使晶振起振,所以在电路设计中就不需要另外再加电容了,电路图如图7所示,其中晶振采用的是32.768kHz,经内部电路分频后可获得一个标准的秒脉冲信号;电阻R_SCL、R_SDA是 总线的上拉电阻。 图6DS1307的内部振荡电路 图7DS1307的电路连接 1.3温度传感器模块 系统采用DS18B20作为温度传感器。 它是美国DSLLAS公司推出的单总线数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易匹配处理器等优点。 处理器与DS18B20通信只需要一根数据线即可,同时该数据线还可以向挂接的DS18B20供电。 它可以直接将温度转化成串行数字信号处理,与模拟温度传感器相比,DS18B20省去了信号调理、A/D转换等前向通道处理电路,从而使得系统线路简单,成本低廉。 它的主要技术性能指标: (1)电压范围: +3.0~+5.5V(可用数据线供电) (2)测温范围: -55℃~+125℃ (3)通过编程可实现9~12位的数字读数方式,测温分辨率可达0.0625℃ (4)可自设定非易失性的报警上下限值。 电路连接如图8所示。 其中DQ为数据输入/输出端口,R_Up为数据线的上拉电阻,确保数据传输的可靠性。 图8温度传感器电路 1.4闹铃模块 系统采用蜂鸣器作为闹铃输出。 电路连接如图9所示。 电路中采用PNP管9012来控制蜂鸣器的开关,由图可以看出当Bell引脚为高电平时,PNP管截止,蜂鸣器不工作;当Bell引脚为低电平时,PNP管导通,蜂鸣器工作。 其中R2为限流电阻。 图9闹铃电路 1.5键盘模块 键盘模块设置了两个按键: KEY1,KEY2。 其中用KEY1长按来控制菜单的主模式,短按为使设定值上升;用KEY2短按来使设定值减小。 电路连接如图2所示。 2个上拉电阻可以保证在没有按键输入时,进入单片机四个I/O口的按键状态均为高电平,防止干扰产生;当有按键按下时,相应的口线被拉低。 软件上采用查询的方式,用定时器定时对按键状态进行扫描,确保系统的实时性。 1.6液晶显示模块 系统中采用LCD128*64作为显示器件输出信息。 与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。 LCD128*64可以显示4行8个汉字,并行工作时具有8位数据总线D0-D7,和RS、R/W、E三个控制端口,串行工作时只有CS,SID,CLK三个通信口,本次设计就是采用串行通信,可以节省单片机IO口的使用,工作电压为5V,并且带有字符对比度调节和背光设置。 管脚功能简介: 引脚号引脚名称方向功能说明 1VSS模块的电源地 2VDD模块的电源正端 3V0LCD驱动电压输入端 4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号 5R/W(SID)H/L并行的读写选择信号;串行的数据口 6E(CLK)H/L并行的使能信号;串行的同步时钟 7DB0H/L数据0 8DB1H/L数据1 9DB2H/L数据2 10DB3H/L数据3 11DB4H/L数据4 12DB5H/L数据5 13DB6H/L数据6 14DB7H/L数据7 15PSBH/L并/串行接口选择: H-并行;L-串行 16NC空脚 17/RETH/L复位低电平有效 18NC空脚 19LED_A-背光源正极(LED+5V) 20LED_K-背光源负极(LED-OV) 电路连接如图10。 图10液晶显示电路 总的硬件电路如下图: 二、系统的软件设计 系统的软件设计可以分为几个部分,首先是各个模块的底层驱动程序编写,而后是系统联机调试,编写上层系统程序。 本系统软件程序主要包括: 液晶LCD128*64的底层驱动模块、时钟芯片DS1307的底层驱动模块、传感器DS18B20的底层驱动模块、键盘扫描模块,闹钟模块等。 系统的软件流程图如图11。 图11 系统软件流程图 (1)DS1307软件程序设计 DS1307是基于 总线接口的时钟芯片,软件上完全与 总线完全兼容。 a) 总线的驱动程序 总线在传送数据时,必须确认传送数据的开始和结束。 而且每传送一个字节,要发送一个应答位(0);在一个周期发送结束后,要发送一个应答位 (1)。 具体如图12所示,三种信号的格式如下: Ø启动信号: 当时钟总线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“启动”信号。 Ø停止信号: 当时钟总线SCL为高电平时,数据线SDA由低电平跳变为高电平定义为“结束”信号。 Ø应答位: 当主器件发送完一字节的数据后,后面必须跟一个应答位(ACK)。 在时钟高电平期间,如果数据线SDA为低电平代表一个字节的传送结束,并准备下一个要传送的字节;在时钟高电平期间,如果数据线SDA为低电平代表一个传送周期结束,准备下一个传送周期。 图12 总线的数据传送格式 b)DS1307的读写控制 DS1307的写控制 图13是DS1307的写控制格式,首先发送启动信号,然后发送的第一个字节是用来控制芯片的地址以及读写控制为(D0: 0–写),之后是应答位,然后发送其它字节数据,在最后发送一个结束标志的应答位,紧跟着是停止信号。 图13CPU写数据模式 DS1307的读控制 图14是DS1307的读控制格式,首先发送启动信号,然后发送的第一个字节是用来控制芯片的地址以及读写控制为(D0: 1–读),之后是应答位,然后发送其它字节数据,在最后发送一个结束标志的应答位,紧跟着是停止信号。 图14CPU读数据模式 (2)DS18B20是One-wire总线接口的芯片,软件上对时序的要求特别高。 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤: 每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。 复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 DS18B20的指令如下: (3)键盘处理模块,可以设定成边沿触发或者电平触发方式。 整个系统的软件设计均采用C语言开发,因此这些器件的底层程序均可以移植到其它系统中,这就是采用C语言开发的最大的优点。 各程序模块如下: 1.预定义 *******************************************************************************/ #include"KEYS.h" #include #include #include #i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 多功能 时钟