毕业设计37多功能时钟控制器设计.docx
《毕业设计37多功能时钟控制器设计.docx》由会员分享,可在线阅读,更多相关《毕业设计37多功能时钟控制器设计.docx(36页珍藏版)》请在冰点文库上搜索。
毕业设计37多功能时钟控制器设计
摘要……………………………………………………………………………
(1)
ABSTRACT……………………………………………………………………
(2)
第1章前言…………………………………………………………………(3)
第2章设计电路原理和器件简介…………………………………………(4)
第2.1节总体设计电路框图……………………………………………(4)
第2.2节AT89S52单片机介绍……………………………………………(4)
第2.3节各功能模块器件应用说明……………………………………(8)
2.3.1液晶显示简介…………………………………………………(8)
2.3.2温度传感器说明………………………………………………(9)
2.3.3数字时钟简介…………………………………………………(10)
2.3.4键盘调节模块…………………………………………………(11)
第3章系统硬件电路设计………………………………………………(13)
第3.1节硬件设计原理图………………………………………………(13)
第3.2节单片机外围电路原理…………………………………………(13)
3.2.1复位、时钟、电源电路原理……………………………………(13)
3.2.2DS1302实时时钟芯片说明……………………………………(14)
3.2.3128*64LCD接口和显示原理…………………………………(17)
3.2.4高精度数字温度传感器DS18B20实现方式…………………(19)
3.2.5键盘对于时间调节功能实现说明……………………………(21)
第4章系统软件设计……………………………………………………(22)
第4.1节软件设计流程图………………………………………………(22)
第4.2节各模块程序框图………………………………………………(23)
第4.3节软件主程序和各模块子程序…………………………………(25)
第5章时钟控制系统调试………………………………………………(27)
第5.1节单片机应用系统调试工具说明………………………………(27)
第5.2节程序调试………………………………………………………(28)
结论……………………………………………………………………………(29)
参考文献………………………………………………………………………(30)
致谢……………………………………………………………………………(31)
附录……………………………………………………………………………(32)
【摘要】本论文介绍了多功能时钟控制器的系统设计。
系统具有时间设置及显示、定时闹铃、温度检测并显示等功能。
系统以AT89S52单片机为核心,主要进行基于AT89S52低功耗MCU的字符型数字钟及其系统的研究。
系统带有GXM12864液晶显示器,配合按键提供友好的用户界面,操作简单,同时具有实时温度检测功能。
该数字钟能够长期、连续、可靠、稳定的工作;同时还具有体积小、功耗低等特点,便于携带,使用方便。
系统设计包括单片机及其外围硬件部分和计算机软件编程部分。
硬件部分主要为软件的实现提供一个运行的基础,计算机软件编程主要实现键盘调节、液晶显示、温度检测等各模块的功能,采用C语言编程。
关键字单片机液晶显示温度检测数字钟键盘输入
【ABSTRACT】Thisthesisdescribesthedesignofamultifunctionaldigitalclockandcontrolsystem.Itasdisplayingandsettingtimeforclockandalarm,thissystemhasanotherspecialfeature,astemperaturemeasurementanddisplay.ThecorepartofthesystemisbasedonakingofanadvancedMCU,AT89S52,thissystemmainlycarriesonlowpowerconsumeMCUthecharacterlisttypetheresearchofthedigitalclockanditssystemaccordingtotheAT89S52.ThesystemtakesGXM128*64LiquidCrystalDisplay,matchingwithakeytoprovideamityofcustomerinterface,theoperationissimple,havingthetemperatureexaminationfunctioninthemeantime.Consecution,credibility,stablework,stillhaveaphysicalvolumeinthemeantimesmall,thepowerconsumealowetc.characteristics,easytotake,theusageconvenience.ThesystemdesignincludesaMCUwithitsperipheryhardwarecircuitunitandacomputersoftprogrammingunit.Thehardwarecircuitunitonlyprovidestherunbasementforthesoftware,thecomputersoftwareprogrammingunitmainlycontainskeyboardadjust,LiquidCrystalDisplay,temperatureexaminationfunctions,adoptiontheClanguage.
KeywordSingle-ChipMicrocomputer,LCD,TemperatureExamination,DigitalClock,KeyboardInput
第1章前言
近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
因此,可以利用单片机来控制一些外围电路实现更多的功能,比如数字时钟,温度测控,屏幕显示等。
数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路、单片机技术的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究多功能数字钟及扩大其应用,有着非常现实的意义。
传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差、测量温度准确率低,而且必须经过专门的接口电路转换成数字信号后才能由单片机处理,因此,本次设计采用一种数字温度传感器来实现,以实现其高性能。
单片机的主要输出方式除了发光二极管,数码管以外,还有一种重要的方式:
液晶显示。
液晶模块已经成为单片机系统的一个重要输出器件,液晶显示正广泛应用于便携式仪器仪表、智能充电、消费类电子产品领域。
对于现在流行的嵌入式电子产品,显示输出模块是必不可少的,而且液晶显示最大的优点就是能够实现友好的人机界面,在诸多的显示方式中,液晶显示已经成为首选。
第2章设计电路原理和器件简介
第2.1节总体设计电路框图
本设计以AT89S52单片机为核心,控制其它外围电路,以液晶显示作为其显示方式,通过4个按键实现时间调节功能,用三端稳压管7805把9V直流电源转换为5V直流电作为单片机的工作电压,通过外接的编程口STK500实现对单片机的在线编程,高精度的温度传感器实现对周围的温度的测量,利用实时日历时钟芯片提供当前的年、月、日、星期、小时、分钟、秒钟,时钟电路提供单片机的工作时钟,复位电路实现对单片机的复位功能。
总体框图如下图
(1):
图
(1)
第2.2节AT89S52单片机介绍
单片机全称单片微型计算机(SingleChipMicrocomputer),指的是一种单硅片上集成微型计算机主要功能部件的集成芯片。
AT89S52其内部集成了中央处理器(CPU)、随机数据存储器(RAM)、只读程序存储器(ROM)、定时器/计数器、输入/输出(I/O)接口电路和串行通信接口等主要功能部件。
S52单片机引脚分布如图
(2):
图
(2)
1、电源引脚VCC和GND
VCC(40脚):
电源端,为+5V。
GND(20脚):
接地端。
2、时钟电路引脚XTAL1和XTAL2
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3、控制信号引脚RST、ALE、PSEN、EA
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
4、I/O输入输出端口P0、P1、P2、P3
P0:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表
(1)所示。
在flash编程和校验时,P1口接收低8位地址字节。
表
(1)
P2:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3:
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表
(2)所示。
在flash编程和校验时,P3口也接收一些控制信号。
表
(2)
S52内部功能模块如下图(3):
它可以划分为CPU、存储器(RAM和ROM)、并行口、串行口、定时器/计数器和中断系统等几个部分。
图(3)
第2.3节各功能模块器件应用说明
2.3.1液晶显示简介
液晶显示是通过液晶显示模块实现的,液晶显示模块(LCDModule)是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件。
在单片机系统中使用液晶显示模块作为输出器件具有一下优点:
显示质量高,数字式接口,体积小、重量轻,功率消耗低。
本设计所用128*64LCD实物如图(4)所示:
图(4)
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样即可显示出图形。
通常按照液晶显示方式可以分为段式、点字符式、点阵式等。
除了黑白显示外,LCD还有多灰度和彩色显示等。
如果根据驱动方式来分,可分为静态驱动(Static)、单纯矩阵驱动(SimpleMatrix)、主动矩阵驱动(ActiveMatrix)3种。
液晶显示器LCD的显示原理:
(1)线段的显示
点阵图形式液晶有M*N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16*8=128个点组成,屏上64*16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。
例如屏的第一行的亮暗由RAM区的000H-00FH的16字节的内容决定,当(000)=FFH时,则屏的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则显示屏的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,…(00EH)=FFH,(00FH)=00H时,则在屏的顶部显示一条由8段亮线和8段暗线组成的虚线。
这就是LCD显示的基本原理。
(2)字符的显示
用LCD显示一个字符时比较复杂,因为一个字符由6*8或8*8点阵组成,既要找到和显示屏上的某几个位置对应的RAM区的8字节,还要使每字节的不同的位为“1”,其他的为“0”,为“1”的点亮,为“0”的不亮,这样一来就组成某个字符。
(3)汉字的显示
汉字的显示一般采用图形方式,事先提取要显示的汉字的点阵码,每个汉字占32B,分左右两半部,各占16B,左边为1、3、5、7…右边为2、4、6…根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二字节,换行按列对齐,送第三字节……直到32B显示完就可在LCD上得到一个完整的汉字。
显示如图:
2.3.2温度传感器说明
单片机的接口是数字电信号,要想用单片机获取温度这类非电信号的信息,必须使用温度传感器。
温度传感器的作用是将温度信息转换为电流或者电压输出,然后进行A/D转换,以满足单片机接口的需要。
本次设计使用数字温度传感器DS18B20,可直接将被测温度转换成串行数字信号,以供单片机处理,它还具有微型化、低功耗、高性能、抗干扰能力强等优点。
通过编程,DS18B20可以实现9-12位的温度读数。
信息经过单线接口送入或者送出,因此从微处理器到DS18B20仅需连接一条信号线。
测量范围为-55~+125℃,在-10~+85℃范围内误差为±0.5℃。
将12位的温度值转换为数字量所需时间不超过750ms,转换速度快。
DS18B20外观如下图(5):
图(5)
2.3.3数字时钟简介
在单片机应用系统中,常常需要记录实时的时间信息并且长期保存。
比如,数据采集时,对某些重要的信息不仅需要记录其内容,还需要记录下该事件发生的准确时间。
我们经常可以在银行的大厅中看到显示汇率的显示屏,上面除了显示利率等信息外,还显示着当时的准确时间信息,其中包括年、月、日、星期、时间等,这就需要用到时钟芯片来精确地提供时间信息和保存当时时间数据。
本次设计用的为DS1302涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需要用到3个口线:
(1)RES(复位),
(2)I/O数据线,(3)SCLK(串行时钟)。
DS1302工作时功耗很低,保持数据和时钟信息时,功率小于1mW。
在电话、传真、便携式仪器以及电池供电的仪器等产品领域都有广泛应用。
引脚图和引脚说明如下图(6):
图(6)
基本工作原理:
该串行时钟芯片主要由寄存器、控制寄存器、振荡器、实时时钟以及RAM组成。
为了对任何数据传送进行初始化,需要将/RST置为高电平且将8位地址和命令信息装入移位寄存器。
数据在SCLK的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输入数据。
DS1302结构如下图(7):
图(7)
2.3.4键盘调节模块
在单片机应用系统中,通常应具有人机对话功能,能随时发出各种控制命令和数据输入以及报告应用系统的运行状态与运行结果。
键盘可以分为独立连接式和矩阵式两类,本设计采用独立式非编码键盘。
独立式按键是指直接用用I/O口线构成的单个按键电路。
每个独立式按键各单独占有一根I/O口线。
每根I/O口线的工作状态不会影响其他I/O口线的工作状态。
独立式按键接口电路如图(8)所示:
图(8)
独立式按键接口电路配置灵活,软件结构简单,但每一个按键必须占有一根I/O口线。
在键数较多时,I/O口线浪费较大,故只在按键数量不多时才采用这种按键电路,在本设计使用4个独立式按键可以实现对显示时间的调节,设置DS1302时钟芯片的初始时间和校准当前在LCD上的显示时间。
第3章系统硬件电路设计
第3.1节硬件设计原理图
总体电路原理图设计完后利用ProtelDXP绘制,该软件通过设计文件包的方式,将原理图编辑、电路仿真、PCB图设计等功能结合在一起,提供了一个集成开发环境。
在本设计中只用到了其中的SCH(原理图)设计功能。
硬件电路原理图见附录1。
第3.2节单片机外围电路原理
3.2.1复位、时钟、电源电路原理
单片机复位电路可以对单片机初始化,重新开始工作。
也可以在单片机程序跑飞时使系统重新正常工作。
同时也是在程序调试时必须要用到,来测试所写的程序和设计的硬件电路是否正确的重要手段。
电源电路的功能是为整个单片机系统提供稳定的5V电压。
输入电压选择9V的直流电源,经过三端稳压管LM7805,最后输出电压保持恒定,为5V。
实际测的数值略低于5V,可以使单片机正常工作。
时钟电路可以为单片机提供整个系统工作的时钟脉冲。
AT89S52内部有一个用于构成内部振荡器高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体谐振器一起构成自激振荡器,外接电容C1和C2可以增加振荡器工作的稳定性,本次设计使用的晶振为11.0592MHZ。
复位、时钟、电源电路原理图如下图(9):
图(9)
3.2.2DS1302实时时钟芯片说明
(1)DS1302与CPU的连接仅需要3条线,即SCLK(7)、I/O(6)和RST(5)。
DS1302与单片机的连接图如图(10)。
VCC1在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。
VCC2在双电源系统中提供主电源,在这种方式下VCC1连接到备份电源,以便在没有主电源的情况下能够保存时间信息以及数据。
DS1302有VCC1和VCC2两者中的较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。
当VCC2小于VCC1时,DS1302由VCC1供电。
由于本设计内容不作保存,所以供电时两个都接入VCC,时钟芯片可以正常工作。
图(10)
(2)控制命令字节和寄存器
控制命令字节结构:
表(3)
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)为0表示要进行写操作,为1表示要进行读操作,控制字节总是从最低位开始输出。
寄存器结构:
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见下表(4):
寄存
器名
命令字
取值
范围
各位内容
写操作
读操作
7
6
5
4
3
2
1
0
秒寄存器
80H
81H
00-59
CH
10SEC
SEC
分寄存器
82H
83H
00-59
0
10MIN
MIN
时寄存器
84H
85H
01-12或00-23
12/24
0
10/AP
HR
HR
日寄存器
86H
87H
01-28、29、30、31
0
0
10DATE
DATE
月寄存器
88H
89H
01-12
0
0
0
10M
MONTH
周寄存器
8AH
8BH
01-07
0
0
0
0
0
WEEK
年寄存器
8CH
8DH
00-99
10YEAR
YEAR
表(4)
表中有些特殊位需要特别指出:
CH:
时钟暂停位,当此位设置为1时,振荡器停止,DS1302处于低功率的备份方式;当此位变为0时,时钟开始启动。
12/24:
12或24小时方式选择位,为1时选择12小时方式。
在12小时方式下,位5是AM/PM选择位,此位为1时表示PM。
在24小时方式下,位5是第2个小时位(20~23)。
(3)数据输入和输出
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
单字节传输时序和突发模式传输时序如图(11):
单字节传送
多字节传送
图(11)
3.2.3128*64LCD接口和显示原理
在一般情况下,液晶器件的驱动需要两种不同的电源电压,一种是+5V(工作电压),另一种是-10V(背景光对比度调节电压)。
所以,使用液晶模块时,需要设计专门的液晶电源电路。
液晶电源电路的作用就是将输入电压转换成这两种电压信号,为液晶显示模块提供工作电压。
MAX1677是双电压输出升压DC-DC变换器,它是一种专门为LCD提供电源的芯片,可以产生这两种可调电压输出。
实际使用电路如图(12)所示:
Vin为电源电路的输入端(0.7~5.5V),Vout1输出+5V的电压,作为系统的电源电压;Vout2输出-10V的电压,作为液晶显示模块的背光电源电压。
图(12)
本次毕业设计中选