《数字电子时钟设计毕业论文》由会员分享,可在线阅读,更多相关《数字电子时钟设计毕业论文(16页珍藏版)》请在金锄头文库上搜索。
1、湖南信息科学职业学院毕 业 论 文数字电子时钟设计学生姓名: 学 号: 1001010331年级专业: 2010级应用电子技术指导老师: 系 别: 电子信息学院湖南长沙提交日期: 2013年3月目 录摘要1关键词1前言2一、数字电子时钟产品的功能、特点、结构及工作原理类81、产品的功能32、产品的特点33、产品的结构及工作原理44、DS1302实时显示时间的软硬件8二、硬件电路设计91、电路设计的图纸82、电路设计的原理9三、用Protel绘制出电路原理图.9四、绘制出电路图的PCB板10五、调试使之正常工作11总结12致谢13参考文献14数字电子时钟设计作 者: 段和芳 指导老师: 吴振江
2、(湖南信息科学职业学院电子信息学院10级应用电子技术,长沙)摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域。那些对时间要求非常严格和准确的人来说,时间的不准确会带来非常大的麻烦,数码管显示的时间简单明了而且读数快、时间准确显示到秒。而机械时钟依赖于晶体整荡器,可能会导致误差。所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。多功能数字电子钟是采用数字电路实现对“时”,“分”,“秒”数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在这次设计中,分别设计了24进制和60进制计数器,根据数码管动态显示原理来进行显示。通过multism
3、软件对设计的系统进行仿真分析,仿真结果正确。该系统具有时间显示、时间调整、整点报时等功能。关键词:时钟电路、实时时钟、单片机、应用- 14 -前言加入世贸组织以后,中国会面临激烈的竞争。这种竞争将是一场科技实力、管理水平和人才素质的较量,风险和机遇共存,同时电子产品的研发日新月异,不仅是在通信技术方面数字化取代于模拟信号,就连我们的日常生活也进于让数字化取缔。说明数字时代已经到来,而且渗透于我们生活的方方面面。就拿我们生活的实例来说明一下“数字”给我们带来的便捷。下面我们就以数字钟为例简单介绍一下。数字钟我们听到这几个字,第一反应就是我们所说的数字,不错数字钟就是以数字显示取代模拟表盘的钟表,
4、在显示上它用数字反应出此时的时间,相比模拟钟能给人一种一目了然的感觉,不仅如此它还能同时显示时、分、秒。而且能对时、分、秒准确校时,这是普通钟所不及的。与此同时数字钟还能准确定时,在你所规定的时间里准确无误的想你发出报时声音,提醒你在此时所需要去做的事。与旧式钟表相比它更适用于现代人的生活。现在流行的串行时钟电路很多,如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。本文介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采
5、用普通32.768kHz晶振。 一、数字电子时钟产品的功能、特点、结构及工作原理1、功能 :电路具备时、分、秒显示功能,且时、分、秒可自动关联进位,具有24小时制、12小时制的切换功能,具有手动调节功能2、特点 :DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼
6、容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力3、结构及工作原理 : 3.1引脚功能及结构 图1示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序
7、列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 3.2 DS1302的控制字节 DS1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存
8、取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 3.3数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 3.4 DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、
9、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 4、DS1302实时显示时间的软硬件 DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。图3示出DS1302与89C2051的连接图,其中,时钟的显示用LCD。 4.1 DS1
10、302与CPU的连接 实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有34线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2A (典型值),省电模式时小于1A,工作电压为2.4V3.3V,显示清晰。 DS1302
11、与CPU连接的电路原理图4.2 DS1302实时时间流程 图4示出DS1302的实时时间流程。根据此流程框图,不难采集实时时间。下面结合流程图对DS1302的基本操作进行编程: #include “Intrins.h”sbit t_clk=P33sbit t_io=P34sbit t_rst=P35sbit BIT7=ACC7sbit BIT0=ACC0void inputbyte(unsigned char ucda)/8位数据写入函数unsigned char I;ACC=ucda;将要写入的数放入ACCt_rst=1;启动数据传送for(i=8;i0;i-);循环8次,写入8位数据, ;
12、从低位到高位t_io=BIT0;将ACC0的值赋给时钟数据线t_clk=0t_clk=1;在时钟线的上升沿写入1位数据ACC=ACC1;将高1位数据移至ACC0unsigned char outputbyte(void)/8位数据读出函数unsigned char i;t_rst=1;启动数据传送for(i=8;i0;i-);读出8位数据,从低到高ACC= ACC1;将前一下降沿读出的数据右移1位;从而该次读出的数放入ACC7t_io=1;P1口输入之前置1t_clk=0;时钟线下降沿读出1位数据BIT7=t_io;can not use P17=t_io for P17 not ;a var
13、ientreturn(ACC) void wr_1302(unsigned char add,unsigned char ucda)/将指令或数据写入对应寄存器t_rst=0t_clk=0t_rst=1inputbyte(add)/delay15(1)inputbyte(ucda)t_rst=0t_io=1unsigned char re_1302(unsigned char add)/读出对应寄存器内容unsigned char ucdatrst=0t_clk=0t_rst=1inputbyte(add)/delay15(1)ucde=outputbyte()t_rst=0return(uc
14、da)void set1302(unsigned char*pda)/设置时间初值unsigned char iunsigned char add=ox80wr_1302(ox8e,ox00);将控制寄存器值设为零, ;最高位WP=0允许写for(i=7;i0;i-);将七个时间初值写入对应寄存器wr_1302(add,*pda);写对应时钟寄存器的值pda+add+=2;wr_1302(ox8e,ox00);写保护,防止干扰影响时间值void get_1302(unsigned char cuntime)/读取当前时间值unsigned char i,junsigned char add=ox81bdata unsigned char secfor(i=0;i7;i+)curtime i=re_1302(add);读对应时钟寄存器的值sec=curtimeij=sec4;将BCD码转化成对应十进制数j*=10sec=sec&oxofsec+=jcurtimei=secadd+=2二、硬件电路设计1、电路设计的图纸2、电路设计的原理 数字电子中是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。因此,一个基本的数字钟电