单片机应用技术项目化教程课件-项目4定时器控制报警灯的设计_第1页
单片机应用技术项目化教程课件-项目4定时器控制报警灯的设计_第2页
单片机应用技术项目化教程课件-项目4定时器控制报警灯的设计_第3页
单片机应用技术项目化教程课件-项目4定时器控制报警灯的设计_第4页
单片机应用技术项目化教程课件-项目4定时器控制报警灯的设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*广东松山职业技术学院课件制作组项目4定时器控制报警灯的设计【项目导入】在单片机的应用系统中,往往会遇到要求用定时器对某些控制系统进行设计,例如定时检测系统,定时扫描系统等。51系列单片机中设置有2个16位定时/计数器,分别是T0和T1,要学会对定时器进行编程,必须掌握这两个的定时器的工作方式和初值的计算。在此,我们通过一个项目设计,让同学们掌握定时/计数器在单片机控制技术中的使用。*广东松山职业技术学院课件制作组【项目目标】1.知识目标(1)掌握寄存器TMOD、TCON、TH0、TL0、TH1、TL1的功能;(2)掌握定时/计数器的工作方式;(3)掌握定时器的定时初值的计算;(2.能力目标(1)根据需要会选择使用定时/计数器的工作方式;(2)会计算定时/计数器的初值;(3)能熟练使用定时/计数器对应用程序进行编程。3.态度目标(1)具有良好的思想政治素质与职业道德;(2)具有认真的学习态度和刻苦学习的精神;(3)养成良好的编程习惯。*广东松山职业技术学院课件制作组4.1项目描述单片机的定时/计数器在工业控制与测量领域有着广泛的应用,比如定时检测、定时计数及定时扫描等。本项目通过设计一个由定时器控制的报警旋转灯,使学生掌握定时/计数器的工作原理、工作方式和定时/计数器的初值计算。*广东松山职业技术学院课件制作组4.2项目目的与要求本项目的目的就是设计一个由定时器控制的报警旋转灯系统.。通过控制P2口的8个LED灯,要求它们旋转闪烁红灯并发出报警声。项目在实施过程中需要解决的一下关键问题:(1)选择哪种定时器,采用何种工作方式?如何计算定时初值?(2)延时程序的编写;(3)如何装入初值?。*广东松山职业技术学院课件制作组4.3项目支撑知识连接一、定时/计数器的结构及工作原理1.定时/计数器组成框图*广东松山职业技术学院课件制作组

加1计数器(高8位、低8位)

TMOD,工作方式设置;

TCON,启动、停止及设置溢出标志2.定时/计数器工作原理

计数器脉冲来源:振荡器脉冲经过12分频;T0或T1引脚的外部脉冲。计数器全1时,再输入1个脉冲就回零,并发生溢出(TCON中TF0或TF1置1),发中断请求。计数值:溢出时计数器值-计数初值。定时模式,对内部机器周期计数定时时间t=计数值NxTcy*广东松山职业技术学院课件制作组1.工作方式寄存器TMODGATEC/TM1M0GATEC/TM1M0TMOD(89H)T0T1M1、M2控制的四种工作方式

00:13位计数器

01:16位计数器

10:可自动重装的8位计数器

11:T0分为2个8位计数器;T1此时停止工作二、定时/计数器的相关寄存器C/T:计数器/定时器选择位为“0”,选择定时方式

为“1”,选择计数方式,

*广东松山职业技术学院课件制作组GATE:门控位为“0”,允许软件控制位TR0或TR1启动定时器为“1”,允许外部中断0或1引脚为高电平,且由软件使TR0(或TR1)置1时,才能启动定时器工作。*广东松山职业技术学院课件制作组2.控制寄存器TCON*广东松山职业技术学院课件制作组初始化步骤如下:(1)确定工作方式,对TMOD赋值(2)预置定时或计数的初值,直接将初值写入TH0、TL0或TH1、TL1(3)根据需要开启定时/计数器中断,直接对IE寄存器赋值。(4)启动定时/计数器工作,将TR0或TR1置“1”。(5)当GATE=0时,直接由软件置位启动;当GATE=1时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动3定时/计数器的初始化*广东松山职业技术学院课件制作组MCS-51单片机:定时/计数器T0有4种工作方式(方式0、1、2、3)T1有3种工作方式(方式0、1、2)。1.工作方式013位计数。由TL0的低5位和TH0的8位组成。TH0溢出时,置位TF0标志,向CPU发出中断请求。(如下图)4.3.2定时/计数器的工作方式*广东松山职业技术学院课件制作组1.工作方式0为0,T0选择为定时器模式,对CPU内部机器周期加1计数,其定时时间为:T=(213-T0初值)×机器周期。为1时,控制开关与引脚T0(P3.4)接通,计数器T0对来自外部引脚T0的输入脉冲计数,当外部信号电平发生由1到0跳变时,计数器加1,T0成为外部事件计数器。*广东松山职业技术学院课件制作组1.工作方式00或10

1

1

0或1*广东松山职业技术学院课件制作组1.工作方式01

0

0或11

0

*广东松山职业技术学院课件制作组2.工作方式1当M1M0为01时,定时/计数器工作在方式1,其逻辑电路结构和操作方法与方式0基本相同,它们的差别仅在于计数的位数不同(16位),如图所示:*广东松山职业技术学院课件制作组当TMOD的M1M0为10时,定时/计数器工作在方式2,其逻辑电路结构图如图所示。3.工作方式2*广东松山职业技术学院课件制作组方式2为自动重装初值的8位计数方式,仅用TL0计数,最大计数值为256。计满溢出后一方面进位TF0,使溢出标志TF0=1;另一方面,使原来装在TH0中的初值装入TL0。优点:定时初值可自动恢复,TH0中存放初值;缺点:计数范围小,只适用于需要重复定时,而定时范围不大的应用场合。3.工作方式2*广东松山职业技术学院课件制作组4.工作方式3T0分成为两个独立的8位计数器TL0和TH0

,T1处于方式3时停止计数。*广东松山职业技术学院课件制作组4.3.3.4定时/计数器应用举例初始化应完成的工作如下:(1)对TMOD赋值,以确定T0和T1的工作方式;(2)计算初值,并将其写入TH0、TL0或TH1、TL1;(3)设置IE、IP来规定中断的开放/禁止和优先级;(4)使TR0或TR1置位,启动定时/计数器开始定时或计数。*广东松山职业技术学院课件制作组一、方式0的应用【例4-1】利用定时器T0的方式0定时由P1.0输出频率为500Hz的方波,设单片机晶振频率为12MHz。

分析:选用定时器/计数器T0作定时器,输出为P1.0引脚,500Hz的方波可由间隔1ms的高低电平相间而形成,因而只要每隔1ms对P1.0取反一次即可得到这个方波。定时1ms的初值:

因为机器周期=12÷12MHz=1μs所以

T=-t/T机器=8192-1000/1=7192TH0=7192/32=0xe0TL0=7192%32=0x18

*广东松山职业技术学院课件制作组

C程序清单如下:

#include<reg.51.h>//头文件

main(){TMOD=0x00;//设T0为方式0TH0=0xe0;//设定1ms的定时初值

TL0=0x18;TR0=1;//启动T0While(1){while(!TF0);//等待定时器溢出

TF0=0;//清除溢出标志

P1_0=!P1_0;//取反

TH0=0xe0;//重装初值

TL0=0x18;}}*广东松山职业技术学院课件制作组二方式1应用

方式

1与方式0基本相同,只是方式

1改用了

16位计数器。

要求定时周期较长时,13位计数器不够用,可改用16位计数器

【例4-2】利用定时器0产生10Hz的方波,由P1.0口输出,设单片机晶振频率为12MHz。

分析过程:10HZ的方波,周期为100ms,定时时间为50ms,也就是每50ms电平就取反一次,12MHz的机器周期为1us,初值T0=-t/T=65536-50000/1=0x3cb0,则TH0=0x3C,TL0=0xb0。*广东松山职业技术学院课件制作组#include<reg.51.h>//头文件

main(){TMOD=0x01;//设T0为方式1TH0=0x3c;//设定1ms的定时初值

TL0=0xb0;//TR0=1;/启动T0While(1){while(!TF0);/等待定时器溢出

TF0=0;//清除溢出标志

P1_0=!P1_0;//取反

TH0=0x3c;//重装初值

TL0=0xb0;}}*广东松山职业技术学院课件制作组3方式2应用方式2是定时/计数器自动重装载的操作方式,在这种方式下,定时/计数器T0和T1的工作是相同的,它的工作过程与方式0、方式1基本相同,只不过在溢出的同时,将8位二进制初值自动重装载,即在中断服务子程序中,不需要编程送初值,这里不再举例。定时/计数器T1工作在方式2时,可直接用作串行口波特率发生器。*广东松山职业技术学院课件制作组

【例4-3】设计用定时器T0控制4个LED滚动闪烁,要求闪烁时间为200us,硬件电路如图4-9所示。*广东松山职业技术学院课件制作组分析过程:利用T0的方式2定时,根据要求时间延时为200us,则初值计算为-200=0x38,TMOD的低四位是针对T0进行设置的,由于T0工作在方式2作为定时使用,因此M1M0=10,C/=0,于是可得TMOD=0x02。*广东松山职业技术学院课件制作组C51语言源程序为:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitB1=P0^0;sbitG1=P0^1;sbitR1=P0^2;sbitY1=P0^3;uinti,j,k;*广东松山职业技术学院课件制作组voidmain(){i=j=k=0; P0=0xff; TMOD=0x02; //定时器0工作方式2 TH0=256-200; //200us定时

TL0=256-200; IE=0x82;//开中断

TR0=1; //启动定时器

while(1);}*广东松山职业技术学院课件制作组//T0中断函数voidLED_Flash_and_Scroll()interrupt1{ if(++k<35) return; //定时中断若干次后执行闪烁

k=0; switch(i) { case0: B1=~B1;break; case1: G1=~G1;break; case2: R1=~R1;break; case3: Y1=~Y1;break; default:i=0; } if(++j<300)return; //每次闪烁持续一段时间

j=0; P0=0xff;//关闭显示

i++; //切换到下一个LED}*广东松山职业技术学院课件制作组定时/计数功能与中断一样,都是单片机的常用功能。两者经常同时用在一起使用,因此在单片机的中断、定时综合应用实例的程序编制过程中,要注意以下几点:1.选择合适的中断和定时/计数方式例如,外部中断是采用电平触发还是脉冲下降沿触发;定时/计数是采用自动重装方式还是每次定时结束后用软件重装。2.确定定时结束的判别方式,是用中断还是查询如果采用中断,与其他中断的优先级如何确定,是否会影响系统的功能3.正确初始化和合理分配控制功能四、中断与定时/计数器的综合应用

*广东松山职业技术学院课件制作组【举例】用计数器中断实现100以内的按键计数:要求用T0计数器,中断实现按键计数。*广东松山职业技术学院课件制作组分析:由于计数寄存器初值为1,因此P3.4引脚的每次负跳变都会触发T0中断,实现计数值累加。计数器的清零用外部中断0控制。电路图如图4-10所示。*广东松山职业技术学院课件制作组4.4项目实施4.4.1硬件设计*广东松山职业技术学院课件制作组4.4.2软件设计*广东松山职业技术学院课件制作组4.4.2软件设计C51chengxu见书本*广东松山职业技术学院课件制作组4.4.3仿真调试

一、使用KeilC51编译源程序*广东松山职业技术学院课件制作组二、使用Proteus系统仿真软件调试*广东松山职业技术学院课件制作组三、动手做名称规格数量主要功能或用途单片机AT89C511控制核心晶振12MHz1晶振电路电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论