版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习情境导航知识目标1.专用寄存器TMOD,TCON,TH1,TL1,TH0,TL0的功能2.定时计数器的4种工作方式3.定时时间的计算4.多次溢出的处理万法5.定时计数器的计数方式与定时方式6.音乐产生原理7.定时中断处理下一页返回学习情境导航能力目标1.根据需要选择定时计数器的工作方式2.根据需要设置TMOD3.根据需要计算计数器初值4.掌握定时计数器产生不同频率脉冲的万法5.了解定时初值与音阶声调的关系6.完成查表装入计数器初值的程序设计7.双计数器综合处理使用的程序设计8.编写查询溢出处理方式程序9.编写中断溢出处理方式程序下一页返回上一页学习情境导航重点、难点1.TMOD的设置2.计数初值的计算3.中断处理方式4.双计数器的处理5.声调与脉冲频率及初值的对应关系返回上一页4.1LED闪烁控制
一、任务目标
(1)掌握定时器/计数器编程控制方法。
(2)掌握定时器/计数器的查询方式编程设计要点。
(3)掌握定时器/计数器的中断方式编程设计要点。二、任务要求通过P1.1口线控制外接LED发光一极竹亮1s、灭1s,循环闪烁。三、知识链接在单片机控制应用中定时和计数的需求很多,为此在单片机中都有定时器/计数器。80C51中有两个16位定时器/计数器,分别为定时器/计数器0和定时器/计数器1。由于定时器使用的机会多一些,所以常把定时器/计数器简称为定时器(T)。为此,这两个定时器/计数器分别下一页返回4.1LED闪烁控制简称为定时器0(T0)和定时器1(T1)。
80C51的两个定时器/计数器都是16位加法计数结构。由于在80C51中只能使用8位字节寄存器,所以把两个16位定时器分解为4个8位定时器,依次为TL0,TL1,TH0和TH1,对应地址为8AH,8BH,8CH和8DH。它们均属于专用寄存器。
(一)计数功能和定时功能介绍计数器的计数功能是对外部事件进行的。外部事件以脉冲形式输入,作为计数器的计数脉冲。为此芯片上有T0(P3.4)和T1(P3.5)两个引脚,用于为这两个计数器输入计数脉冲。计数脉冲是负跳变有效,供计数器进行加法计数。使用计数功能时,单片机在每个机器周期的S5P2拍节对计数脉冲下一页返回上一页4.1LED闪烁控制输入引脚进行采样。如果前一机器周期采样为高电平,后一机器周期采样为低电平,即为一个计数脉冲,在下一机器周期的S3P1进行计数。由于采样计数脉冲需要占用2个机器周期,所以计数脉冲的频率不能高于振荡脉冲频率的1/24。定时功能也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机芯片内部,每个机器周期有一个计数脉冲,即每个机器周期计数器加1。由于一个机器周期等于12个振荡脉冲周期。因此,计数频率为振荡频率的1/12。如果单片机采用12MHz品振,则计数频率为1MHz即每微秒计数器加1。这样,在使用定时器时既可以根据计数值计算出定时间,也可以通过定时时间的要求算出计数器的预置值。下一页返回上一页4.1LED闪烁控制(二)用于定时器/计数器控制的寄存器在80C51中,与定时器/计数器应用有关的控制寄存器共有3个,分别是定时器控制寄存器、工作方式控制寄存器和中断允许控制寄存器。
1.定时器工作方式控制寄存器(TMOD)TMOD寄存器用于设定定时器/计数器的工作方式。寄存器地址为89H,但它没有位地址,不能进行位寻址,只能用字节传送指令设置其内容。该寄存器位定义表示如下。下一页返回上一页4.1LED闪烁控制它的低半字节对应T0,高半字节对应T1,前后半字节的位格式完全对应,位定义如下。GATE——门控位。GATE=0,以运行控制位TR启动定时器;GATE=1,以外中断清求信号(INT1或INT0)启动定时器,这可以用于外部脉冲宽度测量。C/T——定时方式或计数方式选择位。C/T=0,定时工作方式;C/T=1,计数工作方式。M1M0——工作方式选择位。M1M0=00,工作方式0;M1M0=01,工作方式1;M1M0=10,工作方式2;M1M0=11,工作方式3。定时器T1与T0的工作方式选择分别见表4-1和表4-2。下一页返回上一页4.1LED闪烁控制2.定时器控制寄存器(TCON)TCON寄存器地址为88H,位地址为8FH-88H,该寄存器位定义及位符号如下。定时器控制寄存器中,与定时器计数器有关的控制位共有4位,即TF1,TR1,TF0和TR0。TR0和TR1——运行控制位。TR0(TR1)=0,停止定时器/计数器工作;TR0(TR1)=1,启动定时器/计数器工作。控制计数启停只需用软件方法使其置1或清0即可。下一页返回上一页4.1LED闪烁控制TF0和ITF1——计数溢出标志位。当计数器产生计数溢出时,相应溢出标志位由硬件置1。计数溢出标志用于表示定时/计数是否完成,因此,它是供查询的状态位。当采用查询方法时,溢出标志位被查询,并在后续处理程序中应以软件方法及时将其清0。而当采用中断方法时,溢出标志位不但能自动产生中断请求,而目连清0操作也能在转向中断服务程序时由硬件自动进行。为了说明方式字的应用,举例如下:设定时器T0为定时工作方式,要求软件启动按照方式1工作,定时器T1为计数方式,要求软件启动按照方式0工作。根据TMOD寄存器各位的作用,可知方式字如下。下一页返回上一页4.1LED闪烁控制
由于TMOD不能位寻址,因此指令格式为“MOVTMOD,#41H”。对于TCON,由于TCON可以位淤址,因此如果只清溢出或启动定时器工作可以利用位操作指令。例如执行以下3条指令中千口可一条,都可以清定时器T0的溢出。CLTTF0CLT8DHCLTTCON.5执行以下3条指令中任何一条都可以启动定时器T1的计数。SETBTR1SETB8EHSFTBTCON.6下一页返回上一页4.1LED闪烁控制(三)定时器工作方式080C51的两个定时器/计数器都有4种工作方式,即工作方式0-3。电路逻辑结构不同,工作方式下定时器/计数器的逻辑结构有所不同。计数结构,计数器由TH0的全部8位和TL0的低5位构成,TL0的高3时器/计数器0的工作方式0的逻辑结构。在工作方式0下,计数脉冲既可以来自芯片内部,也可以来自外部。工作方式0是13位不用。图4-1是定时器内部的是机器周下一页返回上一页4.1LED闪烁控制期脉冲,图4-1中OSC是英文Oscillator(振荡器)的缩写,表示芯片的品振脉冲,经12分频后,即为单片机的机器周期脉冲。来自外部的计数脉冲由T0(P3.4)引脚输入,计数脉冲由控制寄存器TMOD的C/T位进行控制。当C/T=0时,接通机器周期脉冲,计数器每个机器周期进行一次加1,这就是定时器工作方式;当C/T=1时,接通外部计数引脚T0(P3.4),从T0引入计数脉冲输入,这就是计数工作方式。不管是哪种工作方式,当TL0的低5位计数溢出时,向TH0进位;而全部13位计数溢出时,向计数溢出标志位TF0进位,将其置1。控制定时器/计数器的启停控制有两种方法:一种是纯软件方法,另一种是软件和硬件相结合的方法。两种方法由门控位(GATE)的状态进行选择。下一页返回上一页4.1LED闪烁控制
当GATE=0时,为纯软件启停控制。GATE信号反相为高电平,经“或”门后,打开了“与”门,这样TR0的状态就可以控制计数脉冲的通断,而TR0位的状态又是通过指令设置的,所以称为软件方式。当把TR0设置为1,控制开关接通,计数器开始计数,即定时器/计数器工作;当把TR0清0时,开关断开,计数器停止计数。当GATE=1时,为软件和硬件相结合的启停控制方式。这时计数脉冲的接通与断开决定于TR0和INT0的“与”关系,而INT0(P3.2)是引脚P3.2引入的控制信号。由于P3.2引脚信号可控制计数器的启停,所以可利用80C51的定时器/计数器进行外部脉冲信号宽度的测量。定时和计数范围使用工作方式。的计数功能时,计数值的范围是1-8192(213)。使用工作方式0的定时功能时,定时时间的计算公式如下。下一页返回上一页4.1LED闪烁控制(213—计数初值)×品振周期×12
或(213—计数初值)×机器周期其时间单位与品振周期或机器周期的时间单位相同,为}s。若品振频率为6MHz,则最小定时时间计算如下。
[213—(213—1)]×1/6MHz×10-6
×12=2×10-6=2µs最大定时时间如下。
[213—0)×1/6MHz×106
×12=16384×10-6=16384µs经验提小:采用方式0时计算和装入计数器初值时比较麻烦,而目容易出错,因此一般情况下尽量避免采用此工作方式。下一页返回上一页4.1LED闪烁控制
定时器工作方式1是16位计数结构的工作方式,计数器由TH0的全部8位和TL0的全部8位构成。它的逻辑电路和工作情况与方式0完全相同,所不同的是计数器的位数。使用工作方式1的计数功能时,计数值的范围是1-65536。使用工作方式1的定时功能时,定时时间计算公式如下。
(216—计数初值)×品振周期×12或(216—计数初值)×机器周期定时时间单位与品振周期或机器周期的时间单位相同,为µs。若品振频率为6MHz,则最小定时时间计算如下。
[216—(216—1)]×1/6MHz×10-6×12=2×10-6=2µs最大定时时间计算如下。(216—0)×1/6MHz×106×12=131072×10-6=131072µs≈131ms下一页返回上一页4.1LED闪烁控制四、任务实施1.跟我做——硬件电路根据任务要求,设计电路如图4-2所示。只击要轮流把P1.1置1和清0,就能使外接的LED发光_极竹亮和灭,完成任务的关键是交替时间保证为1s。2.跟我做——软件分析下面以Fosc=6MHz、机器周期T=2µs,T0,定时方式1为例进行分析。下一页返回上一页4.1LED闪烁控制(1)计算计数器初值:当T=2µs,定时方式1时,定时的范围是1-65536T(13107µs)。显然,计数溢出一次的最大定时时间小于1s,因此击要计数溢出多次才能得到1s的定时时间。为方便计算计数器初值,可以设定溢出一次的定时时间为100000µs(即t=0.1s,连续溢出10次,总的定时时间就是1s。此时的计数器初值由:216-x=t/T,得x=216-t/T65536-100000/2=15536=3CB0H(2)定时器初始化:初始化涉及两个方面:一是设置TMOD,本例中TMOD=00000001B=01H;二是装入计数初值,本例中TH0=3CH,TL0=B0H。
(3)编写程序流程图:根据以上分析,可以编写出查询方式的程序流程图如图4-3所示,中断方式的程序流程图如图4-4所示。下一页返回上一页4.1LED闪烁控制(4)完整程序设计:根据图4-3,可以编写出查询方式的汇编程序如下。下一页返回上一页4.1LED闪烁控制根据图4-4,可以编写出中断方式的汇编程序如下。下一页返回上一页4.1LED闪烁控制下一页返回上一页4.1LED闪烁控制3.跟我做——搭接电路在Proteus软件中按照图4-2搭接好电路,元件列表见表4-3。4.跟我做——编写程序在伟福软件中编辑程序,进行编译,得到.HEX格式文件。5.跟我做——文件下载将所得的.HEX格式文件在Proteus中加载到单片机芯片中。6.跟我做——仿真、硬件联调在Proteus中仿真,观察仿真结果;Proteus中结果正常后,用实际硬件搭接并调试电路,通过编程器将.HEX格式文件下载到AT89C51中,通电验证实训结果。返回上一页4.2BCD码显示60s计数器
一、任务目标
(1)理解工作方式2初值自动重装对准确定时的影响。
(2)掌握多次定时计数溢出的编程要点。
(3)掌握BCD加法计数器编程要点。
(4)掌握BCD码送显程序设计。二、任务要求用定时器T0工作方式2产生标准秒信号,并实现“00,01,…,59,00,…”计数,将计数结果通过P1,P2口外接的BCD数码竹显示。三、知识链接工作方式0和工作方式1有一个共同特点,就是计数溢出后计数器全为0,因此,循环定时应用时就需要反复设置计数初值。这不但下一页返回4.2BCD码显示60s计数器影响定时精度,而目也给程序设计带来麻烦。工作方式2就是针对此问题而设置的,它具有自动重新加载计数初值的功能,免去了反复设置计数初值的麻烦。所以工作方式2也称为自动重新加载工作方式。在工作方式2下,16位计数器被分为两部分,TL作为计数器使用,TH作为预置寄存器使用,初始化时把计数初值分别装入TL和TH中。当计数溢出后,由预置寄存器TH以硬件方法自动给计数器TL重新加载。变软件加载为硬件加载。图4-5是T0在工作方式2下的逻辑结构。初始化时,8位计数初值同时装入TL0和TH0中。当TL0计数溢出时,置位TF0,并用保存在预置寄存器TH0中的计数初值自动加载TL0,然后开始重新计数。如此重复不但省去了用户程序中的重下一页返回上一页4.2BCD码显示60s计数器装指令,而目也有利于提高定时精度。但这种工作方式是8位计数结构,计数值有限,最大只能到255。这种自动重新加载工作方式适用于循环定时或循环计数应用。例如,用于产生固定脉宽的脉冲,此外还可以作为串行数据通信的波特率发送器使用。采用工作方式2时,计数器的计数值为。
N=256–x
计数范围为1-256,定时器的定时值为
t=N×T=(256–x)T式中,T为机器周期;x为初值。
下一页返回上一页4.2BCD码显示60s计数器如果晶体振荡器频率式Fosc=12MHz,则T=1µs,定时范围为1-256µs;若晶体振荡器频率Fosc=6MHz,则T=2µs,定时范围为1-512µs。四、任务实施跟我做——硬件电路硬件电路图如图4-6所示,与P3.0连接的发光一极竹用于模拟秒闪信号,与P2口连接的BCD数码竹显示个位,与P1口连接的BCD数码竹显示十位,BCD数码竹为共阴极。2.跟我做——程序分析(1)秒信号发生器设计:本任务中要求精确定时,因此必须采用定时方式2实现。假设系统振荡频率为6MHz,以T0为例。下一页返回上一页4.2BCD码显示60s计数器
首先设置方式字:TMOD=00000010B
计算计数初值:由于工作方式2的最大定时为512µs,要产生1s的定时用1次溢出肯定是不够的,因此需要多次溢出才能实现1s的定时。
80C51单片机的数据是没有小数的,因此必须使用整数来表示计数次数和溢出次数。若N代表溢出次数,X代表计数初值,T代表系统的机器周期,则有
(256-X)×T×N=t式中,T=2µs,t=1s。取X=6,则N=2000,溢出次数为2000超过了255,因此要用至少两个计数器作为溢出次数计数器。则有
N=n1×n2下一页返回上一页4.2BCD码显示60s计数器式中,n1和n2必须为小于255的整数,可以取下列各组值。
n1=50,
n2=40n1=100,n2=20n1=200,n2=10n1=250,n2=8
由于任务中要求有一个秒闪信号,因此采用3个计数器作为溢出次数计数器,即
N=n1
×n2
×n3=2×20×50
根据以上分析可以得到查询方式下1s信号发生器的程序流程图,如图4-7所示。
下一页返回上一页4.2BCD码显示60s计数器(2)六十进制BCD码加法计数器设计:任务中要求使用BCD码加法,因此虽然是加1,但是绝对不能使用“INC”指令,必须使用“ADD”“DAA”指令才能完成BCD码的加1计数。当加到60时必须清零,读者可以想一想:为什么不在计数器加到59的时候清零?
编写六十进制BCD码加法计数器程序流程图,如图4-8所示。
C3)BCD码计数结果。数码竹显示译码:数码竹有共阴极与共阳极之分,1位BCD数显示译码见表4-4。根据共阴极显示译码表,可以试着推导出共阳极译码显示表。下一页返回上一页4.2BCD码显示60s计数器
在编写指令实现数码竹显示时可以采用查表的方法。计数结果以压缩BCD码的形式存放在30H单元中,显示的时候必须将压缩的BCD码拆开,并A转换成BCD显示段码,才能按照低位在前高位在后的顺序依次通过P2口和P1口。BCD码转换为显示段码可以采用查表的方法实现。因此可以得到显示程序流程图,如图4-9所示。
3.跟我做——程序编写根据上述的流程图,可以编写出查询方式的完整程序如下。下一页返回上一页4.2BCD码显示60s计数器下一页返回上一页4.2BCD码显示60s计数器4.跟我做——软硬件联调
(1)在Proteus软件中按图4-6搭接好电路,本任务中所用元件见表4-5。
(2)在伟福软件中编辑程序,进行编译,得到.HEX格式文件。
(3)将所得的.HEX格式文件在Proteus中加载到单片机芯片中。
(4)运行仿真,观察仿真结果。
(5)在Proteus中运行正常后,用实际硬件搭接并调试电路,通过编程器将.HEX格式文件下载到AT89C51中,通电验证实训结果。返回上一页4.3外部脉冲计数器
一、任务目标
(1)掌握定时计数器对外加计数脉冲计数的硬件设计方法。
(2)掌握定时计数器计数状态的指令设计方法。
(3)掌握流水月‘闪烁程序设计方法。二、任务要求编写程序,实现按键闭合4次,与P1口连接的LED发光一极竹闪烁10次。三、知识链接当C/T=0时,定时计数器工作在定时方式。此时,定时计数器的计数脉冲来自于系统振荡频率的12分频。只要系统的振荡频率确定,定时计数器的计数脉冲频率也就确定了,因此计数一次的时间也就保持不变。这正是定时的由来。下一页返回4.3外部脉冲计数器
实际上,定时计数器的计数脉冲可以来自于系统的外部,此时由于计数脉冲是不确定的,因此把这种工作方式称为计数工作方式。将TMOD寄存器的C/T位设置为1,定时计数器即工作在计数工作方式。此时,T0通过引脚T0(P3.4)对外部信号计数,T1通过引脚Tl1(P3.5)对外部信号计数,外部脉冲的下降沿将触发计数。值得注意的是,由于检测到一个由1到0的跳变需要2个机器周期,因此外部信号的最高计数频率为系统振荡频率的1/24。例如,如果系统采用6MHz的振荡频率,则最高的外部计数频率为0.25MHz。四、任务实施
1.跟我做——硬件电路分析硬件电路如图4-10所示。下一页返回上一页4.3外部脉冲计数器2.跟我做一一程序分析根据硬件电路,采用T0计数方式,按键闭合4次将会有4个下降沿输入到系统中,计数4次溢出后,P1口所接LED闪烁10次即可完成任务。定时计数器初始化;采用T0方式2计数方式:TMOD=00000110B;计数次数为4,计数初值:X=256-4=252。根据分析,可以得到以下查询方式程序流程图,如图4-11所示。
3.跟我做——程序编写根据图4-10的流程图可以编写如下程序。下一页返回上一页4.3外部脉冲计数器下一页返回上一页4.3外部脉冲计数器下一页返回上一页4.3外部脉冲计数器4.跟我做——软硬件联调
(1)在Proteus软件中按图4-10搭接好电路,本任务中所用元件见表4-6。
(2)在伟福软件中编辑程序,进行编译,得到.HEX格式文件。
(3)将所得的.HEX格式文件在Proteus中加载到单片机芯片中。
(4)运行仿真,观察仿真结果。
(5)在Proteus中运行正常后,用实际硬件搭接并调试电路,通过编程器将.HEX格式文件下载到AT89C51中,通电验证实训结果。返回上一页4.4单音阶发生器一、任务目标(1)掌握单音阶音符的频率与定时初值的对应关系。(2)理解定时计数器的广泛应用。(3)掌握Proteus软件仿真音频信号产生方法。二、任务要求应用定时计数器编程实现扬声器轮流鸣放单音符“1-2-3-4-5-6-7-1-…”,每个音符鸣放1s。三、知识链接音阶产生方法:一首音乐是由许多不同的音阶组成的,而每个音阶对应着不同的频率,这样就可以利用不同的频率的组合构成想要的音乐。可以利用单片机的定时计数器T0来产生不同的频率。因此,下一页返回4.3外部脉冲计数器只要把一首歌曲的音阶对应频率关系弄清楚即可。现在以单片机12MHz晶振为例,列出高中低音符与16位定时计数器的初值关系,如表4-7。四、任务实施跟我做——硬件电路电路如图4-12所示。
2.跟我做_程序分析
(1)T0/T1功能划分:根据任务要求,可以将T0设置为定时方式2,作秒信号定时器;T1设置为定时方式1,作音阶发生器,因此TMOD=00010010B。
下一页返回上一页4.3外部脉冲计数器2)计数器初值:T0作秒信号定时器,每次溢出的定时时间是恒定的,因此其计数初值不变,系统振荡频率为12MHz,因此设置初值TH0=TL0=06H,溢出次数N=20X200,采用中断方式。
T1作为音符发生器,其计数初值与产生音符有关。根据任务要求,为“中1—中2—…—中7-高1”共8个音符,其对应的计数初值见表4-8。根据表4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业员工福利与激励措施方案
- 沈阳建设项目审批制度
- 注安特殊作业审批制度
- 物业资金审批制度范本
- 特殊工时审批制度
- 2025浙江温州苍南玉龙开发建设有限公司招聘2人笔试历年参考题库附带答案详解
- 2025建融金服(河南)科技信息服务有限公司甘肃分公司招聘90人笔试历年参考题库附带答案详解
- SOP市场营销流程设计方案
- 2025四川泸州市鑫炜业工贸发展有限公司招聘1人笔试历年参考题库附带答案详解
- 2025中盐东兴云梦制盐有限公司面向宜川县招聘(6人)笔试历年参考题库附带答案详解
- 2026四川南充市仪陇县疾病预防控制中心(仪陇县卫生监督所)遴选4人建设笔试参考题库及答案解析
- 兰州市2026事业单位联考-综合应用能力E医疗卫生模拟卷(含答案)
- 2026年工会知识竞赛押题宝典模考模拟试题【考点提分】附答案详解
- 中小学妇委会工作制度
- 2026抖音内衣-泳衣类目达人准入考试题库核心解析
- 广东省广州市黄埔区2024-2025学年八年级下学期期末语文试题及答案
- 2026四川甘孜州能源发展集团有限公司招聘29人考试参考试题及答案解析
- 24J113-1 内隔墙-轻质条板(一)
- 预算绩效管理业务培训课件
- 报文分析-iec-103规约说明
- 柳永词的雅与俗
评论
0/150
提交评论