基于单片机的定时器的设计与实现毕业设计.docx
《基于单片机的定时器的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的定时器的设计与实现毕业设计.docx(48页珍藏版)》请在冰豆网上搜索。
基于单片机的定时器的设计与实现毕业设计
学校代码:
10128
学号:
本科毕业设计说明书
(
题目:
基于单片机的定时器的设计与实现
学生姓名:
wws
学院:
信息工程
系别:
电子信息工程
专业:
电子信息工程
班级:
...
指导教师:
...
二〇一二年六月
摘要
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
数子时钟在日常生活中最常见,应用也最广泛。
本次做的数子时钟是以单片机(AT89C51)为核心,结合相关的元器件(时钟芯片DS1302、LCD液晶显示器),达到制作简易数字时钟的目的,文章的核心主要是硬件设计和软件编程两个大的方面。
硬件电路设计由包括中央处理单元电路、液晶显示电路、人机接口电路等几部分组成,软件用汇编语言来实现。
其硬件部分难点在于元器件的选择、布局及焊接。
关键词:
单片机AT89C51LCD液晶显示器时钟芯片DS1302
Abstract
Recentyears,theuseofsinglechipismovingtowarddeeplywiththefilterofcomputerinthesocietyandthedevelopmentofthelargescaleintegratedcircuit.Singlechipisespeciallyequaltothesystemrelationtothecontrolbecauseofitsstrongfuntion、samllvolume、lowpowerconsumption、inexpensiveprice、credibilityworkanditshandy.itisusedintheareaofautomata、Intelligentinstrument、appearance、dataacquisition、productionofwarindustry、domesticapplianceandsoon.thesinglechipisusedusuallyasthecenterpiece,ItcanbeperfectbasesthespecificHardwareinfrastructureandaimattheintegratedhardwareandsoftwaredeviceofthespecificcomplexion.
Digitalclockisthemostcommonandthemostwidelyusedinourdailylives.Thesinglechipisthehardcoreinthedigitalclockmadeinthistimethedigitalclockcanreachthepurposeoffacilitydigitalclockwiththecorrelationpartsofanapparatus(RealTimeClockchipDS1302,Display-panelLCDansoon)Toachievethepurposeofmakingsimpledigitalclock.Thecorepartofthisarticleincluedestwoaspeacts,oneishardwaredesign,theotherissoftwareprogramming.Thehardwaredesigncircuitconsistsofthecentralprocessingunitcircuit、theliquidcrystaldisplaycircuit、theman-machineinterfacecircuit.Thedifficulitesofthehardwarepartarechoiceandlayoutofcomponents,andthecomponentsofwelding.
Keywords:
singlechipAT89C51realtimeclockchipDS1302,LCDMonitor
引言
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能造成无可挽回的重大损失。
所以精确的报时系统显得尤为重要。
单片机由于将cpu,内存和一些必要的接口集成到一个芯片上,并且针对面向控制功能将结构做了一定的优化,所以它具备通用芯片不具有的特点。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
因此,单片机被广泛应用于测控系统,智能仪表仪器,机电一体化产品,智能接口以及单片机的多系统等领域。
它的应用主要表现在以下几个方面:
(1)单片机在智能仪表中的应用
单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。
(2)单片机在机电一体化中的应用
机电一体化是机械工业发展的方向。
机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。
单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。
(3)单片机在实时控制中的应用
单片机广泛地用于各种实时控制系统中。
例如,在工业测控、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。
单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。
(4)单片机在分布式多机系统中的应用
在比较复杂的系统中,常采用分布式多机系统。
多机系统一般由若干台功能各异的单片机组成,各自完成特定的任务,它们通过串行通信相互联系、协调工作。
单片机在这种系统中往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时的测量和控制。
单片机的高可靠性和强抗干扰能力,使它可以置于恶劣环境的前端工作。
(5)单片机在人类生活中的应用
自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、电子玩具、收录机等家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。
单片机将使人类生活更加方便、舒适、丰富多彩。
综合所述,单片机已成为计算机发展和应用的一个重要方面。
另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数子时钟,数子时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数子时钟是采用数字电路实现对时,分,秒,数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数子时钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数子时钟及扩大其应用,有着非常现实的意义。
第一章硬件介绍
1.1AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图1-1为AT89C51单片机的管脚图
图1-1单片机管脚图
5.1.1主要管脚说明
VCC:
供电电压.
GND:
接地.
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
口管脚备选功能
P3.0RXD串行输入口
P3.1TXD串行输出口
P3.2/INT0外部中断0
P3.3/INT1外部中断1
P3.4T0记时器0外部输入
P3.5T1记时器1外部输入
P3.6/WR外部数据存储器写选通
P3.7/RD外部数据存储器读选通
P3口同时为闪烁编程和编程校验接收一些控制信号。
1.2AT89C51结构图
图1-2AT89C51结构图
1.3DS1302时钟芯片简介
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:
复位(RST)、I/O数据线、串行时钟(SCLK)。
时钟/RAM的读
/写数据以一字节或多达31字节的字符组方式通信。
DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。
图1-3DS1302管脚图
各引脚的功能为:
Vcc1:
主电源;Vcc2:
备份电源。
当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2SCLK:
串行时钟,输入,控制数据的输入与输出;
I/O:
三线接口时的双向数据线;
CE:
输入信号,在读、写数据期间,必须为高。
该引脚有两个功能:
第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。
时时钟以及RAM。
虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对特定的地址进行读写操作。
图1-4DS1302的内部结图
DS1302含充电电路,可以对作为后备电源的可充电电池充电,并可选择充电使能和串入的二极管数目,以调节电池充电电压。
不过对我们目前而言,最需要熟悉的是和时钟相关部分的功能,对于其它参数请参阅数据手册。
DS1302的工作原理
DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。
数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。
时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。
DS1302的寄存器和控制命令
对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。
日历、时间寄存器及控制字如表1所示:
表1-1:
日历、时钟寄存器与控制字对照表
最后一位RD/W为“0”时表示进行写操作,为“1”时表示读操作。
DS1302内部寄存器列表如表2所示:
表1-2:
DS14302内部主要寄存器分布表
寄存器名称
命令字
取值范围
各位内容
写
读
7
6
54
3
210
秒寄存器
80H
81H
00-59
CH
10SEC
SEC
分寄存器
82H
83H
00-59
0
10MIN
MIN
小时寄存器
84H
85H
01-12或00-23
12/24
0
AHR
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
00
0
DAY
年份寄存器
8CH
8DH
00-99
10YEAR
YEAR
DS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COH~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
我们现在已经知道了控制寄存器和RAM的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。
单片机是通过简单的同步串行通讯与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向DS1302写入一个命令帧,这个帧的格式如表1所示,最高位BIT7固定为1,BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作抑或是写操作。
物理上,DS1302的通讯接口由3个口线组成,即RST,SCLK,I/O。
其中RST从低电平变成高电平启动一次数据传输过程,SCLK是时钟线,I/O是数据线。
具体的读写时序参考图5,但是请注意,无论是哪种同步通讯类型的串行接口,都是对时钟信号敏感的,而且一般数据写入有效是在上升沿,读出有效是在下降沿(DS1302正是如此的,但是在芯片手册里没有明确说明),如果不是特别确定,则把程序设计成这样:
平时SCLK保持低电平,在时钟变动前设置数据,在时钟变动后读取数据,即数据操作总是在SCLK保持为低电平的时候,相邻的操作之间间隔有一个上升沿和一个下降沿。
图1-5DS1302的命令字构
1.4LCD1602液晶显示器简介
1.4.1概述
液晶(LiquidCrystal)是一种高分子材料,因其特殊的物理、化学、光学特性,广泛应用轻薄显示器上。
液晶显示器(LiquidCrystalDisplay,LCD)的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。
各种型号的液晶通常是按照显示字符的行数或液晶点阵的行、列数来命名。
例如,1602表示每行显示16个字符,一共可以显示两行。
这类液晶通常称为字符型液晶,只能显示ASCII码字符。
12232表示液晶显示画面由122列、32行组成,共有122*32个点来显示各种图形。
用户可以通过程序控制这些点中任何一个点显示或不显示,从而构成各种图形画面。
因此,12232称为图形型液晶。
液晶体积小,功耗低,显示操作简单。
但其有致命的弱点,即使用温度范围很窄。
通用型液晶工作温度为0到+55摄氏度,存储温度为-20到+60摄氏度。
1.4.2LCD1602
11602的外形尺寸(毫米)
图1-6LCD1602外形尺寸
2
主要技术参数
图1-7LCD1602主要技术参数
3接口信号说明
表1-3LCD1602接口信号说明
4基本操作时序
读状态:
输入:
RS=L,RW=H,E=H输出:
D0~D7=状态字
写指令:
输入:
RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
无
读数据:
输入:
RS=H,RW=H,E=H输出:
D0~D7=数据
写数据:
输入:
RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
5RAM地址映射图
控制器内部带有80B的RAM缓冲区。
对应关系如下图所示。
图1-8缓冲区对应关系图
向图中的00~0F、40~4F地址中的任意处写入显示数据时,液晶可立即显示出来;当写入到10~27或50~67地址时,必须通过移屏指令将他们一移入可显示区域方可正常显示。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示。
表1-4CGROM和CGRAM中字符代码与字符图形对应关系
这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
6状态字说明
表1-5状态字说明
STA7
D7
STA6
D6
STA5
D5
STA4
D4
STA3
D3
STA2
D2
STA1
D1
STA0
D0
STA0—6
当前数据地址指针的数值
STA7
读写操作使能
1:
禁止0:
允许
说明:
原则上每次对控制器进行读写操作前,都必须进行读写检测,确保STA7为0。
实际上,由于单片机的操作速度慢于液晶控制器的反应速度,因此可以不进行检测,或只进行简短的延时即可。
7指令说明
1602液晶模块内部的控制器共有11条控制指令。
(1)显示模式设置
表1-6显示模块设置
指令码
功能
0
0
1
1
1
0
0
0
设置16×2显示,5×7点阵,8位数据接口
(2)显示开/关及光标设置
表1-7显示开/关及光标设置
指令码
功能
0
0
0
0
1
D
C
B
D=1开显示;D=0关显示
C=1显示光标;C=0不显示光标
B=1光标闪烁;B=0光标不显示
0
0
0
0
0
1
N
S
N=1当读或写一个字符后地址指针加一,且光标加一
N=0当读或写一个字符后地址指针加一,且光标减一
S=1当写一个字符,整幕显示左移(N=1)或右移(N=0)
S=0当写一个字符,整屏显示不移动
(2)数据指针设置
表1-8数据指针设置
指令码
功能
80H+地址码(0—27H,40—67H)
设置数据地址指针
(4)其它设置
表1-9其它设置
指令码
功能
01H
显示清屏:
1.数据指针清零
2所有显示清零
02H
显示回车:
1.数据指针清零
8.控制接口时序说明:
表1-10时序参数
第二章硬件设计
2.1系统硬件框图
图2.1系统硬件框图
2.1.1框图说明:
本设计核心部件为AT89C51单片机芯片,配合外部配件如专用日历时钟芯片DS1302,键盘,LCD1602液晶显示器,声光报警器,以及一些外部辅助电路,以实现日期、时间的显示及定时器的功能。
很具有实际意义。
有广泛的应用性。
2.2电路原理图
图2-2电路原理图
2.2.1系统电路说明:
本系统由五个部分组成:
按键模块、复位电路模块、晶振电路模块、(注:
上图由于只要仿真,所以没有添加复位电路和晶振电路模块,不会影响到仿真结果)发声模块、时间模块。
晶振模块负责给单片机提供时钟周期,复位电路模块负责上电后自动复位,或按键后强制复位。
上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时、分、秒显示到LCD上。
同时,按键扫描函数一直扫描按键引脚状态,一旦扫描到按键被按下,即进入到相应的功能函数。
如果检测到定时时间到,则驱动蜂鸣器发声。
单片机的晶振电路模块如图2-3所示:
图2-3晶振电路模块
石英晶振也连接在引脚的输入和输出之间,等效为一个并联谐振回路,振荡频率应该是石英晶体并联谐振频率,晶体旁边的两个电容接地,实际上就是电容三点式电路的分压电容,接地点就是分压点。
以接地点即分压为参考点,振荡引脚的输入和输出是反相的,但从并联谐振回路即石英晶体两端来看,形成一个正反馈以保证电路持续振荡。
复位电路如下:
图2-4复位电路
当AT89C51单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能是单片机复位。
常用的上电或开关复位电路如图所示,上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位开关后松开,能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
发声模块: