电子钟的设计_第1页
电子钟的设计_第2页
电子钟的设计_第3页
电子钟的设计_第4页
电子钟的设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要随着人类科技文明的发展,人们对于时钟的要求在不断地提高。时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向9。本文正是基于这种设计方向,以单片机为控制核心,设计制作一个符合指标要求的多功能数字时钟。本设计基于单片机技术原理,以单片机芯片at89s51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个电子时钟系统。该时钟系统主要由时钟电路模块、复位电路模块、led数码管显示模块、以及键盘控制模块组成。系统具有

2、简单清晰的操作界面,能在4v7v直流电源下正常工作。能够准确显示时间(显示格式为时时:00.00.00,刚上电时为12.00.00,当显示到23.59.59,即有重新从00.00.00开始显示),可随时进行时间调整。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。关键词at89s51单片机电子钟 led数码管目录第一章 绪论1.1 单片机的特点11.2 单片机应用简述11.3 电子时钟简介21.4 电子时钟的基本特点2第二章 控制系统的硬件设计32.1芯片的选择32.1.1

3、at89s51的功能概述32.1.2 at89s51引脚功能说明(附引脚图)32.1.3 at89s51与at89c51的比较62.2 电子时钟电路设计框图72.2.1 按键电路72.2.2 led数码管显示电路8第三章 控制系统的软件设计123.1 主程序部分123.2 显示子程序153.3 中断服务子程序19第四章 电路测试224.1 硬件测试224.2 软件测试234.3 测试结果分析与结论234.3.1 测试结果分析234.3.2 测试结论23第五章 作品总结与感想24第七章 参考文献26第八章 附录27ii第一章 绪论1.1 单片机的特点20世纪末,单片机技术获得了飞速的发展,在其在

4、推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使得现代电子产品性能进一步提高。单片机有以下特点:1. 单片机的存储器rom和ram是严格区分的。rom称为程序存储器,只存放程序、固定常数及数据表格。ram则为数据存储器,用作工作区及存放用户数据12. 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力;3. 单片机的i/o口通常是多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或机器状态来区分;4.

5、 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。1.2 单片机应用简述目前,单片机正朝着高性能和多品种方向发展趋势是进一步向着cmos化、低功耗、小体积,大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。在以前,是必须由模拟或是数字电路实现的大部分功能的,而现在已经能用单片机通过软件的方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。1.3 电子时钟简介时间对于人们来说总是那么

6、宝贵,工作的忙碌性和繁杂性容易是人忘记当前时间。忘记了要做的事情,当事情不是很重要的时候这种遗忘无伤大雅。但是,一旦是重要的事情,一时的耽误可能酿成大祸。1957年,ventura发明了世界上第一只电子表,从而奠定了电子时钟的基础,电子时钟也飞速的发展起来。现代的电子时钟的基于单片机的一种计时工具采用延时程序产生一定的时间中断,用于一秒定义,通过计数方式进行六十秒分钟进一,满六十分小时进一,满二十四小时清零,从而达到计时的功能,是人们日常生活不可缺少的工具。1.4 电子时钟的基本特点现在高精度的计时工具大多数采用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此,走时精度高,稳

7、定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用lcd显示器或数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好3。第二章 控制系统的硬件设计2.1芯片的选择经过多种单片机性能的分析及现有实验设备的限制,在本设计中单片机芯片采用了at89s51单片机芯片。at89s51是美国atmel公司生产的低功耗,高性能cmos8位单片机片内含4k bytes的可系统编程的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集flash

8、程序存储器既可在线编程(isp)也可用传统方法进行编程既通用8位微处理器于单片机芯片中,atmel公司的功能强大,低价位at89s51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。2.1.1 at89s51的功能概述at89s51提供以下标准功能:4k字节flash闪速存储器,128字节内部ram,32个i/o口线,看门狗(wdt),两个数据指针,两个16位定时、计数器,一个5向量两级中断结构,一个全双工通信口,片内振荡器及时钟电路。同时,at89s51可降至0hz的静态逻辑操作,并支持两种可选的节电工作模式。空闲方式停止cpu的工作,但允许ram,定时、计数器,串行通信口

9、及中断系统继续工作。掉电方式ram中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。2.1.2 at89s51引脚功能说明(附引脚图)vcc:电源电压gnd:接地p0口:p0口是一组8位漏极开路型双向i/o口,即地址/数据总线复用口。作为输出口用时,每位能驱动8个ttl逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 图2- 1 at89s51引脚图 p1口:p1口是一个带

10、有内部上拉电阻的8位双向i/o口,p1的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。flash编程和程序校验期间,p1接收低8地址。p2口:p2口是一个带有内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据

11、存储器(例如执行movx dptr指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器(例如执行movx ri指令)时,p2口线上的内容(即特殊功能寄存器(sfr)区中p2寄存器的内容),在整个访问期间不改变。flash编程和程序校验期间,p2亦接收高位地址和其他控制信号。p3口:p3口是一个带有内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写入“1”,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的p3口将用上拉电阻输出电流。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能。p3口还接收一些用于

12、flash闪速存储器编程和程序校验的控制信号。端口引脚第二功能信号名称p3.0rxd串行数据接收p3.1txd串行数据发送p3.2/int0外部中断0请求p3.3/int1外部中断1请求p3.4t0定时/计数器0的外部输入p3.5t1定时/计数器1的外部输入p3.6/wr外部ram写选通p3.7/rd外部ram读选通表2- 1 p3口第二功能rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。wdt溢出将使该引脚输出高电平,设置sfr auxr的disrt0位(地址8eh)可打开或关闭该功能。dirt0位缺省为reset输出高电平打开状态。ale/prog:当

13、访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ale仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此可对外输出时钟或用以定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。对flash存储器编程期间,该引脚还用于出入编程脉冲(prog)。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,单片机执行外部程序时,应设置ale无效。/psen:程序储存允许(/psen)输出是外部程序存储器的读选通信号,当at89s51由外部程序存储器取指令(或数据)使,每个机器周期两次/psen有效,即输出两个

14、脉冲。当访问外部数据存储器。没有两次有效的/psen信号。ea/vpp:外部访问允许。欲使cpu仅访问外部程序存储器(地址为0000hffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器中的指令。flash存储器编程时,该引脚加上+12v的编程电压vpp。xtal1:振荡器反相放大器及内部时钟发生器的输入端。xtal2:振荡器反相放大器的输出端。2.2 电子时钟电路设计框图晶振电路模块复位电路模块led显示电路 at89s51主控制模块按键电路电路设计框图 图2-22.2.1 按键

15、电路设计用了4个按键k1/k2/k3/s1,分别用于调时、调分、调秒及用作复位按钮,达到了时间调节的目的。 图2.3 按键电路 2.2.2 led数码管显示电路数码管是一种把多个led显示段集成在一起的显示设备。有两种类型,一种是共阳极,一种是共阴极。共阳极就是把多个led显示段的阳极接在一起,又称为公共端。共阴型就是把多个led显示段的阴极连接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。数码管的显示方法可分为静态显示和动态显示,在本设计中采用的是动态显示,其原理:各个数

16、码管的相同端连接在一起,共同占用8位段引管线:每位数码管的阳极连接在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来6。本设计由两个led四位一体阴极数码管、8个9012(pnp)三极管、8个510欧上拉电阻等组成,由于led数码管的位电流较大,故采用三极管来驱动。8个电阻一端接到单片机的p1口,另一端分别接到三极管的基极,发射极接地,集电极与所述数码管芯片的位控制端相连。此驱动电路采用主芯片的通用口并配合三极管来实现四位数码管的动态扫描和显示驱动,具有电路结构简单、占用电路板

17、空间小、驱动能力强、成本低等优点,其缺点是共阴极的数码管采用pnp三极管驱动,这样三极管的损耗比较大。位码由p1口输出,段码由p3口输出,p1口线与led之间5.1k的限流电阻和pnp三极管,显示的方式为动态显示方式。显示字符gfedcba字型码共阴极共阳极001111113fhc0h1000011006hf9h210110115bha4h310011114fhb0h4110011066h99h511011016dh92h611111017dh82h7000011107hf8h811111117fh80h911011116fh90ha111011177h88hb11111007ch83hc01

18、1100139hc6hd10111105eha1he111100179h86hf111000171h8eh表2-2 字型与字段关系数码管驱动的意义:第一:假如不驱动的话,单片机的高低电平仍然可以控制数码管的亮度,形在动态显示,但这时细心的你会发现这时的数码的亮度会比较暗,并且扫描频率很高,仍然有微小的闪动现象,因为单片机的输出的电流本身就很弱;第二:三极管的作用是:1、起到开关的作用,即某一时刻打开或关闭数码管,形成动态显示;2、驱动数码管,静态显示可以不明显,动态显示的时候,效果就出来了。具体电路图如下:图2-4 数码管显示电路电子钟硬件总电路图如下:第三章 控制系统的软件设计软件系统主要分

19、为以下几个部分:主程序、显示子程序及中断服务子程序。以动态显示作为主程序,主要是初始化部分和不断调用动态显示子程序。动态显示子程序,它被主程序不断调用,以保证稳定可靠的显示;按键查询采用中断方式;秒定时采用定时器t0中断方式进行,定时时间为50ms,每50ms溢出一次,中断两次达100ms。然后通过显示子程序将单元里面的十六进制数拆开为bcd码,送到显示缓冲区。3.1 主程序部分a)程序的起始地址:mcs-51单片机复位后,(pc)=0000h,而0003h-002bh分别是各中断源的入口地址。所以,编程时应在0000h处写一条跳转指令。b)主程序的初始化:将要用到的mcs-51系列单片机内部

20、部件或扩展芯片进行初始工作设定。流程图如下:图3-1 主程序流程图程序如下:second equ 30h;秒单元minite equ 31h;分单元hour equ 32h;时单元hourk bit p2.0;时按键minitek bit p2.1;分按键secondk bit p2.2;秒按键dispbuf equ 40h;显示缓冲区dispbit equ 48ht2scnta equ 49ht2scntb equ 4ahtemp equ 4bhorg 0000hljmp startorg 000bh;定时器t0中断入口地址ljmp int_t0;主程序start: mov second,#

21、00h;秒单元清0mov minite,#00h;分单元清0mov hour,#12;上电时单元显示12mov dispbit,#00hmov t2scnta,#00hmov t2scntb,#00hmov temp,#0fehlcall disp;调用显示子程序mov tmod,#01h;设定时器t0工作方式为方式1mov th0,#3ch;t0置初值mov tl0,#0b0hsetb tr0;启动定时器t0setb et0;启动定时器t0中断允许setb ea;总中断允许3.2 显示子程序功能:扫描8个数码管,数值。流程图如下显示程序如下:;显示子程序wt:jb secondk,nk1;位

22、转移lcall dely10ms;延时1sjb secondk,nk1inc second;s+1mov a,secondcjne a,#60,ns60;判断是否到60m?判断是否到60s?若未到,则返回;到了则跳转nm60mov second,#00hns60: lcall dispjnb secondk,$nk1: jb minitek,nk2lcall dely10msjb minitek,nk2inc minite;m+1mov a,minitecjne a,#60,nm60;判断是否到60m?判断是否到60s?若未到,则返回;到了则跳转nm60mov minite,#00h;60分到

23、,则分单元清0nm60: lcall dispjnb minitek,$nk2: jb hourk,nk3lcall dely10msjb hourk,nk3inc hour;h+1mov a,hourcjne a,#24,nh24;判断是否到60m?判断是否到60s?若未到,则返回;到了则跳转nm60mov hour,#00hnh24: lcall dispjnb hourk,$nk3: ljmp wtdisp:mov a,#dispbuf;显示小时十位值add a,#8dec amov r1,amov a,hourmov b,#10div ab;除以10.,得到时间值的各位和十位mov r

24、1,a;十位送相应的显示缓冲区dec r1;指向显示缓冲区的个位mov a,b;各位给accmov r1,a;个位置送缓冲区的相应位置dec r1mov a,#10movr1,adec r1mov a,minite;显示分钟十位值mov b,#10div abmov r1,adec r1mov a,b;显示分钟个位值mov r1,adec r1mov a,#10movr1,adec r1mov a,secondmov b,#10;显示秒十位值div abmov r1,adec r1mov a,bmov r1,adec r1ret3.3 中断服务子程序每个机器周期的长度是12个振荡器周期。因为实

25、验系统的晶振是11.0592mhz,所以定时常数的设置可按以下方法计算:机器周期=1211.0592mhz1.0857s程序中,定时器t0采用方式1=65536,因要求每50ms溢出一次,计数值=(501000)1=5000 ,所以计数器的初值为x=65536-50000=15536=3cb0h 初值寄存器的初值 th0=3ch,tl0=b0h置t0方式1定时,所以tmod=01h功能:50ms执行一次完成显示数据的刷新并拆开放到显示缓冲区.程序如下:;中断服务子程序int_t0:mov th0,#3chmov tl0,#0b0hmov a,#dispbufadd a,dispbitmov r

26、0,amov a,r0mov dptr,#table;查表movc a,a+dptrmov p3,a;段码送p3口mov a,dispbitmov dptr,#tabmovc a,a+dptrmov p1,a;位码送p1口inc dispbitmov a,dispbitcjne a,#08h,knamov dispbit,#00h第四章 电路测试4.1 硬件测试由于在硬件电路是用通用板做的,所以在电路焊接方面是不可忽视的,只要有一处的错误,则会对检测造成很大的不便,而且电路的交线很多,对于各种锋利的引脚要注意处理,否则刺破带有封皮的导线,使得电路造成短路现象。另外还要对元器件先进行检测,如果有

27、坏的器件要进行更换,还有就是要注意元器件的正确放置与安装以及布线的合理,便于成品电路的检测和维护7。在本设计中的调试过程遇到了很多的问题,回想这些问题,其实只要认真点、仔细点、思考多一点大部分是可以避免的,以下为主要问题:电路做成后,数码管的正常显示应为12-00-00,却显示成了00-00-12,就是前四位和后四位调换了。解决:查出p1口的8个电阻低4位和高4位接反了,拆了重新接之后,显示却变为正常显示数值12-00-00的反面,就像一张纸的正面和反面反了下,后来想到从硬件中修改的话,改动的比较大也比较麻烦,后来决定从软件中修改,把共阴极后面代码改了,问题就得到了解决。4.2 软件测试该电子

28、钟的功能虽少,但是程序也比较为复杂,所以在编写程序和调试程序时出现了相对较多的问题。最后,鉴于以前学过的单片机知识,一步一步的完成各个子程序,终于得到了最后的程序。解决了软件问题。在写中断程序和显示程序时遇到了很多的问题,如调试时显示乱码等等。但是经过努力,程序还是成功了。4.3 测试结果分析与结论4.3.1 测试结果分析1.在测试中遇到led数码管为不显示时,首先要仔细观察电路板是否存在漏焊、虚焊、或者元件损坏。2.led数码管显示不正常,还有亮度不够,要注意观察电路是否存在短路现象。若硬件无误后,再查看烧写的程序是否正确,并对程序进行认真修改。4.3.2 测试结论经过了多次的反复测试与分析,可以对电路原理及功能更加熟悉,同时提高了设计能力以及对电路的分析能力,同时在软件的编程方面得到更高的提高,对编程能力也得到了加强,同时对所学的只是得到了很到的提高与巩固。对于初学者来说,更是有更大的益处,能理论联系实际运用,学到更多的知识,真正将这门课程所包含的知识用于实际生活中的具体创造和设计中。第五章 作品总结与感想通过这次单片机课程设计,发现了自身所学知识存在许多的不足和问题,同时也学到了不少东西,提高了动手能力。在整个设计过程中,从设计方案的确定,到具体电路的设计,最后到总体

温馨提示

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

评论

0/150

提交评论