利用DS1302实时时钟电路芯片来读取系统中的日期以及时间等信息,DS1302的SCLK、I/O和RST分别接AT89C51的P1^4、P1^5、P1^6端口,将相关信息传送至AT89C51主芯片中;液晶显示12864接AT89C51的P0端口和P1端口,使之显示于LCD液晶显示屏上;矩阵键盘接AT89C51的P3端口,可以对时间进行控制修改;在此只用到红绿黄三个LED,它们分别接AT89C51的P1^7,P1^1和P1^0端口,以显示温度的高低;蜂鸣器则接到到AT89C51的P1^2端口,用于整点报时。
2.2 方案论证
2.2.1 控制芯片的选择
采用AT89C51芯片,其为高性能CMOS 8位单片机,该芯片内含有4k bytes的可反复擦写的只读程序存储器(PEROM)、128bytes的随机存取数据存储器(RAM)、32位可编程I/O口线、2个16位定时/计数器、6个中断源、可编程串行UART通道及低功耗空闲和掉电模式。
2.2.2 显示模块选择方案和论证
采用12864LCD,电路比较简单,且在软件设计上也相对简单,具有低功耗能,能够满足设计最优的要求。因此,在设计中采用的显示模块式LCD显示。
2.2.3 时钟芯片的选择方案和论证
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,256位的RAM作为数据暂存区,工作电压2.5~5.5V范围内,2.5V时耗电小于300nA。且硬件电路连接较为简单,程序设计容易实现。
2.2.4 温度采集芯片的选择方案与论证
采用DS18B20数字温度传感器实现,DS18B20在与微处理器连接时仅需要一条线即可实现微处理器与DS18B20的双向通信;其测温范围为-55℃~+125℃;支持多点组网功能,在使用中不需要任何外围元件。
2.2.5 整点报时模块设计
整点报时模块由蜂鸣器及其驱动电路组成。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、震动膜片及其外壳组成,接通电源后,振荡器产生的音频信号电流通过电磁铁线圈,使电磁线圈产生磁场。震动膜片在电磁线圈和磁铁的相互作用下周期性的震动发声。所以当给蜂鸣器以一定频率的脉冲的时候,蜂鸣器就可以发出一定频率的声音,利用此原理可以是蜂鸣器发出乐曲。
2.2.6 温度报警模块的设计
温度报警模块由发光二极管模拟显示,当温度低于20℃时,黄色二极管点亮;当温度高于20℃但低于28℃时,绿色二极管点亮;当温度高于28℃时,红色二极管点亮。
3基于单片机的电子时钟硬件设计
3.1 主控器AT89C51
3.1.1 主控制器 AT89C51简介
AT89C51是一种带4K闪存的低电压高性能CMOS8位微处理器,其Flash可擦除的次数多达1000次。该器件采用Atmel高密度非易失性存储器技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,AT89C51是一种高效的微控制器[1]。其管脚图如下图所示:
图3.1 AT89C51的管脚图
3.1.2 主要特性
(1)与 MCS-51兼容;
(2)4K字节可编程闪烁存储器;
(3)寿命:1000 写/擦循环;
(4)数据保留时间:10 年;
(5)全静态工作:0Hz-24Hz;
(6)三级程序存储器锁定;
(7)128*8 位内部 RAM;
(8)32 可编程I/O 线;
(9)两个16 位定时器/计数器;
(10)5 个中断源;
(11)可编程串行通道;
(12)低功耗的闲置和掉电模式;
(13)片内振荡器和时钟电路。
3.1.3 管脚说明
VCC:供电点压。
GND:接地。
P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写入时,被定义为高阻输入。P0口能够用于外部程序数据存储器,它可定义为数据/地址的低八位。在Flash编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 AT89C51单片机的多功能电子日历钟设计(3):http://www.751com.cn/zidonghua/lunwen_9567.html