数字万年历毕业设计.docx
《数字万年历毕业设计.docx》由会员分享,可在线阅读,更多相关《数字万年历毕业设计.docx(40页珍藏版)》请在冰豆网上搜索。
数字万年历毕业设计
编号:
论文题目
教学系:
专业班级:
学生姓名:
指导教师:
2014年4月22日
摘要
随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。
在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。
在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。
关键词:
万年历时间温度单片机液晶显示
目录
1方案论证........................................................3
1.1单片机芯片的选择方案和论证...................................3
1.2显示模块选择方案和论证.......................................3
1.3时钟芯片的选择方案和论证.....................................3
1.4电路设计最终方案决定.........................................4
2系统的硬件设计与实现..............................................5
2.1电路设计框图.................................................5
2.2系统硬件概述.................................................5
2.3单片机主控制模块的设计.....................................5
2.3.1时钟电路模块的设计........................................6
2.3.2电路原理及说明.............................................7
2.3.3显示模块的设计.............................................8
3系统的软件设计....................................................9
3.1程序流程框图.................................................9
4测试与结果分析...................................................11
4.1硬件测试....................................................11
4.2软件测试....................................................11
4.3测试结果分析与结论..........................................11
4.3.1测试结果分析..............................................11
4.3.2测试结论..................................................11
5proteus软件仿真..................................................12
5.1ProteusISIS简介.............................................12
5.2Proteus运行流程..............................................13
5.3Proteus功能仿真..............................................13
6课程设计总结与致谢...............................................16
参考文献...........................................................17
附录一:
系统电路图.................................................18
附录二:
系统程序...................................................19
1绪论
1.1选题的依据及意义
单片机应用技术迅速发展,在我们生活的各个领域,无论工业发展中还是现实生活中都离不开它,它是集CPU,RAM,ROM,定时,计数和多接口于一体的微控制器。
它体积小,成本低,功能强大,广泛应用于只能产业和工业自动化上。
51系列单片机是各种单片机中最具典型和最有代表性的一种。
通过这次毕业设计可以让我提升学习,设计,开发软硬件的能力。
电子万年历的设计就是建立在单片机的基础上,它是应用非常广泛的日常计时工具,而且显示清晰直观,走时准确,可以进行夜视。
数字显示的日历钟已经越来越流行,特别是在家庭居室,办公室,车站和广场等使用,壁挂式LED数码显示的日历钟逐渐受到人们的欢迎。
[1]
随着科学技术的快速发展,时间的流逝,从摆钟到现在的电子钟,人类不断的研究,不断创新纪录。
美国DALLAS公司推出的具有涓流电流充电能的低功耗实时时钟电路DS1302.它可以对年,月,日,周,时,分,秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年,月,日,周,时,分,秒和温度等信息,还具有时间校准等功能。
该电路采用AT89C52单片机作为核心,功能小,能在3V的低压工作,电压可选用3—5V电压供电。
[2]
综上所述此万年历具有读取方便,显示直观,功能多样,电路简洁,成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有管扩大市场前景,值得我们进入深入的研究和了解。
意义:
(1)通过设计提高对单片机的认识,进一步熟悉和掌握单片机的结构及工作原理。
(2)通过设计、制作提高焊接、布局、电路检查能力;
(3)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高软件设计、调试能力;
(4)通过完成一个实际电子产品从电路设计、程序开发、系统调试的完整过程,熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术,掌握相关电路参数的计算方法。
通过此毕业课题的设计,加深对理论知识的理解,学会将学习的理论知识在实际中运用,培养动手能力和解决实际问题的能力,为今后从事相关工作打下基础。
1.2国内外研究现状及发展趋势
随着科学技术的发展,以前的年历已发展成现在的电子万年历,他一开始是采用数字电路实现的,电路复杂,精确度差,每天都需要调时,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得它的电路越来越简单,精确度越来越高,现在的电子万年历一般都是集成芯片和软件结合实现,电路简单,制作方法简便,给人们生产生活带来了极大的便利,它已成为我们生活中不可缺少的家居用品。
[3]
二十一世纪的今天,最具有代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。
前两次革命是摆和摆轮游丝的发明,以及石英晶体振荡器的应用,第三次革命就是单片机数码计时技术的应用(电子万年历),使得从原来传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期,星期,温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!
因此,电子万年历的出现带来了钟表计时业界跨越性的进步。
电子万年历的发展趋势将会朝着功能多,读取操作简单,显示更加直观,电路更加简洁,成本越来越低,满足大部分人的要求。
随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。
集成技术的最新发展之一就是将CPU和外围芯片,如程序存储器,数据存储器,并行,串行I/O口,定时/计数器,中断控制器及其他控制器件集成在一个芯片中,支撑单片计算机。
而近年来推出的一些高档单片机还包括有许多特殊功能的单元,如A/D,D/A转换器,调制解调器,锁相环,浮点运算单元等。
因此只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如数据采集系统,自动测试系统等。
[4]
1.3本课题研究内容
设计一个基于单片机多功能的电子万年历。
单片机最为本设计的核心,实现时钟日历的显示:
用1602显示月、日、星期、时、分、秒,用DS1302作为该设计的实时时钟芯片。
2系统的硬件设计与实现
AT89S52
主控制模块
2.1电路设计框图
图1
系统原理图
2.2系统硬件概述
本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。
可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成;显示部份由LCD液晶显示屏显示。
2.3单片机主控制模块的设计
AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。
第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。
如图2所示:
图2主控制系统
2.3.1时钟电路模块的设计
图.3示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768KHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。
中有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。
SCLK始终是输入端。
图3DS1302的引脚图
2.3.2电路原理及说明
(1)时钟芯片DS1302的工作原理:
DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。
DS1302的控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。
对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0,位1至位5指操作单元的地址。
位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。
控制字节总是从最低位开始输入/输出的。
表.2为DS1302的日历、时间寄存器内容:
“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。
“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作。
(2)DS1302的控制字节:
DS1302控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出
(3)数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
(4)DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
2.3.3显示模块的设计
如图.4为LCD显示模块,和最小系统上的连线一样,无需修改。
图
4LCD液晶显示屏显示模块
3系统的软件设计
3.1程序流程框图
图5主程序流程图
4测试与结果分析
4.1硬件测试
电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,则会对电路造成短路现象。
在本成电子万年历的设计调试中遇到了很多的问题。
回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:
(1)LCD液晶显示屏显示部分已经连在最小系统上,节省了不少时间和精力。
(2)对万年历修改时间或日期时,有时LCD液晶显示屏被屏蔽掉,造成不亮现象。
解决:
根据仪器的测试,发现电路的驱动能力不足,最后在DS1302时钟芯片的/CS、SCLK、RET端接入5.1K的上拉电阻后,电路的驱动能力才能满足,即可解决不亮现象。
4.2软件测试
电子成年历是多功能的数字型,可以看当前日期,时间。
电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。
最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。
在软件的调试过程中遇到的主要问题是:
烧入程序后,LCD液晶显示屏显示亮度不好。
解决:
一遍旋转10K欧的滑动变阻器,一遍观看LCD显示屏,知道看到合适的亮度为止。
4.3测试结果分析与结论
4.3.1测试结果分析
1.在测试中遇到LCD液晶显示屏为不显示时,首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏,滑动变阻器器没有调好:
查看烧写的程序是否正确无误,对程序进行认真修改。
4.3.2测试结论
经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。
同时在软件的编程方面得到更到的提高,对编程能力得到加强,同时对所学的知识得到很大的提高与巩固。
5Proteus软件仿真
5.1ProteusISIS简介
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。
该软件的特点是:
(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。
(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(3)目前支持的单片机类型有:
ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
(4)支持大量的存储器和外围芯片。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真ARM、51、AVR、PIC。
Proteus启动画面:
图7Proteus启动画面
5.2Proteus运行流程
ProteusISIS的工作界面是一种标准的Windows界面,如图所示。
包括:
标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
运行Proteus程序后,进入软件的主界面。
通过左侧工具栏中的P(从库中选择元件命令)命令,在PickDevices左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进行连线。
ProteusISIS的工作界面:
图8ProteusISIS的工作界面
5.3Proteus功能仿真
Proteus仿真效果
最后载入hex文件后可以进行模拟仿真,可以全速运行也可以单步调试运行。
图9运行按键
上电后后LED显示:
图10
调节秒钟:
图11
调节分钟:
图12
调节时钟:
图13
调节星期:
图14
调节日期:
图15
调节月份:
图16
调节年份:
图17
点击确定键显示:
图18
按键功能自上而下依次为:
选择修改项键、增大键、减小键、确定键。
图19
6课程设计总结
制作这次课程设计一切都是从零开始,从最简单的画流程图起步,这次课程设计可以圆满完成,跟单片机课程里面的课外作业是离不开的。
这次课程设计从开始到制作成功前后超过了一个星期。
当电子万年历可以成功实现时,那种激动和喜悦只有自己可以体会。
在整个设计过程中,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。
较好的完成了设计,达到了预期的目的,完了最初的设想。
对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。
程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同学讨论,理清了思路,反而得心应手。
在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。
也练就了我的耐心,做什么事都在有耐心。
此次课程设计中学到了很多很多东西,这是最重要的。
总之,此次课设使我的能力得到了全方位的提高,使得我的操作能力和专业技能都有了很大的提高。
参考文献
[1]刘勇编数字电路电子工业出版社2004
[2]陈正振编电子电路设计与制作广西交通职业技术学院信息工程系2007
[3]杨子文编单片机原理及应用西安电子科技大学出版社2006
[4]王法能编单片机原理及应用科学出版社2004
附录一:
系统电路图
附录二:
系统程序
#include
#include
//#include"LCD1602.h"
//#include"DS1302.h"
#defineuintunsignedint
#defineucharunsignedchar
sbitDS1302_CLK=P1^7;//实时时钟时钟线引脚
sbitDS1302_IO=P1^6;//实时时钟数据线引脚
sbitDS1302_RST=P1^5;//实时时钟复位线引脚
sbitACC0=ACC^0;
sbitACC7=ACC^7;
charhide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;//秒,分,时到日,月,年位闪的计数
sbitSet=P2^0;//模式切换键
sbitUp=P2^1;//加法按钮
sbitDown=P2^2;//减法按钮
sbitout=P2^3;//立刻跳出调整模式按钮
chardone,count,temp,flag,up_flag,down_flag;
ucharTempBuffer[5],week_value[2];
voidshow_time();//液晶显示程序
/***********1602液晶显示部分子程序****************/
//PortDefinitions**********************************************************
sbitLcdRs=P2^5;
sbitLcdRw=P2^6;
sbitLcdEn=P2^7;
sfrDBPort=0x80;//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
//内部等待函数
**************************************************************************
unsignedcharLCD_Wait(void)
{LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();LcdEn=0;returnDBPort;}
//向LCD写入命令或数据
************************************************************
#defineLCD_COMMAND0//Command
#defineLCD_DATA1//Data
#defineLCD_CLEAR_SCREEN0x01//清屏
#defineLCD_HOMING0x02//光标返回原点
voidLCD_Write(bitstyle,unsignedcharinput)
{LcdE