<code id="aciqg"></code>

    <nav id="aciqg"></nav>
      <mark id="aciqg"></mark><mark id="aciqg"><ruby id="aciqg"></ruby></mark>
      购买

      ¥20.0

      加入VIP
      • 专属下载券
      • 上传内容扩展
      • 资料优先审核
      • 免费资料无限下载

      上传资料

      关闭

      关闭

      关闭

      封号提示

      内容

      首页 基于ds1302的单片机时钟设计(修改版)

      基于ds1302的单片机时钟设计(修改版).doc

      基于ds1302的单片机时钟设计(修改版)

      简介:本文档为《基于ds1302的单片机时钟设计(修改版)doc》,可适用于工程科技领域

      单片机课程设计单片机课程设计报告题目:基于DS电子实时时钟姓名:XXX同组人:XXX班级学号:XX指导老师:XXXXX日期:目录摘要第一部分:题目要求………………………………………第二部分:方案论证与选择………………………………第三部分:电路设计与?#38382;?#36873;择…………………………第四部分?#21512;?#32479;软件设计…………………………………第五部分?#21512;?#32479;调试与仪器使用…………………………第六部分:测试数据与结果分析…………………………第七部分:使用说明书……………………………………总结……………………………………………………摘要本作品是以C单片机为核心DS时钟芯片、数码管做显示器及LS与门构成的小时制单功能电子实时时钟。这种单功能电子实时时钟不仅具有了一般数字钟的基本功能并且通过两个按钮实现时钟运行与停止功能。如果我们要设置时间只需在软件程序上改变时钟芯片的初始化程序。在电子产品盛行的今天像这样的设计我们可以给它更大的发展空间。第一部分题目要求我们设计的这?#20013;?#26102;制功能钟可以在数码管上显示时、分、秒并且我们可以通过按钮来控制时钟的运行及停止(按钮KEY控制时钟停止运行按钮KEY控制时钟运行)并采用V交流电源供电。第二部分方案论证与选择一、系统功能框图在现今的这个社会每天的时间都很紧迫?#34892;?#20154;怕误了时间做自己重要的事尤其是对现在的学生而?#36816;?#20204;早上要早起上课要准时这样都少不了有一个时钟早上干早班的人在外出行的人工厂里某些要严格按时间标准来控制的产品等等一些我们身边无时无刻?#21152;?#30340;而在这个关键的部分就要用到我们本次设计的时钟来计时了。下面我们就介绍一下本次设计的基本设计框图。二、系统主要部?#38047;校海?#20013;央处理器电路:采用单片机芯片机外围电路构成最小系?#22330;#?#26102;钟信号产生电路:时钟芯片:人机接口电路:按键电路、数码管显示电路。三、方案论证及选择.时钟电路部分方案一:利用单片机内部的定时功能来实现时钟的走时通过计算可知使定时器每ms产生一次中断当产生次中断后秒单元将加一?#28304;?#31867;推从而实现时、分、秒的走时并加以显示。由于这种方式在断电的情况下将停止走时且通电后必须再初始化而且需要调表故不用此方法。方案二:我们选用DS时钟芯片该芯片是美国DALLAS公?#23601;?#20986;的一?#25351;咝阅堋?#20302;功耗的实时时钟芯片附加字节静态RAM采用SPI三线接口与CPU进行同步通信并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年一个月小与天时可以自动调整且具有闰年补偿功能。工作电压宽达~V。采用双电源供电(主电源和备用电源)可设置备用电源充电方式提供了对后背电源进行涓细电流充电的能力。DS用于数据记录特别是?#38405;?#20123;具有特殊意义的数据点的记录上能实现数据与出?#25351;?#25968;据的时间同时记录因此广泛应用于测量系统中。外部引脚分?#28051;?#24341;脚的功能为:??????Vcc:备用电源Vcc:主电源。当Vcc>VccV时由Vcc向DS供电当Vcc<Vcc时由Vcc向DS供电。??????SCLK:串行时钟输入???????IO:三线接口时的双向数据线??????CE:输入信号在读、写数据期间必须为高。该引脚有两个功能:第一CE开始控制字访问移位寄存器的控制逻辑其次CE提供结束单字节或多字节数据传输的方法。DS有关日历、时间的寄存器共有个其中有个寄存器(读时h~Dh写时h~Ch)存放的数据格式为BCD码?#38382;健?#25152;以最后本设计采用DS时钟芯片。、显示部分本设计中显示部分我们可以采用液晶显示器或多个LED数码管显示器下面我们就对这两个显示进行比较看看那个显示器更加的适?#32454;?#35774;计。比较一:采用LCD液晶显示器。在我们的日常生活中我们对LCD液晶显示器并不陌生在计算器、万用表、电子表及很多家用电子产?#20998;?#37117;可以用到它显示的主要是数字、专用符号和图形。特别是在单片机的人机交流界面中用它作为输出器件有显示质量高、采用数字式接口、体积小、重量轻。功耗低等优点。通常按显示方式咳咳分为?#38382;健?#23383;符式、点阵式?#21462;?#20294;是在用它做显示器的时候我们要对它进行编程比如我们要显示一个字符那么这个时候就复杂了因为一个字符由x或x点阵组成我们这时候既要?#19994;?#21644;显示屏幕上某几个位置对应的显示RAM区字节还要使每个字节的不同位为“”其他的为“”为“”的点亮为“”的不亮。这样一来在显示简单的数字上就大大的加大了我们设计的难?#20154;?#20197;对于一些简单的数字我们不应采用LCD液晶显示来显示。比较二:使用多个LED数码管显示。LED数码管实际上是由七个发光管组成?#20013;?#26500;成的加?#38386;?#25968;点就是个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后这些特定的段就会发亮以形成我们眼睛看到的个数码管字样了。如?#21512;?#31034;一个“”字那?#20174;?#24403;是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分也有寸、寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成而大尺寸的数码管由二个或多个发光二极管组成一般情况下单个发光二极管的管压降为V左右电流不超过mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是、、、、、、、、、、A、B、C、D、E、F。再一个数码管相对于LCD液晶显示器?#27492;?#20855;有亮度大、接口设计比?#20808;?#26131;价格相对较便宜等优点。?#20197;?#26412;次设计中恰好能把我们要显示的数字显示出来。所以本次设计采用多个LED数码管显示器来显示数字。、按键部分方案一:并口输入式的按键控制。它的优点是电路设计简单但每一管脚对应一个按键虽然说单片机有多个外部引脚但本系统采用多个LED数码管显示、时钟芯片等外围电路他们占用外部接口线较多要是此时要在单片机上再添加几个按键的话那么这样单片机的外部引脚就有点供应不了所以在占用如此多管脚的情况下该方案是不可取的。方案二:我们可以采用芯片LS与门来扩展接口虽然在该设计中我?#20405;?#29992;到二个按钮但用这个芯片就足可以了。我们采用这种方式只占用个口线另外按键去抖动较方便是一?#32622;?#26234;的选择。第三部分电路设计与?#38382;?#36873;择一、单片机最小系统电路设计和元件的选择根据设计要求和计算简便的原则我们选择M的石英晶振、PF的陶瓷电容、uF的瓷片电容、k电阻、V电源最小系统图如下:二、数码管显示电路设计电路如下图:我们这里采用个数码管来显示时分秒在单片机的P引脚上外接上k的上拉电阻。P口输出段码P口输出位码。三、DS时钟芯片电路设计部分电路图如下:在这里我们采用kMZ的晶振接在DS的X和X之间DS的、、引脚分别接在单片机的P、P、P三个引脚上VCC接上V电源VCC可以外接电源。四、按键电路设计部分电路图如下:这里我们采用LS与门芯片来扩展接口同时我们在编程时用外部中断来设计程序以便更好的实?#20013;?#26524;。在按键与单片机和引脚之间接上一k的上拉电阻电阻上接V电源。第四部分软件设计部分一、主程序单元部分。主程序流程图如上所示在主程序中调用时分秒显示子程序通过按键来判断DS时钟芯片运行还是停止。二、外部中断部?#38047;?#22806;部中断来是秒停止或开始计数。三、显示程序单元部分。此系统的显示部分采用的是多个LED数码管显示主要显示时分秒内的数据通过输出端口一?#38382;?#20986;到显示器上。时、分、秒显示流程图如下:注?#20572;?#35813;显示大概流程图是这样但在该程序设计中?#21069;?#26102;、分、秒的显示程序分别提出来单独做一个子程序。四、DS时钟芯片判断时钟是否停止流程图第五部分系统调试与仪器使用一、系统调试调试工作?#38047;?#20214;调试和软件调试两部分调试方法介绍如下:首先硬件调试主要是先搭建硬件?#25945;?#28982;后利用万用表等工具对电路检测最后用程序进行功能调试硬件调试比?#25103;?#26102;需要细心和耐心也需要熟练掌握电路原理。然后可以直接应用编辑或仿真软件进行调试比如单片机C编辑软件Keil该软件提供了一个集成开发环境uVision它包括C编辑、宏编辑、连接器、库管理和一个功能强大的仿真调试器。通过编译。运行可以检查程序错误。但使用此方法仍需要十分了解所使用元器件的工作方式和管脚连接方式。软件调试过程中要仔?#25913;?#24515;即便是要多写一两个字符都无法编译成功。而有时往往在Keil中编译。运行无错但烧录到单片机中运行出错很有可能是编程时管脚或时序编辑得不对。还有一种方式即应用仿真软件搭建电路的软件?#25945;?#20877;导入程序进行仿真调试如果电路出错可以在计算机上方便的修改电路程序出错可以重新编辑程序这种方法节时、省力、经济、方便。我们这里应用的是Protuse总之调试过程是一个软硬件结合调试的过程硬件电路是基础软件是检测硬件电路和实现其功能的关键。、时钟显示:我们首先进行时钟信号测试、多个LED数码管显示的的调试以实现基本功能看看在把程序导进去是否有线路没有接通或虚焊的现象出现。在这个过程中我?#20405;?#35201;让数码管上有数字显示出来具体是什么数这就不用关了。、DS的调试该电路含DS芯片、主电源、备用电源、晶振等部分。在与单片机连接的过程中需要注意以下几点:)、清楚DS与单片机连接的管脚。本设计定义为:DS的SCLK连接P,IO口连接P,RST口连接P)、注意电源正负极连接。)、DS连接KHz的晶振。该晶振体形比?#38386;?#22312;焊接是要小心的注意不要将晶振引脚弄断。同时也要尽量使晶振离DS的X、X引脚近距离焊接。)、编写DS的时钟日历程序只要能够正确显示时间。烧录进单片机检查电路电源正负极连接是否正确。检查无误后再上电检查。、按键电路调试按键电路比较简单故而调试起来也比?#20808;?#26131;只需要保证按键焊接正确没?#34892;?#28938;或忘焊的现象出现一般不会出很大的问题。二、程序导入所用仪器采用单片机开发板软件和PZISP软件把程序导入C单片机中。三、源程序#include<regh>头文件#include<intrinsh>#defineucharunsignedchar#defineuintunsignedintsbitDATA=P^位定义芯片的接口数据输出端定义在P引脚sbitRST=P^位定义芯片的接口?#27425;?#31471;口定义在P引脚sbitSCLK=P^位定义芯片的接口时钟输出端口定义在P引脚sbitkey=P^sbitkey=P^ucharcodedisplaytable={xf,x,xb,xf,x,xd,xd,x,xf,xf}ucharsecond,minute,hourvoiddelaynus(ucharn){ucharifor(i=i<ni)}voiddelayms(ucharn){uchariwhile(n)for(i=i<i)}voidwrite(uchardat){uchariSCLK=拉低SCLK为脉冲上升沿写入数据做好准备delaynus()稍微等待使硬件做好准备for(i=i<i)连续写个二进制位数据{DATA=datx取出dat的第位数据写入delaynus()稍微等待使硬件做好准备SCLK=上升沿写入数据delaynus()稍微等待使硬件做好准备SCLK=重新拉低SCLK形成脉冲dat>>=将dat的各数据位右移位准备写入下一个数据位}}voidwriteset(ucharCmd,uchardat){RST=禁止数据传递SCLK=确保写数居前SCLK被拉低RST=启动数据传输delaynus()稍微等待使硬件做好准备write(Cmd)写入命令字write(dat)写数据SCLK=将时钟电平置于已知状态RST=禁止数据传递}unsignedcharread(void){uchari,datdelaynus()稍微等待使硬件做好准备for(i=i<i)连续读个二进制位数据{dat>>=将dat的各数据位右移位因为先读出的是字节的最低位if(DATA==)如果读出的数据是dat|=x将取出写在dat的最高位SCLK=将SCLK置于高电平为下降沿读出delaynus()稍微等待SCLK=拉低SCLK形成脉冲下降沿delaynus()稍微等待}returndat将读出的数据返回}ucharreadset(ucharCmd){unsignedchardatRST=拉低RSTSCLK=确保写数居前SCLK被拉低RST=启动数据传输write(Cmd)写入命令字dat=read()读出数据SCLK=将时钟电平置于已知状态RST=禁止数据传递returndat将读出的数据返回}voidsetprotect(bitflag)设置保护{if(flag)writeset(xe,x)写入保护指令elsewriteset(xe,x)写入不保护指令}voidstoptime(bitflag)是否将时钟停止{uchardatdat=readset(x)setprotect()if(flag)writeset(x,dat|x)elsewriteset(x,datxf)}voidinitds(void){setprotect()根据写状态寄存器命令?#20013;?#20837;不保护指令writeset(x,(()<<|()))根据写秒寄存器命令?#20013;?#20837;秒的初始值writeset(x,(()<<|()))根据写分寄存器命令?#20013;?#20837;分的初始值writeset(x,(()<<|()))根据写小时寄存器命令?#20013;?#20837;小时的初始值}voiddisplayhour(ucharh)显示小时{P=xfeP=displaytablehdelayms()P=xfdP=displaytablehdelayms()P=xfbP=xdelayms()}voiddisplayminute(ucharm)显示分钟{P=xfP=displaytablemdelayms()P=xefP=displaytablemdelayms()P=xdfP=xdelayms()}voiddisplaysecond(uchars)显示秒{P=xbfP=displaytablesdelayms()P=xfP=displaytablesdelayms()}voidmain(){ucharReadValue缓冲数据用的initds()ds初始化IT=外部中断EX=EA=while(){ReadValue=readset(x)?#29992;?#23492;存器读数据second=((ReadValuex)>>)*(ReadValuexF)将读出数据转化displaysecond(second)显示秒ReadValue=readset(x)从分寄存器读minute=((ReadValuex)>>)*(ReadValuexF)将读出数据转化displayminute(minute)显示分ReadValue=readset(x)从分寄存器读hour=((ReadValuex)>>)*(ReadValuexF)将读出数据转化displayhour(hour)显示小时}}voidint()interrupt外部中断{if(key==){stoptime()}elseif(key==){stoptime()}}第六部分测试数据与结果分析我们利用一只走时准确的电子表进行时钟比对证明本作品走时准确按键是否会实?#20013;?#26524;。显示?#21363;?#20197;上图中可以看出数码管显示的与DSClock–U上Time显示出来的数相同虽然与Date后的数不同但那是我们没有编写那个程序。第七部分多功能数字钟使用说明这次设计的电子实时时钟采用多个LED数码管显示我们可以用仿真软件给以教程。DS在计时时数码管上显示时分秒当我?#21069;?#19979;key按钮时DS计时停止这个我们可?#28304;?#25968;码管上看出来当我?#21069;?#19979;key按钮时DS有开始计时。总结从这次的设计中让我更加的了解DS的工作原理让我对按照时序图来设计程序更加有趣在以前看到很多芯片的数据手册要把它们这些芯片和单片机连接起来就的编写程序而老师又不会给程序给我们别的人?#36864;?#26159;给了自己也不会因为根本看不懂到最后只有靠自己来设计程序但每次看到那时序图就?#30423;?#26681;本就不知道?#24189;?#30528;手。通过这次对DS芯片的设计让我对看时序图设计程序摸到了路线和套路。经过本次设计让我收益非?#22330;?#20294;也发现了自己的一些不足在今后的学习过程中将更加努力以?#35270;?#31038;会和时代发展要求。两个按钮控制时钟芯片的运行及停止数码管显示时、分、秒DS时钟芯片?#27425;?#30005;路外部中断设置、定义一个缓冲数据ReadValue、DS初始化时钟信号产生电路单片机将读出的数据转化YESDS可以运行writeset(x,dat|xf)YESNO调用时、分、秒显示程序MAIN延时msstoptime()stoptime()判断KEY是否为?判断KEY是否为?#30475;用?#23492;存器读取数据保存到缓冲数据ReadValue中key==key==DS停止运行writeset(x,dat|x)P赋段码P赋位码定义一个flag数据读寄存器dat=readset(x)写入不保护命令writeset(xe,x)判断flag是否问为?DS停止计数writeset(x,dat|x)DS可以进行计数writeset(x,datxf)第页共页

      用户评价(0)

      关闭

      新课改视野下建构高中语文教学实验成果报告(32KB)

      抱歉,积分不足下载失败,请稍后再试!

      提示

      试读已结束,如需要继续阅读或者下载,敬请购买!

      评分:

      /20

      ¥20.0

      立即购买

      VIP

      免费
      邮箱

      爱问共享资料服务号

      扫描关注领取更多福利

      北京快三一定牛中奖号

        <code id="aciqg"></code>

        <nav id="aciqg"></nav>
          <mark id="aciqg"></mark><mark id="aciqg"><ruby id="aciqg"></ruby></mark>

            <code id="aciqg"></code>

            <nav id="aciqg"></nav>
              <mark id="aciqg"></mark><mark id="aciqg"><ruby id="aciqg"></ruby></mark>