首页 数字钟课程设计

数字钟课程设计

举报
开通vip

数字钟课程设计-z.目录第一局部课程设计任务书HYPERLINK\l"_Toc232863692"PAGEREF_Toc232863692\h3第二局部课程设计正文TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc232863695"一、设计题目5HYPERLINK\l"_Toc232863696"1.1设计背景5HYPERLINK\l"_Toc232863697"1.2电路的总体工作原理5HYPERLINK\l"_Toc232863692"二、设计的目标和要求6三、系统的硬...

数字钟课程设计
-z.目录第一局部课程设计任务书HYPERLINK\l"_Toc232863692"PAGEREF_Toc232863692\h3第二局部课程设计正文TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc232863695"一、设计题目5HYPERLINK\l"_Toc232863696"1.1设计背景5HYPERLINK\l"_Toc232863697"1.2电路的总体工作原理5HYPERLINK\l"_Toc232863692"二、设计的目标和要求6三、系统的硬件设计.......................................................................................................................6HYPERLINK\l"_Toc232863700"3.1单片机选择6HYPERLINK\l"_Toc232863702"3.2复位信号及外部复位电路7HYPERLINK\l"_Toc232863703"3.3按键电路8HYPERLINK\l"_Toc232863704"3.4数码管显示电路8HYPERLINK\l"_Toc232863705"四、系统的软件设计9HYPERLINK\l"_Toc232863706"4.1软件程序容9HYPERLINK\l"_Toc232863707"4.2系统软件设计 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图9HYPERLINK\l"_Toc232863708"4.3定时程序设计12HYPERLINK\l"_Toc232863709"4.4时钟实现根本方法12HYPERLINK\l"_Toc232863714"4.5时钟程序设计步骤12HYPERLINK\l"_Toc232863720"五、实习体会13六、参考文献.........................................................................................................13附录、实验源程序代第二局部课程设计正文设计题目数字钟设计1.1设计背景近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。但是却很少知道它的部构造以及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进展计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过按键可以进展定时、校时功能。1.2电路的总体工作原理At89c52单片机它是利用单片机的部的定时/计数器工作与定时方式,对机器周期计数形成基准时间〔如10ms〕然后用另外一个计数器或软件计数的形式对基准时间进展计数形成秒〔如对10ms计数100次〕,“秒〞计数60次“分〞,“分〞计数60次形成“时〞,“时〞计数24次满一天清零,然后通过译码器,数码管把他们的容在相应的位置显示出来。在具体的设计时定时器采用中断方式工作,对时钟的形成在终中断序中实现,在主程序只是对定时/计数器的定义初始化,调用显示程序和控制程序的初始化。复位电路数码管显示电路按键电路图1.系统框图设计的目标和要求1.用所学的单片机知识设计制作数字钟;2.时间在数码管直接显示;3.可以任意设置时间;4.进一步熟悉proteus,word软件的功能和使用方法;系统的硬件设计3.1单片机的选择8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM) 8051部有128个8位用户数据存储单元和128个专用存放器单元,它们是统一编址的,专用存放器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM有128个,可存放读写的数据,运算的中间结果或用户定义的字型 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 。程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。图2单片机8051的部构造MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP构造,下列图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:图3单片机的引脚Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开场工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用存放器被清“0〞。RESET由高电平下降为低电平后,系统即从0000H地址开场执行程序。然而,初始复位不改变RAM〔包括工作存放器R0-R7〕的状态,8052的初始态。3.2复位信号及外部复位电路该复位信号高电平有效,其有效时间应持续24个振荡脉冲周期即两个机器周期以上。假设使用频率为11.0592MHz的晶体振荡器,则复位信号持续时间应超过2μs才完成复位操作。图4.复位电路3.3按键电路本系统设置2个功能按键分别为shezhi和jia,其中shezhi是设置按键,与P3.2相连,按下时选择时单元,分单元或者是秒单元。jia是加1按键,与P3.3相连,按下时如果是设置时单元,则时单元加1;如果是设置分单元,则分单元加1;如果是设置秒单元,则秒单元加1。图5.按键电路图3.4数码管显示电路本系统使用了6个共阳极数码管。设计LED显示驱动是一个非常重要的问题,显示电路由LED显示器、段驱动电路和位驱动电路组成。由于单片机的并行口驱动电流太小,不能直接驱动LED显示器,段驱动电路通过74LS245双向总线收发器使P0口与数码管的八段相连,,可增加P0的驱动能力。位驱动电路通过六只NPN三极管驱动使P2口的低六位作为位选信号,使之产生足够大的电流,来驱动LED到达足够的亮度,显示器才能正常工作。如果驱动电路能力差,即驱动电流过小,数码管显示亮度不够,而驱动电路驱动电流太大容易损坏数码管。LED显示器显示控制方式有两种:静态和动态。本设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 选择的是动态控制方式。由于一位数据的显示是由段码和位码信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。图6.显示电路四、软件程序的设计4.1软件程序容本设计的软件程序包括初始化子程序、主程序、定时器中断子程序、时钟显示子程序、定时器初始化子程序和延时子程序等等。4.2系统软件设计流程图这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开场,然后启动定时器,定时器启动后在进展按键处理,处理完后,就可以显示时间。开场启动定时器按键处理时间显示图7.主程序流程图按键处理是shezhi按键按下,选择时单元,jia按键按下,时单元加1;选择分单元,jia按键按下,分单元加;选择秒单元,jia按键按下,秒单元加1。开场设置按键按下秒单元时单元分单元加1键按下时间显示完毕图8.按键处理流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。N24小时到?分单元清零,时单元加1NNNYY时单元清零时间显示中断返回开场一秒时间到?60秒时间到?60分钟到?秒单元加1秒单元清零,分单元加1YY图9.定时器中断流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。4.3、定时程序设计单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-51采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能存放器中,通过对特殊功能存放器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。定时器/计数器工作在方式0时,为13位的计数器,由TL*(*=0、1)的低5位和TH*的高8位所构成。TL*低5位溢出则向TH*进位,TH*计数溢出则置位TCON中的溢出标志位TF*.当定时器/计数器工作于方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51部的定时器/计数器被选定为定时器工作模式,计数输入信号是部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。4.4、实时时钟实现的根本方法时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能到达131ms。我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。秒计时是采用中断方式进展溢出次数的累积,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进展比拟的方法来实现的。要求每满1秒,则“秒〞单元中的容加1;“秒〞单元满60,则“分〞单元中的容加1;“分〞单元满60,则“时〞单元中的容加1;“时〞单元满24,则将时、分、秒的容全部清零。4.5、实时时钟程序设计步骤〔1〕选择工作方式,计算初值;〔2〕采用中断方式进展溢出次数累计;〔3〕从秒——分——时的计时是通过累加和数值比拟实现的;〔4〕时钟显示缓冲区:时钟时间在方位数码管上进展显示,为此在部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值;〔5〕主程序:主要进展定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来。〔6〕中断效劳程序:进展计时操作〔7〕加1子程序:用于完成对时、分、秒的加操作,中断效劳程序在秒、分、时加1时共有三种条调用加1子程序,包括三项容:合字、加1并进展十进制调整、分字。实习体会单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。但当拿到题目时,确实不知道怎么着手,有些迷茫,上网查资料,问同学,在我们小组的共同努力下,历时一个星期,解决一个又一个的困难,终于完成任务。在这次课程设计中,学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的一大收获。另外,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的部构造有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改良是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计完毕了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会有益于我在以后的学习、工作和生活中。设计过程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够结实,不能灵活运用。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,知道了团队合作的重要性,这为自己今后的学习和工作做出了很好的典范。参考文献1.?51单片机原理及应用—基于KeilC与Proteus?〔海宴航空航天大学〕2.?单片机原理实验指导书?〔东北大学分校〕3.?c语言程序设计?〔谭浩强清华大学〕-z.附录、源程序代码#include#defineucharunsignedchar#defineuintunsignedintsbitshezhi=P3^2;sbitjia=P3^3;ucharduan1,duan2,duan3,duan4,duan5,duan6;//定义相关变量uintmiao=0,fen=0,shi=0;uchar*datawei_at_0*ff20;//Paporton8255//定义8255端口指针uchar*dataduan_at_0*ff21;//Pbporton8255uchar*datactrl_at_0*ff23;//controlporton8255ucharcodetable[]={0*c0,/*0*/0*f9,/*1*/0*a4,/*2*/0*b0,/*3*/0*99,/*4*/0*92,/*5*/0*82,/*6*/0*f8,/*7*/0*80,/*8*/0*90,/*9*/};//定义数码管显示数值/*------------------------------------------------定时器初始化子程序------------------------------------------------*/voidInit_Timer0(void){TMOD=0*01;//使用模式1,16位定时器TH0=0*00;//给定初值,这里使用定时器最大值从0开场计数一直到65535溢出TL0=0*00;EA=1;//总中断翻开ET0=1;//定时器中断翻开TR0=1;//定时器开关翻开}/*------------------------------------------------延时子程序------------------------------------------------*/voiddelayms(unsignedcharms){uchari;while(--ms!=0)for(i=0;i<50;i++);}/*------------------------------------------------显示子程序------------------------------------------------*/void*ianshi(){wei=0*df;//翻开位选,选第一位数码管duan=duan1;//翻开段选,显示数码关管第一位//11011111delayms(3);wei=0*ef;//11101111duan=duan2;delayms(3);wei=0*f7;//11110111duan=duan3;delayms(3);wei=0*fb;//11111011duan=duan4;delayms(3);wei=0*fd;//11111101duan=duan5;delayms(3);wei=0*fe;//11111110duan=duan6;delayms(3);}/*------------------------------------------------初始化子程序------------------------------------------------*/voidsys(){shezhi=1;//引脚置高电平作为输入jia=1;Init_Timer0();ctrl=0*c0;delayms(3);}/*------------------------------------------------主程序------------------------------------------------*/voidmain(){uintflag=0,j=0,*uanze1=0;//定义闪烁标志变量flag,闪烁时间变量j//时分秒选择变量*uanze1sys();while(1)//主循环{if(*uanze1==0){TR0=1;//如果时间设置时分秒选择变量为0,说明处于运行状态,此时定时器开启flag=1;//烁标志位强制置1,不闪烁}if(!shezhi)//P3.2设置按钮{*ianshi();//延时去抖,用显示子程序延时,防止按动按钮时闪烁if(!shezhi)//再次确认按键是否按下,没有按下则退出{while(!shezhi)*ianshi();//如果确认按下按键等待按键释放,//没有释放则一直执行数码管扫描,防止闪烁{TR0=0;*uanze1++;if(*uanze1==4)*uanze1=0;}}}if(!jia)//P3.3加1按钮{*ianshi();if(!jia){while(!jia)*ianshi();{if(*uanze1==1)shi++;if(shi==24)shi=0;if(*uanze1==2)fen++;if(fen==60)fen=0;if(*uanze1==3)miao++;if(miao==60)miao=0;}}}if(flag==1)//闪烁标志位为1,所有数码管都亮,与下面的flag=0构成闪烁程序{if(shi<10)//灭零判断,如果小时数小于10则第一位数码管熄灭duan1=0*ff;elseduan1=table[shi/10];//分解显示信息duan2=table[shi%10];duan3=table[fen/10];duan4=table[fen%10];duan5=table[miao/10];duan6=table[miao%10];}if(flag==0)//闪烁标志位为0,对应数码管熄灭{if(*uanze1==1){duan1=0*ff;//当设置小时时,第一二位数码管闪烁duan2=0*ff;}if(*uanze1==2){duan3=0*ff;duan4=0*ff;}if(*uanze1==3){duan5=0*ff;duan6=0*ff;}}*ianshi();j++;if(20==j)//延时闪烁时间{j=0;flag=!flag;//闪烁标志变量}}}/*------------------------------------------------定时器中断子程序------------------------------------------------*/voidTimer0_isr(void)interrupt1using1{staticunsignedinti;TH0=(65536-9216)/256;//重新赋值11.0592M晶振计算,指令周期0.9216uS//最大值65536即60.398ms所以TL0=(65536-9216)%256;//直接定时器不够用,需要用循环处理,//定时10ms,然后循环100次后输出10*100=1000ms=1si++;if(i==100){i=0;miao++;if(miao==60){miao=0;fen++;}if(fen==60){fen=0;shi++;}if(shi==24){shi=0;}}}
本文档为【数字钟课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
dykcs64
从事建筑工程对接,工程图纸设计施工管理方面的经验
格式:doc
大小:758KB
软件:Word
页数:11
分类:教育学
上传时间:2022-06-05
浏览量:2