您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于AT89C2051单片机的电子钟设计
基于AT89C2051单片机的电子钟设计选题背景:目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的.要知道当前的时间,必须先开灯,故较为不便.现在市场上也出现了一些电子钟,它以六只LED数码管来显示时分秒,违背了人们指针式的传统习惯与理念,而且这类电子钟一般是采用大型显示器件,适用于银行,车站等公共场所,且外观设计欠美观,很少进入百姓家庭.此外,无论是机械钟,石英钟还是电子钟,都存在着共同的问题:时间误差.针对以上存在的问题,我们设计了一款采用LED显示器件显示的电子时钟,解决了时钟存在的误差问题,并能在夜间不必其它照明就能看到时间,可作为室内装饰用.摘要:本电子钟以AT89C2051单片机作为核心,具有时、分、秒的调整、显示功能,以及24小时和12小时时制选择功能,时间制式由最后一位数码管的小数点来指示。利用定时器中断和软件编程实现电子钟秒计数功能用六个三极管2SA1015作为驱动电路。1.2英寸共阳数码管作为时分显示,秒用0.5英寸共阳数码管来显示。一路定时功能,用蜂鸣器作为发音元件。电子钟作为一种新的显示时间的产品已经开始走入人们的生活中。它具有走时准确,清晰可见,而且夜晚房间关灯之后,它显得更清楚直观,所以打破常规开灯看时间的习惯。关键词:AT89C2051单片机电子钟设计显示功能计数功能软件编程数码管系统主要功能:其主要功能有:①整点报时;②四只LED数码管显示当前时分;系统的硬件构成及功能:它由以下几个部件组成:单片机89C2051,电源,时分显示部件,60秒旋转译码驱动电路,三极管2SA1015作为驱动电路.1.2英寸共阳数码管作为时分显示,秒用0.5英寸共阳数码管来显示。一路定时功能,用蜂鸣器作为发音元件时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗.时分显示模块,60秒旋转译码驱动电路以及显示驱动都通过89C2051的I/O口控制.电源:电源部分有二部分组成.一部分是由220V的市电通过变压,整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常计时.正常情况下电池是不提供电能的,以保证电池的寿命2.1AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版.内部自带2K字节可编程FLASH存储器的低电压,高性能COMS八位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容.由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单,造价最低廉,效率最高的微控制系统,省去了外部的RAM,ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比.AT89C2051是一个有20个引脚的芯片,.与8051相比,AT89C2051减少了两个对外端口(即P0,P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小.AT89C2051芯片的20个引脚功能为:AT89C2051引脚配置VCC电源电压;GND接地;RST复位输入.当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至1;XTAL1反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2来自反向振荡放大器的输出.P1口8位双向I/O口.引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故.P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA的灌电流,并能直接驱动LED显示器;P1口引脚写入1后,可用作输入.在闪速编程与编程校验期间,P1口也可接收编码数据.P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚.P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问.P3口的输出缓冲器能接收20mA的灌电流;P3口写入1后,内部上拉,可用作输入.P3口也可用作特殊功能口,其功能见表1.P3口同时也可为闪速存储器编程和编程校验接收控制信号.T1(定时器1外部输入)P3.5T0(定时器0外部输入)P3.4(外部中断1)P3.3(外部中断0)P3.2TXD(串行输出口)P3.1RXD(串行输入口)P3.0特殊功能:2.260秒旋转译码驱动原理按常规传统设计,需60进制译码驱动电路才能实现60秒旋转译码驱动,若用六片十进制计数译码器构成六十进制计数译码电路,则电路连线多(需要120根连线),硬件电路庞大,开销大.为此,我们巧妙地采用了两片CD4017进行六十进制计数译码,实现60秒旋转译码驱动.既减少了电路的复杂程度又可降低了成本.CD4017集成电路是十进制计数/时序译码器,共有10个译码输出Q0~Q9;每个译码输出通常处于低电平,且在时钟脉冲由低到高的上升沿输出高电平;每个高电平输出维持1个时钟周期;每输入10个时钟脉冲,输出一个进位脉冲,因此进位输出信号可作为下一级计数器的时钟信号.在清零输入端(R)加高电平或正脉冲时,只有输出端Q0为高电平,其余各输出端均为低电平0.为实现对发光二极管的驱动,将每一个译码输出端口接一只发光二极管,并将二极管串联限流电阻后接地.当译码端口Q0~Q9中任一端口为高电平,则对应的发光二极管点亮。仔细考查CD4017的功能,可发现其10个输出的高电平是相互排斥的,即任一时刻只有一只发光二极管点亮。2.3时分显示部件由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济.LED有共阴极和共阳极两种.二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压.一位显示器由8个发光二极管组成,其中7个发光二极管构成字型8的各个笔划(段)a~g,另一个小数点为dp发光二极管.当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗.为了保护各段LED不被损坏,需外加限流电阻.LED数码管结构原理图众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动.本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性.所谓软件译码,即由单片机软件完成从数字到显示码的转换.从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个8字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节.各段码位与显示段的对应关系如表2.abcdefgdp显示段D0D1D2D3D4D5D6D7段码位(共阴段码)7FH00H07H71H7DH79H6DH5EH66H39H4FH(共阳段码)80HFFHF8H84H82H86H92HA1H99HC6HB0H(字型)8空白7F6E5D4C37CH5BH77H06H6FH3FH83HA4H88HF9H90HC0HB2A190根据AT89C2051单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管.将AT89C2051的P1.0~P1.7分别与共阳数码管的a~g及dp相连,高电平的位对应的LED数码管的段暗,低电平的位对应的LED数码管的段亮,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符.例如:当P0口输出的段码为11000000,数码管显示的字符为0.数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式.为节省端口及降低功耗,本系统采用动态扫描显示方式.动态扫描显示方式需解决多位LED数码管的段控和位控问题,本电路的段控(即要显示的段码的控制)通过P0口实现;而每一位的公共端,即LED数码管的位控,则由P3口控制.这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码.在这一瞬时,只有这一位在显示,其他几位则暗.在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于开关状态.系统的时分显示部件由4只7段共阳LED数码管构成,前两只用于时的显示,后两只用于分的显示.值得一提的是,在设计中需要实现时与分之间的两个闪烁点,为此,将两只LED灯并排摆放,这样就很巧妙地形成了两个很自然的闪烁点.其基本原理图如下:目前掌控的所需元件清单:名称型号数量单片机AT89C20511超高亮数码管共阳尺寸0.5inch2超高亮数码管共阳尺寸1.2inch4发光二极管绿,透明2三极管2SA10156蜂鸣器小(尺寸6×6mm×5.5)1电阻4.7K若干晶振6M(小体积)1轻触按键1瓷片电容104(0.1微法)2瓷片电容30P2电解电容10uf2底座20脚1PCB线路板直径11.51电源线150cm1电源插孔9v1Nl-MH电池4.8V-1.6Ah1结语:由于我们没有能买到气敏传感器,先前提交的方未能顺利实施,故改为做这个电子时钟,有可行性,且对于现目前刚学了单片机编程有了实际应用,对于动手能力的培养也有很大的帮助,对后续的实践操作,我们会一直做直到成功。P3口引脚功能P3.0RXD(串行输入端口)P3.1TXD(串行输出端口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4TO(定时器0外部输入)P3.5T1(定时器1外部输入)图10.3振荡的外部连接方法图10.4外部时钟驱动结构
本文标题:基于AT89C2051单片机的电子钟设计
链接地址:https://www.777doc.com/doc-2568378 .html