单片机的专用定时器的设计.docx
- 文档编号:6304355
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:48
- 大小:767.81KB
单片机的专用定时器的设计.docx
《单片机的专用定时器的设计.docx》由会员分享,可在线阅读,更多相关《单片机的专用定时器的设计.docx(48页珍藏版)》请在冰豆网上搜索。
单片机的专用定时器的设计
本科毕业设计
题目:
单片机的专用定时器的设计
摘要
在工业电路电子系统设计过程中,为了满足开发过程中系统可操作性高,成本低的要求,人们通常采用以软件代替硬件的方法来降低生产成本。
而单片机恰恰符合这一要求。
单片机具有技术成熟,应用广泛,性价比高等优点,利用单片机实现的控制系统功能,适用于各种工业环境中。
C51系列单片机本身具有功能强大,技术水平高,易于采购的特点,使用C51系列单片机可以实现电路的定时、显示、控制功能。
本设计利用C51系列单片机开发板,学习实践了单片机的原理及应用,在EDA软件Keil和Protues下完成了基于单片机的一个可调、可显示专用定时器的软件仿真和硬件测试。
C51系列单片机内部的定时/计数器可以精确地实现时间的定时功能。
在合理设计数码管、LED发光二极管、键盘等单片机外围电路的基础上,组成了一个结构清晰的专用定时器电路系统。
在一定的语言环境下,完成了单片机控制程序的设计,并将由控制程序生成的HEX文件导入到软件环境下的单片机中进行仿真;下载到实际单片机中进行硬件测试,从而完成了技术效果好,可靠性高,方便操作,经济效益高的专用定时器设计。
关键字:
单片机;C51;定时器;Keil;Protues
绪论
自从1971年微型计算机问世以来,随着大规模集成电路技术的不断发展,微型计算机开始朝向两个方向发展:
一个是向高速度,高性能,高集成度的通用微型计算机方向发展,另一个是向稳定性强,可靠性高,价格低廉的单片机方向发展。
单片机不论从功能与形态上来说,都是作为控制领域的计算机,因此单片机本质上是一个微型控制器,即Microcontroller。
从1976年Inter公司推出第一款单片机以来,经过集成电路技术的发展,总线技术的不断完善,应用领域的逐渐扩大,单片机的控制技术也正日趋成熟。
在微型计算机的短暂发展过程中,人们成功地将CPU,内存及一些必要的电路单元集成到一块芯片上,并且专门针对面向控制功能,对结构进行了一定的优化,使其具有可靠性和一定的专用性。
单片机与一般通用微机芯片相比具有以一下特点:
1、体积小,重量轻
2、功能强大,价格低廉
3、专门面向控制功能,专用性强
4、系统结构清晰,电路布线合理
5、运行速度快,抗干扰能力强,可靠性高
单片机控制技术已经被广泛应用于各个领域。
一、工业生产自动化
在工业自动控制过程,智能监测过程,安装在控制系统中的控制器几乎都是单片机。
如利用单片机的定时/计数器对系统进行实时控制监测,自动控制继电器系统以驱动大功率设备,精确控制外围设备的运行时间或工作周期。
二、家用电器及日常生活中的应用
目前国内外的各种家用电器已经普遍采用单片机控制技术代替传统电路控制技术,这种单片机大多是小型廉价单片机。
它集成了许多外设接口连接外围设备,例如键盘、LED数码管、LCD显示器、及A/D转换器等输入输出设备,用于接收输入信号控制输出信号。
由于单片机在系统中起到了输入控制输出的作用,实现了人机对话的功能。
利用这一功能,单片机普遍应用于洗衣机、电冰箱、空调、微波炉、电饭煲、电视机及其它影音设备的控制系统中。
三、汽车、航空航天器等电子系统
在这些系统中利用单片机,使各个系统构成冗余的网络系统,例如显示系统、动力控制系统、自动控制系统、通信系统等。
发达国家的汽车电子系统中已广泛采用CAN总线(ControllerAreaNetworkBus)构成技术效果好,结构复杂的系统网络。
在本次设计中,运用单片机内部的定时/计数器,精确控制定时时间,从而控制三个发光二极管按照定时时间有规律地亮灭,同时控制数码管显示器显示剩余时间,以便实时监测电路的运行情况。
最终完成的专用定时电路,可以应用于精确定时控制外围大功率设备的启动与关闭。
设备通过简易的操作,能够按照不同的周期规律正常运行。
第一章设计任务及设计方案
1.1设计任务
设计一个基于单片机的专用定时器。
它可以对time1、time2、time3进行定时。
定时次序为先定时time1,直到time1=0,再定时time2,直到time2=0,然后定时time3,time3=0时完成了一个定时周期。
使用3个发光二极管分别指示三个定时时间。
要求time1(1-99s)、time2(1-99s)、time3(1-99min)大小可以调节。
用数码管显示剩余时间。
1.2设计基于单片机的专用定时器的意义
目前单片机的应用日趋成熟,单片机已经普遍应用于实时监测和自动控制领域。
单片机为核心的硬件系统与软件系统相互结合的技术正日益完善。
利用单片机具有的精确定时/计数的功能,在工业生产的实时监测、自动控制过程中能发挥很大的作用。
设计基于单片机的专用定时器可以生产出一系列可靠性强、操作简单、性价比高的设备,例如定时监测环境报警系统、定时控制交通灯、定时控制大功率设备的开关系统等。
1.3实现设计的不同方案的简单比较
本次设计采用单片机内的定时/计数器设计一个专用定时器。
利用单片机内部的定时/计数器结合相应的程序设计是本次设计有效,可靠,实用的方法。
另外实现定时功能也可以采用下面的三种方案:
1、软件定时:
它的特点是占用硬件资源少,但占用CPU时间多,降低了CPU的利用效率。
2、555定时电路:
通过外接必要的元器件,构成硬件定时电路。
但是利用硬件定时电路,不利于实现方便、可调、易操作、性价比高的定时功能。
与本次设计方案相比,如果要使硬件定时电路同样具备可调,易操作的性能,那么就需要设计更复杂的硬件电路系统,增加了产品质量和体积,增加了生产成本。
3、采用可编程芯片定时:
这种芯片的定时功能强,使用灵活。
可用于对单片机的定时/计数器的扩展。
考虑到本次设计要求硬件电路简单,容易实现,方便操作,器件价格便,宜易于采购等因素,所以采用以单片机为核心的硬件电路通过合理的程序设计来实现一个专用定时器设计。
1.4定时系统设计方案
1.4.1系统功能框图设计方案
为了实现设计任务,在设计初期设计系统功能框图如图1-1所示。
图1-1系统功能框图
1.4.2系统工作流程设计方案
本定时系统以单片机为核心控制器件,外设4个按键,K1,K2,K3,K4。
按键K1控制定时器的开始(K1第奇数次次按下)与复位(K1第偶数次次按下或从未按下)两种状态。
当定时器处于复位状态时(K1第偶数次按下或从未按下),按下K2可选择三个定时时间的调整,如果K2第一次按下,可调整time1(默认99s),L1亮作为提示;如果K2第二次按下,可调整time2(默认99s),L2亮作为提示;如果K2第三次按下,可调整time3(默认99min),L3亮作为提示;如果K2第四次按下,使K2恢复到初始状态。
K3、K4分别用于加1和加10。
完成了3个定时时间的调整后,按下K1,启动定时器1,开始定时。
处于定时时间time1时用发光二极管L1指示,处于time2时用L2指示,处于time3时用L3指示。
直到定时结束time3=0,置tt=0,使其重新开始time1定时,至此无限循环下去。
工作过程简图如图1-2所示。
图1-2工作过程简图
第二章硬件条件及软件环境介绍
2.0定时器系统设计基本硬件条件和软件环境概述
本次设计用到的硬件条件是STC89C52单片机开发板;软件环境有KeiluVision3集成开发软件,用于程序的编辑、编译,并生成.hex文件;ISIS7Proteus电路仿真软件,用于调试程序和测试程序的仿真效果。
2.1STC89C52单片机开发板简介
本次设计所采用的开发板是青岛帕沃伸电子有限公司出品的《OK51-POWER》单片机开发板。
开发板的结构布局,如图2-1所示。
图2-1电路结构实物图
它是一款性价比高的51单片机学习板。
它是有USB线连接电脑或外接5V直流电源两种方式供电,提供USB2.0和RS232串口两种通信方式。
本次设计是使用USB通信方式实现供电,编程,仿真,通信多种功能。
本次设计主要运用到开发板的如下功能单元:
1、控制器为STC89C52单片机,它是一个8位单片机,拥有32个I/O口,内置两个定时/计数器,EEPROM。
晶振采用11.0592Mhz。
2、4位数码管动态显示电路,它是由两个74HC573锁存器控制信号传输,U1,U2。
U1是数码管段选锁存器,U2是数码管位选锁存器。
数据通过P0口锁存到锁存器中,然后驱动数码管动态显示。
3、3三个LED发光二极管,LED发光管也是通过一个74HC573锁存器连接单片机的P1口。
4、4个独立键盘。
依据开发板固有电路,在Protues中完成定时器系统电路原理图如图2-2所示。
图2-2Protues中的电路原理图
2.2KeiluVision3软件的使用简介
2.2.1Keil软件的运行环境
设计中程序编写的环境选用KeiluVision3软件。
系统在安装KeiluVision3集成开发软件之前,需要PC满足一定的硬件及软件要求,以确保软件编译器以及其它程序功能正常使用。
具体要求如下:
1、Pentium、Pentium-2及以上或兼容处理器的PC;
2、Windows95、98、2000、xp操作系统;
3、至少16MRAM;
4、至少20MB硬盘。
2.2.2Keil软件的使用步骤
依据本设计过程中Keil软件的应用,总结该软件的使用步骤如下:
(1)按照步骤安装好软件后,双击快捷键图标,启动Keil。
(2)首先新建一个工程文件,点击“Project->NewProject”,选择工程文件存放路径,并输入工程文件名,这里使用“jjjjj”作为工程文件名,如图2-3所示。
图2-3建立新项目
(3)点击“保存”后弹出选择CPU及型号对话框。
由于Keil中没有STC公司的产品,但是STC公司的单片机与传统的51系列单片机是兼容的,所以这里选择Atmel公司的AT89C52,然后点击“确定”。
如图2-4所示。
图2-4选择CPU类型
(4)新建一个C51程序文件。
单击左上角的“New File”
(5)保存新建程序文件。
保存在工程文件“jjjjj”所在文件夹中,以.c为后缀命名新建程序文件,这里命名为“dingshiqi.c”,如图2-5所示。
图2-5保存程序文件
(6)把保存好的“dingshiqi.c”程序文件加入到工程项目中,在“SourseGroup1”上单击右键,在弹出菜单中选择“AddFileto’GroupsourseGroup1’”,然后双击“dingshiqi.c”文件,将其加入到工程项目中。
这时在左边工程信息界面中的“SourceGroup1”下多了一个“dingshiqi.c”程序文件,说明添加文件成功了。
如图2-6所示。
图2-6添加程序文件
(7)在文本编辑框中输入源程序。
(8)完成源程序编写后,接着编译工程项目,点击编译按钮,如果在下面的信息窗口中显示“0Errow(s),0Warrning(s)”,说明没有错误,已经成功编译。
如图2-7所示。
图2-7对当前项目进行编译
(9)接下来生成.hex文件。
在“Target1”上单击右键,在弹出菜单中单击“OptionsforTarget‘Target1’”选项,意思是“当前项目的目标”选项。
如图2-8所示。
图2-8设置Target选项
(10)在弹出“Options”窗口中,选择“Output”标签栏,选中“Creat HEX File”,然后单击“确定”,如图2-9所示。
(11)再次点击编译按钮,就会在工程文件夹中生成jjjjj.hex文件。
自此,可以通过STC程序烧录软件把jjjjj.hex文件烧录到单片机中进行调试或可以把jjjjj.hex文件导入仿真电路中在Protues软件环境中进行仿真调试。
图2-9设置Output选项
2.3Proteus的使用
2.3.1软件的工作界面
ProtuesISIS的工作界面是一个标准的Windows界面。
包括:
标题栏、主菜单栏、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
2.3.2仿真电路图的绘制
(1)打开软件后,首先将所需要的元件加入到对象选择器窗口,单击对象选择器按钮,如图2-10所示。
图2-10对象选择器窗口
(2)弹出“PickDevices”窗口,在“关键字”栏中输入AT89C51,系统在元件库中搜索出AT89C51的相关器件,在“结果”栏中找到AT89C51,双击它即可把它添加到对象选择器窗口。
如图2-11所示。
图2-11搜索查找元器件
同样,把剩余元器件都添加到对象选择器窗口中。
若单击某个元器件,可在预览窗口中可以看到元器件的仿真图形。
(3)元器件的放置。
在对象选择器窗口中,单击AT89C51,在将鼠标置于图形编辑窗口的欲置位置,单击鼠标,该对象便完成放置。
用同样的方法把其他元器件放置到合理位置可以方便以后连接导线。
(4)元件之间的连线。
Protues的智能化可以在想要连线的时候进行自动检测,Protues对导线的布置也可以自动选择最合适的路径。
(5)总线的使用。
如果需要简化电路,使电路结构清晰,那么就可以使用总线代替数量庞大而复杂的导线。
在绘图工具栏中单击总线按钮
。
然后将鼠标置于图形编辑窗口,单击左键,确定总线的起始位置,移动鼠标,找到终了位置,单击左键,再单击右键,表示确认结束画总线操作。
(6)导线与总线的连接。
导线与总线相连时,在连接处习惯上用斜线表示导线与总线连接。
在导线连接处单击右键,弹出菜单栏中选择“设置网络标号”选项,弹出“设置网络标号”对话框,在“标号”栏中输入网络标号。
注意相互联通的导线必须标注相同的网络标号,否则电路连接就会出错,如图2-12所示。
图2-12导线上插入网络标号
第三章定时器硬件电路设计
3.0硬件电路的主要组成结构单元
本次设计的功能模块主要有:
STC89C52单片机,LED数码管,发光二极管,键盘及若干必要的连线组成。
电路线路清晰,结构简单,可以成功实现专用定时器电路的定时功能。
基本功能框图如图3-1所示。
图3-1基本功能模块
3.1单片机端口分配方法及最小系统
一、单片机端口分配方法
单片机的种类很多,主要产品有:
Intel公司的80C51,80C52等产品;Atmel公司的AT89C51,AT89C52等产品;STC的STC89C51,STC89C52等产品。
本次设计所使用的是STC89C52单片机。
实物图如图3-2所示。
STC89C52有40个管脚,如图3-3所示。
图3-2STC89C52单片机实物图图3-3单片机的40管脚示意图
P0、P1、P2、P3为8位的并行I/O口用于数据的并行输入与输出。
本次设计P0口用于控制数码管的段选端;P2口用于控制数码管的位选端;P1口控制LED发光二极管;P3口连接4个独立键盘。
20号管脚Vcc接+5V,40号管脚Vss接地。
XTAL1、XTAL2连外接晶振。
二、单片机的最小系统
单片机的最小系统包括复位电路和晶振电路。
电路如图3-4所示。
图3-4单片机的最小系统
复位电路采用上电复位电路,通电时,电容相当于短路,于是RST引脚为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,当RST端电压降到低电平时,单片机开始正常工作。
晶振电路采用的晶振频率为11.0592Mhz,外接两个谐振电容(22pF)用于起振。
3.2数码管动态显示电路
3.2.1LED数码管介绍
常用显示电路有:
LED数码管、LCD液晶显示器。
显示方式有:
段显示(7端、米字形等),点阵式显示(5×8、8×8点阵等)。
由于本次设计只需显示简单的数字,考虑到本次设计的特点,采用价格便宜,应用普遍,性能良好的LED数码管。
LED数码管可分为两种:
即共阳极型和共阴极型。
区别仅在于数码管各段的公共端是接+5V电源还是接地。
本次设计选用了共阴极数码管。
数码管的基本结构如图3-5所示。
共阴数码管段码对照方式见表3-1。
图3-5数码管的基本结构
表3-1共阴极数码管段码对照表
显示数
dp
g
f
e
d
c
b
a
段码
0
0
0
1
1
1
1
1
1
3f
1
0
0
0
0
0
1
1
0
06
2
0
1
0
1
1
0
1
1
5b
3
0
1
0
0
1
1
1
1
4f
4
0
1
1
0
0
1
1
0
66
5
0
1
1
0
1
1
0
1
6d
6
0
1
1
1
1
1
0
1
7d
7
0
0
0
0
0
1
1
1
07
8
0
1
1
1
1
1
1
1
7f
9
0
1
1
0
1
1
1
1
6f
3.2.274HC573简介
在专用定时器系统的硬件电路中,一共用到了3个74HC573锁存器,其中两个锁存器用于控制四个数码管的段选端(用U1控制)和位选段(用U2控制),还有一个用于控制3个LED发光二极管(用U3控制)。
它的仿真图如图3-6所示。
74HC573锁存器有20个管脚,分别是:
一个Vcc,一个GND,一个OE端,一个LE端,8个控制信号输入端,8个控制信号输出端。
OE是输出始能端,只有当OE端为低电平时,锁存器才能正常工作,这里OE端接地;LE是锁存端,当LE为高电平时,输出端信号等于输入端信号,当LE为低电平时,无论控制信号在输入端如何变化,输出端信号保持不变。
74HC573的功能表见表3-2所示。
表3-274HC573功能表
INPUTS(输入端)
OUTPUT(输出端)
Q
OE
LE
D
L
H
H
H
L
H
L
L
L
L
X
Q0
H
X
X
Z
3.2.3数码管动态显示电路在仿真电路和实际电路中的基本结构
动态显示特点:
硬件简单,但软件复杂,CPU占用时间较多。
由于数码管的动态显示的电路可以使得电路结构简单,线路清晰,故本次设计采用数码管的动态显示电路。
数码管动态显示电路在Protues仿真软件中的调试结果如图3-7所示。
图3-7在仿真调试中数码管的动态显示电路
实际单片机开发板中数码管动态显示电路的连接方式与Protues软件环境仿真调试中数码管动态显示电路的连接方式有所不同,但采用的基本原理是一样的。
它的电路结构是由4位LED数码管的段选线和位选线分别与两个74HC573锁存器的输出端(Q0-Q7)相连;74HC573锁存器的OE端接地,锁存端LE分别接P2.6和P2.7,分别控制数码管的段选和位选,锁存器输入端(D0-D7)与P0口相连,P0口再连接上拉电阻。
实际开发板电路在Protues仿真环境中的仿真原理图,如图3-8所示:
图3-8开发板电路的仿真原理图
3.2.4数码管动态显示电路的工作过程设计
这里用U1代表控制数码管段选的锁存器,用U2代表控制数码管位选的锁存器。
以在数码管的3、4位显示数字15为例。
简述数码管动态显示过程如下:
第一步P2.7口发出控制信号打开U2的锁存端,从P0口接收消影信号,通过U2把消影信号传送到数码管的位选端,使得数码管的所有位都没有被选中。
第二步P2.7口发出控制信号关闭U2的锁存端,使数码管的位选端保持消影状态,而不受P0口信号变化的影响。
第三步P2.6口发出控制信号打开U1的锁存端,从P0口接收段选控制信号,这里欲显示数字“1”,段选控制信号应为0x06,通过U1把段选控制信号传送到数码管的段选端。
第四步P2.6口发出控制信号关闭U1的锁存端,锁存器变为锁存状态,使数码管的段选端的状态保持不变。
第五步P2.7口发出控制信号打开U2的锁存端,从P0口接收位选控制信号,这里欲选中数码管的第3位,位选控制信号应为0xfd,通过U2把位选控制信号传送到数码管的位选段,这时数码管的第3位被选中,此时数码管的状态应该是在第3位上显示出数字“1”了。
第六步P2.7口发出控制信号关闭U2的锁存端,使位选的状态保持不变。
第七步插入延时函数,使第三个数码管显示“1”的状态保持一段时间。
第八步同第一步和第二步,就是把消影信号传输到数码管的位选段,这时数码管所有位都不被选中,数码管的状态变为全灭状态。
到第八步为止,就是在一小段时间内第三位数码管显示数字“1”硬件电路之间,相互联系的全过程。
下面硬件电路的动作是使数码管的第4位显示数字“5”,过程类似,这里不再赘述。
从数码管的动态显示电路的工作过程可以清楚地看出,欲显示一组固定数字,它的每一位并不是同时显示在动态数码管电路中的,而是按照先显示高位数字,后显示数字的顺序,快速逐个点亮数码管。
由于人眼有视觉暂留效应和数码管在灭的时候有余辉,因此运用数码管的动态显示的方法效果上与静态显示是一样的。
而且运用数码管的动态显示技术,更能体现单片机自动控制系统的优势,充分体现了单片机的自动控制特性和集成电路芯片的高效性。
这是用普通电路系统不可比拟的。
3.3定时/计数器应用
3.3.1定时/计数器的组成结构
前面已经提到,比较其他实现定时功能的方法,本次设计决定采用单片机内部定时/计数器。
定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD寄存器是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON寄存器是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
定时/计数器的结构示意图如图3-9所示。
图3-9定时/计数器的结构示意图
3.3.2定时/计数器的基本原理
加1计数器输入的计数脉冲有两个来源,一个是由系统内部的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。
每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器清零,且计数器的溢出使TCON中TF0或TF1自动置1,向CPU发出中断请求(定时/计数器中断允许时)表示计数值已满。
可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的12分之一)。
计数值N乘以机器周期T就是定时时间t。
例如:
设计数值为50000,机器周期为1/12MHz*12=1us,则定时时间为t=50000us=50ms。
3.3.3定时/计数器的控制
80C51系列单片机定时/计数器的工作由两个特殊功能寄存器控制,即TMOD寄存器(工作方式寄存器)和TCON寄存器(控制寄存器)。
TMOD用于设置其工作方式;TCON用于控制其启动及中断申请。
工作方式寄存器TMOD:
工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于定时器T0,高四位用于定时器T1。
其格式如表3-3所示。
表3-3TMOD寄存器格式
位
7
6
5
4
3
2
1
0
地址字节:
89H
GATE
C/T
M1
M0
GATE
C/T
M1
M0
TMOD
GATE:
门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 专用 定时器 设计