片机原理与应用第6章.ppt

上传人:wuy****n92 文档编号:54012256 上传时间:2022-10-27 格式:PPT 页数:62 大小:440KB
返回 下载 相关 举报
片机原理与应用第6章.ppt_第1页
第1页 / 共62页
片机原理与应用第6章.ppt_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《片机原理与应用第6章.ppt》由会员分享,可在线阅读,更多相关《片机原理与应用第6章.ppt(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第6 6章章 定时器定时器/计数器计数器(课时:(课时:8 8学时)学时)http:/教学目的教学目的 n了解定时器了解定时器/计数器的结构与工作原理。计数器的结构与工作原理。n掌握定时器掌握定时器/计数器的四种工作方式的特点及应用。计数器的四种工作方式的特点及应用。n用定时器用定时器/计数器设计一个可产生一定频率方波的信号源。计数器设计一个可产生一定频率方波的信号源。n用定时器用定时器/计数器设计一个脉冲宽度调制计数器设计一个脉冲宽度调制(PWM)信号以控制直流电动机转速。信号以控制直流电动机转速。n用定时器用定时器/计数器设计一个用于流水生产线上的产品自动计数器。计数器设计一个用于流水生

2、产线上的产品自动计数器。n用定时器用定时器/计数器设计一个测量电平脉冲宽度的程序。计数器设计一个测量电平脉冲宽度的程序。n用定时器用定时器/计数器设计一个电子音乐程序。计数器设计一个电子音乐程序。n用定时器用定时器/计数器设计一个电子音乐程序。计数器设计一个电子音乐程序。学习重点和难点学习重点和难点 n定时器/计数器的初始化。n定时器/计数器与中断的综合应用。http:/第第6 6章章 定时器定时器/计数器计数器n6.1 6.1 定时器定时器/计数器的结构与原理计数器的结构与原理 n6.2 6.2 定时器定时器/计数器的控制计数器的控制 n6.3 6.3 定时器定时器/计数器的四种工作方式及应

3、用计数器的四种工作方式及应用 n本章小结本章小结n习题习题 http:/6.1 6.1 定时器定时器/计数器的计数器的 结构与原理结构与原理 n6.1.1 6.1.1 定时器定时器/计数器的结构计数器的结构 n6.1.2 6.1.2 定时器定时器/计数器的原理计数器的原理 n6.1.3 6.1.3 定时器定时器/计数器的功能计数器的功能 http:/6.1.1 6.1.1 定时器定时器/计数器的结构计数器的结构n8051单片机内部设有两个单片机内部设有两个16位可编程定时器位可编程定时器/计数器,简计数器,简称为定时器称为定时器0(T0)和定时器和定时器1(T1)。n16位的定时器位的定时器/

4、计数器分别由两个计数器分别由两个8位寄存器组成,即:位寄存器组成,即:T0由由TH0和和TL0构成,构成,T1由由TH1和和TL1构成。每个寄存器均构成。每个寄存器均可单独访问,这些寄存器是用于存放定时初值或计数初值可单独访问,这些寄存器是用于存放定时初值或计数初值的。的。n有一个有一个8位的定时器方式寄存器位的定时器方式寄存器TMOD和一个和一个8位的定时器位的定时器控制寄存器控制寄存器TCON。这些寄存器之间是通过内部总线和控制。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的,定时器逻辑电路连接起来的,定时器/计数器的工作方式、定时时计数器的工作方式、定时时间和启停控制通过由指令来确

5、定这些寄存器的状态来实现。间和启停控制通过由指令来确定这些寄存器的状态来实现。TMOD主要用于设定定时器的工作方式,主要用于设定定时器的工作方式,TCON主要用于控主要用于控制定时器的启动与停止,并保存制定时器的启动与停止,并保存T0、T1的溢出和中断标志。的溢出和中断标志。http:/6.1.1 6.1.1 定时器定时器/计数器的结构计数器的结构 定时器定时器/计数器结构框图计数器结构框图 http:/6.1.2 6.1.2 定时器定时器/计数器的原理计数器的原理 n16位的定时器位的定时器/计数器实质上是一个加计数器实质上是一个加l计数器,可实现定计数器,可实现定时和计数两种功能,其功能由

6、软件控制和切换。定时器属硬时和计数两种功能,其功能由软件控制和切换。定时器属硬件定时和计数,是单片机中效率高而且工作灵活的部件。件定时和计数,是单片机中效率高而且工作灵活的部件。n在定时器在定时器/计数器开始工作之前,计数器开始工作之前,CPU必须将一些命令必须将一些命令(称称为控制字为控制字)写入定时器写入定时器/计数器。将控制字写入定时器计数器。将控制字写入定时器/计数计数器的过程叫定时器器的过程叫定时器/计数器的初始化。计数器的初始化。n在初始化程序中,要将工作方式控制字写入定时器方式寄存在初始化程序中,要将工作方式控制字写入定时器方式寄存器器(TMOD),工作状态控制字,工作状态控制字

7、(或相关位或相关位)写入定时器控制寄存写入定时器控制寄存器器(TCON),赋定时,赋定时/计数初值给计数初值给TH0(TH1)和和TL0(TL1)。http:/6.1.2 6.1.2 定时器定时器/计数器的原理计数器的原理n定时器定时器/计数器的定时功能。计数器的定时功能。l计数器的加计数器的加1信号由振荡器的信号由振荡器的12分频信号产生,即每过一分频信号产生,即每过一个机器周期,计数器加个机器周期,计数器加1,直至计满溢出。,直至计满溢出。l定时器的定时时间与系统的时钟频率有关。因一个机器周定时器的定时时间与系统的时钟频率有关。因一个机器周期等于期等于12个时钟周期,所以计数频率应为系统时

8、钟频率的个时钟周期,所以计数频率应为系统时钟频率的十二分之一。如果晶振频率为十二分之一。如果晶振频率为12MHz,则机器周期为,则机器周期为1 s。通过改变定时器的定时初值,并适当选择定时器的。通过改变定时器的定时初值,并适当选择定时器的长度长度(8位、位、13位或位或16位位),可以调整定时时间。,可以调整定时时间。http:/6.1.2 6.1.2 定时器定时器/计数器的原理计数器的原理n定时器定时器/计数器的计数功能。计数器的计数功能。l通过外部计数输入引脚通过外部计数输入引脚T0(P3.4)和和T1(P3.5)对外部信号对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器计数,

9、外部脉冲的下降沿将触发计数。计数器在每个机器周期的周期的S5P2期间采样引脚输入电平,若一个机器周期期间采样引脚输入电平,若一个机器周期S5P2期间采样值为期间采样值为1,下一个机器周期,下一个机器周期S5P2期间采样值期间采样值为为0,则计数器加,则计数器加1,再下一个机器周期,再下一个机器周期S3P1期间,新的期间,新的计数值装入计数器。计数值装入计数器。l因检测一个由因检测一个由1至至0的跳变需要两个机器周期,故外部信号的跳变需要两个机器周期,故外部信号的最高计数频率为时钟频率的二十四分之一。如果晶振频的最高计数频率为时钟频率的二十四分之一。如果晶振频率为率为12MHz,则最高计数频率为

10、。虽然对外部输入信号的,则最高计数频率为。虽然对外部输入信号的占空比无特殊要求,但为了确保给定电平在变化前至少被占空比无特殊要求,但为了确保给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。在一个机器周期以上。http:/6.1.3 6.1.3 定时器定时器/计数器的功能计数器的功能 定时器定时器/计数器具有定时和计数两种功能,应用范围如下。计数器具有定时和计数两种功能,应用范围如下。1.定时与延时控制方面定时与延时控制方面 可产生定时中断信号,以设计出各种不同频率的信号源;产可产生定时中断信号,以设计

11、出各种不同频率的信号源;产生定时扫描信号,对键盘进行扫描以获得控制信号,对显示生定时扫描信号,对键盘进行扫描以获得控制信号,对显示器进行扫描以不间断地显示数据。器进行扫描以不间断地显示数据。2.测量外部脉冲方面测量外部脉冲方面 对外部脉冲信号进行计数可测量脉冲信号的宽度、周期,也对外部脉冲信号进行计数可测量脉冲信号的宽度、周期,也可实现自动计数。可实现自动计数。3.监控系统工作方面监控系统工作方面 对系统进行定时扫描,当系统工作异常时,使系统自动复位,对系统进行定时扫描,当系统工作异常时,使系统自动复位,重新启动以恢复正常工作。重新启动以恢复正常工作。http:/6.2 6.2 定时器定时器/

12、计数器的控制计数器的控制 n6.2.1 6.2.1 定时器方式寄存器定时器方式寄存器TMOD TMOD n6.2.2 6.2.2 定时器控制寄存器定时器控制寄存器TCONTCONhttp:/6.2.1 6.2.1 定时器方式寄存器定时器方式寄存器TMODTMOD 定时器方式寄存器定时器方式寄存器TMOD的作用是设置的作用是设置T0、T1的工作方式。的工作方式。TMOD的格式:的格式:各位的功能说明:各位的功能说明:(1)GATE:门控位。:门控位。GATE=0:软件启动定时器,即用指令使:软件启动定时器,即用指令使TCON中的中的TR1(TR0)置置1即可启动定时器即可启动定时器1(定时器定时

13、器0)。GATE=1:软件和硬件共同启动定时器,即用指令使:软件和硬件共同启动定时器,即用指令使TCON中的中的TR1(TR0)置置1时,只有外部中断时,只有外部中断INT0(INT1)引脚输入高电平时才能启动定时器引脚输入高电平时才能启动定时器1(定时器定时器0)。http:/6.2.1 6.2.1 定时器方式寄存器定时器方式寄存器TMODTMOD(2)C/T:功能选择位。:功能选择位。C/T=0时,以定时器方式工作。时,以定时器方式工作。C/T=1时,以计数器方式工作。时,以计数器方式工作。(3)M1、M0:方式选择位。:方式选择位。定时器工作方式选择位定义定时器工作方式选择位定义 M1

14、M0工作方式功能描述0 0方式013位计数器0 1方式116位计数器1 0方式2自动重装初值8位计数器1 1方式3定时器0:分为两个独立的8位计数器定时器1:无中断的计数器http:/6.2.2 6.2.2 定时器控制寄存器定时器控制寄存器TCONTCON 定时器控制寄存器定时器控制寄存器TCON的作用是控制定时器的启动与停的作用是控制定时器的启动与停止,并保存止,并保存T0、T1的溢出和中断标志。的溢出和中断标志。TCON的格式的格式:各位的功能说明:各位的功能说明:(1)TF1(TCON.7):定时器:定时器1溢出标志位。当定时器溢出标志位。当定时器1计满溢计满溢出时,由硬件自动使出时,由

15、硬件自动使TF1置置1,并申请中断。对该标志位有,并申请中断。对该标志位有两种处理方法,一种是以中断方式工作,即两种处理方法,一种是以中断方式工作,即TF1置置1并申请并申请中断,响应中断后,执行中断服务程序,并由硬件自动使中断,响应中断后,执行中断服务程序,并由硬件自动使TF1清清0;另一种以查询方式工作,即通过查询该位是否为;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,来判断是否溢出,TF1置置1后必须用软件使后必须用软件使TF1清清0。http:/6.2.2 6.2.2 定时器控制寄存器定时器控制寄存器TCONTCON 各位的功能说明:各位的功能说明:(2)TR1(TCO

16、N.6):定时器:定时器1启停控制位。启停控制位。GATE=0时,用软件使时,用软件使TR1置置1即启动定时器即启动定时器1,若用软件,若用软件使使TR1清清0则停止定时器则停止定时器1。GATE=1时,用软件使时,用软件使TR1置置1的同时外部中断的同时外部中断INT1的引的引脚输入高电平才能启动定时器脚输入高电平才能启动定时器1。(3)TF0(TCON.5):定时器:定时器0溢出标志位。其功能同溢出标志位。其功能同TF1。(4)TR0(TCON.4):定时器:定时器0启停控制位。其功能同启停控制位。其功能同TR1。(5)IE1(TCON.3):外部中断:外部中断1请求标志位。请求标志位。(

17、6)IT1(TCON.2):外部中断:外部中断1触发方式选择位。触发方式选择位。(7)IE0(TCON.1):外部中断:外部中断0请求标志位。请求标志位。(8)IT0(TCON.0):外部中断:外部中断0触发方式选择位。触发方式选择位。http:/6.3 6.3 定时器定时器/计数器的四种计数器的四种 工作方式及应用工作方式及应用 n6.3.1 6.3.1 定时器定时器/计数器的初始化计数器的初始化 n6.3.2 6.3.2 方式方式0 0及应用实例及应用实例 n6.3.3 6.3.3 方式方式1 1及应用实例及应用实例 n6.3.4 6.3.4 方式方式2 2及应用实例及应用实例 n6.3.

18、5 6.3.5 方式方式3 3 http:/6.3.1 6.3.1 定时器定时器/计数器的初始化计数器的初始化1.定时器定时器/计数器的初始化步骤计数器的初始化步骤 定时器定时器/计数器是一种可编程部件,在使用定时器计数器是一种可编程部件,在使用定时器/计数器计数器前,一般都要对其进行初始化,以确定其以特定的功能工前,一般都要对其进行初始化,以确定其以特定的功能工作。初始化的步骤如下。作。初始化的步骤如下。(1)确定定时器确定定时器/计数器的工作方式,确定方式控制字,并写入计数器的工作方式,确定方式控制字,并写入TMOD。(2)预置定时初值或计数初值,根据定时时间或计数次数,计预置定时初值或计

19、数初值,根据定时时间或计数次数,计算定时初值或计数初值,并写入算定时初值或计数初值,并写入TH0、TL0或或TH1、TL1。(3)根据需要开放定时器根据需要开放定时器/计数器的中断,给计数器的中断,给IE中的相关位赋中的相关位赋值。值。(4)启动定时器启动定时器/计数器,给计数器,给TCON中的中的TR1或或TR0置置1。http:/6.3.1 6.3.1 定时器定时器/计数器的初始化计数器的初始化2.定时初值或计数初值的计算方法定时初值或计数初值的计算方法 不同工作方式的定时初值或计数初值的计算方法如下表所不同工作方式的定时初值或计数初值的计算方法如下表所示。示。表中表中T 表示定时时间,表

20、示定时时间,T机机表示机器周期。表示机器周期。工作方式计数位数最大计数值最大定时时间定时初值计算公式计数初值计算公式方式013213=8192213T机X=213-T/T机X=213-计数值方式116216=65536216T机X=216-T/T机X=216-计数值方式2828=25628T机X=28-T/T机X=28-计数值http:/6.3.1 6.3.1 定时器定时器/计数器的初始化计数器的初始化【例【例1】用定时器用定时器0方式方式0,定时,定时5ms,以中断方式工作,进,以中断方式工作,进行程序初始化设计,晶振频率为行程序初始化设计,晶振频率为6MHz。解:用定时器解:用定时器0方式

21、方式0时,定时器时,定时器/计数器方式寄存器计数器方式寄存器TMOD低低4位中的位中的M1M0应取应取00;可设定为软件启动定时器,故;可设定为软件启动定时器,故GATE取取0;因用定时功能,;因用定时功能,C/T取取0;定时器方式寄存器;定时器方式寄存器TMOD高高4位为无关位,一般都取位为无关位,一般都取0,所以,所以TMOD应为应为00H。晶振频率为晶振频率为6MHz,T机机=12/fosc=12/(6 106)=2 s 定时初值定时初值X=213-T/T机机=213-5 103/2=8192-2500=5692 因因TL0的高的高3位未用,对计算出的定时初值位未用,对计算出的定时初值X

22、要进行修正,要进行修正,即在低即在低5位前插入位前插入3个个0,修正后的定时初值,修正后的定时初值 http:/6.3.1 6.3.1 定时器定时器/计数器的初始化计数器的初始化 定时器以中断方式工作,故将中断总允许位定时器以中断方式工作,故将中断总允许位EA和定时器和定时器0的的中断允许位中断允许位ET0置置1。参考程序:参考程序:75 89 00MOV TMOD,#00H;置定时器0为工作方式075 8C B1MOV TH0,#0B1H;定时初值的高8位75 8A 1CMOV TL0,#1CH;定时初值的低8位D2 AFSETB EA;开放中断总允许位D2 A9SETB ET0;开放定时器

23、0的中断允许位D2 8CSETB TR0;启动定时器0http:/6.3.2 6.3.2 方式方式0 0及应用实例及应用实例 n在方式在方式0下,以定时器下,以定时器0为例,定时器为例,定时器/计数器是一个由计数器是一个由TH0中的中的8位和位和TL0中的低中的低5位组成的位组成的13位加位加1计数器计数器(TL0中的中的高高3位不用位不用);若;若TL0中的第中的第5位有进位,直接进到位有进位,直接进到TH0中的中的最低位。定时器最低位。定时器/计数器计数器0方式方式0逻辑结构如下图所示。逻辑结构如下图所示。n当门控位当门控位GATE=0时,或门输出始终为时,或门输出始终为1,与门被打开,与

24、,与门被打开,与门的输出电平始终与门的输出电平始终与TR0的电平一致,实现由的电平一致,实现由TR0控制定控制定时器时器/计数器的启动和停止。若软件使计数器的启动和停止。若软件使TR0置置1,接通控制,接通控制开关,启动定时器开关,启动定时器0,13位加位加1计数器在定时初值或计数初计数器在定时初值或计数初值的基础上进行加值的基础上进行加1计数;溢出时,计数;溢出时,13位加位加1计数器为计数器为0,TF0由硬件自动置由硬件自动置1,并申请中断,同时,并申请中断,同时13位加位加1计数器继计数器继续从续从0开始计数。若软件使开始计数。若软件使TR0清清0,关断控制开关,停止,关断控制开关,停止

25、定时器定时器0,加,加1计数器停止计数。计数器停止计数。http:/6.3.2 6.3.2 方式方式0 0及应用实例及应用实例定时器/计数器0方式0逻辑结构 C/TC/Thttp:/6.3.2 6.3.2 方式方式0 0及应用实例及应用实例【例【例2】在输出周期为在输出周期为1 ms(频率频率1kHz)的方波,采用定时器的方波,采用定时器1方方式式0设计程序,晶振频率为设计程序,晶振频率为12MHz。解:根据题意,只要使每隔解:根据题意,只要使每隔500 s取反一次即可得到周期取反一次即可得到周期1 ms的的方波,因而方波,因而T1的定时时间为的定时时间为500 s。用定时器用定时器1方式方式

26、0时,定时器时,定时器/计数器方式寄存器计数器方式寄存器TMOD高高4位中位中的的M1M0应取应取00;可设定为软件启动定时器,故;可设定为软件启动定时器,故GATE取取0;因;因为用定时功能,为用定时功能,C/T取取0;定时器方式寄存器;定时器方式寄存器TMOD低低4位为无位为无关位,一般都取关位,一般都取0,所以,所以TMOD应为应为00H。晶振频率为晶振频率为12MHz,T机机=12/fosc=12/(12 106)=1 s 定时初值定时初值 X=213-T/T机机=213-500/1=8192-500=7692 因因TL1的高的高3位未用,对计算出的定时初值位未用,对计算出的定时初值X

27、要进行修正,即在要进行修正,即在低低5位前插入位前插入3个个0,修正后的定时初值,修正后的定时初值 http:/6.3.2 方式方式0及应用实例及应用实例地址机器码程序注释 ORG 0000H0000H02 00 50 LJMP MAIN ORG 0050H0050HD2 90MAIN:SETB P1.0;置P1.0初始状态0052H75 89 00 MOV TMOD,#00H;置定时器1为工作方式00055H75 8D F1 MOV TH1,#0F0H;置500s定时初值0058H75 8B 0C MOV TL1,#0CH005BHD2 8E SETB TR1;启动定时器1005DH10 8

28、F 02 LP1:JBC TF1,LP2;查询计数溢出0060H80 FB SJMP LP1;未到500s继续计数0062H75 8D F1 LP2:MOV TH1,#0F0H;重新置500s定时初值0065H75 8B 0C MOV TL1,#0CH0068HB2 90 CPL P1.0;输出取反006AH80 E4 SJMP LP1;重复循环 END参考程序:http:/6.3.2 6.3.2 方式方式0 0及应用实例及应用实例【例【例3】P1口做输出口,控制八只灯口做输出口,控制八只灯(P1口输出低电平时灯被口输出低电平时灯被点亮点亮),同一时间只有两盏灯点亮,按一定的规律每隔,同一时间

29、只有两盏灯点亮,按一定的规律每隔1秒秒循环点亮下一盏灯;采用定时器循环点亮下一盏灯;采用定时器0方式方式0设计延时子程序,设计延时子程序,定时时间为定时时间为5ms,晶振频率为,晶振频率为6MHz。解:延时子程序要求延时解:延时子程序要求延时1s,又规定定时时间,又规定定时时间5ms,可在硬件,可在硬件定时的基础上再加软件计数来实现定时的基础上再加软件计数来实现1s的延时;的延时;5ms定时初定时初值的计算参见例值的计算参见例1,软件计数值为,软件计数值为200。用定时器用定时器0方式方式0时,定时器时,定时器/计数器方式寄存器计数器方式寄存器TMOD低低4位中的位中的M1M0应取应取00;可

30、设定为软件启动定时器,故;可设定为软件启动定时器,故GATE取取0;因用定时功能,;因用定时功能,C/T取取0;定时器方式寄存器;定时器方式寄存器TMOD高高4位为无关位,一般都取位为无关位,一般都取0;所以;所以TMOD应为应为00H。设定时器设定时器0的溢出标志位以查询方式工作。的溢出标志位以查询方式工作。http:/主程序:ORG 0000H0000H21 50 AJMP MAIN ORG 0150H0150H7A 06 MAIN:MOV R2,#06H0152H74 FC MOV A,#0FCH;灯点亮的初始状态0154HF5 90 NEXT:MOV P1,A0156H51 00 AC

31、ALL DELAY0158H23 RL A;点亮左边一盏灯0159HDA F9 DJNZ R2,NEXT015BH7A 06 MOV R2,#06H015DHF5 90 NEXT1:MOV P1,A015FH03 RR A;点亮右边一盏灯0160H51 00 ACALL DELAY0162HDA F9 DJNZ R2,NEXT10164H80 EA SJMP MAINhttp:/延时子程序:ORG 0200H0200H79 C8 DELAY:MOV R1,#200;置5ms计数循环初值0202H75 89 00 MOV TMOD,#00H;置定时器0为工作方式00205H75 8C B1 MO

32、V TH0,#0B1H;置5ms定时初值0208H75 8A 1C MOV TL0,#1CH020BHD2 8C SETB TR0;启动定时器1020DH10 8D 02 LP1:JBC TF0,LP2;查询计数溢出0210H80 FB SJMP LP1;未到5ms继续计数0212H75 8C B1 LP2:MOV THO,#0B1H;重新置5ms定时初值0215H75 8A 1C MOV TL0,#1CH0218HD9 F3 DJNZ R1,LP1;未到1s继续循环021AH22 RET;返回主程序 ENDhttp:/6.3.2 6.3.2 方式方式0 0及应用实例及应用实例【例【例4】每隔

33、每隔1秒使输出取反一次同时使片内秒使输出取反一次同时使片内RAM区区20H单元单元中的内容加中的内容加1,采用定时器,采用定时器0方式方式0设计程序,晶振频率设计程序,晶振频率6MHz。解:根据题意,定时时间为解:根据题意,定时时间为1s,因方式,因方式0最大计数值为最大计数值为8192,机器周期为机器周期为2 s,则方式,则方式0的最大定时时间为;显然不能满的最大定时时间为;显然不能满足本题的定时时间要求,因而需另设软件计数器,即在硬件足本题的定时时间要求,因而需另设软件计数器,即在硬件定时的基础上再加软件计数。定时的基础上再加软件计数。设硬件定时时间设硬件定时时间10 ms,软件计数的次数

34、则为,软件计数的次数则为100次。次。定时初值定时初值 X=213-T/T机机=213-10 103/2=8192-5000 因因TL0的高的高3位未用,对计算出的定时初值位未用,对计算出的定时初值X要进行修正,即要进行修正,即在低在低5位前插入位前插入3个个0,修正后的定时初值,修正后的定时初值 定时器以中断方式工作。定时器以中断方式工作。http:/主程序:ORG 0000H0000H02 00 50 LJMP MAIN ORG 000BH;定时器0的中断入口地址000BH02 02 00 LJMP SER0;指向中断服务程序 ORG 0030H0030HD2 90MAIN:SETB P1

35、.1;置P1.1初始状态0032H75 20 00 MOV 20H,#00H;20H单元清00035H78 64 MOV R0,#64H;软件计数100次0037H75 89 00 MOV TMOD,#00H;置定时器0为工作方式0003AH75 8C 63 MOV TH0,#63H;置10ms定时初值003DH75 8A 18 MOV TL0,#18H0040HD2 AF SETB EA0042HD2 A9 SETB ET00044HD2 8C SETB TR00046H80 FESJMP$参考程序:http:/中断服务程序:ORG 0000H0000H02 00 50 LJMP MAIN

36、ORG 0100H0100H75 8C 63 SER0:MOV TH0,#63H;重新置10ms定时初值0103H75 8A 18 MOV TL0,#18H0106HD8 04 DJNZ R0,EXIT;未到1s继续计数0108HB2 91 CPL P1.1010AH05 20 INC R0010CH32 EXIT:RETI END参考程序:http:/6.3.3 6.3.3 方式方式1 1及应用实例及应用实例 n在方式在方式1下,以定时器下,以定时器0为例,定时器为例,定时器/计数器是一个由计数器是一个由TH0中的中的8位和位和TL0中的中的8位组成的位组成的16位加位加1计数器。计数器。n

37、方式方式1与方式与方式0基本相似,最大的区别是方式基本相似,最大的区别是方式1的加的加1计数器计数器位数是位数是16位。位。定时器/计数器0方式1逻辑结构 C/TC/Thttp:/6.3.3 6.3.3 方式方式1 1及应用实例及应用实例【例【例5】利用定时器利用定时器1测量高电平脉冲的宽度,采用定时器测量高电平脉冲的宽度,采用定时器1方式方式1设计程序,晶振频率设计程序,晶振频率6MHz。解:解:根据题意,用定时器根据题意,用定时器1方式方式1时,被测高电平脉冲从外部中断时,被测高电平脉冲从外部中断INT1(P3.3)引脚输入,门控位引脚输入,门控位GATE取取1,即由软件和硬件共,即由软件

38、和硬件共同启动定时器;被测脉冲为高电平时,启动定时器同启动定时器;被测脉冲为高电平时,启动定时器1,开始计数;,开始计数;被测脉冲变为低电平时,停止定时器被测脉冲变为低电平时,停止定时器1,停止计数,计数值分别,停止计数,计数值分别存放到片内存放到片内RAM区区40H、41H、42H单元中;计数值与机器周单元中;计数值与机器周期的乘积就是所测脉冲的宽度。期的乘积就是所测脉冲的宽度。用定时器用定时器1方式方式1时,定时器时,定时器/计数器方式寄存器计数器方式寄存器TMOD 高高4位中位中的的M1M0应取应取01,GATE取取1;因为用定时功能,;因为用定时功能,C/T取取0;定;定时器方式寄存器

39、时器方式寄存器TMOD低低4位取位取0,所以,所以TMOD应为应为90H。定时初值为定时初值为00H。定时器以查询方式工作。定时器以查询方式工作。http:/ORG 0000H0000H02 00 50 LJMP MAIN ORG 0050H0050H75 40 00 MAIN:MOV 40H,#00H;数据存储单元清00053H75 41 00 MOV 41H,#00H0056H75 42 00 MOV 42H,#00H0059H75 89 90 MOV TMOD,#90H;置定时器1为工作方式1005CH75 8D 00 MOV TH1,#00H;定时初值清0005FH75 8B 00 M

40、OV TL1,#00H0062H20 B3 FD JB P3.3,$;查询低电平0065HD2 8E SETB TR1;准备启动定时器1 0067H30 B3 FD JNB P3.3,$;高电平到,启动定时器1参考程序:http:/006AH10 8F 05 LP1:JBC TF1,LP2006DH20 B3 FA JB P3.3,LP1;低电平到,停止定时器10070H80 04 SJMP LP30072H05 40 LP2:INC 40H;存储区最高位加10074H80 F4 SJMP LP10076HC2 8E LP3:CLR TR1;停止定时器10078H85 8D 41 MOV 41

41、H,TH1;计数值高8位放入存储区007BH85 8B 42 MOV 42H,TL1;计数值低8位放入存储区007EH12 01 00 LCALL DIS;调用显示子程序0081H80 DD SJMP MAIN;重复循环 ORG 0100H DIS:(略);显示子程序 END参考程序:http:/6.3.3 6.3.3 方式方式1 1及应用实例及应用实例【例口做输出口,接一只喇叭,利用定时器中断方式编写程序,使【例口做输出口,接一只喇叭,利用定时器中断方式编写程序,使喇叭放出悦耳的音乐。晶振频率喇叭放出悦耳的音乐。晶振频率6MHz。解:音乐是由高低长短相同或不同的音符,按一定的规律组织起来解:

42、音乐是由高低长短相同或不同的音符,按一定的规律组织起来的。每个音符都包括两个要素:第一是音调,即音符的频率,的。每个音符都包括两个要素:第一是音调,即音符的频率,频率越高音调越高,频率越低音调越低;第二是节拍,即音符频率越高音调越高,频率越低音调越低;第二是节拍,即音符的时间长短。的时间长短。利用定时器利用定时器/计数器可以产生不同频率的音频脉冲,也可以控制计数器可以产生不同频率的音频脉冲,也可以控制音频脉冲的延时时间。不同的音符对应的频率不同,用定时器音频脉冲的延时时间。不同的音符对应的频率不同,用定时器T1方式方式1可以产生与各音符对应频率的方波,可以产生与各音符对应频率的方波,C调各音符

43、频率与调各音符频率与定时器定时初值对应关系如下表所示;不同的节拍对应的延时定时器定时初值对应关系如下表所示;不同的节拍对应的延时时间不同,通过循环调用一个基本延时子程序可以产生不同的时间不同,通过循环调用一个基本延时子程序可以产生不同的节拍,各曲调与节拍的时间对应关系如下表所示。节拍,各曲调与节拍的时间对应关系如下表所示。http:/C调各音符频率与定时器定时初值对照表 曲调4/43/42/41/4拍时间(ms)1251872501/8拍时间(ms)6294125曲调与节拍的时间对照表 http:/(1)(1)根据歌谱编制唱名与唱名码的对照表。根据歌谱编制唱名与唱名码的对照表。根据歌谱编制唱名

44、与唱名码的对照表。根据歌谱编制唱名与唱名码的对照表。把歌谱中所有的不同音符的频率相对应的定时器定时初值把歌谱中所有的不同音符的频率相对应的定时器定时初值把歌谱中所有的不同音符的频率相对应的定时器定时初值把歌谱中所有的不同音符的频率相对应的定时器定时初值进行编码,称为唱名码,唱名与唱名码对照表如下表所示。进行编码,称为唱名码,唱名与唱名码对照表如下表所示。进行编码,称为唱名码,唱名与唱名码对照表如下表所示。进行编码,称为唱名码,唱名与唱名码对照表如下表所示。生日快乐歌歌谱如下:生日快乐歌歌谱如下:生日快乐歌歌谱如下:生日快乐歌歌谱如下:1=C 3/41=C 3/4唱名与唱名码对照表 http:/

45、(2)(2)编制节拍与节拍码对照表。编制节拍与节拍码对照表。编制节拍与节拍码对照表。编制节拍与节拍码对照表。根据曲调和歌谱要求,确定最小节拍数为根据曲调和歌谱要求,确定最小节拍数为根据曲调和歌谱要求,确定最小节拍数为根据曲调和歌谱要求,确定最小节拍数为1/41/4拍,基本延时拍,基本延时拍,基本延时拍,基本延时子程序延时时间为子程序延时时间为子程序延时时间为子程序延时时间为187 ms187 ms;对不同节拍对应的循环次数进行;对不同节拍对应的循环次数进行;对不同节拍对应的循环次数进行;对不同节拍对应的循环次数进行编码,称为节拍码,节拍与节拍码对照表如下表所示。编码,称为节拍码,节拍与节拍码对

46、照表如下表所示。编码,称为节拍码,节拍与节拍码对照表如下表所示。编码,称为节拍码,节拍与节拍码对照表如下表所示。节拍与节拍码对照表 节拍数1/4拍1/2拍3/4拍1拍1 1/4拍1 1/2拍2拍2 1/2拍3拍节拍码12345689Chttp:/(3)(3)编制简谱码表。编制简谱码表。编制简谱码表。编制简谱码表。歌谱中每个音符中与频率和延时有关的参数可用一个字节歌谱中每个音符中与频率和延时有关的参数可用一个字节歌谱中每个音符中与频率和延时有关的参数可用一个字节歌谱中每个音符中与频率和延时有关的参数可用一个字节来表述,称为简谱码,字节的高来表述,称为简谱码,字节的高来表述,称为简谱码,字节的高来

47、表述,称为简谱码,字节的高4 4位存放与音符的频率相对应位存放与音符的频率相对应位存放与音符的频率相对应位存放与音符的频率相对应的唱名码,字节的低的唱名码,字节的低的唱名码,字节的低的唱名码,字节的低4 4位存放与音符的节拍相对应的节拍码。位存放与音符的节拍相对应的节拍码。位存放与音符的节拍相对应的节拍码。位存放与音符的节拍相对应的节拍码。根据歌谱,编制每个音符的简谱码,并编成简谱码表。根据歌谱,编制每个音符的简谱码,并编成简谱码表。根据歌谱,编制每个音符的简谱码,并编成简谱码表。根据歌谱,编制每个音符的简谱码,并编成简谱码表。歌谱中每个音符的简谱码可做成表格存放到程序存储器中,歌谱中每个音符

48、的简谱码可做成表格存放到程序存储器中,歌谱中每个音符的简谱码可做成表格存放到程序存储器中,歌谱中每个音符的简谱码可做成表格存放到程序存储器中,唱名码、节拍码也可做成表格存放到程序存储器中。编写程序唱名码、节拍码也可做成表格存放到程序存储器中。编写程序唱名码、节拍码也可做成表格存放到程序存储器中。编写程序唱名码、节拍码也可做成表格存放到程序存储器中。编写程序通过查表从表格中得到简谱码,从简谱码中分解出唱名码和节通过查表从表格中得到简谱码,从简谱码中分解出唱名码和节通过查表从表格中得到简谱码,从简谱码中分解出唱名码和节通过查表从表格中得到简谱码,从简谱码中分解出唱名码和节拍码,再通过查表从表格中得

49、到唱名码和节拍码所包含的定时拍码,再通过查表从表格中得到唱名码和节拍码所包含的定时拍码,再通过查表从表格中得到唱名码和节拍码所包含的定时拍码,再通过查表从表格中得到唱名码和节拍码所包含的定时初值和循环次数。初值和循环次数。初值和循环次数。初值和循环次数。http:/参考程序:主程序 ORG 0000H0000H02 00 30 LJMP MAIN ORG 001BH001BH02 01 50 LJMP INT1 ORG 0030H0030H75 81 30 MAIN:MOV SP,#30H0033H75 89 10 MOV TMOD,#10H;设T1工作方式10036H75 A8 88 MOV

50、 IE,#88H;允许中断0039H75 40 00 LOOP1:MOV 40H,#00H;简谱码指针清0003CHE5 40 LOOP2:MOV A,40H;简谱码指针放入A003EH90 02 00 MOV DPTR,#TABLE10041H93 MOVC A,A+DPTR;到表格TABLE1中取简谱码0042HF9 MOV R1,A;取到的简谱码暂存于R10043H60 2B JZ FINISH;简谱码是00H(结束码),转移0045H54 0F ANL A,#0FH;不是00H,取低4位(节拍码)0047HFA MOV R2,A;将节拍码存入R2中0048HE9 MOV A,R1;将取

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁