1、摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本次做的数字钟是以单片机(AT89S52)为核心,结合相关的元器件(共阳极数码显示器、三极管、蜂鸣器、555 集成块),再配以相应的软件,达到制作简易数字钟的目的,其硬件部分难点在于元器件参数的选择、驱动电路的选择
2、。关键词: AT89S52,单片机,数字钟目录1 绪论 41.1 课题选择 42 单片机数字钟的构成与工作原理 .52.1 单片机选择及介绍 52. 2 单片机驱动电路的选择 .62. 3 显示电路 72. 3. 1 数码管工作原理 72. 3. 2 数码管动态扫描工作原理 82. 4 键盘控制电路 92. 5 蜂鸣器报时电路 102. 6 555 触摸开关整点报时 .113 程序设计 .123. 1 程序流程图 .123. 2 源程序 134 电路原理图 .254. 1 数字钟电路原理图 254. 2 PCB 图 264. 3 PROTUES 仿真图 .275 数字钟的组装与调试 28结 论
3、 28致 谢 .29参 考 文 献 .29绪 论1 绪论目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。考虑到单片机的诸多优点,于是决定用单片机来做这个数字钟,由于单片机内部已经有了比较好的时钟源,做个简单的模拟时钟应该是没有问题的,所以没有采用专用的时钟芯片。该电子钟采用 1
4、2 翻 1 的来计时,具有校时功能,同时还能整点报时,触摸报整点时数。1.1 课题选择 如今电子钟已经非常普及,市面上有各种各样的电子钟,有的使用专门的时钟芯片,有的使用一次性烧录的芯片做时钟,考虑到制作的成本,及可制作性,没有采用专门的时钟芯片,而是采用普通的晶振分频得到秒脉冲。从现在所学的知识来看,数字钟的实现,可以通过数字逻辑电路和单片机来实现,如果采用数字逻辑电路来实现的话,光是 12 翻 1,60 进制的实现就得至少用六个芯片,另外在加上一些反馈的,校时的,数码管,译码器等元件,总共加起来要用上将近 20 个芯片了,如此算下来,成本开支就很大了,而且元件一多,pcb 的制作业相对变的
5、复杂了。而采用单片机来制作的话,除了数码管的驱动和触摸报时电路要另外加外围电路,12 翻 1,60 进制,校时等都可以用软件来实现,这样就可以节约一大笔开支。因此选择了用单片机来做电子钟。单片机数字钟的构成与工作原理2 单片机数字钟的构成与工作原理2.1 单片机选择及介绍单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片 ,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。由于 89c51 单片机不方便程序下载,而 89s 系列的与 89c 系列功能
6、相同,89s 系列单片机支持 ISP(In System Programming,即“在线可编程” ) ,手头上正好有 89s52 的单片机,因此本设计采用的是 89s52 的单片机,该单片机共有 40 个引脚,如下图2. 2 单片机驱动电路的选择查该芯片的 datasheet 可知,该芯片在稳定状态(无输出)条件下,IoL 有以下限制:每一引脚最大 IoL:10ma每一 8 位端口:P0:26ma , P1,2,3:15ma。全部引脚输出最大 IoL=71ma。数码管的段码如果按照每个 1ma 来计算,最坏情况下每个数码管则需要 8ma 电流,共有数码管 6 个,总共得要 48ma 的电流才
7、能保证数码管正常工作,因此,直接用单片机来驱动的话肯定很暗,实验结果也证明如此,所以要给数码管增加驱动电路,最常用的驱动电路可以可以用 pnp 的三极管,也可以采用专门的驱动芯片对其驱动。本设计采用普通的 8550 三极管对其驱动。驱动电路如下图中的三极管工作在开关状态,当三极管出现低电平时,三极管导通,数码管位选端打开。2. 3 显示电路2. 3. 1 数码管工作原理数码管实际上是由发光二极管构成的,其内部原理图如上图所示,上图分别列出了一位共阳数码管与 4 位一体的数码管的原理图。虽然数码管外形千变万化,但是工作原理都是一样的,共阳数码管显示数字代码如下表数字 0 1 2 3 4 5 6
8、7 8 9代码 0xc0 0xf9 0xa4 0xb0 0x99 0x92 0x82 0xf8 0x80 0x902. 3. 2 数码管动态扫描工作原理本设计采用动态扫描的工作方式来做显示部分,即轮流让每个数码管点亮,由于人眼具有视觉暂留特点,当数码管轮流点亮的速度达到一定速度后,我们看上去就好像是一个连续的,稳定的数字,类似与电影播放的原理。显示部分原理图如下2. 4 键盘控制电路按键控制电路如下图所示,通过一个电阻和开关使 P3.5,P3.6,P3.7 采集到高电平(低电平)当 P3.5 采集到低电平时,进入校时(秒校准)状态,在一次按下 P3.5 时进入分校准状态,第三次按下 P3.5
9、时,进入时校准状态,最后一次按下 P3.5 时,退出校时状态,时钟正常走时。依次循环。当时钟进入时(分,秒)校准状态时,按下按键 P3.6 可以加 1 校时,按下按键 P3.7可以实现减 1 校时。2. 5 蜂鸣器报时电路与数字逻辑电路相比,采用单片机构成的蜂鸣器报时电路简单,只需通过修改程序即可达到整点报时,闹钟等功能。如下图,当 P3.1 采集到低电平时,pnp 型三极管导通,推动扬声器发出声音,通过控制 P3.1 高低电平的占空比即可发出不同的声音。2. 6 555 触摸开关整点报时该触摸开关由 555 组成的单稳态触发器构成,其中 2 脚接金属片 A, 。无触发脉冲输入时,555 的输
10、出 V0 为 0,当手触摸金属片时,相当于 2 脚输入一负脉冲,555 的内部比较器翻转,使输出 V0 变为高电平,直至电容 C2 上的电压充到 2/3Vcc 为止。维持高电平的时间可以用1.1RC 来计算。由于只需要在 3 脚采集到一个高电平,维持高电平的时间没有要求,所以 RC的值可以取 R=100K,C=10uF。延时时间将近 1s。程序设计3 程序设计3. 1 程序流程图3. 2 源程序#include #define uchar unsigned charuchar code seg7=0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*
11、/0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/;uchar second,minute,hour,count,num,m,num1,i,m,s,f;void display();delay1s() /延时函数uchar a,b,c;for(c=3;c0;c-) for(b=2;b0;b-)for(a=20;a0;a-)display(); delay() uchar a,b,c;for(c=1;c0;c-) for(b=2;b0;b-)for(a=7;a0;a-)display(); delay1() uchar a,b,c;for(c=
12、4;c0;c-) for(b=2;b0;b-)for(a=25;a0;a-)display(); delay1ms()uchar a,b;for(b=2;b0;b-)for(a=150;a0;a-);delay5()uchar a,b;for(b=80;b0;b-)for(a=53;a0;a-);void display() / 显示函数if(num=1)P1=seg7second/10;P2=P2=0xf7; / P2=0xf7; P2=0x08;delay1ms();P2=0xff;P1=seg7second%10;P2=0xfb; / P2=0xfb; P2=0x04;delay1ms(
13、);P2=0xff;if(num=2)P1=seg7minute/10;P2=0xdf; / P2=0xdf; P2=0x20;delay1ms();P2=0xff;P1=seg7minute%10;P2=0xef; / P2=0xef; P2=0x10;delay1ms();P2=0xff;if(num=3)P1=seg7hour/10;P2=0x7f; / P2=0x7f; P2=0x80;delay1ms();P2=0xff;P1=seg7hour%10;P2=0xbf; / P2=0xbf; P2=0x40;delay1ms();P2=0xff;if(num=0) P1=seg7sec
14、ond/10;P2=0xf7; / P2=0xf7; P2=0x08;delay1ms();P2=0xff;P1=seg7second%10;P2=0xfb; / P2=0xfb; P2=0x04;delay1ms();P2=0xff;P1=seg7minute/10;P2=0xdf; / P2=0xdf; P2=0x20;delay1ms();P2=0xff;P1=seg7minute%10;P2=0xef; / P2=0xef; P2=0x10;delay1ms();P2=0xff;P1=seg7hour/10;P2=0x7f; / P2=0x7f; P2=0x80;delay1ms();
15、P2=0xff;P1=seg7hour%10;P2=0xbf; / P2=0xbf; P2=0x40;delay1ms();P2=0xff; settime(uchar z,uchar y,uchar x) /设定时间if(second=x)if(minute=y)if(hour=z)for(i=0;i0;m-)P3_1=0;delay1s();P3_1=1;delay1s();zhengdian()if(P3_4=0)if(second=0)if(minute=0)display();switch(hour) case 1:shi(1);break;case 2:shi(2);break;c
16、ase 3:shi(3);break;case 4:shi(4);break;case 5:shi(5);break;case 6:shi(6);break;case 7:shi(7);break;case 8:shi(8);break;case 9:shi(9);break;case 10:shi(10);break;case 11:shi(11);break;case 12:shi(12);break; if(P3_4=1)delay1s();if(P3_4=1)switch(hour) case 1:shi(1);break;case 2:shi(2);break;case 3:shi(
17、3);break;case 4:shi(4);break;case 5:shi(5);break;case 6:shi(6);break;case 7:shi(7);break;case 8:shi(8);break;case 9:shi(9);break;case 10:shi(10);break;case 11:shi(11);break;case 12:shi(12);break;void main()hour=12;TMOD=0x01;TH0=60;TL0=176;ET0=1;TR0=1;EA=1;while(1)display();timeupdowm();zhengdian();s
18、ettime(06,06,06);void t0() interrupt 1count+;if(count=20)count=0;second+;P3_0=P3_0;if(second=60)second=0;minute+;if(minute=60)minute=0;hour+;if(hour=13)hour=1;TH0=60;TL0=176;电路图原理图4 电路原理图4. 1 数字钟电路原理图4. 2 pcb 图4. 3 protues 仿真图上图中没有加三极管驱动环节,主要是确认程序是否正确。数字钟的组装与调试5 数字钟的组装与调试在检查各元器件是否安装正确,由于采用单面板来制作,要使用
19、跳线的地方是否连接上,确认无误后即可上电测试,上电后,看走时是否正常,然后再看按键部分,蜂鸣器部分,触摸开关整点报时是否正常,本着先软后硬的原则进行检查,可以首先用 keil 和 protues 这两个软件对程序和原理图进行仿真,看是否可行,如果仿真出来没什么问题,那就说明程序没有问题了,在程序没有问题的前提下,如果电路还不能工作,则要开始检查硬件部分,哪个块电路出问题,就着重检查哪一块电路,这样可以节约不少时间。结 论随着技术的飞速发展,时钟也经过了一系列的演变,由机械式向数字式发展。电子技术的发展使人类的生活发生了翻天覆地的变化。没一次技术的革新都给人类带来了巨大的收益。通过本次毕业设计,
20、我感受到电子世界的无穷魅力,特别是单片机,一个小小的芯片,通过编程就可以实现各种各样的功能,这与纯粹的模电和数电相比,有着更大的优势,而且能够节约很多硬件设施。同时我也掌握了很多新知识,再一次强化了动手能力,对 pcb 软件,仿真软件的使用更加熟练。对于程序和硬件电路的调试也有了很大的提高。在调试过程中,我们应该充分利用资源,利用仿真软件对硬件进行仿真,这样可以大大缩短设计周期,当然也不能完全相信软件,例如,在利用 protues 仿真电路时,不加三极管电路一样能工作,但是实际工作中,非常暗,必须加上驱动电路才能使电路正常工作。在遇到问题时,我们要静下心来思考,不要那么轻易地就放弃了,另外互联
21、网也是一个很好的学习工具,在遇到问题时,我们可以通过一些搜索引擎(百度,谷歌等) ,或者到一些专业的论坛上寻找答案。总之,我们要充分利用身边的资源。致 谢毕业论文暂告收尾,这也意味着我在武汉 XXX 学院的二年的学习生活既将结束。在这二年的时间里,我在学习上和思想上都受益非浅。记得刚开始进学校来的时候什么都不懂,对于专业知识也只是个门外汉,但是经过老师的不断指导和点拨,使我敲开了电子世界这个大门,并不断地提高,这除了自身努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的在这里我要感谢我的模电老师黄 X,每次模电有什么问题,她都会细心认真的解答,这使我的模电基础学的很扎实,为学以后的知识
22、和搞这个毕业设计打下了很好的基础,还有我的变流老师周全,虽然她是从别的学校调过来的老师,与我们接触的很少,但是我从她那学到了很多东西,还有程鹏飞老师,他教我们单片机,虽然只学了半个学期的单片机,但是这使我对单片机的硬件结构有了很好的了解,为我这次用单片机做的毕业设计提供了很多技术支持。还有 cepark 这个论坛,在这里我学到了很多知识,对单片机有了更深的了解,在遇到问题时,这个论坛网友们也给了我很多宝贵的意见。最后就是我的指导老师黄华了,是他给了我一个广阔的发展的空间,让我的专业知识得到了提高,并不断的坚持下来。太多太多要感谢的人了,没有他们的帮助,我的论文就无法顺利的完成。再一次感谢他们。参 考 文 献1 唐德利,姜新桥,秦佳,曹庆生.单片机原理及应用.第 1 版.武汉:华中科技大学出版社,2005 2 罗杰,谢自美.电子线路设计实验测试.第 4 版. 北京:电子工业出版社,20083 朱运利.EDA 技术应用.第 2 版. 北京:电子工业出版社,20074 顾海远.模拟电子技术.第 1 版.北京:科学出版社,20045 互联网