毕业设计论文基于STC89C52单片机的数字时钟设计_第1页
毕业设计论文基于STC89C52单片机的数字时钟设计_第2页
毕业设计论文基于STC89C52单片机的数字时钟设计_第3页
毕业设计论文基于STC89C52单片机的数字时钟设计_第4页
毕业设计论文基于STC89C52单片机的数字时钟设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、 南京师范大学泰州学院 毕业论文 题 目: 基于stc89c52单片机的数字时钟设计 院(系、部): 电 力 工 程 学 院 姓 名: 年 级: 08级 学 号 13080318 专 业: 电气工程及其自动化(自动化方向) 指导教师: 2012 年 4 月 20 日 目 录目 录2第一章 绪论31.1数字电子钟的背景31.2数字电子钟的应用与意义31.3数字电子钟的设计任务3第二章 软件环境介绍2.1 单片机的选择4 2.2 protel及keil c软件的使用 2.3 protus的使用第三章 数字钟的硬件设计63.1 内部系统设计63.2 led显示电路83.3 键盘控制电路10第四章 数

2、字钟的软件设计124.1 系统软件设计流程图124.2 数字钟的原理154.3数字时钟程序16第五章 总结与展望。17参考文献17第一章 绪论1.1数字电子钟的背景 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进

3、一步向着cmos化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。1.2数字电子钟的应用与意义 数字钟已成为人们日常生活中:必不可少的

4、必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。1.3数字电子钟的设计任务采用stc89c52芯片为核心,外加设计相关的显示电路、键盘电路以及蜂鸣器电路,完成整个数字时钟功能,并进行proteus仿真实现。第二章 软件环境介绍2.1 单片机的选择 单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前

5、世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。目前,我国生产很多型号的单片机,在此,我们采用型号为stc89c52的单片机。因为: stc89c52是一个低电压,高性能cmos 8位单片机,片内含4k bytes的可反复擦写的flash只读程序存储器和128 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-52指令系统,片内置通用8位中央处理器和flash存储单元,内置功能强大的微型计算机的at89c52提供了高性价比的解决方案。stc89c52是一个低功耗高性能单片机,40个引脚,32个

6、外部双向输入/输出(i/o)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,stc89c51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。2.2 protel及keil c软件的使用2.3 proteus的使用 第三章 数字钟的硬件设计3.1 内部系统设计1.外接晶体引脚图3-2 晶振连接的内部、外部方式图xtal119xtal218 xtal1是片内振荡器的反相放大器输入端,xtal2则是输出端,使用外部振荡器时,外部振荡信号应直接加到xtal1,而xtal2悬空

7、。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12mhz,时钟频率就为6mhz。晶振的频率可以在1mhz-24mhz内选择。电容取30pf左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。at89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚xtal1和xtal2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容c1和c2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体

8、振荡器的值为12mhz,电容应尽可能的选择陶瓷电容,电容值约为22f。2. 复位rst9在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后p0p3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器sfr全部清零。当复位脚由高电平变为低电平时,芯片为rom的00h处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚rst通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的s5p2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路

9、系统采用的是上电与按钮复位电路。当时钟频率选用6mhz时,c取22f,rs约为200,rk约为1k。复位操作不会对内部ram有所影响。常用的复位电路如下图所示:图3-3 常用复位电路图3.输入输出引脚(1) p0端口p0.0-p0.7 p0是一个8位漏极开路型双向i/o端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个ttl。对内部flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,p0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) p1端口p1.0p1.7 p1是一个带有内部上拉

10、电阻的8位双向i/0端口。输出时可驱动4个ttl。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接收低8位地址信息。(3) p2端口p2.0p2.7 p2是一个带有内部上拉电阻的8位双向i/0端口。输出时可驱动4个ttl。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,p2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) p3端口p3.0p3.7 p2是一个带有内部上拉电阻的8位双向i/0端口。输出时可驱动4个

11、ttl。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接控制信息。除此之外p3端口还用于一些专门功能,具体请看下表。p3引脚兼用功能p3.0串行通讯输入(rxd)p3.1串行通讯输出(txd)p3.2外部中断0( int0)p3.3外部中断1(int1)p3.4定时器0输入(t0)p3.5定时器1输入(t1)p3.6外部数据存储器写选通wrp3.7外部数据存储器写选通rd表3-1p3端口引脚兼用功能表3.2 led显示电路显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有: 发光二极管led显示器、

12、液晶lcd显示器、crt显示器等。led显示器是现在最常用的显示器之一,如下图所示。图3-4 led显示器的符号图发光二极管(led)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式led显示器件(半导体显示器)。分段式显示器(led数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。led数码管有共阳、共阴之分。显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十

13、位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。led显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位led显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。图3-6 数码管的硬件连接示意图数码管使用条件:a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定c、使用电流:静态:总电流 80ma(每段 10ma);动态:平均电流 4-5ma 峰值电流 100ma3.3 键盘控制电路该设计需要校对时间,所以用四

14、个按键来实现。按s1,s2来调节小时的时间,按 s3,s4来调节分针的时间。下图是按键硬件连接图。图3-7 按键控制电路的硬件连接图当用手按下一个键时,如图3-8所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。键按下前沿抖动后沿抖动闭合稳定图3-8 按键抖动信号波形 第四章 数字钟的软件编程调试系统的软件设计也是工具

15、系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。4.1 系统软件设计流程图这次

16、的数字电子钟设计用到很多子程序,它们的流程图如下所示。开始启动定时器按键检测时间显示主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。图4-1 主程序流程图按键处理是检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。 图4-2 按键处理流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加

17、1,如果没到,就显示时间。n24小时到?分单元清零,时单元加1nnnyy时单元清零时间显示中断返回开始一秒时间到?60秒时间到?60分钟到?秒单元加1秒单元清零,分单元加1yy 图4-3 定时器中断流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。时十位计算显示结束开始秒个位计算显示秒十位计算显示分个位计算显示分十位计算显示时个位计算显示 图4-4 时间显示流程图4.2 数字钟的原理数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,

18、另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。校时电路时用来对“时”、“分”显示数字进行校对调整,按一下s1,时单元就加1 ,按一下s2,时单元就减1,按一下s

19、3,分单元就加1,按一下s3,分单元就减1。4.3数字时钟程序#include<reg52.h> sbit s1=p23; /定义按键sbit s2=p24;sbit s3=p25;sbit s4=p26;sbit a=p11; /定义指示灯参数sbit b=p13; /喇叭code unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴数码管 0-9unsigned char strtab8; /定义缓冲区unsigned char minute=59,hour,second=55; /定义

20、并且初始化值 void delay(unsigned int cnt) /延时函数 while(-cnt);void displaypro(void) /显示函数 strtab0=tabhour/10; /显示小时strtab1=tabhour%10;strtab2=0x40; /显示"-"strtab3=tabminute/10; /显示分钟strtab4=tabminute%10;strtab5=0x40; /显示"-" strtab6=tabsecond/10; /显示秒strtab7=tabsecond%10;main()/主函数 tmod |=

21、0x01;/定时器0 10ms in 12m crystal 用于计时th0=0xd8; /初值tl0=0xf0;et0=1;tr0=1; tmod |=0x10; /定时器1用于动态扫描th1=0xf8; /初值tl1=0xf0;et1=1;tr1=1; ea =1; displaypro(); /调用显示处理 while(1)/主循环 if(!s1) /按键1去抖以及动作 delay(10000); if(!s1) hour+;if(hour=24)hour=0; /正常时间 小时 加1 displaypro(); if(!s2) /按键2去抖以及动作 delay(10000); if(!

22、s2) hour-;if(hour=255)hour=23; /正常时间 小时减1 displaypro(); if(!s3) /按键3去抖以及动作 delay(10000); if(!s3) minute+;if(minute=60)minute=0;/分加1 displaypro(); if(!s4) /按键4去抖以及动作 delay(10000); if(!s4) minute-;if(minute=255)minute=59; /分减1 displaypro(); /* 定时器1中断 */void time1_isr(void) interrupt 3 using 0/定时器1用来动态

23、扫描 static unsigned char num; th1=0xf8;/重入初值tl1=0xf0;switch (num) case 0:p2=0;p0=strtabnum;break; /分别调用缓冲区的值进行扫描 case 1:p2=1;p0=strtabnum;break; case 2:p2=2;p0=strtabnum;break; case 3:p2=3;p0=strtabnum;break; case 4:p2=4;p0=strtabnum;break; case 5:p2=5;p0=strtabnum;break; case 6:p2=6;p0=strtabnum;bre

24、ak; case 7:p2=7;p0=strtabnum;break; default:break; num+; /扫描8次,使用8个数码管if(num=8) num=0;/* 定时器0中断 */void tim(void) interrupt 1 using 1static unsigned char count;/定义内部静态变量th0=0xd8; /重新赋值tl0=0xf0;count+; switch (count) case 100:displaypro();break;/显示跳动 case 50:a=a;break;/半秒闪烁 default:break; if (count=100) count=0; second+; /秒加1if(second=60) second=0; minute+; /分加1 if(minute=60) minute=0; hour+; /时加1 b=0; delay(80000); b=1; if(hour=24) hour=0; 第5章 总结与展望我在这一次数字电子钟的设计过程中,很是受益匪浅。通过对自己在大学三年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。这为自己今后进一步深化学

温馨提示

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

评论

0/150

提交评论