资源描述:
《基于51单片机的数字时钟设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一设计要求及方案证2二系统基本方案选择和论证22.1单片机芯片的选择方案和论证22.2显示模块选择方案和论证32.3时钟芯片的选择方案和论证4三系统的硬件设计与实现53.1电路设计框图53.2主要单元电路的设计53.2.1晶体振荡电路53.2.2分频器电路63.2.3时间计数器电路63.2.4内部时钟电路63.2.5复位电路73.2.6按键部分83.2.7声光报警电路8四、电路原理分析94.1显示原理94.2键盘及读数原理94.3连击功能的实现9五、程序设计思想和相关指令介绍95.1数据与代码转
2、换95.2计时功能的实现与中断服务程序105.3时间控制功能与比较指令10六、系统的软件设计116.1主程序部分126.2计时显示中断子程序部分136.3调时功能流程图146.4程序15七设计心得24一设计要求及方案证设计制作和调试一个由8051MCU单片机组成的数字时钟系统。通过这个过程学习熟悉键盘控制和七段数码管得使用,掌握51系列单片机控制和测试的方法。设计以89S51单片机为核心,以LED为显示方式的万年历时钟显示,完成基本要求。1)数码管显示:年月日时分秒。2)键盘输入修改时间、日期设
3、置。二系统基本方案选择和论证2.1单片机芯片的选择方案和论证方案一:采用89C51芯片作为硬件核心,其内部采用FlashROM,具有4KBROM存储空间,能于3V的超低压工作,但运用于电路设计中时由于不具备ISP在线编程技术,烧入程序时需要专门的C编程器(当前可用的实验烧写开发板只支持具有ISP在线编程功能的AT89S**系列的芯片),当在对电路进行调试时,更显麻烦,并且增加了造价,方案二:采用89S51芯片作为主控模块,AT89S51是MCS-51系列单片机目前运用较多的一种芯片,采用Flas
4、hROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且具备ISP在线编程技术,方便对电路进行调试.但由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。针对该问题,可采用易于插拔的芯片插槽,芯片的程序烧写用专门的实验板进行烧写(当前可用的实验烧写开发板支持AT89S**系列).AT89S51单片机的功能引脚图如下图所示:AT89S51单片机的功能引脚图所以选择采用AT89S51作为主控制系统.2.2显示模块选择方案和论证方案一:采用LED液晶显
5、示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏.方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案三:采用LED数码管进行静态显示,LED数码管价格适中,对于显示数字最合适,而且采用静态显示法与单片机连接时,占用的单片机口线少(采用十二小时制显示,以P0、P1、P2口分别作为分、十分、小
6、时位显示段码输出,而十小时位只需要显示1或者不显示,故只要用到P3口的两个引脚P3.1和P3.2作为显示段码输出即可)。共阳极8段数码管引脚图所以采用了LED数码管作为显示。2.3时钟芯片的选择方案和论证方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,精度也较高,工作电压2.5V~5.5V范围内,功耗也较低,但价格比较贵,且目前市场上采购不到方案二:直接采用单片机定时计数器提供秒信号,使用程序实现时、分
7、、秒计数。采用此种方案实现虽然有一定的时间误差,但可减少少芯片的使用,节约成本,易于实现,符合初学者实验选用。所以采用方案二。综上各方案所述,对此次作品的方案选定:采用AT89S51作为主控制系统;通过软件编程采用定时器定时实现秒.分.时计时;LED数码管静态显示时间。三系统的硬件设计与实现3.1电路设计框图复位电路AT89S51主控制模块LED数码管显示时间时钟振荡电路外部中断校时\校分电路电源电路3.2主要单元电路的设计3.2.1晶体振荡电路晶体振荡器电路给数字钟提供一个频率稳定准确的327
8、68Hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体荡器电路。本设计中的震荡电路如图3.1所示图3.1晶振电路3.2.2分频器电路分频器电路将高频方波信号经分频后得到1Hz的方波信号供秒计数器进行计数,分频器实际上也就是计数器。3.2.3时间计数器电路时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器而根据设计要求,时个位和时十位计数器为12进制计