2051电子钟论文正文.doc_第1页
2051电子钟论文正文.doc_第2页
2051电子钟论文正文.doc_第3页
2051电子钟论文正文.doc_第4页
2051电子钟论文正文.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

第一章 引言(一)说明本设计采用AT89C2051系列单片机作为时钟的控制核心,电路使用了八个数码管作为时钟显示,用计数器中断程序作为了一秒钟的精确计数,并用按钮实现了调闹钟时间和时钟时间的校对功能。关键词:单片机、控制、显示、调时。(二)本课题的研究意义深入了解制作数码管显示时钟的原理和方法,将理论知识运用到实际上去解决问题,更深入的理解在课堂上学习到的知识,将理论运用到实质上去。提高个人的动手能力和独自思考解决问题的能力。第二章 研究现状及设计目标(一)设计目标本数字钟,控制芯片采用AT89C2051,数码管采用3只两位红色的共阳型LED数码管,显示清晰亮度高,因为是扫描的显示方式,所以各个数码管的abcdefg各脚采用了总线并联,改动R1-R7的电阻值可以改变显示亮度。S1、S2按纽用于校准时间。 (二)相近研究课题的特点及优缺点分析目前同类的数字电子钟一般由六个部分组成,其中振荡器和分频器组成标准的秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。秒信号送入计时器进行计数,把累计的结果以“时”、“分”、“秒”的十进制数字显示出来。“时”显示由二十四进制计数器、译码器和显示器构成,“分”、“秒”显示分别由六十进制计数器、译码器和显示器构成。第三章 要解决的几个关键问题(一)研究设计中要解决的问题在本次设计中的最大难点就是程序部分,要求解决时间的准确性,并且实现调时与调分的功能。C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。在选择振荡器方面,我们考虑用晶体振荡器 。振荡器的振荡频率受石英晶体控制的振荡器。其特性: 1物理、化学性能非常稳定。 2具有正压电效应和逆压电效应, 石英晶体谐振频率s 当=s时,压电效应最强,称s为基频 当=ns时,压电效应也较强,称之为泛音频率(二)具体实现中采用的关键技术及复杂性分析其中振荡器我们会选择石英晶体振荡器,石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率调整。由于石英晶体化学性能非常稳定,热膨胀系数非常小,其振荡频率也非常稳定,由于控制几何尺寸可以做到很精密,因此,其谐振频率也很准确(摘自百度百科)。石英晶体的损耗非常小,即Q值非常高,做振荡器用时,可以产生非常稳定的振荡。主要有由电容器和电感器组成的LC回路,通过电场能和磁场能的相互转换产程自由振荡。要维持振荡还要有具有正反馈的放大电路,LC振荡器又分为变压器耦合式和三点式振荡器,很多应用石英晶体的石英晶体振荡器,还有用集成运放组成的LC振荡器。 由于器件不可能参数完全一致,因此在上电的瞬间两个三极管的状态就发生了变化,这个变化由于正反馈的作用越来越强烈,导致到达一个暂稳态。暂稳态期间另一个三极管经电容逐步充电后导通或者截止,状态发生翻转,到达另一个暂稳态。这样周而复始形成振荡。第四章 系统结构与模型(一)系统结构与模型(二)编程模型及数据结构第五章 系统实现技术(一)硬件(1)、AT89C2051AT89C2051是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含2k bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C2051单片机在电子类产品中有广泛的应用。AT89C2051是一带有2K字节闪速可编程可擦除只读存储器(EEPROM)的低电压,高性能8位CMOS微处理器。它采用ATMEL的高密非易失存储技术制造并和工业标准MCS-51指令集和引脚结构兼容。通过在单块芯片上组合通用的CPLI和闪速存储器,ATMEL的AT89C2051是一强劲的微型处理器,它对许多嵌入式控制应用提供一定高度灵活和成本低的解决办法。 AT89C2051提供以下标准功能:2K字节闪速存储器,128字节RAM,15根I/O口,两个16位定时器,一个五向量两级中断结构,一个全双工串行口,一个精密模拟比较器以及两种可选 的软件节电工作方式。空闲方停止CPU工作但允许RAM、定时器/计数器、串行工作口和中断系统继续工作。掉电方式保存RAM内容但振荡器停止工作并禁止有其它部件的工作到下一个硬件复位。AT89C2051设计有2个程序保密位,保密位1被编程之后,程序存储器不能再被编程除非做一次擦除,保密位2被编程之后,程序不能被读出。AT89C2051芯片引脚图AT89C2051的引脚图如右图所示。 1、VCC:电源电压。 2、GND:地。 3、P1口:P1口是一个8位双向I/O口。口引脚P1.2P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。当P!口引脚写入“1”时,其可用作输入端,当引脚P1.2P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。当引脚P1.2P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。 4、P3口:P3口的P3.0P3.5、P3.7是带有内部上拉电阻 的七个双向I/O口引脚。P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。P3品缓冲器可吸收20mA电流。当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部时拉低的P3口脚将用上拉电阻而流出电流。 P3口还用于实现AT89C2051的各种第二功能,如下表所列: 引脚口功 能 P3.0RXD串行输入端口P3.1TXD串行输入端口P3.2INT0外中断0P3.3INT1外中断1P3.4T0定时器0外部输入P3.5 T1定时器1外部输入P3口还接收一些用于闪速存储器编程和程序校验的控制信号。 5、RST:复位输入。RST一旦变成高电平所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。 6、XTAL1:作为振荡器反相器的输入和内部时钟发生器的输入。 7、XTAL2:作为振荡器反相放大器的输出。 主要性能1、和MCS-51产品兼容; 2、2KB可重编程FLASH存储器(10000次); 3、2.7-6V电压范围; 4、全静态工作:0Hz-24MHz; 5、2级程序存储器保密锁定; 6、128*8位内部RAM; 7、15条可编程I/O线; 8、两个16位定时器/计数器; 9、6个中断源; 10、可编程串行通道; 11、高精度电压比较器(P1.0,P1.1,P3.6); 12、直接驱动LED的输出端口。(2)、三端稳压集成电路7805用7805三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。因为三端固定集成稳压电路的使用方便,电子制作中经常采用。从正面看引脚从左向右按顺序标注,接入电路时脚电压高于脚,脚为输出位。如对于78*正压系列,脚高电位,脚接地,;对与79*负压系列,脚接地,脚接负电压,输出都是脚。如附图所示。7805典型应用电路图: 7805集成稳压器的典型应用电路如下图所示,这是一个输出正5V直流电压的稳压电源电路。IC采用集成稳压器7805,C1、C2分别为输入端和输出端滤波电容,RL为负载电阻。当输出电流较大时,7805应配上散热板。下 图为提高输出电压的应用电路。稳压二极管VD1串接在7805稳压器2脚与地之间,可使输出电压Uo得到一定的提高,输出电压Uo为7805稳压器输出电 压与稳压二极管VC1稳压值之和。VD2是输出保护二极管,一旦输出电压低于VD1稳压值时,VD2导通,将输出电流旁路,保护7800稳压器输出级不被 损坏。 下 图为输出电压可在一定范围内调节的应用电路。由于R1、RP电阻网络的作用,使得输出电压被提高,提高的幅度取决于RP与R1的比值。调节电位器RP,即 可一定范围内调节输出电压。当RP=0时,输出电压Uo等于78XX稳压器输出电压;当RP逐步增大时,Uo也随之逐步提高。 下图为扩大输出电流的应用电路。VT2为外接扩流率管,VT1为推动管,二者为达林顿连接。R1为偏置电阻。该电路最大输出电流取决于VT2的参数。(二)、源程序:1、时钟程序(单片机一)#include unsigned char code dispcode=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00; unsigned char dispbitcode=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsigned char dispbuf8=0,0,16,0,0,16,0,0; unsigned char dispbitcnt; unsigned char second; unsigned char minite; unsigned char hour; unsigned int tcnt; unsigned char mstcnt; unsigned char i,j; void main(void) TMOD=0x02; TH0=0x06; TL0=0x06; TR0=1; ET0=1; EA=1; while(1) if(P0_0=0) for(i=5;i0;i-) for(j=248;j0;j-); if(P0_0=0) second+; if(second=60) second=0; dispbuf0=second%10; dispbuf1=second/10; while(P0_0=0); if(P0_1=0) for(i=5;i0;i-) for(j=248;j0;j-); if(P0_1=0) minite+; if(minite=60) minite=0; dispbuf3=minite%10; dispbuf4=minite/10; while(P0_1=0); if(P0_2=0) for(i=5;i0;i-) for(j=248;j0;j-); if(P0_2=0) hour+; if(hour=24) hour=0; dispbuf6=hour%10; dispbuf7=hour/10; while(P0_2=0); void t0(void) interrupt 1 using 0 mstcnt+; if(mstcnt=8) mstcnt=0; P1=dispcodedispbufdispbitcnt; P3=dispbitcodedispbitcnt; dispbitcnt+; if(dispbitcnt=8) dispbitcnt=0; tcnt+; if(tcnt=4000) tcnt=0; second+; if(second=60) second=0; minite+; if(minite=60) minite=0; hour+; if(hour=24) hour=0; dispbuf0=second%10; dispbuf1=second/10; dispbuf3=minite%10; dispbuf4=minite/10; dispbuf6=hour%10; dispbuf7=hour/10; 2、时钟程序(汇编源程序) SECOND EQU 30H MINITE EQU 31H HOUR EQU 32H HOURK BIT P0.0 MINITEKBIT P0.1 SECONDKBIT P0.2 DISPBUFEQU 40H DISPBITEQU 48H T2SCNTAEQU 49H T2SCNTBEQU 4AH TEMP EQU 4BH ORG 00H LJMP START ORG 0BH LJMP INT_T0 START: MOV SECOND,#00H MOV MINITE,#00H MOV HOUR,#12 MOV DISPBIT,#00H MOV T2SCNTA,#00H MOV T2SCNTB,#00H MOV TEMP,#0FEH LCALL DISP MOV TMOD,#01H MOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 SETB TR0 SETB ET0 SETB EA WT: JB SECONDK,NK1 LCALL DELY10MS JB SECONDK,NK1 INC SECOND MOV A,SECOND CJNE A,#60,NS60 MOV SECOND,#00H NS60: LCALL DISP JNB SECONDK,$ NK1: JB MINITEK,NK2 LCALL DELY10MS JB MINITEK,NK2 INC MINITE MOV A,MINITE CJNE A,#60,NM60 MOV MINITE,#00H NM60: LCALL DISP JNB MINITEK,$ NK2: JB HOURK,NK3 LCALL DELY10MS JB HOURK,NK3 INC HOUR MOV A,HOUR CJNE A,#24,NH24 MOV HOUR,#00H NH24: LCALL DISP JNB HOURK,$ NK3: LJMP WT DELY10MS: MOV R6,#10 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET DISP: MOV A,#DISPBUF ADD A,#8 DEC A MOV R1,A MOV A,HOUR MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 MOV A,#10 MOVR1,A DEC R1 MOV A,MINITE MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 MOV A,#10 MOVR1,A DEC R1 MOV A,SECOND MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 RET INT_T0: MOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 MOV A,#DISPBUF ADD A,DISPBIT MOV R0,A MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR MOV P1,A MOV A,DISPBIT MOV DPTR,#TAB MOVC A,A+DPTR MOV P3,A INC DISPBIT MOV A,DISPBIT CJNE A,#08H,KNA MOV DISPBIT,#00H KNA: INC T2SCNTA MOV A,T2SCNTA CJNE A,#100,DONE MOV T2SCNTA,#00H INC T2SCNTB MOV A,T2SCNTB CJNE A,#05H,DONE MOV T2SCNTB,#00H INC SECOND MOV A,SECOND CJNE A,#60,NEXT MOV SECOND,#00H INC MINITE MOV A,MINITE CJNE A,#60,NEXT MOV MINITE,#00H INC HOUR MOV A,HOUR CJNE A,#24,NEXT MOV HOUR,#00H NEXT: LCALL DISP DONE: RETI TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH END 第六章 性能与分析测试本电路又增加了一个3V的备用电池,停电时AT89C2051采用备用电池供电,时钟不会停止,但数码管不显示,来电后备用电池失去作用,AT89C2051采用外部电源供电,数码管正常显示。一、参数供电电压:DC6-16V推荐电压:DC9 V备用电池:CR2032 (3V)工作电流:35mA(外接电源供电)待机电流:1.2 mA(备用电池供电)二、元件清单:位号名称规格数量R1、R2、R3、R4、R5、R6、R7、R16电阻4708R8、R15电阻10k2R9、R10、R11、R12、R13、R14电阻4.7k6C1电解电容220uF1C2、C3、C5电解电容10uF3C4瓷片电容1041C7、C8瓷片电容302D1、D2、D3二极管1N41483LED1、LED2、LED3、LED4发光二极管3MM红色4Q1、Q2、Q3、Q4、Q5、Q6三极管90126IC1集成电路78051IC2集成电路AT89C20511集成电路插座20脚双列1DS1、DS2、DS3共阳型LED数码管两位 红色3J1、J2导线(自备)X1接线座2位1Y1晶振12M1S1、

温馨提示

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

评论

0/150

提交评论