ds1302时钟数码管显示时分秒

上传人:94****0 文档编号:67487761 上传时间:2022-03-31 格式:DOC 页数:15 大小:357.50KB
收藏 版权申诉 举报 下载
ds1302时钟数码管显示时分秒_第1页
第1页 / 共15页
ds1302时钟数码管显示时分秒_第2页
第2页 / 共15页
ds1302时钟数码管显示时分秒_第3页
第3页 / 共15页
资源描述:

《ds1302时钟数码管显示时分秒》由会员分享,可在线阅读,更多相关《ds1302时钟数码管显示时分秒(15页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上单片机原理课程设计课题名称:基于DS1302的数码管显示数字钟 专业班级:电子信息工程 学生学号: 学生姓名:张向阳 指导教师:张云 马崇霄 设计时间:2010年6月21日-2010年6月25日 目录 . 3.5.1 主控部分(单片机MCS-51). 3.5.2 计时部分(实时时钟芯片DS1302). 3.5.3 显示部分(共阳极数码管). 3.5.4 调时部分(按键).基于DS1302的数码管显示数字钟设计摘要 本次课程设计的是使用专门的时钟芯片DS1302在数码管上显示的数字电子钟,并能通过按键对其进行调时和校准。DS1302是一种高性能、低功耗、带RAM的实时时

2、钟芯片,它能够对时,分,秒进行精确计时,它与单片机的接口使用同步串行通信,仅用3条线与之相连接,就可以实现MCS-51单片机对其进行读写操作,把读出的时间数据送到数码管上显示。程序运行时,数码管将从当前时间开始显示,通过调节K1键和K2键可以分别对小时和分钟进行调整,调整后,时钟以新的时间为起点继续刷新显示。关键字:MCS-51单片机、DS1302,数码管,按键,动态扫描,调时,校准;1 设计任务和要求1. 应用MCS-51单片机设计单片机实现数字钟(LED显示小时:分:秒)电路;2. 选用八位LED数码显示,实时显示时、分、秒,采用按键式实现时钟对表和快慢调整;3. 硬件设计部分,根据设计的

3、任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;4. 软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;5.原理图设计部分,根据所确定的设计电路,利用Protel工具软件绘制电路原理图、PCB板图、提供元器件清单。2 方案论证实现数字电子钟的设计有以下两种基本方案,现就两种基本方案的优劣进行具体论证,从而说明选择方案二的理由。方案一:直接用单片机的内部定时器来实现时间。该方案以MCS-51单片机为主控芯片,以MCS-51的内部定时器产生的1s中断作为时钟的驱动,然后再通过8个74LS245

4、缓冲器驱动8个独立的数码管来组成数字钟电路。该电路由于数码管和缓冲器的数目较多,所以在连线方面比较复杂,而且用到的分压电阻也比较多。但是此方案最大的缺点在于单片机89C51产生的1s中断存在误差,如果工作时间长的话,数字时钟显示的时间将会出现严重的偏差,不够精确。方案二:使用串行接口时钟芯片DS1302设计时钟电路。该设计方案以MCS-51单片机为主控芯片,以串行时钟芯片DS1302为核心计时芯片,然后再通过一个74LS245缓冲器驱动两组数码管组(每个数码管组由四个数码管连在一起组成)组成数字时钟电路。更重要的是,DS1302时钟芯片的加入大大提高了数字钟时间的准确性,而且该电路在断电后不丢

5、失时间和数据信息时也使得该方案的研究与提升更具有开发的意义。3 系统硬件设计3.1系统总原理图图1 数字钟总原理图3.2 元件清单元件序号型号或主要参数数量封装元件序号型号或主要参数数量封装R11001AXIAL0.3U1AT89C511DIP40R21k1AXIAL0.3U274S151DIP14RP11K1SIP9U4DS13021DIP8C122pF3RAD2.54U374LS2451DIP20C4104uF1RAD2.54Y1CRYSTAL1STAL3DSSM41C5642数码管*4Y2CRYSTAL1STAL2K按键4按键4.5*6.53.3PCB板图 图2 总电路PCD板图3.4P

6、roteus仿真图 图3 proteus仿真图3.5分电路图及原理说明本次设计的硬件电路由主控部分(单片机MCS-51)、计时部分(实时时钟芯片DS1302)、显示部分(数码管)、调时部分(按键)4个部分组成。各部分之间相互协作,构成一个统一的有机整体,实现数字时钟的计时功能。现就各部分的硬件电路设计作出如下论述:3.5.1 主控部分(单片机MCS-51)MCS-51单片机作为主控芯片,控制整个电路的运行。其外围电路主要有两部分:复位电路和晶体振荡器。复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或

7、电源插头分-合过程中引起的抖动而影响复位。该设计采用含有二极管的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。晶体振荡电路:MCS-51单片机中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该反向放大器的输入端和输出端。这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频

8、率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。如果使用石英晶体,电容应该使用30pF10pF。电路图如下:图4主控部分电路图3.5.2 计时部分(实时时钟芯片DS1302)时钟芯片DS1302与外围电路的连接:与MCS-51单片机的接口是由3条线来完成的,MCS-51单片机的P1.0与时钟芯片的数据传输端I/O相连,P1.1用来作为DS1302输入时钟SCLK控制端,P1.2控制DS1302的复位输入端RST。DS1302的X1和X2管脚外接标DS1302的复位引脚通过把输入驱动置高电平来启动所有的数据传送。 输入有两种功能:首先,接通控制逻辑,允许地址命令序列送入移位寄存器;其次

9、,提供了终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。图5 计时部分电路图3.5.3 显示部分(共阳极数码管)八段数码显示管有两种,一种是共阳数码管,其内部是由八个阳极相连接的发光二极管组成;另一种是共阴数码管,其内部是由八个阴极相连接的发光二极管组成。二者原理不同但功能相同。本设计的时间显示选用6个共阴八段数码管LED,其外形和内部结构如图10所示: 图6 八段共阴

10、数码管LED3.5.4 调时部分(按键) 按键电路有K1,K2,K3三个按键和一个74S15组成,只有其中任意一个按键按下,电路都会通过74S15向单片机INT0引脚发送一次中断请求信号。按键K1用来调整小时,按键K2用来调整分钟,按键K3用来结束调时,数字开始继续走表。 图7 按键电路4 系统软件设计4.1程序流程图调用ds1302时间函数 刷新数码管 显示 外部中断 按键调时是否有键按下 按键扫描 开始否是图8 主程序流程图启动写数据字节一位复位端变高启动一次数据传送工作结束SCLK发脉冲复位端变低SCLK发脉冲写命令字节一位够8次吗?够8次吗?NYYN启动读数据字节一位复位端变高启动一次

11、数据传送工作结束SCLK发脉冲复位端变低SCLK发脉冲写命令字节一位够8次吗?够8次吗?NYYN 图9 写DS1302流程图 图10 读DS1302流程图4.2 源程序#include#define uchar unsigned char #define uint unsigned intsbit sda=P11; /ds1302的数据线sbit clk=P10; /ds1302的时钟线sbit rst=P12; /ds1302的复位线sbit k1=P15; /调时sbit k2=P16; /调分sbit k3=P17; /开始走秒uchar code duan_code= 0xc0,0xf

12、9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳数码管段码表uchar display_code= 0x00,0x00,0xbf,0x00,0x00,0xbf,0x00,0x00;/显示格式,中间两个横杠uchar bit_code= 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/数码管位选uchar current_time7; /所读取的日期和时间char adjust_flag=0; /调节标志void delayms(uint x) /延时函数ms级 uchar i; while(x-) for(i=0;i+

13、;i120);void write_byte(uchar x) /写一个字节函数 uchar i; for(i=0;i=1; uchar read_byte(void) /读一个字节函数 uchar i,b,t; for(i=0;i=1; t=sda; b|=t7; clk=1; clk=0; return b/16*10+b%16;uchar read_data(uchar addr) /读取数据函数 uchar dat; rst=0; clk=0; rst=1; write_byte(addr); dat=read_byte(); clk=1; rst=0; return dat;void

14、 write_data(uchar addr,uchar dat) /写入控制字和输入函数 clk=0; rst=1; write_byte(addr); write_byte(dat); clk=0; rst=0;void set_1302() /设置ds1302函数 write_data(0x8e,0x00); /关闭写保护。 write_data(0x82,(current_time1/104)|(current_time1%10);/初始化分 write_data(0x84,(current_time2/104)|(current_time2%10);/初始化时 write_data(

15、0x8e,0x80); /打开写保护。void gettime() /单片机从ds1302读取的时间数据 current_time0=read_data(0x81); current_time1=read_data(0x83); current_time2=read_data(0x85);void int0() interrupt 0 /中断函数 if(k1=0) /小时调整 adjust_flag=1; /正在调整current_time2=(current_time2+1)%24; else if(k2=0) /分钟调整 adjust_flag=1; /正在调整current_time1=

16、(current_time1+1)%60; else if(k3=0) /确定 set_1302(); /将调整后的时间写入ds1302adjust_flag=0; /结束调整,时间继续正常显示 void main() /主函数 uchar i; IE=0X81; /开总中断,同时开外部定时器0中断 while(1) if(adjust_flag=0) gettime();/扫描按键,当按键没有被按下时,单片机从ds1302读取时间数据 display_code0=duan_codecurrent_time2/10;/小时为的十位 display_code1=duan_codecurrent_

17、time2%10;/小时位的个位 display_code3=duan_codecurrent_time1/10;/分钟位的十位 display_code4=duan_codecurrent_time1%10;/分钟为的个位 display_code6=duan_codecurrent_time0/10;/秒位的十位 display_code7=duan_codecurrent_time0%10;/秒位的个位 for(i=0;i8;i+) /对数码管进行动态扫描 P2=bit_codei;P0=display_codei;delayms(5); 5 心得体会 通过本次设计,使我们对单片机的了解

18、有了更加深一步,我发现只有动手做才会孰能技巧,还有对材料的整理和理解。这次设计运用到的知识很多方面,尤其是单片机,像AT89C51,引脚多,硬件内部线路接通,所以用起来很方便,还有ds1302芯片与单片机之间的连接,以及如入使用ds1302芯片。当然也要对这些元器件作相应调查。主要就是电路原理图,还有对引脚的作用熟悉。对于软件方面则是灵活运用单片机有关的程序语言,还有很多扩展功能,由于知识匮乏,但是理论知识还是比较详细的。我们最大的成功之处是在这整个过程,动脑寻求解决一个一个问题的办法,对程序是不断思索,务必写出很简单的程序来,使得电子时钟能做成功!6 参考文献 单片机原理及其接口技术(第二版

19、) 清华大学出版社 新概念51单片机C语言教程 电子工业出版社 单片机C语言程序设计实训100例 电子工业出版社7 结束语 本设计利用单片机AT89C51控制串行实时时钟芯片DS1302构成数字时钟电路,实现计时功能。该电路使用简单的三线接口,为单片机节省大量的接口资源,时钟芯片DS1302带有后备电池,具备对后背电源进行涓细电流充电的能力,保证电路断电后仍保存时间和数据信息,这些优点解决了目前常用实时时钟占用单片机资源多以及计时不可靠等缺点。该时钟功能强大,性能优越,能为很多领域,特别是对时钟工作的精确性和可靠性有较高要求的场合,提供较好的实时时钟。但是,由于DS1302易受环境影响,会使该电路出现时钟精度不高、时钟混乱等问题,还有继续研究和改进。专心-专注-专业

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!