单片机仿真与制作(基于Proteus ISIS)课件 任务11.用定时器T0中断控制LED灯闪烁_第1页
单片机仿真与制作(基于Proteus ISIS)课件 任务11.用定时器T0中断控制LED灯闪烁_第2页
单片机仿真与制作(基于Proteus ISIS)课件 任务11.用定时器T0中断控制LED灯闪烁_第3页
单片机仿真与制作(基于Proteus ISIS)课件 任务11.用定时器T0中断控制LED灯闪烁_第4页
单片机仿真与制作(基于Proteus ISIS)课件 任务11.用定时器T0中断控制LED灯闪烁_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

目录【任务要求】【学习目标】【知识链接】1.定时/计数器中断的概念2.定时/计数器工作方式寄存器TMOD3.定时/计数器控制寄存器TCON【任务实施】【任务小结】【复习思考】

任务要求制作一个单片机最小系统电路板要求用定时器T0中断来控制LED灯闪烁学习目标了解单片机的定时器/计数器的结构;掌握定时器控制寄存器TCON、工作方式寄存器TMOD的设置方法;熟悉单片机定时器的编程方法。知识链接-1.定时/计数器中断的概念

什么是计数?所谓计数是指对外部事件进行计数,外部事件的发生以输入脉冲的方式表示,因此计数功能的实质就对外来脉冲进行计数,51单片机有两个计数器T0和T1(52单片机还有T2),P3.4和P3.5分别是这两个计数器的计数输入端。外部输入的脉冲在负跳变时有效,进行计数器加1。

什么是定时?定时器是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机内部晶体振荡器,它的脉冲频率和周期恒定,因此计一定数量的脉冲的时间是确定的,所以定时器功能实质还是对单片机内部脉冲的计数。

知识链接-1.定时/计数器中断的概念51单片机内部共有两个16位可编程的定时器/计数器,分别是Timer0和Timer1(也就是T0和T1)。它们既有定时功能又有计数功能,通过设置与它们相关的特殊功能寄存器可以选择启用定时功能或计数功能。需要注意的是,这个定时器系统是单片机内部一个独立的硬件部分,它与CPU和晶振通过内部某些控制线连接并相互作用,CPU一旦设置开启定时功能后,定时器便在晶振的作用下自动开始计时,当定时器的计数器计满后,会产生中断,即通知CPU该如何处理。定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。

知识链接-1.定时/计数器中断的概念定时器/计数器的应用可以用中断的方式进行,当定时器/计数器达到定时时间/计数设定值时出现中断,这时CPU暂停正在执行的程序1,调入定时/计数中断预先设定的另一个程序2,执行完成设定的程序2后,再返回执行暂停的程序1。就像是生活中:你一开始在看书,到11点钟闹钟响了(提醒你去煮饭),你暂停看书先去煮饭,煮上饭后,再接着去看书。

知识链接-2.定时器/计数器工作方式寄存器TMODTMOD是定时器/计数器的工作方式寄存器

位号TMOD.7TMOD.6TMOD.5TMOD.4TMOD.3TMOD.2TMOD.1TMOD.0符号GATEC/TM1M0GATEC/TM1M0

GATE:门控位GATE=1,定时/计数器的运行受外部引脚输入电平的控制,即INT0控制T0运行,INT1控制T1运行。GATE=0,定时/计数器的运行不受外部引脚输入电平的控制。

C/T:计数器模式和定时器模式选择位C/T=1,选择计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲计数。C/T=0,选择定时器模式。

M1M0:工作方式选择位M1M0工作方式位数计数范围功能说明00Mode013位0~819101Mode116位0~6553510Mode28位0~255具有自动加载功能11Mode38位0~255T0分成两个8位计数器,T1停止计数知识链接-2.定时器/计数器工作方式寄存器TMODMode0逻辑框图

Mode0是13位计数器,其最大计数为二进制:1111111111111,即十进制8192,也就是说,每次计数到8192都会产生溢出,置位TF0。知识链接-2.定时器/计数器工作方式寄存器TMODMode0定时时间的计算公式:t=(8192-x)*(12÷晶振频率)t为定时的时间,单位为:usx为计数器的计数初值晶振频率的单位为:MHz

知识链接-2.定时器/计数器工作方式寄存器TMODMode0定时时间的计算公式:t=(8192-x)*(12÷晶振频率)现在来计算定时2ms应该如何计算,由于实验板的晶振为12MHz,需要定时2ms也就是2000us,然后我们把其参数代入公式:2000=(8192-x)*(12÷12)求得:x=6192,化成十六进制,x=0x18CCTH0和TL0的初值为如下:TH0:00011000TL0:

00001100(注意,TL0只用了低5位,高3位没有用到填入0)具体指令如下:

TH0=0x18;//也可写为:“TH0=(8192-2000)/256;”设置T0定时初值高5位TL0=0x0c;//也可写为:“TL0=(8192-2000)%256;”设置T0定时初值低8位知识链接-2.定时器/计数器工作方式寄存器TMODMode1逻辑框图

Mode1与Mode0的操作是完全相同的,只是Mode1是16位计数器,而Mode0是13位计数器。Mode1定时时间的计算公式:

t=(65536-x)*(12÷晶振频率)知识链接-2.定时器/计数器工作方式寄存器TMODMode2逻辑框图

因为Mode2只有8位数结构,所以计数范围十分有限。Mode2定时时间的计算公式:

t=(256-x)*(12÷晶振频率)知识链接-2.定时器/计数器工作方式寄存器TMODMode3逻辑框图

知识链接-2.定时器/计数器工作方式寄存器TMOD

在Mode3下它被拆分为两个独立的计数器TL0与TH0。上面是拆分出来的8位定时/计数器,其使用跟前面介绍的几种工作方式是完全相同的。Mode3定时时间的计算公式:

t=(256-x)*(12÷晶振频率)知识链接-3.定时器/计数器控制寄存器TCON

TF0(TF1)溢出中断标志位。当片内定时器/计数器T0(定时器/计数器T1)计数溢出的时候,由单片机自动置1,而当进入了中断服务程序之后再由单片机自动清0。TR0(TR1)启动位。TR0(TR1)=1时,启动TR0(TR1)TR0(TR1)=0时,关闭TR0(TR1)IE0(IE1)和IT0(IT1)与外部中断相关,在前述任务9中已经有详述。TCON是控制寄存器位号TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0符号TF1TR1TF0TR0IE1IT1IE0IT0与定时器相关与外部中断相关知识链接-3.定时器/计数器控制寄存器TCON

定时器/计数器的中断子程序第一行的格式为:例如,要定义一个Timer1的中断子程序,其名称是“Timer1”,则该中断子程序应声明为:void

中断子程序名称(void)interrupt

中断编号

using

寄存器组voidTimer1(void)interrupt

3;任务实施1)准备元器件序号种类标号参数序号种类标号参数1电阻R1-R8220*85电容C310uF2电阻R910k6单片机U1AT89C513电容C130pF7发光二极管D1-D8LED红*84电容C230pF8晶振X111.0592M任务实施2)搭建硬件电路仿真电路图与配套实验板对应的按键电路相同。该电路图可用于仿真和手工制作,前述任务已经将本次任务的电路制作完毕,本次任务无需另外再制作。任务实施3)程序设计主程序只需要完成定时器T0的初始化即可,完成初始化之后就可原地等待,不需要任何其他的动作。初始化的动作为:先设定好TCON、TMOD、IE寄存器,然后计算出定时计数初值并赋给TH0和TL0。若需要定时250ms,可以分成单次定时50ms,共定时5次即可实现,因此可计算出定时初值为TH0=(65536-50000)/256,TL0=(65536-50000)%256。在定时器中断子程序里,需要完成LED取反的动作,同时为确保定时时间为50ms,每次定时还需要重新设置定时初值。任务实施3)程序设计用定时器T0中断控制LED灯闪烁程序流程任务实施3)程序设计用定时器T0中断控制LED灯闪烁主程序清单main() //主程序开始{IE=0x82; //启用T0中断TMOD=0x01; //设定T0为mode1TH0=TH_M1; //设置T0定时初值高8位TL0=TL_M1; //设置T0定时初值低8位TR0=1; //启动T0LED=0xf0; //LED初值=11110000,右4灯亮while(1); //无穷循环,程序停滞} //主程序结束任务实施4)使用Proteus仿真将“任务11.hex”加载(相同于实际单片机程序的下载)到仿真电路图的单片机中,在仿真中,我们将看到8个LED在不断全灯闪烁,闪烁的频率为2Hz。详细仿真演示可直接打开“任务11.用定时器T0中断控制led灯闪烁.DSN”任务实施5)使用配套实验板调试所编写的程序将“任务11.hex”程序下载到单片机中,给实验板上电后,将看到与仿真中一样的现象。任务11详细的演示录像见随书光盘中的视频文件“\演示录像\任务11.用定时

温馨提示

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

最新文档

评论

0/150

提交评论