一、概述:
本项目是一种基于AT89C52单片机的万年历设计,本方案以AT89C52单片机作为主控核
心,与时钟芯片DS1302、按键、LCD1602液晶显示器组成硬件系统。在硬件系统中设有独立按键和LCD1602显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行更改,读取方便、显示直观。
二、方案设计
1、项目总体方案:
本系统以AT89C52单片机为控制核心,通过与DS1302通信获取实时时间,并将得到的数据通过1602液晶显示出来,同时通过相应的按键调整相应的值。因此本设计可分为以下模块:显示模块,实时时间计算模块,设置模块。
单片机89C52主控制模块
LCD液晶显示模块
DS1302时钟模块
键盘模块
项目系统框图
2、系统基本方案的选择和论证
单片机芯片的选择:
方案(1):采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案(2)
我们采用89C52单片机作为系统的核心。89C52具有高集成度、低成本、低电源电压、低功耗等优势是因为单片机具有价格低、应用灵活、面向控制的特点,而在8位单片机中,51系列历史最长,形成了既具有经典性又不乏生命力的一个单片机系列,因为具有低成本的特点,在功能并不太复杂的设计中,单片机作为核心完全能够达成预定的功能,同时降低了量产化后的成本。
显示模块的选择:
方案(1):数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字,要使数码管正常显示就得有驱动电路驱动相应的段码,数码管的现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计应采
>>>>>
用动态显示方式,由于动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不大于20ms,占用系统资源大,而且显示的字型有限,在本设计中不易采用。
方案(2):采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如采用全显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。
方案(3):1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它有若干个5*7或者5*11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,1602的驱动电路带有11条指令,可以很方便的控制液晶的现实效果如:清屏、左移右移、光标显示。而且1602显示的字符在下一条指令未到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。
综合比较上述两种方案,应采用1602液晶组成本设计的显示模块。
实时时间计算选择:
方案(1):AT89C52单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能,只要使用11.0592MHZ的晶振就能实现零误差的计时,因此可以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的程序,而且如果单片机掉电无法继续进行计时,所以不方便。
方案(2):DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。相对于AT89C52的