毕业设计智能定时器2.docx
《毕业设计智能定时器2.docx》由会员分享,可在线阅读,更多相关《毕业设计智能定时器2.docx(30页珍藏版)》请在冰点文库上搜索。
毕业设计智能定时器2
毕业设计(论文)
课题名称:
基于51单片机的智能定时控制器系统设
计
*******
系别:
电子信息系
专业:
应用电子技术
班级:
10电子
(2)班
******
摘要
本文介绍了基于AT89C51单片机的数字式时钟的设计,详细叙述了系统硬件、软件的具体实现过程。
本文在硬件、软件设计上均采用模块化的方法,使得在设计和调试方面取得很大的方便。
论文重点阐述了数字钟硬件中MCU模块、按键模块、显示模块等相关模块的模块化设计及制作;软件同样采用模块化的设计,包括中断模块、时间调整模块等设计,并采用简单流通性强的C语言编写实现。
本设计实现了年、月、日及时、分、秒的显示和时间修改的功能。
通过对比实际的时钟,查找出误差的来源,确定调整误差的方法,尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。
关键字:
AT89C51单片机;数字钟;模块化;
Abstract
ThispaperintroducedthedesignofdigitalclockbasedonSCMofAT89C51,Thespecificprocessofhowthesystemhardwareandsoftwareachievedweredetaileddescriptionthroughthedesignofmultifunctiondigitalclock.Themodulardesignandproduction,whichconsistedofMCUmodule,keymodule,displaymoduleandtheassociatedcontrolmodule,weremainlyrecounted;Aswellashardwaredesigning,softwaredesignusethesamemethod,consistssuspensionmodule,timeadjustmodule,andthatuestheClanguagetoachievebecauseofitssimpleandstrongnegotiability.Inthisdesignthefunctionsoftimeadjustinganddisplayingyear,month,dayandhour,minute,secondhavebeenachieved.Andbycomparingtheactualclock,findoutthesourceoftheerroranddeterminedthemethodofadjustingerror,reduceerrorsasmuchaspossibly,sothissystemcanachieveapracticaldigitalclockwitherrorwithinthepermissiblerange.
Keywords:
AT89C51microcontroller;Digitalclock;Moduledesign;
第一章绪论
1.1单片机的背景………………………………………………………………
1.2单片机的概述………………………………………………………………
1.3单片机的结构……………………………………………………………
第二章
2.1功能要求…………………………………………………………
2.2方案确定…………………………………………………………
第三章硬件设计方案
3.1单片机的时钟电路………………………………………………
3.2单片机的复位电路………………………………………………
3.3单片机的P3端口特性……………………………………………
3.4单片机的定时/中断系统…………………………………………
3.5显示系统…………………………………………………………
3.6按键电路…………………………………………………………
3.7整体电路…………………………………………………………
第四章程序设计.
4.1主程序…………………………………………………
4.2中断程序………………………………………………
第五章软件系统调试
5.1整点报时调试…………………………………………
5.2秒钟上电调试…………………………………………
5.3定时功能调试…………………………………………
结束语…………………………………………………………………
致谢……………………………………………………………………………………………….
参考文献………………………………………………………
附录………………………………………………………………
第一章绪论
1.1单片机的背景
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
1.2单片机的概述
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),
常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
1.3单片机的结结构
AT89C51单片机简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammable
andErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称
单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片
机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失
存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多
功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效
微控制器,AT89C2051是它的一种精简版本。
AT89C51的引脚封装概述
图1-3-1的引脚封装
(1)主电源引脚:
VCC(40脚):
接+5V电源正端。
VSS(20脚):
接+5V电源地端。
(2)时钟电路引脚:
外接晶体振荡器,不能超过24M;需加微调电容,一般为30pF;
XTAL1:
接外部晶振和微调电容的一端,在单片机内部,它是构成片内振荡器
的反向放大器的输入端。
当采用外部振荡器时,该引脚接收振荡器的信号,即把此
信号直接接到内部振荡器的输入端。
XTAL2:
接外部晶振和微调电容的另一端,在单片机内部,它是构成片内振荡
器的反向放大器的输出端。
当采用外部震荡器时此脚应悬空。
(3)复位电路引脚
RST/VPD:
RST是复位信号输入端,高电平有效。
当此输入端保持2个机器周
期的高电平时,就可以完成复位操作。
RST引脚的第二功能是备用电源的输入端。
单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循
环状态等情况下都需要复位。
复位作用是使CPU以及其他功能部件,如串行口,
中断都恢复到一个确定初始状态,并从这个状态开始工作。
复位电路有两种:
上电、按钮复位,考虑到各部件影响,采用按钮复位,当电阻给电容充电,电容的电压为高电平,当按下按钮时芯片复位脚近似低电平,于是
芯片复位。
(4)控制信号引脚:
ALE/PROG:
(AddressLatchEnable/Programming)地址锁存允许信号端,当单片
机上电正常工作后,ALE引脚不断向外输出正弦脉冲信号,此频率为振荡器频率的
1/6。
CPU访问外部存储器时,ALE作为锁存低8位地址的控制信号。
此引脚的第
二功能PROG作为8751编程脉冲输入端使用。
PSEN:
(ProgramStoreEnable)在访问片外存储器时,此端定时输出负脉冲作为
片外存储器的选通信号。
EA/VPP:
(EnableAddress/VoltagePulseOfProgramming)当EA接高电平时,CPU
访问片内ROM,并执行内部程序存储器中的指令,但当PC(程序计数器)的值超
过4K时,将自动转去执行片外存储器内的程序。
当EA脚接低电平时,CPU只访
问片外ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。
VPP
是对8751片内ROM固化程序时,作为施加较高编程电压(12V~21V)的输入端[7]。
(5)输入输出引脚:
P0-P3:
4个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。
4个端口都可以做输入输出口使用,其中,P0和P2通常用于对外部存储器的访问。
在这种方式下,把P0口作为地址/数据总线使用,分时输出外部存储器的地址和传送8位数据。
当扩充外部存储器的地址为16位时,P2口作为地址总线的高8位地址使用。
1)P0口(39-32脚):
P0.0-P0.7统称为P0口。
在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。
在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。
2.P1口(1-8脚):
P1.0-P1.7统称为P1口,可作为准双向I/O口使用。
对于52子系列,P1.0与P1.1还有第二功能:
P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T
3.P2口(21-28脚):
P2.0-P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。
4.P3口(10-17脚):
P3.0-P3.7统称为P3口。
除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
89C51单片机的功能结构如图1-4-1所示:
89C51单片机的片内结构如图1-4-2所示:
由如下功能部件组成:
对图1-4-2中的片内各部件做简单介绍。
1.CPU(微处理器)
2.数据存储器(RAM)
片内为128个字节(52子系列的为256个字节)
3.程序存储器(ROM/EPROM)
89C51/89C52/89C55:
4K/8K/20K字节闪存。
4.4个并行可编程的8位I/O口
P1口、P2口、P3口、P0口
5.串行口
1个全双工的异步串行口,具有四种工作方式。
6.定时器/计数器
7.中断系统
8.特殊功能寄存器(SFR)
共有21个,是一个具有特殊功能的RAM区。
CPU对各种功能部件的控制是采用特殊功能寄存器(SFR,SpecialFunctionRegister)的集中控制方式。
第二章设计方案论证
2.1功能要求
1、时间显示:
用4位数码管显示当前小时和分钟,秒功能用两LED灯代替(每秒闪烁一次)。
2、可手动设定时间。
3、开机流程:
系统有红色和蓝色指示灯,上电10S内,每秒红色指示灯闪烁一次,并伴有蜂鸣声,作为开机/重启提醒,此时绿色指示灯灭。
10S后红色指示灯灭,若光线较强则绿色指示灯亮,若光线较弱则绿色指示灯亮度减半进入节能模式。
4、具有整点报时功能(四短一长),可自行设定报时时间段;
2.2方案确定
单片机的选择与论证
方案一:
采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二:
采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。
显示模块的方案选择与论证
方案一:
采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏。
方案二:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。
方案三:
采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。
所以采用了LED数码管作为显示。
时钟芯片的方案选择与论证
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。
所以不采用此方案。
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.
电路设计方案最终确定
综上各方案所述,对此次作品的方案选定:
以单片机AT89C51为主控制器,时间数据是通过时钟芯片外部振荡器来读取,并通过LED数码管显示出来,并用键盘来完成对当前时间的调整。
第三章硬件设计方案
3.1单片机的时钟电路
时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。
常用的时钟电路有两种方式:
内部时钟方式和外部时钟方式。
1.内部时钟方式
片内一个用于构成振荡器的高增益反相放大器,反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
见图2-1-1
。
图2-2-1
按图2-1-1连接即可构成自激振荡电路,振荡频率取决于石英晶体的振荡频率.C1和C2典型值通常选择为30pF左右。
晶体的振荡频率在1.2MHz~12MHz之间。
某些高速单片机芯片的时钟频率已达40MHz(如89S52)。
2.外部时钟方式
常用于多片89C51单片机同时工作。
外部时钟源直接接到XTAL1端,XTAL2端悬空,其电路见图2-1-2
图2-1-2
3.2单片机的复位电路
片内复位结构如图2-2-1
图2-2-1
复位电路通常采用上电自动复位和按钮复位两种方式。
图2-2-2上电复位电路图2-2-3按钮复位电路
3.3单片机的P3端口特性
由于89C51的引脚有限,因此在P3口电路中增加了引脚的第二功能。
P3的每一位都可以分别定义为第二功能。
P3口的字节地址为B0H,位地址为B0H~B7H。
P3口某一位的位电路结构如图2-3-1所示。
图2-3-1
P3口的第二功能定义
口引脚第二功能
P3.0RXD(串行输入口)--输入
P3.1TXD(串行输出口)--输出
P3.2INT0*(外部中断0)--输入
P3.3INT1*(外部中断1)--输入
P3.4T0(定时器0外部计数输入)
P3.5T1(定时器1外部计数输入)
P3.6WR*(外部数据存储器写选通)--输出
P3.7RD*(外部数据存储器读选通)--输出
3.4单片机的定时/中断系统
51内部集成定时/计数器的基本特征:
❑51系列单片机内部提供2个16位的递增定时/计数器T0和T1。
❑可以设置为定时或者计数器工作。
❑有多种可选的工作模式,通过SFR-TMOD选择使用。
❑对应两个中断源,可用中断处理。
❑主要作用:
对外部脉冲计数、产生精确定时时间、作串行口的波特率发生器。
定时器/计数器T0、T1的结构
TMOD寄存器的M1,M0位设置四种工作方式
模式0:
13位定时/计数器计数寄存器:
THx和TLx低5位
最大计数值:
213:
模式1:
16位定时/计数器计数寄存器:
THx和TLx
最大计数值:
216
模式2:
8位自动重载定时/计数器计数寄存器:
TLX
计数初值重载寄存器:
THX
最大计数值28
模式3:
仅T0可用,将T0拆为两个独立8位定时器
80C51的中断源
外部中断0(INT0)
外部中断1(INT1)
T0溢出中断(TF0)
T1溢出中断(TF1)
串行口中断(RI或TI)
触发方式设置及中断标志
7
6
5
4
3
2
1
0
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
字节地址:
88H
外部中断标志IE1、IE0(用IEx表示)
电平方式(ITx=0),INTx引脚低电平时IEx=1,响应中断后IEx不自动清0(INTx引脚状态)。
边沿方式(ITx=1),INTx引脚负跳变时IEx=1,响应中断后IEx自动清0。
同一优先级中的中断申请不止一个时,则有中断优先权排队问题。
同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:
3.5显示系统
LED显示器由若干个发光二极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光。
控制相应的管导通,就能显示出对应字符。
各段LED显示器需要由驱动电路驱动。
在七段LED显示器中,通常将各段发光二极管的阴极或阳极连在一起作为公共端。
将各段发光二极管连在一起的叫共阳极显示器,用低电平驱动;将阴极连在一起的叫共阴极显示器,用高电平驱动。
静态显示就是每一个显示器各笔画段都要独占具有一个锁存功能的输出口线,CPU把要显示的字形代码送到输出口上,就可以使显示器上显示所需的数字或符号,此后,即使CPU不在去访问它,因为各笔画段借口具有锁存功能,显示的内容也不会消失。
动态显示是指显示器显示某一字符时,相应段的发光二极管恒定地导通或截止。
静态显示有并行输出和串行输出两种方式。
在本系统中数码管使用共阴极接法而且是用动态显示。
本设计利用一个4位七段数码管显示
3.6按键电路
按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定。
这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动的持续时间长短与开关的机械特性有关,一般在5—10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。
3.7整体电路设计
电路设计框图
系统概述
本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作。
。
采用内部时钟的驱动方式来驱动AT89C51单片机工作,内部复位的方式使系统的外围电路更加简单,减少了硬件的损耗,利用俩个不同颜色的发光二极管来表示秒钟,其他的显示电路部分由一个4位7段数码管构成,使用动态扫描显示方式对数字的显示,整个系统具有使用寿命长,精度高和低功耗等特点
设计任务内容简介
5、时间显示:
用4位数码管显示当前小时和分钟,秒功能用两LED灯代替(每秒闪烁一次)。
6、可手动设定时间。
7、开机流程:
系统有红色和蓝色指示灯,上电10S内,每秒红色指示灯闪烁一次,并伴有蜂鸣声,作为开机/重启提醒,此时绿色指示灯灭。
10S后红色指示灯灭,若光线较强则绿色指示灯亮,若光线较弱则绿色指示灯亮度减半进入节能模式。
4、具有整点报时功能(四短一长),可自行设定报时时间段;
整体电路图
第四章主程序设计
4.1主程序
主程序主要有main()组成通过对相关子程序的调用,实现对时间的设置与修
改、LCD显示等主要功能。
相关的调整是靠对功能键的判断来实现的。
我们用流程
框图来表示,如下图
1功能程序
主程序段如下:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitlcdrs=P2^0;//数据/命令选择端
sbitlcdrw=P2^1;//读/写选择端
sbitlcded=P2^2;//液晶使能端
sbits1=P3^0;//功能键
sbits2=P3^1;//数字加1键
sbits3=P3^2;