简易数字钟设计_第1页
简易数字钟设计_第2页
简易数字钟设计_第3页
简易数字钟设计_第4页
简易数字钟设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息与电气工程学院课程设计说明书(2014/2015学年第二学期)课程名称:单片机课程设计题目:简易数字钟设计专业班级:学生姓名:学号:指导教师:设计周数:2周设计成绩:2015年6月25日1、课程设计目的(1)综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验。(2)学习A8c51定H力计数器的原理及基本应用。(3)掌握多为数码管动态显示方法。(4)掌握KeiluVision2IDE的使用方法。【包括项目文件的建立,给项目添加程序件,编译、连接项目,形成目标文件,运行调试观察结果,多文件的处理,仿真环境的设置。】(5)掌握Kei

2、lC51的调试技巧。【包括如何设置和删除断点,如何查看和修改寄存器的内容,如何观察和修改变量,如何观察存储器区域,并行口的使用定时器/计数器的使用,串行口的使用,外中断的使用。】(6)掌握PROTEUS件使用过程。2、简易数字钟的要求及软硬件的分析2.1 简易数字钟的设计要求利用电子电路构成一个简易数字钟,该数字钟电路主要由C51单片机、4位共阳极数码管、时计数、分计数器、蜂鸣器、LED灯、NPN型和PNP型三极管、按键、若干电阻和导线组成。其中电路系统的分计数器采用60进制,时计数器采用24进制,。译码器显示电路将时、分计数器的输出状态通过三个两位共阳数码管显示出来。整点报时电路根据计时系统

3、的输出状态产生一个脉冲信号,用蜂鸣器输出。相对机械钟而言,数字钟能达到准确计时,并显示小时、分钝同时通过不同按键的不同功育树该数字钟进行/附和分钟调整,也可通过按键来接她通蜂鸣器来发出响声。2.2 数字钟的软件分析2.1.1 数字钟软件的系统分析系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于

4、调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;( 4)绘制程序流程图;( 5)合理分配系统资源;( 6)为程序加入注释,提高可读性,实施软件工程;( 7)注意软件的抗干扰设计,提高系统的可靠性。系统软件设计流程图这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1,如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1,如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1,如果没有按

5、下,就把时间显示出来。2.2.2简易数字钟程序#include<regx52.h>#defineucharunsignedchar#defineuintunsignedintsbitk1=P3A5;/按键1sbitk2=P3A4;/按键2sbitk3=P3A3;/按键3sbitk4=P3A2;/按键4sbitLED=P1A0;/LED显示sbitbeep=P3A6;蜂鸣器intm1=0,m2=0,m3=0,m4=0;/数码管要显示的数字inttime_n=0;/1s时间到标志位intsmg_n=0;/位选控制哪个数码管闪intxz_flg=0;/选择键是否被按下intshi=0,f

6、en=0;miao=0;intzd_flg=0;/整点标志charduan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/段选编码09null;/本文件函数voidSystem_Init();/初始化函数void Smg_Scan(); /数码管动态扫描2延时函数voidDelay_1ms(uintz);/4voidBlink(uintwei);/数码管闪烁函数voidKey_Scan();/按键扫描函数voidBao_Shi();/整点报时/*/voidmain()System_Init();while(1)Smg_Scan(

7、);Key_Scan();Bao_Shi();初始化子函数/*voidSystem_Init()/初始化函数TMOD=0X01;/定时器0工作方式1定时 50000usTH0=0X4C;/TL0=0X00;EA=1;ET0=1;TR0=1;延时子函数/*voidDelay_1ms(uintz)/1ms延时函数uintx,y;for(x=z;x>0;x-)for(y=110;y>0;y-);数码管扫描子函数/*voidSmg_Scan()P2_0=0;/数码管1位选通P0=duanm1;/送段选Delay_1ms(1);/延时1msP2_0=1;/数码管1位关断P2_1=0;/数码管

8、2位选通P0=(duanm2&0x7f);/送段选Delay_1ms(1);/延时1msP2_1=1;P2_2=0;/数码管3位选通P0=duanm3;/送段选Delay_1ms(1);/延时1msP2_2=1;P2_3=0;/数码管4位选通P0=duanm4;/送段选Delay_1ms(1);/延时1msP2_3=1;TL0 = 0X00;5/*中断子函数voidtime0()interrupt1/yanshizichengxuTH0=0X4C;/定时50000ustime_n+;到了吗?到了 0.5s 对应位的数码管灭if(time_n=10)/0.5sLED=LED;if(xz_

9、flg=1)switch(smg_n)/case0:m1=10;Delay_1ms(500);break;case 1 :m2=10;Delay_1ms(500);break;case 2 :m3=10;Delay_1ms(500);break;case 3 :m4=10;Delay_1ms(500);break;if(time_n=20)/1s到了time_n=0;miao+;if(miao=60)miao=0;fen+;if(fen=60)zd_flg=1;/整点标志shi+;if(shi=24)6shi=0;m1=shi/10;/m4=fen%10;/m3=fen/10;/m2=shi%

10、10;/数码管4显示分钟的低位数码管3显示分钟的高位数码管2显示小时的低位数码管1显示小时的高位/*键盘扫描子函数voidKey_Scan()if(k1=0)/选择键Delay_1ms(21);/if(k1=0)/xz_flg=1;/EA=0;smg_n+;/if(smg_n=4)smg_n=0;while(!k1)/延时20ms按键1确实被按下选择键按下改变选择的数码管Smg_Scan();/松手检测使按下键时所有数码管都亮8Delay_1ms(21);while(!k1);if(xz_flg=1)if(k2=0)/加1键Delay_1ms(21);if(k2=0)switch(smg_n)

11、case0:m1+;if(m1=2)m1=0;break;case 1 :m2+;if(m2=10)m2=0;break;case 2 :m3+;if(m3=6)m3=0;break;case 3 :m4+;if(m4=10)m4=0;break;while(!k2)/松手检测Smg_Scan();Delay_1ms(21);while(!k2);if(k3=0)/减1键Delay_1ms(21);if(k3=0)switch(smg_n)case0:m1-;if(m1=-1)m1=2;break;case1:m2-;if(m2=-1)m2=9;break;19case2:m3-;if(m3=

12、-1)m3=5;break;case3:m4-;if(m4=-1)m4=9;break;while(!k3)Smg_Scan();Delay_1ms(21);while(!k3);if(k4=0)/确定键Delay_1ms(21);if(k4=0)xz_flg=0;EA=1;while(!k4)Smg_Scan();Delay_1ms(21);while(!k4);/*/voidBao_Shi()uinti,j;/定义循环变量if(zd_flg=1)for(j=0;j<3;j+)for(i=0;i<m1;i+)beep=!beep;/蜂鸣器开关Delay_1ms(80);/延时80

13、msDelay_1ms(1000);zd_flg=0;2.3简易数字钟硬件分析2.3.1 数字钟的总电路图占niSPro>r«si£indlFileVienEditToolsDesignGrupbSourceOebugLibratyTcmd占beSyrtemHHp口田。事电I0国31*|#4*|1/|七翼|岑|卡产|他|的然|。康1|国川cor;¥*us一计«=>w曾/口A4牌6口.1iI6i922-1t1(ELfATB3CT1BUFTOFIBUZZERMAaifflCRfSTALELXHfi(WH14P-2*V诩独叫出及”L£DL

14、M13&3/5L©泗HFEA3CRD2£S72FESR=SI5TC1R+制p。+WQIh2.3.2数字钟的硬件单元电路分析(1)最小系统设计1011L13_14151£171S192D(2)晶体单片机P1.DP1.1P1.2P13P1.4P1.5P1.6P1.7RSTNPDP3.0bTLXDP3.1/TXDP32国P3.3/INTiP3.47T0P3取ZLP3.6/WP工7后5XTAL2XTAL1GNDATS9C5151最小系统CVC5O.P38_J7363534学4口393127部ROM开怡执行24EA=O桂T序直接从J1外部-ROM开立蛆扰行二图1单片

15、机最小系统的结构图XTAL2XTAL1I.内部方式(3)常用的复位电路如下图所示:VCCR2RESET1S.2KLGND图3常用复位电路图(4)最常用的显示器数码管,如下图所示。图4显示器的符号图(5)显示电路显示模块需要实时显示当前的时间即时、分,因此需要4个数码管。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位控制方式按驱动方式可分成静态显示方式和个位分别显示在第四个和第五个数码管,显示器的显示和动态显示方式两种。对于多位显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。图5数码管的硬件连接示意图(6)键盘控制电路k

16、1来调节小时的时间,按 k2该设计需要校对时间,所以用三个按键来实现。按来调节分针的时间。下图是按键硬件连接图。STC89C52图6按键控制电路的硬件连接图2.2.3系统调试各功能模块均调整通过后,进行整机调试,其过程如下:将调好的各功能模块连接在一起,用函数信号发生器模拟交流电压信号,先用仿真机代AT89C2051单片机进行模拟调试,对每一芯片的片选、启动进行检测,并对数据线和地址线也进行检测。调试成功后再将程序写到单片机中进行调试。3、课程设计总结设计之初没有一点信心,感觉设计复杂没有一丝头绪,但是后来结合所学的数字电子技术知识,并且与同学进行交流开始逐步构想、设计、运行检测。现将心得体会

17、总结如下:(1)开始设计之前必须有一个整体的构想,考虑周到,由于接线较多一旦出现错误较难发现和改正,这样可以避免后期调试时出现较少的问题。(2)列出几个方案进行比较选出最简单易行的方案,并进行理论上的排检(3)在设计某些模块的时候无法把握住整体,这时可以先进行小部分功能的实现,在此基础上进行改进,虽然可能会多花一些时间,但这比空想要有效的多。(4)电路连接尽量整洁有序,使各项功能的连接一目了然,方便查看及排查故障(5)很多难点的突破都来自于与同学的交流,交流使自己获得更多信息,开拓了思路,因此要重视与别人的交流。(6)应该有较好的理论基础,整个实验都是在理论的指导下完成了,设计过程中使用了许多理论课上学的内容,如真值表、卡诺图等。本次设计把理论应用到了实践中,同时通过设计,也加深了自己对理论知识的理解和掌握。总体来说

温馨提示

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

评论

0/150

提交评论