设计任务:
1、设计任务:利用单片机、时钟芯片 DS1302、温度传感器 DS18B20、1602 液晶 等实现日期、时间、温度的显示即一个简单的万年历。
2、设计要求
(1)通过 DS1302 能够准确的计时,时间可调并在液晶上显示出来。
(2)通过 DS18B20 能够实时、准确的检测当前环境温度。
(3)利用单片机自身功能实现闹钟
总体方案论证与设计 总体方案论证与设计 本系统以 AT89S52 单片机为控制核心,通过与 DS1302 和 DS18B20 通信获取实时时间和实时环境温度,并将得到的数据通过 1602 液晶 显示出来,同时通过相应的按键调整相应的值。因此本设计可分为一 下模块:显示模块、实时时间计算模块、实时环境温度采集模块、报 警模块、设置模块(时间设置模块、最高温度设置模块、闹钟设置模 块)。下面对各个模块逐一进行论证分析:
1、 液晶显示模块
方案(1):数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二 极管的状态显示相应的数字。要使数码管正常显示就得有驱动电路驱动相应的段码,数码管 的现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计 应采用动态显示方式。由于动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不大 于 20 毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。
方案(2):1602 液晶也叫 1602 字符型液晶 它是一种专门用来显示字母、数字、符号等 的点阵型液晶模块 它有若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以 显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。1602 的驱动电路带有 11 条指令,可以很方便的控制液晶的现实效果如:清屏、 左移右移、光标显示。而且 1602 显示的字符在下一条指令为到来之前不会改变,也就是能 够维持显示的字符,1602 液晶占用的系统资源也少。 综合比较上述两种方案,应采用 1602 液晶组成本设计的显示模块。
2、 实时时间计算模块
方案(1):AT89S52 单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉 冲进行计数,从而达到计时功能,只要使用 11.0592 的晶振就能实现零误差的计时,因此可 以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的 程序,而且如果单片机掉电无法继续进行计时,所以使用不便。
方案(2):DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片, 附加 31 字节静态 RAM,采用 SPI 三线接口与 CPU 进行通信,并可采用突发方式一次传送 多个字节的时钟信号和 RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个 月小与 31 天时可以自动调整,且具有闰年补偿功能。工作电压宽达 2.5~5.5V。采用双电源 供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充 电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少, 程序简单。 综合上述两种方案,宜采用方案(2)实现实时计时功能。
资料包括:
程序运行图:
仿真图: