1 / 109

第 5 章 定时 / 计数器和中断 5 .1 实 训 概 要

第 5 章 定时 / 计数器和中断 5 .1 实 训 概 要 MCS-51 单片机内部有两个定时 / 计数器 T0 和 T1 ( 8032 有三个),它们都是 16 位的加法计数器,可用于定时控制或对外部事件产生的脉冲信号进行计数,也可作为串行口的波特率发生器。中断系统是单片机系统的重要组成部分。利用中断技术能够更好地发挥单片机系统的处理能力,有效解决慢速工作的外部设备与快速工作的 CPU 之间的矛盾,从而提高 CPU 的工作效率,提高实时处理能力。. 实训内容: 方波发生器。 外部工件计数器。 外部脉冲宽度测试器。 中断控制研究。 四人抢答器的中断控制.

nura
Download Presentation

第 5 章 定时 / 计数器和中断 5 .1 实 训 概 要

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第5章 定时/计数器和中断 5 .1 实 训 概 要 MCS-51单片机内部有两个定时/计数器T0和T1(8032有三个),它们都是16位的加法计数器,可用于定时控制或对外部事件产生的脉冲信号进行计数,也可作为串行口的波特率发生器。中断系统是单片机系统的重要组成部分。利用中断技术能够更好地发挥单片机系统的处理能力,有效解决慢速工作的外部设备与快速工作的CPU之间的矛盾,从而提高CPU的工作效率,提高实时处理能力。

  2. 实训内容: 方波发生器。 外部工件计数器。 外部脉冲宽度测试器。 中断控制研究。 四人抢答器的中断控制

  3. 预备知识: 定时与计数的区别 定时:对内部脉冲以机器周期为单位进行加法计数。 计数:对外部事件的脉冲进行加法计数。 实现定时和计数控制的关键是掌握TMOD和TCON各位含义。

  4. 2.特殊功能寄存器TMOD和TCON功能介绍 (1)定时/计数器方式寄存器TMOD TMOD是一个8位特殊功能寄存器,用于控制定时/计数器T0和T1的操作方式。其字节地址为89H。其中,高4位控制T1,低4位控制T0。低4位中各位的含义与高4位类似。各位具体含义如下:

  5. GATE:门控位。当GATE=1时,T1的启动受外来自外部中断1的信号和启动位TR1共同控制;当GATE=0时,T1的启动只受TR1控制。GATE:门控位。当GATE=1时,T1的启动受外来自外部中断1的信号和启动位TR1共同控制;当GATE=0时,T1的启动只受TR1控制。 C/T:定时器和计数器功能选择位。当C/T=0时,定时器;C/T=1时,计数器。 M1M0:工作方式选择位。具体见表5-1所示。

  6. 2)定时/计数器控制寄存器TCON TCON也是一个8位特殊功能寄存器,用于控制定时/计数器T0和T1的运行。其字节地址为88H。高4位控制定时/计数器,低4位用于中断控制。各位具体含义如下:

  7. TF1:T1的中断溢出标志位。当TF1=1时,表示T1有中断申请发出;TF1=0时,表示无中断申请或中断申请已被清除。 TF1:T1的中断溢出标志位。当TF1=1时,表示T1有中断申请发出;TF1=0时,表示无中断申请或中断申请已被清除。 TR1:T1的启动位。当GATE=1时,外部中断1和TR1共同为“1”才启动T1;当GATE=0时,TR1为“1”启动T1。 TF0:T0的中断溢出标志位。 TR0:T0的启动位。 IE1:的中断请求标志位。IE1=1,外部中断1有中断申请发出;IE1=0, 的中断请求已被清除。

  8. IE0:的中断请求标志位。IE0=1,外部中断0有中断申请发出;IE0=0,的中断请求已被清除。IE0:的中断请求标志位。IE0=1,外部中断0有中断申请发出;IE0=0,的中断请求已被清除。 IT0:中断触发方式控制位。当IT0=0时,为电平触发方式,低电平触发;当IT0=1时,为边沿触发方式,下降沿触发。 IT1:中断触发方式控制位。与IT0类似。 3.定时/计数器的工作方式

  9. (1)方式0 方式0下T0和T1都是13位的定时/计数器。其中高8位为THX,低5位为TLX。定时时间公式和计数公式分别为: 定时时间=(213-TX初值)×机器周期 计数个数= 213-TX初值 (2)方式1 方式1下T0和T1都是16位的定时/计数器。其中高8位为THX,低8位为TLX。定时时间公式和计数公式分别为: 定时时间=(216-TX初值)×机器周期 计数个数= 216-TX初值

  10. (3)方式2 • 方式2下T0和T1都是常数自动重装的8位定时/计数器。其中TLX可用作8位计数器,THX可用来装初始值。定时时间公式和计数公式分别为: • 定时时间=(28-TLX初值)×机器周期 • 计数个数= 28-TX初值

  11. (4)方式3 方式3下T0被拆成两个独立的8位定时/计数器TH0和TL0。其中,TL0用原来T0的控制位来控制,既可定时也可计数。而TH0只做简单的定时控制,它占用T1的控制位。这种工作方式不适用于T1。定时时间公式与方式2相同。 定时时间公式中THx表示TH0(或TH1),TLx表示TL0(或TL1)。 4.定时/计数器的最大定时时间和最大计数数值

  12. (1)最大定时时间 方式0:Tmax=213×2μs=16384μs≈0.016s 方式1:Tmax=216×2μs=131072μs≈0.13s 方式2、3:Tmax=28×2μs=512μs≈0.51ms (2)最大计数数值 方式0:n=213=8192 方式1:n=216=65536 方式2、3:n=28=256

  13. 5.门控位的作用 • 由定时/计数器方式寄存器TMOD可知,门控位GATE用来启动T0或T1。当GATE=0时,TR0或TR1置“1”就可以启动定时/计数器;当GATE=1时,需要TR0或TR1为“1”且也必须为“1”,才能启动T0或T1。利用门控位这个特性,可以测量外部脉冲信号的正脉冲宽度。方法是: • 设置TMOD的门控位为“1”,在被测脉冲的低电平时使TR1=1,但T1并不启动计数。

  14. 按下手动脉冲,则为高电平,T1开始计数。 再按下手动脉冲,结束被测脉冲高电平,从T1中取出计数值送显示器显示。 为了显示T1计数值,还应明确显示器接口的字形口和字位口地址及显示方法。 6.与中断有关的特殊功能寄存器简介 (1)串行口控制寄存器SCON SCON 是一个8位特殊功能寄存器。其字节地址为98H。用来锁存串行口中断标志。串行口中断标志分为发送中断标志和接收中断标志。具体如下:

  15. TI:串行口发送中断标志位。CPU将一个数据写入发送缓冲器SBUF后,就启动发送器工作。此时,串行口若以方式0发送,每发送完一个字节数据,由硬件置“1”TI;若以其它工作方式发送数据时,在发送停止位时置“1”TI。TI=1表示串行口正在向CPU发出中断申请。TI:串行口发送中断标志位。CPU将一个数据写入发送缓冲器SBUF后,就启动发送器工作。此时,串行口若以方式0发送,每发送完一个字节数据,由硬件置“1”TI;若以其它工作方式发送数据时,在发送停止位时置“1”TI。TI=1表示串行口正在向CPU发出中断申请。

  16. RI:串行口接收中断标志位。在串行口允许接收时,每接收一串数据,由硬件置“1”RI。同样,CPU响应TI中断后,必须由软件清“0”RI。RI:串行口接收中断标志位。在串行口允许接收时,每接收一串数据,由硬件置“1”RI。同样,CPU响应TI中断后,必须由软件清“0”RI。 (2)中断允许寄存器IE 中断允许寄存器IE是一个8位的特殊功能寄存器,其字节地址为A8H。用来控制中断的禁止与允许。具体如下:

  17. EA:CPU中断总允许位。EA=1,CPU允许中断;EA=0,CPU禁止所有中断请求。EA:CPU中断总允许位。EA=1,CPU允许中断;EA=0,CPU禁止所有中断请求。 EX0:外部中断0()中断允许位。EX0=1,允许中断;EX0=0,禁止中断。 ET0:定时/计数器T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。 EX1:外部中断1()中断允许位。EX1=1,允许中断;EX0=0,禁止中断。 ET1:定时/计数器T1中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。

  18. ES:串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。 (3)中断优先级寄存器IP 中断优先级寄存器IP是一个8位的特殊功能寄存器,其字节地址为B8H。MCS-51中断优先级分为高优先级和低优先级两级,由中断优先级寄存器IP设定中断源的优先级别。具体如下:

  19. PX0:外部中断0()中断优先级控制位。PX0=1,设定为高优先级;PX0=0,设定为低优先级。PX0:外部中断0()中断优先级控制位。PX0=1,设定为高优先级;PX0=0,设定为低优先级。 PT0:定时/计数器T0中断优先级控制位。PT0=1,设定T0为高优先级;PT0=0,设定T0为低优先级。 PX1:外部中断1()中断优先级控制位。PX1=1,设定为高优先级;PX1=0,设定为低优先级。 PT1:定时/计数器T1中断优先级控制位。PT1=1,设定T1为高优先级;PT1=0,设定T1为低优先级。 PS:串行口中断优先级控制位。PS=1,设定串行口为高优先级;PS=0,设定串行口为低优先级。

  20. 5.2 实训17 方波发生器 5.2.1 实训目的 通过本节实训,主要学习下面内容: 单片机内部定时器的硬件结构及其应用。 T0和T1的两种用途之一:作定时器实现定时控制。 通过实训,掌握TMOD和TCON的各位的意义,学会可编程控制方法。

  21. 5.2.2 实训要求 设单片机晶振频率为6MHz。用单片机内部定时器T0方式0编程,在P1.0脚上产生200μs定时、周期为400μs方波,并用示波器观察波形,读出方波周期。 修改程序,产生方式0和方式1下最大定时,并观察接在P1.0脚上发光二极管亮灭变化。 仍然产生周期为400μs方波,要求用T1方式1编程,试修改程序。 若用T0方式0产生1秒的定时,试编写控制程序。观察发光二极管的亮灭变化情况。

  22. 若用T0方式2产生矩形脉冲序列,如图5-1所示,50μs定时,周期350μs。试编写控制程序。并用示波器观察波形,读出方波周期。若用T0方式2产生矩形脉冲序列,如图5-1所示,50μs定时,周期350μs。试编写控制程序。并用示波器观察波形,读出方波周期。

  23. 5.2.3 实训器材 MCS-51单片机开发系统,示波器,发光二极管 5.2.4 程序设计思路 首先根据问题要求设置定时/计数器方式寄存器TMOD初值;其次计算不同工作方式下T0或T1的定时初值,并用数据传送指令将所得初值装入相应寄存器中。第三,通过程序对定时/计数器控制寄存器TCON中相应位置位,启动计数器开始“计数”,并用查询方式或中断方式判别计数是否溢出。 5.2.5 硬件电路原理图 实训硬件电路如图5-2所示。

  24. 5.2.6 实训步骤 (1)定时200μs、周期为400μs方波。 理解实训程序表5-2,并为每条指令加注释。 将机器码送入单片机开发系统。 连续执行程序,并在P1.0脚和单片机的“地”之间用示波器观察产生的波形,读出方波周期。 修改程序,在方式0、方式1下产生最大定时,并观察发光二极管的变化。

  25. (2)用T1方式1编程,仍然产生周期为400μs方波,试修改程序:(2)用T1方式1编程,仍然产生周期为400μs方波,试修改程序: 重新设置定时/计数器方式寄存器TMOD初值。 重新计算T1方式1下定时400μs的定时初值。 将修改后的机器码送入单片机开发系统。 连续执行程序,并在P1.0脚和单片机的“地”之间用示波器观察产生的波形,读出方波周期。

  26. 用T0方式0产生1秒的定时 • 用T0方式0产生1秒的定时的实训控制程序见表5-3所示。因为T0方式0是13位计数器,最大定时为8192μs。可选择定时5ms,再循环200次,定时1秒。经过计算,其定时初值为 (TH0)=63H,(TL0)=18H,(TMOD)=00H。 • 理解实训程序表5-3,并为每条指令加注释。 • 将机器码送入单片机开发系统。 • 连续执行程序,并在P1.0脚接发光二极管,观察发光二极管的亮灭变化。 • (4)产生定时50μs,周期350μs的矩形脉冲序列

  27. 用T0方式2进行两种定时,定时50μs高电平、定时300μs低电平。用T0方式2进行两种定时,定时50μs高电平、定时300μs低电平。 50μs T0方式2定时初值为: E7H 300μs T0方式2定时初值为:6AH (TMOD)=02H 理解实训程序表5-4,并为每条指令加注释。 将机器码送入单片机开发系统。 连续执行程序,并在P1.0脚用示波器,观察产生方波,读出其周期和幅度。

  28. 提示: 当T0最大定时其初值应为0,但两种工作方式的最大定时时间不同。 当定时时间太短时,则看不到发光二极管闪烁,这时候可用示波器观察电平变化。 实质上,利用定时器实现定时, CPU只启动计数器,而不干预其计数过程。

  29. 5.3 实训18 外部工件计数器 5.3.1 实训目的 通过本节实训,主要学习下面内容: 单片机内部计数器的硬件结构及其应用。 T0和T1的两种用途之一:作计数器实现对外部脉冲进行计数控制。 通过实训,掌握TMOD和TCON的各位的意义,学会可编程控制方法。

  30. 5.3.2 实训要求 手动产生脉冲信号,进行一位脉冲计数,计数脉冲由T0(P3.4)引脚输入,并将所计脉冲个数在LED七段显示器上显示出来。 利用脉冲信号源产生连续脉冲信号,并在单片机显示器上显示多位脉冲个数。 5.3.3 实训器材 MCS-51单片机开发系统

  31. 5.2.4 程序设计思路 首先根据问题要求设置定时/计数器方式寄存器TMOD初值,本实训控制为计数控制;其次计算不同工作方式下T0或T1的计数初值,并用数据传送指令将所得初值装入相应寄存器中。第三,通过程序对定时/计数器控制寄存器TCON中相应位置位,启动计数器开始计数,并用查询方式或中断方式判别计数是否溢出。 5.3.5 硬件电路原理图 实训硬件电路如图5-3所示。

  32. 5.3.6 实训步骤 (1)按照实训原理图5-3,将P3.4脚与单脉冲输出插孔相连。 (2)仔细阅读并理解实训程序,给每条指令加注释,并画出程序流程图。 (3)将实训程序送入单片机开发系统中,并检查程序是否正确。 (4)输入程序首地址,连续执行程序,观察在按动脉冲按键之前显示器上是否显示全“0”。

  33. (5)按动脉冲按键,观察在脉冲负跳变时的计数,显示数字是否与脉冲个数相符。(5)按动脉冲按键,观察在脉冲负跳变时的计数,显示数字是否与脉冲个数相符。 (6)将P3.4脚与连续脉冲插孔相连,执行表5-6实训程序,显示多个连续脉冲个数。 5.3.7 实训程序 1.一位计数脉冲实训程序见表5-5所示。 2.多位计数脉冲实训程序见表5-6所示。

More Related