电子时钟的设计与制作毕业论文.docx
- 文档编号:23407190
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:17
- 大小:283.16KB
电子时钟的设计与制作毕业论文.docx
《电子时钟的设计与制作毕业论文.docx》由会员分享,可在线阅读,更多相关《电子时钟的设计与制作毕业论文.docx(17页珍藏版)》请在冰豆网上搜索。
电子时钟的设计与制作毕业论文
电子时钟的设计与制作
信息技术学院电子信息科学与技术专业
指导教师***
作者***
摘要:
从古代的沙漏计时,到现在的机械钟表、石英钟,计时技术得发展经过了一个漫长的完善过程,这充分显现出了时间不论对古人还是现在的我们的重要性。
现在,全球社会都进入了信息化时代,人们更加重了对时间计量精度的依赖,以至于钟表应用越来越广,功能越来越多。
普通的机械表对于当代人复杂繁琐的要求显然早已不太适应,电子时钟应运而生。
电子时钟不仅能满足基本时间要求,而且体积小,成本低廉,最大的亮点在于可以随时根据不同的客户要求进行改进、增加功能,所以电子钟越来越受到人们的青睐。
本课题即着眼于此,研究的主要目的是设计一个基于单片机的电子时钟系统。
由于单片机有价格实惠而且功能齐全的优点,在自动控制产品中广泛应用。
本设计以ATmega16芯片为核心,以实时时钟芯片DS1302为主要依托,通过LCD液晶屏完成其显示、计时功能,本设计实现了所需功能的硬件电路,并应用C语言进行软件编程。
关键词:
电子时钟DS1302LCD液晶屏
1、绪论
1.1课题研究的背景及意义
时间的宝贵是个亘古不变的真理,然而工作的忙碌性和繁杂性很容易让人忘记当前的时间或是工作中不能及时方便地知晓时间。
交通上,火车汽车要准时到达,航班要准时起飞;在日常生活中,学校要求上学准时,公司召开的会议要求参加准时,重要约会要求到达准时;在工业生产中,许多工作环节都规定了精准的时间、间隔以及次序。
所以说,随时准确地知道时间并且利用时间是学习、工作、生活的必要要求。
单片机是一种集成电路芯片,它将各种功能集成到一块硅片上并且内含完善的微型计算机系统。
单片机自推出到现在已经发展了二十多年,应用领域有工业生产、通讯以及交通设备,还有
办公自动化、PC机外围器件、汽车电子器件以及网络通讯等。
单片机的优点有集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等,所以本设计讨论的电子时钟系统就是利用单片机制成。
电子时钟与机械时钟相比具有很多优越性,首先,其主要特点是直观性,电子时钟可以通过数字显示反映出当前的时间。
其次在使用寿命方面,因为电子钟不是机械驱动,所以使用寿命更长。
然后在准确度方面,由于应用了电子集成电路和石英晶体振荡器,数字时钟的精准度远远超过了老式石英钟的石英机芯驱动。
最后,电子时钟还能大大扩展老式钟表的功能,在准确显示时间得基础上,还可借助单片机实现诸如闹铃、定时、自动报警等功能。
电子时钟的意义不仅仅在于反应时间本身,这个时间系统还可以当做一个单位模块应用于其他设备中,比如定时广播、定时开关烤箱、定时关闭路灯,以及其他各种定时电气的自动启用等设备,都是内嵌了电子时钟而实现其时间功能的。
因此,研究电字时钟及其拓展电路的应用,将会对以后研究其他自动化设备产生积极意义。
1.2国内外研究
时间计时的历史要从公元1300年前开始追溯,那时人们主要是利用天文现象或流动物质的连续性运动来计时。
我国天文学家张衡制造的漏水转浑天仪是最早出现的机械钟。
公元1350年,意大利的丹蒂制造出第一台机械打点塔钟,这是最简单的钟表。
公元1582年左右,意大利物理学家伽利略发明了重力摆。
18世纪到19世纪,钟表制造行业已逐步实现工业化大规模生产,并且已经达到了相当高的水平。
20世纪,随着资本主义工业化国家的高速发展,电子行业逐渐展露锋芒,尤其在20世纪末,电子技术飞速发展,使全球进入一个信息化新时代,在这个趋势下,新兴的电子产品几乎渗透到我们生产生活的各个部分。
与此同时,现代电子产品的性能一步步提升,电子产品更新换代的速度也越来越快。
我国钟表行业的发展则经历了古代、近代、现当代。
1949年以前,我国还没有手表制造业,1949年以后开始了我国钟表行业的发展;六十年代时,我国还是计划经济模式,全国化大生产,由国家投资,生产的全都是机械表;到了七十年代到八十年代,随着国际电子技术的发展,我国电子表也跟上步伐,猛烈冲击了传统的机械钟表所占的全国垄断的形势;九十年代,石英钟表发展已基本完善,基本统一了我国的钟表市场。
时至今日,石英技术在计时领域大放异彩,各种计时工具大多采用了石英晶体振荡器。
而单片机的概念提出后,电子行业高速发展,各种芯片的研发层出不穷,DS1302这种实时时钟芯片也应运而生,
将这种实时时钟芯片与单片机技术结合就可以很容易就实现走时间的功能,时间可以方便地显示在LCD液晶屏上。
1.3电子时钟概述
如今,电子时钟形态各异,种类繁多,有微型、嵌入型的电子时钟,也有悬挂在公共场合的大型电子表,这些电子表大都外形美观,而且拓展了不少功能。
由于单片机可以很容易实现芯片的智能化,所以在电子钟的基础上,人们可以根据自己的需要以及场合要求添加不同的附加功能。
需要整点报时可添加蜂鸣器,需要测量环境温度可以添加温度传感器,或者检测空气质量、空气湿度等,也可以设置定时闹铃功能甚至还可以添加USB端口读取其他设备数据。
日常生活中的手表钟表等都是靠石英真晶体振荡器实现,因此走字精准,类似的,本设计所利用的实时时钟芯片需要外接石英晶振,采用石英技术,而且不需要经常调试,使用起来很方便。
由于采用了实时时钟芯片DS1302,这将代替传统的钟表的机械传动。
1.4论文章节构成及安排
本设计是以AVR单片机ATmega16为核心,以实时时钟芯片DS1302为主要器件,以液晶屏LCD5110来完成时间显示功能。
论文共五章,每章分别是:
第一章:
绪论,介绍了本设计研究的背景及意义和国内外研究状况和本电子钟概述。
第二章:
电子时钟设计方案分析,介绍了本设计所涉及的芯片选择以及总体方案的设计。
第三章:
硬件系统的设计,介绍了本设计的硬件电路构成以及电路原理。
第四章:
软件系统的设计,介绍本设计所需的软件工具以及如何用C语言实现软件编程。
第五章:
系统调试,介绍本设计后期的整体调试包括硬件和软件调试。
2、电子时钟设计方案
2.1两种设计方案的选择
实现电子钟就是实现“走时间”,即实现秒信号的产生,由秒信号才能进而产生分钟信号、小时信号。
关于秒信号的产生,有两种设计方案供选择。
第一种是采用专用的实时时钟芯片。
时下常用的时钟芯片有DS1302、SB2068、PCF8485等。
这些芯片可以完成秒计时工作,进而计出小时、年月日等。
实时时钟芯片大都价格实惠而且学习起来容易上手,所以被广泛地采用。
本设计介绍的实时时钟芯片DS1302主要特点是数据传输方式为串行通信并且由于芯片内部自带锂电池,所以掉电也可以工作所以不必担心耗电这点很方便。
第二种是完全用软件方法实现计时,需要利用单片机中断功能,具体操作是:
设置几个字节分别存放秒、分、时、日、周、月、年等信息。
利用定时器实现1秒定时中断,这便是秒信息,每一次中断都使秒字节加1;软件设置当秒字节累计到60时,分字节加1,同时秒字节清零;当分字节累计加到60时,时字节加1,同时分字节清零;时字节累计加到24时,日字节加一,时字节清零。
以此类推,再实现周、月、年的计时。
这种设计方案的硬件电路更加简单,单片机自己即可完成计时,但缺点是每次执行main程序,定时器都需要重新赋值,每当单片机断电时,程序即停止,也就无法继续完成计时工作。
对比以上两种设计方案,由于笔者对实时时钟芯片比较感兴趣,希望研究单片机控制其他芯片完成工作,所以决定选择第一种方案,将单片机与时钟芯片作为计时的硬件电路基础。
对于第一种设计方案,先用板块化思想将其各部分功能划分。
经过分析可知,整个系统由核心控制板块,秒计时板块,显示板块以及一些辅助板块如按键、温度采集等板块组成。
核心控制由单片机及其最小系统构成,秒计时由实时时钟芯片DS1302完成,这两块已经完成电子时钟的基本功能,显示板块决定选用液晶屏LCD5110完成。
2.2系统电路
PROTEL是一款画电路图的软件,由Altium生产,这款EDA软件上手容易,使用简单,功能齐全,所以在电子行业的CAD软件中,是电子设计者的首选软件,故本设计选用Protel软件画出基本时钟电路图如下。
图2-1时钟电路图
图中右侧是本系统的核心控制芯片ATmega16,其左侧引脚分别连接液晶屏LCD5110和实时时钟芯片DS1302,中间的SPI是本系统的下载软件串口。
3、硬件系统设计
本设计系统采用板块化的设计思想将整个设计系统分为核心控制板块,秒计时板块,显示板块以及按键、温度采集板块。
并将所要实现的功能分配给相应的板块,通过软件与硬件相结合的方式实现每个板块的功能之后,再通过调整将所有板块有机地整合成为一个电路完整、功能齐全、使用方便的时钟系统。
3.1核心控制电路
本设计的核心控制电路采用单片机控制,由AVR单片机ATMEGA16完成。
ATMEGA16
是一款高性能、低功耗的八位AVR微处理器。
ATMEGA16内核具有种类繁多的指令集和三十二个通用的工作寄存器。
由于所有寄存器都和运算逻辑总单元ALU直接连接,所以运行一条指令时,这条指令可以在单位时钟周期内同时访问两个独立的工作寄存器。
正是这种结构才使得ATMEGA16芯片代码效率大大提高,并且使得ATMEGA16芯片具有比普通的CISC(复杂指令系统计算机)微控制器更高的数据吞吐率,最高可达十倍。
ATMEGA16芯片有许多令人惊喜的特点,主要包括16K字节的Flash,512字节的EEPROM,1K字节的SRAM。
ATMEGA16芯片具有32个通用I/O口,并且几乎每个I/O都有第二功能。
ATMEGA16芯片支持片内编程与调试,具有可编程串行USART(UniversalSynchronous/AsynchronousReceiver/Transmitter,通用同步/异步串行接收/发送器,USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备)。
ATMEGA16的引脚大都有第二功能,这是比51系列单片机先进的地方,需要第二功能时可以直接连在该引脚上便可方便使用。
本设计系统主要使用了B区引脚即完成了电子钟的基本功能。
其中,PB0当做LCD液晶屏背景灯光使能引脚,PB1连接实时时钟芯片DS1302的时钟引脚SCK,PB2连接实时时钟芯片DS1302的数据引脚I/O,PB3连接实时时钟芯片DS1302的复位引脚RST。
PB4连接液晶屏LCD5110的CS#引脚,PB5连接液晶屏LCD5110的总线主机输出/从机输入引脚,此处应用了单片机引脚的第二功能,PB6连接液晶屏LCD5110的数据或命令引脚D/C#,PB7连接液晶屏LCD5110的时钟引脚CLK。
PB8连接液晶屏LCD5110的外部复位输入引脚RESET。
图3-1ATMEGA16引脚图
3.2秒计时电路
本设计系统选择美国DALLAS公司生产的实时时钟电路DS1302来完成秒计时板块工作。
实时时钟芯片DS1302以其接口简单,计时准确,带充电功能,使用方便,低功耗以及工作电压范围宽等优点,得到了广泛的应用。
实时时钟芯片DS1302可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿功能。
芯片内部集成了可编程日历时钟和31个字节大小的静态RAM,有一个31×8的用于临时性存放数据的RAM寄存器。
芯片采用三线接口与CPU进行同步通信,还可以用突发的方式一次性传输不止一字节的RAM数据或时钟信号。
DS1302芯片有主电源和备份电源双引脚,还具有对备份电池进行涓细电流充电的能力,可有效延长备份电池的使用寿命,备份电源可由大容量电容(>1F)来替代。
需要特别指出的是,DS1302芯片的工作需要使用32.768KHz的晶振。
各个引脚的功能是:
图3-2DS1302引脚
◆VCC1:
电源输入引脚,单电源供电时接VCC1脚,双电源供电时用于接备份电源。
◆VCC2:
电源输入引脚,双电源供电时用于接主电源。
◆GND:
接地引脚。
◆RST:
控制移位寄存器/复位引脚
◆SCLK:
串行时钟输入引脚
◆X1:
32.768KHz晶振输入引脚
◆X2:
32.768KHz晶振输出引脚
◆I/O:
数据输入/输出引脚
实时时钟芯片DS1302的X1和X2引脚用于外接32.768千赫兹的石英晶振,产生的振荡源提供给芯片内部电路计时使用。
实时时钟芯片DS1302采用三线串行接口方式。
外部控制电路可以通过RST、SCLK和I/O引脚来实现数据传输。
其中,RST引脚为通信允许信号,低电平有效,即RST=0允许通信,RST=1时禁止通信。
SCLK引脚为串行数据的位同步脉冲信号,I/O引脚为双向串行数据传输信号。
实时时钟芯片DS1302的备份电池可选用可充电镍镉电池或者1uF以上的超容量电容。
DS1302内部的涓流充电器在主电压工作正常时向备份电池充电,理论上说,系统主电源的工作电压应该稍微高于备份电池电压,否则无法充电。
本设计系统中,整个电路使用了两种电源,主电源将为整个电路供电,还有DS1302的备用电源。
当主电源被切断后,DS1302启用备用电源,可以保持DS1302继续工作。
当主电源恢复供电,LCD液晶屏可以依旧显示当前时间,而不会因为断电使系统复位到初始化时间,避免了重新校时的麻烦。
实时时钟芯片DS1302为从器件,接受从外部位处理器的命令来完成功能设定以及控制数据传输。
外部处理器通过命令字节完成操作,首先向实时时钟芯片DS1302写入一个命令字节,接着是数据字节。
表3-1DS1302命令字节的格式表
位序
D7
D6
D5
D4
D3
D2
D1
D0
定义
1
RAM/CK
A4
A3
A2
A1
A0
RD/W
其中,实时时钟芯片DS1302命令字节各位的含义如下。
◆命令字节的最高位D97始终为1.
◆RAM/CK位(D6位):
DS1302片内随机存储器/时钟选择位,当RAM/CK=1时,为随机存储器操作,A4~A0的范围为0~30;当RAM/CK=0时,为时钟操作,定义时钟和其他寄存器的地址。
A4~A0的范围为0~6,由低到高位分别为秒、分、时、日、月、星期、年的寄存器。
◆A4~A0(D5~D1):
片内日历时钟寄存器或随机存储器的地址选择位。
◆RD/W位(D0):
DS1302读写控制位。
当RD/W=1时,为读操作;当RD/W=0时,为写操作。
时钟操作时,DS1302共有秒寄存器、分寄存器、小时寄存器、日寄存器、月寄存器、星期寄存器、年寄存器,这些寄存器与日历、时间相关,保存了时钟信息,存放的数据格式为BCD码形式。
有两点值得注意,第一是秒寄存器的第七位定义为暂停标志,当该位设置为1时,芯片将停止振荡时钟;当该位置0时,始终开始运行。
第二是小时寄存器的第七位用于定义DS1302是运行十二小时模式还是二十四小时模式,当该位置1时,选择十二小时模式,当该位置0时,选择二十四小时模式。
RAM操作负责读写DS1302的片内RAM存储器。
当选择片内RAM操作时,命令字节中A4~A0位用于表示片内RAM单元地址,地址范围为00H~1EH,用时可自由调用。
3.3显示电路
LCD5110最早用于手机屏幕,后来也广泛应用于各类便携式的显示系统,本设计即采用液晶屏LCD5110完成显示时间工作。
该芯片的特点是:
是84×48的点阵LCD(48行,84列输出),可以显示4行汉字;与主控芯片的通信方式为串行传输,所以仅有少量传输线;支持多种串行通信协议(本设计采用AVR单片机,LCD5110支持AVR的SPI),数据传输速率最高可到4Mbps;供电电压低,且具有掉电模式,低功耗。
图3-3LCD5110引脚图
◆VDD为电源输入引脚,需连接3.34~5V电压。
◆CLK为同步时钟输入引脚。
◆DIN为数据输入引脚,时钟上升沿有效。
◆D/C为数据/命令切换引脚,低电平时选择命令功能,高电平时选择数据功能。
◆CS为片选信号,低电平有效。
◆GBD为地引脚。
◆VOUT为供电引脚。
液晶屏为84×48点阵LCD,意味着有84×48点,每个像素点的亮灭状态即对应于需要显示的信息,在LCD上显示字符实际上就是按照字符的点阵图显示设计出各个像素点的状态。
字模软件就是针对LCD液晶屏所开发的可以方便显示点阵的工具,只要将所需显示的信息先在字模软件中生成对应代码,就能方便地能利用其对应代码。
图3-4字模软件ReadHzk图
液晶屏的显示原理比较复杂,但是现在产品大都附带驱动程序,所以结合字模软件,可以很轻松利用LCD完成显示功能。
4、软件系统设计
由于本设计系统核心控制芯片为AVR系列单片机,所以软件开发工具选用WinAVR系列,本设计利用programmer'snotepad作为编写器,用双龙下载器下载程序。
由于安装了WinAVR后,文件夹WinAVR\avr\include\avr下包含有丰富的头文件,所以在用programmer'snotepad编写程序时,需要将这些头文件包含在内。
4.1DS1302子程序
图4-1DS1302一个字节写入时序图
以上是DS1302一个字节写入的时序图,第一个字节是地址字节,第二个字节是数据字节。
RST信号必须拉高,否则输入无效,结束时,RST信号拉低。
地址字节和数据字节的读取是上升沿有效,而且是由最低有效位开始读入。
以下是向DS1302写入一个字节数据(没有RST操作)。
voidDS1302_writeB(ucharbyte)
{uchari;
for(i=0;i<8;i++)//8位数据计数
{if(byte&0x01)//当前位是否是1
{PORTB|=BIT(RTC_DATA);//当前位是1,拉高数据端}
else
{PORTB&=~BIT(RTC_DATA);//当前位是0,拉低数据端}
PORTB&=~BIT(RTC_CLK);//拉低时钟端
Delayus(10);//调整时钟和脉冲宽度
PORTB|=BIT(RTC_CLK);//时钟上升沿(DS1302采样数据)
byte>>=1;//数据右移1位,为送出新数据位做准备}}
图4-2DS1302一个字节读入时序图
以上是DS1302一个字节读入的时序图,与写一个字节不同,这是先写地址字节,然后再读数据字节,而且是下降沿有效,前提是RST信号必须拉高,写字节也是由最低有效位开始写入。
以下是从DS1302读出一个字节数据(没有RST操作)的代码。
ucharDS1302_readB(void)
{uchari,byte=0;
DDRB&=~BIT(RTC_DATA);//设置数据端口输入
PORTB&=~BIT(RTC_DATA);//去除上拉电阻
for(i=0;i<8;i++)//8位
{PORTB|=BIT(RTC_CLK);//上升沿有效
Delayus(10);
PORTB&=~BIT(RTC_CLK);//输出数据下降沿有效
Delayus(10);//等待数据变化
if(PINB&BIT(RTC_DATA))
{byte|=(1<
else
{byte&=(~(1<
DDRB|=BIT(RTC_DATA);//设置数据端口为输出
returnbyte;//返回读出的数据}
完成DS1302的基本写字节和读字节操作后,对DS1302进行设置初始时间操作,读取时间操作以及初始化操作,即可完成时间工作。
4.2LCD5110子程序
液晶屏LCD5110出厂自带驱动程序,自带二十六个字母显示以及常用符号,函数LCD_write_english_String以及LCD_write_chinese_string都已写好,故本设计再利用字模软件生成电子时钟所需的初始化汉字或字符即可。
4.3主程序
主程序首先初始化液晶屏LCD5110,然后初始化实时时钟芯片DS1302的三根数据线以及启动DS1302的振荡器,使DS1302开始秒计时工作,再设置好时间初始值为当前实时时间。
接着设置一个无限循环函数,即获取当前时间和显示当前时间即可。
图4-3总程序流程图
5、设计系统的调试
本设计的软硬件完成后,还需要进行系统调试,分为硬件调试和软件调试两部分,现分别介绍如下。
5.1硬件调试
硬件调试即在硬件电路完成后,用万能表等工具对电路进行检查。
本设计将各个器件焊接在万能板上完成,焊接过程中难免出现焊接错误或者虚焊等不应出现的情况,所以硬件检测需要在熟悉系统电路原理的基础上进行,硬件调试是一项很需要细心和耐心的工作。
调试时有几点需要注意。
第一,查看电源是否连接正确,是否按照芯片要求连接了正确伏安的电压源,本设计中,DS1302的主电源和备用电源都连接在3.3V的电压源上。
第二,ATMEGA16与DS1302、LCD5110、SPI之间是否连接准确,必须严格对照电路图检查。
第三,用万能表仔细检查每个焊点是否虚焊,本系统用双排针做单片机的SPI,焊接时很容易使相邻管脚连接到一块,这种情况尤其要注意,一经发现,必须用工具将其断路。
在烧入代码时完成以上硬件检测工作后,烧入代码仍然不能正常运行,此后则需要结合软件调试来分析是否是硬件问题,如果将代码烧入其他设备可正常运行,则说明本设计的硬件依然有问题,则需要继续排查。
本设计系统板子焊好后接通电源无法通电,经万用表检测,发现ATmega16芯片管脚有焊连错误并且指示灯连接错误,改正后问题解决。
5.2软件调试
用双龙下载器将代码烧写进本设计系统,在液晶屏上观测运行结果。
最开始,液晶屏完全无显示,仅有背景灯光。
于是从硬件、软件两部分分别排查,用以上硬件检测方法后,再进行软件检测。
软件检测需要分模块进行。
笔者及小组成员首先检测液晶屏,向液晶屏烧入一段简单的显示程序,结果正常,排除了液晶屏的硬件问题,经过继续的排查,考虑是实时时钟芯片DS1302的代码编写不正确。
经过仔细阅读芯片手册,发现DS1302的读写操作需要提高注意,在写一个字节的时候,AVR单片机的I/O口应该一直保持输出状态,但在读一个字节的时候,AVR单片机的I/O口应该先是输出状态,然后变为输入状态,而且必须改变时钟信号的顺序,所以笔者经调试明白了时钟信号与复位(片选)信号的关系:
在写入数据时,当RST信号还没有拉高之前,必须把时钟信号初始化拉低。
6、本设计系统小结
6.1系统不足及功能拓展
首先总结本设计系统的不足以及可考虑的进一步拓展:
1)可设置复位按键、调整时间按键(现在只能通过程序复位、设初始值,不能自动调时
间)。
2)基于ds1302的缺陷,“年”时钟寄存器只能控制个位及十位数字。
3)可加上蜂鸣器,利用中断实现整点报时。
4)可设置闹铃功能。
5)可加上DS18B20温度传感器显示温度或加上SHT11温湿度传感器,在屏幕上动态显示
实时温湿度。
6.2学习心得与展望
本次毕业设计系统的学习心得与展望有:
1)理论与实践相结合的重要性,通过实际动手,进一步学习了单片机知识。
2)学会了自主学习芯片的方法与技巧及编程上的经验,如:
片选拉高之前必须将时
钟拉低,但是这一点芯片手册时序图不显示,需经验积累。
3)通过实际动手打开了思路,有信心在短时间内学习一种芯片。
4)知识的严密性很重要,团队合作很重要。
参考文献
[1]杨欣等.电子设计从零开始[M].北京:
清华大学出版社.2005.10.
[2]李军,刘君华.AVR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 时钟 设计 制作 毕业论文
![提示](https://static.bdocx.com/images/bang_tan.gif)