1、电子数字时钟南 昌 工 程 学 院毕 业 设 计 (论 文) 机械与电气工程 系(院)电气自动化技术专业 毕业设计(论文)题目 多功能数字电子钟 学生姓名 班 级 学 号 指导教师 于 祯 完成日期 2011 年 6 月 7 日南 昌 工 程 学 院毕业设计(论文)任务书I、课程设计(论文)题目:多功能数字电子钟II、毕业设计(论文)使用的原始资料(数据)与设计技术要求:1、电子钟具有显示年、月、日、时、分、秒功能。2、能借助键盘设置日期、时间与闹钟等信息。3、闹钟时,蜂鸣器先鸣响5秒,然后停2秒,如果无人干预,蜂鸣器再鸣响5秒。蜂鸣过程中,按任意键,本次闹钟结束。4、实时温度显示,测温范围:
2、-4050误差小于0.5。5、温度上/下限报警手动设置,报警为连续蜂鸣,报警过程中,任意键结束取消报警。III、毕业 设计(论文)工作内容与完成时间:设计一个多功能数字电子钟。 1、查找资料,方案对比。2、完成多功能电子钟系统总体设计,并绘制出原理图。3、给出流程图,编写并调试程序。4、撰写设计报告。 主 要参考资料:1、陈梓城实用电子电路设计与调试中国电力出版社20062、曹薇单片机原理与应用 中国实力水电出版社 2004.83、高吉祥全国大学生电子设计大赛培训教程电子工业出版社2007.54、DS1302 DATASHEET 5、DS18B20 DATASHEET 摘 要数字钟是一种用数字
3、电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑和时序电路。我设计的多功能数字时钟系统是由中央控制器、时钟系统、报警系统、温度检测器、显示器与键盘部分组成。控制器采用单片机AT89C51,温度检测部分采用DS18B20温度传感器,时钟系统用时钟芯片DS1302,用LCD液晶1602A作为显示器。单片机通过时钟芯片DS1302获取时间数据,对数据处理后显示时间;温度传感器DS18B20采集温度信号送给单片机处理,单片机再把时间数据和温度数据送液晶显示器1602显
4、示;本系统共设置4个功能按键,其中一个为整机复位按键,另外三个用于时钟的各种操作。 关键词:单片机AT89C51 LCD1602液晶显示器 DS18B20 DS1302 AbstractA digital clock is a kind of digital circuit technology implementation, minutes and seconds timing device, and the mechanical clock compared with higher accuracy and intuitive, and without a mechanical devic
5、e, having a longer service life, has been widely used. A digital clock from principle speaking is a kind of typical digital circuits, including combination logic and sequential circuits.This multi-functional digital clock system is composed of a central controller, clock system, alarm system, temper
6、ature detectors, monitor and keyboard parts. Controller using SCM AT89C51, temperature detection part is DS18B20 temperature sensor, clock system with clock chip DS1302, with the 1602A as a liquid crystal display LCD. Microcontroller through the clock chip DS1302-time data acquisition, data processi
7、ng right after the show time; temperature sensor DS18B20 collecting temperature signal sent to MCU processing, microcontroller time data and temperature data then send 1602 LCD display; of this system were set four function keys,One of the reset button for the machine and another three for a variety
8、 of clock operation.Key words:AT89C51;LCD1602 Display;DS18B20;DS1302第一章 概述时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。本方案设计的多功能电子钟除了传统的显示时间功能之外还可以测试温度、电网频率、电压、并提供了过压报警、非接触止闹等功能。其中温度采用AD590温度传感器电路测得,非接触止闹则采用红外控制技术实现。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社
9、会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以与车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,因此在许多电子设备中被广泛使用。电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电
10、路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间与星期的显示功能。本次设计以数字电子为主,分别对1S时钟信号源、秒计时显示、分计时显示、小时计时显示、整点报时与校时电路进行设计,然后将它们组合,来完成时、分、秒的显示并且有整点报时和走时校准的功能。并通过本次设计加深对数字电子技术的理解以与更熟练使用计数器、触发器和各种逻辑门电路的能力。第二章 设计方案论证方案一 用主芯片为AT89C51的单片机控制实现,使用单片机内部的定时计数器实现时间的设定,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使用DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、
11、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。显示时间和温度使用数码管显示。方案1系统结构框图如图1.1所示。图1.1 方案1系统结构框图方案二 用主芯片为AT89C51的单片机控制实现,为了满足单片机系统的实时控制的需求,采用实时钟芯片DS1302,使用按键进行时间的调整和定时,按键蜂鸣器提示,温度传感器使用普通的温度传感器,由于温度传感器采集的数据为模拟量,又因为单片机AT89C51内部没有集成模数转换器,需要在控制系统的外部使用A/D转换装置,另外系统还应该把采集来的
12、数据进行信号处理,显示温度和时间使用LCD1602显示。方案2系统结构框图如图1.2所示。图1.2 方案2系统结构框图方案三 用主芯片为AT89C51的单片机控制实现,为了满足单片机系统的实时控制的需求,采用实时钟芯片DS1302,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使用DALLAS公司生产的单总线式数字温度传感器。显示时间和温度使用LCD1602显示。方案3系统结构框图如图1.3所示。 图1.3 方案3系统结构框图方案选择 方案一直接使用单片机内集成的定时器,产生定时节拍,编制软件计数器,进行节拍技术,理论上讲,不但能够完成秒表设计,还能够实现分钟、刻钟、小时的实时计时
13、功能,在此基础上,如果加上足够精确的误差时间补偿处理,甚至可以实现日、星期、月、年等日历功能。但使用片内定时器有以下几个问题:1、时间补偿片内定时器采用中断方式提供计时节拍,中断的实质是随机程序切换,那么,中断响应时间是不可精确预测的。这样,必然会导致计时节拍的时间误差,在计时时间较短的情况下,比如199s计时,可以采用一些软件措施进行误差补偿,但当系统所需要的计时时间较长时,比如进行年、月、日的日历计时,定时中断误差扥积累就会很大,无法满足时间精度的要求。因此,在需要日历、时钟的场合,片内定时器的作用有限。片内定时器只适合于单片机短时间计时的要求。 2、时钟维持使用片内定时器进行计时的时候,
14、单片机始终要处于工作状态。才能维持计时时间,一旦停机或进入待机状态,开机后,计时时间就需要重新设定。在单片机系统中,有时,需要维持一个时钟,对控制工作进行时间标定。不管单片机系统开机、关机还是待机,系统时钟要始终维持。为了满足单片机系统的实时钟需求,最可靠的方法是采用实时钟芯片DS1302。温度的数据采集如果是一般的温度传感器,需要对信号进行处理,另外还需要模数转换装置,如果采用的是数字温度传感器18B20,可以直接将采集的信号转化为数字信息供单片机控制,这样不仅节约了成本,还提高了系统的可靠性和稳定性。所以本设计采用的是方案三。第三章 电路硬件设计与分析3.1 时钟电路系统的时钟电路设计是采
15、用的内部方式,即利用芯片内部的振荡电路。51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以与电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和
16、可靠地工作。时钟电路如图2.1所示。图2.1 时钟电路图3.2 复位电路复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通常采用上电自动复位和按键手动复位两种方式,此电路系统采用的是按键手动复位电路,高电平时复位,如图所示。当时钟频率选用12MHz时,C取22F,R约为1K。复位电路如图2.2所示 图2.2 复位电路图3.3 DS1302时钟电路本设计中的采用的时钟芯片是DS1302DS1302的结构与工作原理DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V
17、。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。DS1302这些电路的接口简单、价格低廉、使用方便,被广泛地采用。时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。引脚功能与结构DS1302的引脚排列,其中Vcc
18、1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低
19、电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。下图2.3为DS1302的引脚功能图2.3:图2.3 DS1302封装图DS1302的控制字节DS1302的控制字如图2.4所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为图表示进行读操作,
20、控制字节总是从最低位开始输出。图2.4DS1302的控制字DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器与其控制字见表1此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器与与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个
21、字节,命令控制字为FEH(写)、FFH(读)。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。DS1302时钟电路如图2.5所示。 图2.5 DS1302时钟电路图 3.4 DS18B20温度计电路DS18B20它具有3引脚TO92小体积封装形式,温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B
22、20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。电路图如图2.4所示。 图2.6 DS18B20温度计电路3.5 键盘电路键盘接口是单片机应用系统中最常用的接口之一,键盘的类型很多,常用的有独立式键盘和矩阵式键盘,因为本设计需要的键盘比较少,所以采用独立式键盘。 在键盘的应用中,需要解决键盘消抖的问题,一般使用的是软件消抖的方法。键盘的电路图如图2.5所示。 图2.6 键盘电路图3.6 显示电路显示器是单片机常用的功能单元之一,显示器的主要功能是为单片机系统使用者提供必要的单片机工作信息,或者提供工作状态的提示信息,显示器
23、的工作是由单片机通过显示接口驱动的。本设计采用的是LCD1602显示电路图如图2.6所示。 图2.7 LCD1602显示电路图3.7 按键提示电路本设计具有按键蜂鸣器响的功能,使得按键可靠工作。按键提示电路如图2.7所示。 图2.7 按键提示电路如图 第四章 软件设计4.1 主函数流程图主函数流程图如图3.1所示。 图3.1 主函数流程图4.2 DS18B20温度计程序流程DS1820温度计程序流程图如图3.2所示。 图3.2 DS1820温度计程序流程图4.3 按键程序流程图按键程序流程图如图3.3所示。 图3.3 按键程序流程图 4.4 定时器T0中断服务程序流程图定时器T0中断服务程序流
24、程图如图3.4所示。 图3.4 定时器T0中断服务程序流程图4.5 电路图 4.6 Proteus仿真效果图 带时钟显示的温度计Proteus仿真效果图如图4.1所示。图4.1 带时钟显示的温度计Proteus仿真效果图参考文献1 陈梓城实用电子电路设计与调试中国电力出版社20062 曹薇单片机原理与应用 中国实力水电出版社 2004.83 高吉祥全国大学生电子设计大赛培训教程电子工业出版社2007.54 DS1302 DATASHEET 5 DS18B20 DATASHEET 6 郭天祥,新概念51单片机C语言教程入门、提高、开发、拓展全攻略;北京:电子工业出版社;20097 宋戈、黄鹤松、
25、员玉良、蒋海峰,51单片机应用开发范例大全;北京:人民邮电出版社;20108 阎石,数字电子技术基础(第四版);北京:高等教育出版社;19989 邹显圣,基于AT89C51单片机数字时钟的研究,机电产品开发与创新;2009,(5)10 刘伏文、王春华,MCS-51单片机存储器结构详解;电子制作;2007,(10).11 卢旭锦,基于Keil C的AT24C02串行E2PROM的编程;现代电子技术;2007,(8)致 谢这款多功能计数器采用了现在广泛使用用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用大屏幕液晶显示、红外遥控装置和电压报警装置使人机交互简便易行,较为
26、有效地完成了题目的要求。本次毕业设计得到得到了于祯老师的大力支持,他提出了许多的意见和建议,他的指导是我受益匪浅,在此表示衷心的感谢。由于本人能力有限,在设计中难免会出现错误与不足,希望各位老师与读者给予批评指正并提出宝贵意见。附录1 主程序清单#include#includeDS18B20_3.H#define uint unsigned int#define uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;#define yh 0x80 /LCD第一行的初始位置,因为LCD1602字符地址首位
27、D7恒定为1(100000000=80)#define er 0x80+0x40 /LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)sbit rs=P20;sbit en=P22;sbit rw=P21; /如果硬件上rw接地,就不用写这句和后面的rw=0了sbit led=P26; /LCD背光开关sbit IO=P11;sbit SCLK=P10;sbit RST=P12;sbit ACC0=ACC0;sbit ACC7=ACC7;sbit key1=P15; /设置键sbit key2=P16; /加键sbit key3=P17; /减键sbit buzzer=P13;/蜂
28、鸣器,通过三极管9012驱动,端口低电平响uchar code tab1=20 - - ; /年显示的固定字符uchar code tab2= : : ;/时间显示的固定字符void delay(uint xms)/延时函数,有参函数 uint x,y; for(x=xms;x0;x-) for(y=110;y0;y-);write_1602com(uchar com)/*液晶写入指令函数* rs=0;/数据/指令选择置为指令 rw=0; /读写选择置为写 P0=com;/送入数据 delay(1); en=1;/拉高使能端,为制造有效的下降沿做准备 delay(1); en=0;/en由高变
29、低,产生下降沿,液晶执行命令write_1602dat(uchar dat)/*液晶写入数据函数* rs=1;/数据/指令选择置为数据 rw=0; /读写选择置为写 P0=dat;/送入数据 delay(1); en=1; /en置高电平,为制造下降沿做准备 delay(1); en=0; /en由高变低,产生下降沿,液晶执行命令lcd_init()/*液晶初始化函数* write_1602com(0x38);/设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com(0x0c);/开显示不显示光标 write_1602com(0x06);/整屏不移动,光标自动
30、右移 write_1602com(0x01);/清显示 write_1602com(yh+1);/日历显示固定符号从第一行第1个位置之后开始显示 for(a=0;a14;a+) write_1602dat(tab1a);/向液晶屏写日历显示的固定符号部分 /delay(3); write_1602com(er+2);/时间显示固定符号写入位置,从第2个位置后开始显示 for(a=0;a0;a-) IO=ACC0; SCLK=0; SCLK=1; ACC=ACC1; uchar read_byte()/读一个字节 RST=1; for(a=8;a0;a-) ACC7=IO; SCLK=1; SCLK=0; ACC=ACC1; return (ACC);void write_1302(uchar add,uchar dat)/
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1