您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 基于at89c2051单片机的多功能时钟设计
中国矿业大学信息与电气工程学院1电子技术综合设计总结报告姓名:学号:专业与班级:设计题目:时间:2012~2013学年第(1)学期指导教师:成绩:日期:中国矿业大学信息与电气工程学院2目录第一章基于AT89C2051单片机的时钟设计--------------------11.1实验设计目的------------------------------------------------11.2实验设计要求------------------------------------------------1第二章方案比较与选择---------------------------------------------12.12051单片机的原理图--------------------------------------12.2led数码管原理----------------------------------------------22.3方案分析和比较---------------------------------------------3第三章电路设计------------------------------------------------------43.1电路总体结构设计-----------------------------------------53.2各部分电路的设计-----------------------------------------6第四章程序设计------------------------------------------------------64.1中断程序设计------------------------------------------------74.2主程序设计---------------------------------------------------7第五章系统测试和调试---------------------------------------------8第六章数据测试与处理---------------------------------------------9第七章总结------------------------------------------------------------11第八章参考文献------------------------------------------------------12第九章附录------------------------------------------------------------13中国矿业大学信息与电气工程学院3第一章基于AT89C2051单片机的时钟设计1.1实验目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力(3)过对课题设计方案的分析、选择、比较、研制的过程,软硬件设计的方法、内容及步骤;(4)掌握单片机、三极管、半导体数码管显示器与七段码显示译码器的使用;(5)连接数字钟的工作原理。1.2实验要求(1)利用单片机设计一个时钟,使其具有计数、时钟、闹钟和秒表的功能。(2)利用中断开关实现对时间的调整及其他功能。(3)闹钟可以选择开通和关断模式。(4)时钟显示格式为××(时)××(分),显示周期00:00—23:59,用二极管和时部分的dp的闪烁表示秒。第二章实验方案比较与选择2.12051单片机的结构和原理1引脚1)89C2051共有20条引脚,从图中可见,2051继承了8031最重要引脚:2)P1口共8脚,准双向端口。3)P3.0~P3.6共7脚,准双向端口,并且保留了全部的P3的第二功能,如P3.0、P3.1的串行通讯功能,P3.2、P3.3的中断输入功能,P3.4P3.5的定时器输入功能。4)在引脚的驱动能力上面,89C2051具有很强的下拉能力,P1,P3口的下拉能力均可达到20mA.相比之下,89C51/87C51的端口下拉能力每脚最大为15mA。但是限定9脚电流之和小于71mA.这样引脚的平均电流只9mA。89C2051驱动能力的增强,使得它可以直接驱动LED数码管。图15)为了增加对模拟量的输入功能,2051在内部构造了一个模拟信号比较器,其输入端连到P1.0和P1.1口,比较结果存入P3.6对应寄存器,(P3.6在2051外部无引脚),原理见图2。6)图3为测量示意图。其中,R用于测量门限的调节,IN端接输入模拟信号。图22电源89C2051有很宽的工作电源电压,可为2.7~6V,当工作在3V时,电流相当于6V工作时的1/4。89C2051工作于12Hz时,动态电流为5.5mA,空闲态为1mA,掉电态仅为20nA。这样小的功耗很适合于电池供电的小型控制系统。中国矿业大学信息与电气工程学院4图33存储器89C2051片内含有2k字节的Flash程序存储器,128字节的片内RAM,与80C31内部完全类似,由于2051内部设计全静态工作,所以允许工作的时钟为0~20MHz,也就是说,允许在低速工作时不破坏RAM内容。相比之下,一般8031对最低工作时钟限制为3.5MHz,因为其内部的RAM是动态刷新的。89C2051不允许构造外部总线来扩充程序/数据存储器,所以它也不需要ALEPSEN、RD、WR一类的引脚。4内部I/O控制89C2051在内部I/O控制上继承了MCS51的特性:5路2级优待中断,串等口,2路定时器/计数器,内部组成参见图4。2.2led数码管图41)由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。如图5所示。2)二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。图5LED数码管结构原理图3)LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。4)本设计利用共阳极数码管,共阳极接5V电压,将阴极接到单片机的P口,通过P口电压的高低变化,从而改变数码管的数字显示情况。5)表2为数码管显示不同字型时对应的十六进制数。表2LED显示段码字型共阳极段码共阴极段码字型共阳极段码共阴极段码0C0H3FH990H6FH中国矿业大学信息与电气工程学院51F9H06HA88H77H2A4H5BHB83H7CH3BOH4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H2.3实验方案分析与比较1)第一种方案如图6图6(该图为实验简图)一片20管脚的at89c2051单片机为主体,其显示数据从P1口输出,p3.0、p3.1、p3.5、p3.7输出相应的位选通信号。由于led数码管点亮时耗电较大,故用了4个PNP三极管进行放大。P3.2、p3.3、p3.4分别用于中断。2)第二种方案如图7该方案省去了4个PNP三极管和八个电阻,但是这种设计由于单片机输出口的灌电流有限(大约为20mA),从而导致时钟在工作时数码管的显示亮度不够,在白天光线较好的时候,难以分辨时钟的数字。中国矿业大学信息与电气工程学院6两种方案图均为时钟设计的主体结构图,经分析我们采用第一种方案。图7(该图为原理简图)第三章电路设计1总体电路框图振荡电路提供时钟频率单片机Led数码管上电复位电路驱动电路中断开关电路中国矿业大学信息与电气工程学院72详细电路设计1)振荡电路振荡电路如图8采用12M的晶振X1,C2和C3为两个30nF的陶瓷电容。从而使单片机的时钟频率为12Mhz。2)中断电路图8中断电路如图9所示中断开关S1、S2、S3分别和单片机的中断位P3.2/、P3.3、P3.4相连接。S1控制各个功能之间的转换,S2和S3负责调整。图93)驱动电路如图电源vcc通过三极管驱动数码管的使能端,PNP的开通和关断由单片机的P3.0、P3.1、P3.5、P3.7的高低电平的变化来控制,从而决定数码管的亮暗情况。4)显示控制电路图10数码管的显示控制如图11.通过编程控制单片机的P1.0-P1.7口高低电平的变化从而控制数码管管脚A—Dp的高低电平变化来实现显示数字中国矿业大学信息与电气工程学院8的变化。图115)闹铃的开关控制电路图12如图12为闹铃的开关控制电路,二极管发光时表示喇叭的正极接通电源,当到达闹铃时间时,P3.4口由高电平变为低电平,喇叭发出声音。二极管灭时表示闹钟关闭。第四章程序设计1程序设计流程图开关Vcc二极管GND喇叭P3.4中国矿业大学信息与电气工程学院92程序设计1)标志位定义及初始化unsignedcharflag1=0,tt=0,flag=0,flag2=1,tt2=0,set1=0,tt3=0,set2=0,tt1=0,flag5=0,flag3=0,flag4=0,flag6=0,flag7=0,flag8=0,flag9=0;//标志位声明,flag1为秒累加,flag2为时钟扫显示控制,lag4和flag3、flag6、flag7为调整时的闪烁标志位,flag5为秒表显示标志,unsignedcharrun_s=0,run_hs=0;//跑秒状态初始化为00:00inthour=12,minute=0,ala_h=12,ala_l=1;//时钟初始化为12:00sbitset=P3^2;sbitdown=P3^3;sbitup=P3^4;//按键定义2)控制程序sbitled1=P3^0;sbitled2=P3^1;sbitled3=P3^5;sbitled4=P3^7;//数码管位选控制3)延时程序voiddelayl(unsignedintk)是否到一秒R5加1调用显示程序分显示加1调用显示程序是否到一分YYY时显示加1调用显示程序是否到一时YY调用显示程序NNN打开T1中断T1记时T0定时中断关闭T1中断R3加10调用显示程序R3减10T1定时中断中断返回中国矿业大学信息与电气工程学院10{unsignedinti,j;for(i=110;i0;i--)for(j=k;j0;j--);}4)定时程序voidtimer(){TMOD=0x11;//定时器工作模式为1,定时器0用于时钟,定时器1用于秒表、秒闪信号和调整时数码管闪烁TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-5000)/256;TL1=(65536-5000)%256;//装初值EA=1;//开总中断ET0=1;ET1=1;TR1=1;TR0=1;}//定时器初始化5)主程序voidmain(){timer();while(1){keyscan();if(flag6==1){if(tt3==100)flag3=1;··········(详见附录)第五章系统测试和调试通过proteus和KEIL软件进行仿真测试,经过调试后其运行情况如图时钟初始为12:00中国矿业大学信息与电气工程学院11按下S1进入秒表状态利用proteus进行软件仿真可以得到正确的结果。在仿真软件上测试通过,接下要进行硬件的焊接和程序的烧录等,硬件焊接完成后会出现很多问题导致实物运行不出来,我们还要通过万用表及其他测量措施对实物电路进行测试和故障排除等措施,这是下一章所要叙述的,在这里,我们先将源程序写入keil检查没有错误,再执行生成hex文件,利用单片机isp将hex烧录到单片机中。中国矿业大学信息与电气工程学院12如图,表示程序已经烧录完毕接下来要进行实物上的测试和运行。第六章数
本文标题:基于at89c2051单片机的多功能时钟设计
链接地址:https://www.777doc.com/doc-6312060 .html