基于单片机多功能电子钟设计.docx
- 文档编号:6501043
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:60
- 大小:700.24KB
基于单片机多功能电子钟设计.docx
《基于单片机多功能电子钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机多功能电子钟设计.docx(60页珍藏版)》请在冰豆网上搜索。
基于单片机多功能电子钟设计
《单片机原理及应用课程设计》任务书
1.课程设计的内容和要求(包括原始数据、技术要求、工作要求等):
一、设计一多功能数字钟
以一昼夜24小时为一个计数周期。
二、主要技术指标与要求:
(1)基本功能
a准确计时,以数字形式显示时、分、秒的时间;
b小时的计时为12进位,分和秒的计时为60进位;
c校时功能。
(2)扩展功能
a定时控制;
b整点报时。
c星期提示
d其他功能(显示温度、湿度等)
2.对课程设计成果的要求〔包括图表、原理图、仿真图等〕:
设计电路,编写程序,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于3500字。
要求图纸布局合理,符合工程要求,使用proteus软件绘出原理图,器件的选择要有计算依据。
3.主要参考文献:
[1]李朝青.单片机原理及接口技术.北京:
北京航空航天大学出版社,2005,5
[3]龚运新.单片机C语言开发技术.北京:
清华大学出版社,2006,9
[4]孙涵芳.MCS-51系列单片机原理及应用[M].北京:
北京航空航天大学出版社1996,4
[5]贾好来.MCS—51单片机原理及应用机械工业出版社2007年
[6]陈海宴.51单片机原理及应用——基于Keilc与Proteus北京:
北京航空航天大学出版社2010,7
4.课程设计工作进度计划:
序号
起迄日期
工作内容
1
2014-9-6
布置任务,教师讲解设计方法及要求
2
2014-9-6至11
查找阅读资料,初定方案,小组会议讨论并确定方案
3
2014-9-11至16
硬件电路设计及程序编写
4
2014-9-16至19
仿真、实验并写说明书,小组讨论
5
2014-9-19
答辩
指导教师
汪普林
日期:
2014年9月19日
前言
随着科技的快速发展,从摆钟到现在电子钟,人类不断研究,不断创新纪录。
目前,单片机技术的应用产品已经走进了千家万户,电子时钟的出现给人们的生活带来了诸多方便,随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用,单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子多功能时钟顺应而生。
基于单片机的电子多功能时钟结合了时钟和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。
而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。
因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用,而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色,数字显示的时钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。
LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。
目录
前言 3
目录 4
摘要 6
ABSTRACT 7
1.系统的方案设计与论证 8
1.1 单片机芯片设计与论证 9
1.2 按键控制模块设计与论证 9
1.3 时钟模块设计与论证 9
1.4 温度采集模块设计与论证 10
1.4.1 温度测量的步骤 10
1.4.2 DS18B20的操作时序 10
1.5 显示模块模块设计与论证 11
1.5.1 1602字符型LCD简介 11
1.5.2 1602引脚功能说明 11
1.5.3 1602LCD的指令说明及时序 12
1.5.4 1602LCD的RAM地址映射及标准字库表 14
1.5.5 1602LCD的一般初始化(复位)过程 15
1.5.6 1602LCD的电路连接 15
1. 6 蜂鸣器闹铃电路 16
2系统硬件的设计 17
2.1 AT89S51单片机 17
2.2 时钟芯片DS1302接口设计与性能分析 20
2.2.1 DS1302性能简介 20
2.2.2 DS1302接口电路设计 21
2.3 温度芯片DS18B20接口设计与性能分析 23
2.3.1 DS18B20性能简介 23
1.DS18B20的主要特性 23
2.3.2 DS18B20接口电路设计 24
2.3.3 DS18B20的工作时序 24
2.4 LCD显示模块 27
2.4.1 LCD1602的特性及使用说明 27
2.4.2 LCD1602与MCU的接口电路 28
2.5 按键模块设计 28
2.6 复位电路的设计 28
3系统的软件设计 30
3.1 主程序流程图的设计 30
主程序流程 31
3.2 时间设置子程序流程 31
3.3 闹钟设置子程序流程 32
参考文献 33
附录:
单片机多功能时钟程序 34
心得与感悟 54
摘要
本文介绍了基于AT89S52单片机的多功能电子万年历的硬件结构和软硬件设计方法。
本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。
系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。
温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。
此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键字:
时钟显示调整温度计液晶显示
ABSTRACT
ThispaperintroducesthebasedonAT89S52multi-functionelectroniccalendarofthehardwarestructureandsoftwareandhardwaredesignmethod.Thisdesignbydatadisplaymodule,temperatureacquisitionmodule,timeprocessingmoduleandsetmodulefourmodules.WithAT89S52single-chipmicrocomputersystemforthecontrollertoserialclockcalendarchipDS1302recordcalendarandtime,itcanbetodateandtime,minutesandsecondsforthetime,alsohasaleapyearcompensationandotherfunctions.TemperaturegatheringchooseDS18B20chip,calendarbyusingobjectdigitaldisplay,datashowedthatthe1602 liquidcrystaldisplaymodule,canbeintheLCDshowsatthesametimeyear,month,day,Sunday,when,minutesandseconds,stillhavetimecalibrationetc.Function.Thiscalendarhasreadtheconvenient,directdisplay,functionaldiversity,simplecircuit,lowcost,andmanyotheradvantages,hasabroadmarketprospect.
Keywords:
Theclockdisplay adjustment thermometerLCDdisplay
1.系统的方案设计与论证
单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。
所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。
系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LED显示器,RESPACK-8对单片机AT89S52进行供电,时间芯片DS1302连接单片机AT89S52。
从而实现电子万年历的功能。
按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、键盘接口模块、温度测量模块和闹钟模块共六个模块组成,电路系统构成框图如图1所示。
图1硬件电路框图
1.1 单片机芯片设计与论证
方案一:
采用AT89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能用于3V的超低电压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二:
采用AT89S52芯片作为硬件核心,采用FlashROM,能以3V的超低电压工作,而且与MCS-51系列单片机完全兼容,该芯片内部存储器为8KBROM存储空间。
同样具有AT89S52的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。
由于AT89S52内部具有8KBROM存储芯片并且支持ISP在线编程,因此采用AT89S52作为主控芯片。
1.2按键控制模块设计与论证
方案一:
采用矩阵键盘,由于按键多可实现数值的直接键入,但在系统中需要CPU不间断的对其端口扫描。
方案二:
采用独立按键,查询简单,程序处理简单,可节省CPU资源。
因系统中所需按键不多,为了释放更多的CPU占有时间,操作方便,故采用方案二。
1.3时钟模块设计与论证
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.
由于DS1302时钟芯片计数时间精度高,而且具有闰年补偿功能等优点,故采用方案二。
1.4温度采集模块设计与论证
方案一:
采用温度传感器(如热敏电阻或AD590),再经AD转换得到数字信号,精度较准,但价格昂贵,电路较复杂。
方案二:
采用数字式温度传感器DS18B20,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式,但准确度不高,误差最大达2度。
因为用DS18B20温度芯片,采用单总线访问,降低成本、降低制作难度且可节省单片机资源,故采用方案二。
1.4.1 温度测量的步骤
(1).ReadROM(33 h),每次对DS1820进行操作之前都要对它进行初始化,主要目的在于确定传感器已经连接到单总线上。
(2).SearchROM(F0h),这条指令使处理器用排除的方法去辨别总线上的DS1820。
(3).MatchROM(55h),只有准确的符合64位ROM序列的DS1820才能响应其后的指令,当然,单点测温时可以使用Skip ROM(CCh)指令来跳过这一步。
(4).ConvertT(44h),发完指令后应查询总线上的电平,当电平位高时温度转换完成。
(5).ReadScratchpad(BEh),将读指令发出后,就可从总线上读得表示温度的2字节二进制数。
1.4.2 DS18B20的操作时序
由于采用单总线数据传输方式,DS18B20的数据I/O均由同一条线完成,因此,对读写的操作时序要求严格。
它的各种时序如图2-5所示
为了保证DS18B20的严格I/O时序。
需要做较精确的延时。
在DS18B20操作中,用到的延时有15μS,90μS,270μS,540μS等。
因这些延时均为15μS的整倍,因此在程序中可以编写一个以15μS为基准的延时函数。
图2-6温度采集电路
1.5 显示模块模块设计与论证
方案一:
采用静态显示方法,静态显示模块的硬件制作较复杂及功耗大,要用到多个移位寄存器,但不占用端口,只需两根串口线输出。
方案二:
采用动态显示方法,动态显示模块的硬件制作简单,段扫描和位扫描各占用一个端口,总需占用单片机14个端口,采用间断扫描法功耗小、硬件成本低及整个硬件系统体积相对减小。
方案三:
采用LCD的方法,具有硬件制作简单可直接与单片机接口,显示内容多,功耗小,成本低等优点,LCM1602可显示32个字符,采用LCD的缺点是亮度不够。
比较以上三种方案:
方案一硬件复杂体积大、功耗大;方案二硬件简单、功耗小;方案三硬件简单,显示内容多,功耗小,成本低等。
本系统设计要求达到功耗小、体积小、成本低,显示信息多等要求,权衡三种方案,选择方案三。
1.5.1 1602字符型LCD简介
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,本设计采用16列*2行的字符型LCD1602带背光的液晶显示屏。
1602LCD主要技术参数:
1.显示容量:
16×2个字符
2.芯片工作电压:
4.5—5.5V
3.工作电流:
2.0mA(5.0V)
4.模块最佳工作电压:
5.0V
5.字符尺寸:
2.95×4.35(W×H)mm
1.5.2 1602引脚功能说明
各引脚接口说明如表所示:
表2-1
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
表2-1:
引脚接口说明:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
1.5.3 1602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如表2-2所示:
表2-2
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
表2-2字符控制命令说明:
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
芯片时序表如下:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
表2-3
基本操作时序表
读写操作时序如图2-7和2-8所示:
图2-7读操作时序
图2-8写操作时序
1.5.4 1602LCD的RAM地址映射及标准字库表
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2-9是1602的内部显示地址。
图2-9液晶内部显示地址
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?
这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
图2-10字符代码与图形对应图
1.5.5 1602LCD的一般初始化(复位)过程
1.延时15mS
1.5.6写指令38H(不检测忙信号)
延时5mS
写指令38H(不检测忙信号)
延时5mS
写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙
写指令38H:
显示模式设置
写指令08H:
显示关闭
写指令01H:
显示清屏
写指令06H:
显示光标移动设置
写指令0CH:
显示开及光标设置
1.5.6 1602LCD的电路连接
液晶5端为读/写选择端,因为我们不从液晶中读取数据,只向其写入命令和显示数据,因此此端始终选择为写状态,即低电平接地。
液晶6端为使能信号,是操作时必须的信号。
其电路如图2-11所示:
图2-111602的电路连接
1.6 蜂鸣器闹铃电路
当单片机给蜂鸣器一个低电平时,三极管导通驱动蜂鸣器发出声音作为定时闹铃,其电路图如图2-12所示:
图2-12蜂鸣器连接电路
2系统硬件的设计
根据上述所确定的系统方案构想,下面进行系统硬件电路的具体设计,系统的具体设计在下面会详细介绍。
2.1 AT89S51单片机
本系统采用的是美国ATMEL公司生产的AT89S52单片机,首先我们来熟悉一下AT89S52单片机的外部引脚和内部结构。
1.单片机的引脚功能
AT89S52单片机有40个引脚。
●Vcc:
电源电压+5V
●GND:
接地
●P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。
●P1口:
P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
Flash编程和程序校验期间,P1接收低8位地址。
●P2口:
P2口是一个带内部上拉电阻的8位双向I/O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 多功能 电子钟 设计