基于单片机控制的专用定时器设计.docx
- 文档编号:30472581
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:26
- 大小:185.09KB
基于单片机控制的专用定时器设计.docx
《基于单片机控制的专用定时器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的专用定时器设计.docx(26页珍藏版)》请在冰豆网上搜索。
基于单片机控制的专用定时器设计
扬州工业职业技术学院
2009—2010学年
第二学期
毕业设计
课题名称:
基于单片机控制的专用定时器设计
设计时间:
2010年9月—2010年12月
系部:
电子信息工程系
班级:
0801电气自动化技术
姓名:
顾臻
指导教师:
马小燕
总目录
第一部分任务书
第二部分开题报告
第三部分毕业设计正文
第一部分
任
务
书
扬州工业职业技术学院
毕业设计任务书
系部
电子信息工程系
指导老师
马小燕
职称
助教
学生姓名
顾臻
班级
0801电气
学号
0805060117
设计题目
基于单片机控制的专用定时器设计
设计
内容
目标
和
要求
1.毕业设计内容
设计一个基于单片机控制的专用定时器。
要求该定时器可以实现三个时间的显示,而且每个时间的初值可以改变,独立完成系统的分析、设计和程序编写,记录开发过程中的问题及解决办法,要有计算过程和原理图。
2.毕业设计要求
定时时间1。
1S—99S,可调;
定时时间2。
1S—99S,可调;
定时时间3。
1min—99min,可调;
所有时间数字均可调;
用LED数码管显示剩余时间。
教研室
审核
系部
审核
第二部分
开
题
报
告
扬州工业职业技术学院电子信息工程系11届
毕业设计(论文)开题报告书(表1)
学生姓名
顾臻
专业
电气自动化
班级
0801电气
学号
0805060117
题目
基于单片机控制的专用定时器设计
指导教师
马小燕
职称
助教
学位
学士
题目类别
□工程设计□基础研究√应用研究□其它
【课题的内容与要求】
本次设计是的内容是基于AT89C51芯片的LED定时器。
要求该定时器可以实现分段时间的显示,采用的是数码管动态扫描的技术在LED数码管上显示几段时间。
其中每段时间的显示时用不同的LED灯来表示以示区分,时间段的切换和初值的调节用按键来控制。
【前言】
在我们平时的生活中,有许多地方可以看到定时的影子,如手表定时、电脑电视定时、工厂车间零件制作定时等等。
定时不仅让我们的生活变得时间化和规律化,也从一定程度上提高了生产力,提高了人民的生活水平。
基于单片机的定时器,轻巧简便,利于携带和操作,在当今物质文化飞速发展的今天更是必不可少的。
所以研究基于单片机的定时器设计很有意义。
【方案的比较与评价】
由于单片机控制定时器的一个仿真和调试都比较简单,而且单片机控制的定时器的精度也是比较高的,还有个优点是相比较PLC而言的。
由于,单片机只是一个集成块不需要很多的硬件作为支撑,而PLC的控制需要硬件作为支撑,代价很大,用于小小的定时器控制有些大材小用。
再从二者的编写语言来讲,单片机的C语言结构清晰很容易修改,而PLC是用梯形图来编写的结构复杂不容易修改。
基于以上分析,我个人认为用单片机控制定时器还是可取的。
【预期的效果及指标】
在短期内,我的任务是完成对于独立的几段时间的程序编写,并且实现对于它们的初值调节,调节初值范围如下:
定时时间1。
1S—99S,可调;
定时时间2。
1S—99S,可调;
定时时间3。
1min—99min,可调;
为以后时间段之间的切换做准备。
【进度安排】2010年9月—2010年10月选题、调研、收集资料
2010年10月8日—2010年10月15日论证、开题
2010年10月16日—2010年11月30日设计(写作初稿)
2010年12月1日—2010年12月日修改、定稿、打印
【参考文献】
[1]俞国亮.MCS-51单片机原理与应用[M].清华大学出版社.2008.
[2]黄仁欣.单片机原理及应用技术[M].清华大学出版社.2005.
[3]黄惠媛.单片机原理与接口技术[M].清华大学出版社.2006.
[4]李广弟.单片机基础[M].北京航空航天大学出版社.2001.
【指导教师意见】(有针对性地说明选题意义及工作安排是否恰当等)
□同意提交开题论证□修改后提交□不同意提交(请说明理由)
指导教师签章:
年月日
【系部意见】
□同意指导教师意见□不同意指导教师意见(请说明理由)□其它(请说明)
队系(部)主任签章:
年月日
第三部分
毕
业
设
计
正
文
基于单片机控制专用定时器设计
顾臻
0801电气技术
[摘要]本次毕业设计的内容是基于单片机控制的专用定时器,是用LED数码管显示的,以AT89C51芯片为核心,在LED数码管上显示3段时间。
且用按键可以切换设置定时界面和定时界面,用2个中断按键来设置需要定时的时间,到了定时的时间LED灯亮,还有个按键是用来切换剩余时间的。
因为是用单片机控制的,所以定时精度还是可以的。
[关键词]单片机LED数码管c语言
Basedonsingle-chipmicrocomputercontrolspecialtimerdesign
GuZhen
0801ElectricalTechnology
Abstract:
Thegraduationdesigncontentisbasedonsinglechipmicrocomputercontrolistousespecialtimer,LEDdigitaldisplay,basedonAT89C51singlechippipechipsforthecore,inLEDdigitaldisplay3timetube.AndusethebuttonscanswitchSettingstiminginterfaceandtiminginterface,withtwobuttonstosetthetimerinterruptionoftime,needtoregulartimeLEDlights,thereisalsoabuttonisusedtotoggletheremainingtime.BecauseitisthecontroloftheMCU,sothetimingprecisioncanstill.
Keywords:
SCMLEDDigitalTubeCLanguage
第一章绪论
1.1课题研究的背景
在我们平时的生活中,有许多地方可以看到定时的影子,如手表定时、电脑电视定时、工厂车间零件制作定时等等。
定时不仅让我们的生活变得时间化和规律化,也从一定程度上提高了生产力,提高了人民的生活水平。
基于单片机的定时,轻巧简便,利于携带和操作,在当今物质文化飞速发展的今天更是必不可少的。
所以研究基于单片机的定时器设计很有意义。
本设计主要设计了一个基于AT89C51单片机专用定时器。
在LED数码管上通过一个控制键转换来显示相应的时间段。
并通过多个控制键用来实现对时间初值的调节。
应用keil软件实现单片机定时器的程序设计,用Proteus的ISIS软件实现仿真。
该方法仿真效果真实、准确,节省了硬件资源。
1.2定时器的发展和简介
人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。
1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。
它利用机械钟带动开关来控制煤气阀们。
起初每周上一次发条,1918年使用电钟计时后,就不用上发条了。
定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。
人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。
现在的不少家用电器都安装了定时器来控制开关或工作时间。
1.3设计方案的比较和选择
1.方案一:
就本人对PLC的了解,PLC的关键技术在于其内部固化了一个能解释梯形图语言的程序及辅助通讯程序,梯形图语言的解释程序的效率决定了PLC的性能,通讯程序决定了PLC与外界交换信息的难易。
对于简单的应用,通常以独立控制器的方式运作,不需与外界交换信息,只需内部固化有能解释梯形图语言的程序即可。
实际上,设计PLC的主要工作就是开发解释梯形图语言的程序。
定时器的设计只是简单的应用不需要PLC来实现,用PLC有些大材小用。
通常PLC采用16位或32位的CPU,带1或2个的串行通道与外界通讯,内部有一个定时器即可,若要提高可靠性再加一个看家狗定时器足够。
可见,PLC的硬件要求很高,一般不适用与像定时器方面的设计。
2.方案二:
学过单片机的人都知道,单片机用于定时器的控制具有可靠性强,C语言程序编写简单快捷,可以用于反复调试和仿真,操作周期短,在短期内能实现控制,当然,单片机的调试的效果和实际的相差不大,便于修改。
而且,定时器的结果要被反复扫描,而PLC是不支持反复的。
PLC一般对每一种分辨率的计时器提供一个相应频率的硬件计数器,在扫描程序结束时。
将计数器的值加至计时条件成立的相应计时器当前值,在下一扫描周期,根据计时条件及当前值刷新计时器状态。
比如:
LDI0.0
FORVW100,+1,+10
NETWORK2
LDM0.0
TONT101,+1000
NETWORK3
NEXT
NETWORK4
LDI0.0
TONT102,+1000
在这段程序中,当I0.0接通时,T101比T102多计时10倍。
因为T101在一个程序周期内执行10次,而T102只执行1次。
要正确计时,在一个程序周期内计时器必须执行并只能被执行一次。
综上所述,所以我选择方案二,即用单片机来控制定时器。
第二章硬件电路设计
2.1LED数码管简介
2.1.1LED数码管显示原理
共阴极共阳极
图2-1LED数码管显示原理图
使用LED显示器时,要注意区分这两种不同的接法。
为了显示数字或字符,必须对数字或字符进行编码。
七段数码管加上一个小数点,共计8段。
因此为LED显示器提供的编码正好是一个字节。
TX实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。
本次设计用的是共阴数码管,如表2-1所示。
表2-1共阴极数码管表
0x3f
0x06
0x5b
0x4f
0x66
0x6d
1
2
3
4
5
6
0x7d
0x07
0x7f
0x6f
0x77
0x7c
7
8
9
A
B
C
0x39
0x5e
0x79
0x71
0x00
D
E
F
G
无显示
2.1.2LED数码管显示方式的分类
1.静态显示方式
LED显示器工作方式有两种:
静态显示方式和动态显示方式。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。
当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
2.动态显示方式
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
2.2相关控制寄存器
在89C51中,与定时器/计数器应用有关的控制寄存器共有3个,分别是定时控制寄存器、工作方式控制寄存器和中断允许控制寄存器。
本次课程设计将会涉及这三个控制寄存器,现对它们说明如下。
(1)定时器控制寄存器(TCON)
TCON寄存器地址为88H,位地址为8FH~88H。
该寄存器位定义及位地址表示如表2-2所示。
表2-2TCON寄存器表示
位地址
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
位符号
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
定时器控制寄存器中,与定时器/计数器有关的控制位共4位,即TF1、TR1、TF0和TR0,它们的作用分别为:
TR0和TR1——运行控制位。
TR0(TR1)=0,停止定时器/计数器工作;TR0(TR1)=1,启动定时器/计数器工作。
控制计数启停只需用软件方法使其置1或清0即可。
TF0和TF1——计数溢出标志位。
当计数器产生计数溢出时,相应溢出标志位由硬件置1。
计数溢出标志用于表示定时/计数是否完成,因此,它是供查询的状态位。
当采用查询方法是,溢出标志位被查询,并在后续处理程序中应以软件方法及时将其清0。
而当采用中断方法是,溢出标志位不但能自动产生中断请求,而且连清0操作也能在转向中断服务程序时由硬件自动进行。
(2)定时器方式选择寄存器(TMOD)
TMOD寄存器用于设定定时器/计数器的工作方式。
寄存器地址为89H,但它没有位地址,不能进行位寻址,只能用字节传送指令设置其内容。
该寄存器的位定义如表2-3所示。
表2-3TMOD寄存器表示
B7H
B6H
B5H
B4H
B3H
B2H
B1H
B0H
GATE
M1
M0
GATE
M1
M0
定时器/计数器1
定时器/计数器0
它的低半字节对应定时器/计数器0,高半字节对应定时器/计数器1,前后半字节的位格式完全对应。
位定义如下:
GATE——门控位。
GATE=0,以运行控制位TR启动定时器;GATE=1,以外中断请求信号(
或
)启动定时器,这可以用于外部脉冲宽度测量。
——定时方式或计数方式选择为。
=0,定时工作方式;
=1,计数工作方式。
M1M0——工作方式选择位。
M1M0=00,工作方式0;M1M0=01,工作方式1;
M1M0=10,工作方式2;M1M0=11,工作方式3。
(3)中断允许控制寄存器(IE)
该寄存器地址为A8H,位地址为AFH~A8H。
寄存器位定义及位地址如表2-4所示。
表2-4IE寄存器表示
位地址
AFH
AEH
ADH
ACH
ABH
AAH
A9H
A8H
位符号
EA
—
—
ES
ET1
EX1
ET0
EX0
其中与定时器/计数器有关的是定时器/计数器中断允许控制位ET0和ET1。
ET0(ET1)=0,禁止定时器中断;
ET0(ET1)=1,允许定时器中断。
2.3系统电路介绍
2.3.1AT89C51单片机的介绍
Vcc:
电源端
Vss:
接地端
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口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
2.3.2独立键盘
本设计共用到了3个独立键盘和2个中断键,分别是定时界面切换键,设置定时界面切换键,剩余时间显示切换键,分调节中断和秒调节中断,其中key2键是切换到设置定时界面的功能,key3键是切换到定时界面,key3键是显示剩余时间的功能。
如图2-3。
图2-3独立按键
2.3.3晶振与复位电路的介绍
1.单片机晶振电路原理及作用
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
2.复位电路的作用
在上电或复位过程中,控制CPU的复位状态:
这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。
无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
3.基本的复位方式
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位.
(1)、手动按钮复位
手动按钮复位需要人为在复位输入端RST上加入高电平(图2-4)。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
手动按钮复位的电路如所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
图2-4 手动复位图
(2)、上电复位
AT89C51的上电复位电路如图2-5所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。
对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1µF。
上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。
为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。
上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。
在图2-5的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。
另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。
如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。
图2-5上电复位图
2.3.4电路工作原理图
该电路原理图由单片机最小系统,上拉电阻,独立按键,和LED数码管组成;实现定时和切换的功能,仿真调试开始时,当按下KEY2时,系统进入设置定时界面,然后按下分调节和秒调节中断键可以设置需要定时的时间,时间定好后,按下key3键进入定时界面,当达到定时时间时会停止并且LED灯会亮,key4键可以随时切换显示剩余时间。
其中,LED数码管段选位连接P0口,位选位连接从P2.0到P2.3。
秒调节中断连接P3.2,分调节连接P3.3,3个独立键盘中,key2连接P1.6,key3连接P1.7,key4连接P1.4。
LED灯连接P1.0。
如图2-6所示。
图2-6电路工作原理图
第三章软件电路设计
C语言程序采用函数结构,每个C语言程序由一个或多个函数组成,在这些函数中至少应包含一个主函数main(),也可以包含一个main()函数和若干个其它的功能函数。
不管main()函数放于何处,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 专用 定时器 设计