单片基础及其应用 2_第1页
单片基础及其应用 2_第2页
单片基础及其应用 2_第3页
单片基础及其应用 2_第4页
单片基础及其应用 2_第5页
已阅读5页,还剩33页未读, 继续免费阅读

下载本文档

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

文档简介

项目六定时器/计数器应用258259任务1

提示音发生器设计

任务2

倒数计时器设计提示音发生器设计任务12601.掌握MCS-51系列单片机定时器/计数器的结构。2.了解定时器/计数器控制(TCON)寄存器的设置方法。3.了解定时器/计数器工作方式(TMOD)寄存器的设置方法。4.掌握定时器/计数器的工作方式。5.能完成定时器/计数器初始值的计算和设定。6.能理解定时器/计数器中断控制方式。7.能设计提示音发生器电路。8.能编写提示音发生器程序并进行仿真测试。9.能与他人分析讨论,发现并解决程序编写和调试问题。261方波信号是一种常见的电信号,常应用于通信和控制电路中。方波信号只有高电平和低电平两个值,如图所示为1kHz方波信号。2621kHz方波信号机床报警器、提示音发生器、闪烁报警灯和电动机控制设备等都需要用方波信号作为控制信号。本任务要求设计一个提示音发生器,用于提示加工任务执行完成,选用合适的单片机和扬声器,实现产生1kHz提示音的功能。本任务可将单片机P2.0引脚外接扬声器模块电路,通过单片机定时器/计数器模块产生1kHz方波信号从P2.0引脚输出,将该1kHz方波信号送入扬声器实现提示音功能。为完成此任务,需要学习单片机定时器/计数器的结构以及定时器/计数器相关的特殊功能寄存器等知识。263264一、定时器/计数器的结构MCS-51系列单片机内部包含2个16位定时器/计数器T0和T1,分别由2个独立的8位特殊功能寄存器组成,即T0由高8位TH0、低8位TL0寄存器组成,T1由高8位TH1、低8位TL1寄存器组成。定时器/计数器可提供定时和计数功能。265如图所示,定时器/计数器主要由TCON、TMOD、TH1、TL1、TH0、TL0等特殊功能寄存器组成。TCON寄存器中的TR0、TR1位负责定时器/计数器T0、T1的启动计数和停止计数;TMOD寄存器用于定时或计数功能选择以及工作方式选择;TH1、TL1寄存器和TH0、TL0寄存器分别存放T1和T0的初始值。定时器/计数器的寄存器结构图266二、定时器/计数器相关寄存器单片机定时器/计数器相关寄存器见下表。通常单片机定时器/计数器的功能主要由TCON和TMOD寄存器设定,通过设定这两个寄存器即可实现不同的功能。267定时器/计数器相关寄存器2681. 定时器/计数器控制(TCON)寄存器定时器/计数器控制(TCON)寄存器为一个8位的可位寻址寄存器,该寄存器低4位用于外部中断控制(项目五中已介绍),高4位用于定时器/计数器T0、T1中断控制。TCON寄存器的位符号如图所示。TCON寄存器的位符号269(1)TF1TF1是定时器/计数器T1溢出标志位。T1被允许计数后,TH1和TL1从初始值开始加1计数,直到最高位产生计数溢出时TF1标志位置1,向CPU请求中断,直到CPU响应中断时,才由硬件清0,也可以由软件清0。(2)TR1TR1是定时器/计数器T1运行控制位。当TR1=1时,定时器/计数器T1被允许开始加1计数;当TR1=0时,定时器/计数器T1停止计数。(3)TF0TF0是定时器/计数器T0溢出标志位。T0被允许计数后,TH0和TL0从初始值开始加1计数,直到最高位产生计数溢出时TF0标志位置1,向CPU请求中断,直到CPU响应中断时,才由硬件清0,也可以由软件清0。(4)TR0TR0是定时器/计数器T0运行控制位。当TR0=1时,定时器/计数器T0被允许开始加1计数;当TR0=0时,定时器/计数器T0停止计数。2702. 定时器/计数器工作方式(TMOD)寄存器定时器/计数器工作方式(TMOD)寄存器为一个8位寄存器,用于控制定时器/计数器T0、T1的工作方式,高4位控制定时器/计数器T1,低4位控制定时器/计数器T0。TMOD寄存器的位符号如图所示。TMOD寄存器不能位寻址,只能进行字节设置,复位时寄存器初始值为00H。271TMOD寄存器的位符号(1)GATE(TMOD.7)GATE(TMOD.7)是定时器/计数器T1的门控选通位。当GATE=0时,只要设置TR1=1,即可启动定时器/计数器T1开始计数;当GATE=1、TR1=1且=1(即

引脚输入为高电平)时,定时器/计数器T1开始计数。(2)C/(TMOD.6)C/(TMOD.6)是定时器/计数器T1的功能选择位。当C/=0时,设置T1为定时器功能;当C/=1时,设置T1为计数器功能。272(3)GATE(TMOD.3)GATE(TMOD.3)是定时器/计数器T0的门控选通位。当GATE=0时,只要设置TR0=1,即可启动定时器/计数器T0开始计数;当GATE=1、TR0=1且=1(即

引脚输入为高电平)时,定时器/计数器T0开始计数。(4)C/(TMOD.2)C/(TMOD.2)是定时器/计数器T0的功能选择位。当C/=0时,设置T0为定时器功能;当C/=1时,设置T0为计数器功能。273(5)M1、M0M1、M0是工作方式选择位。M1和M0有4种组合方式,可以定义4种工作方式,见下表。274M1和M0的组合方式三、定时器/计数器的工作方式可以通过C/位将定时器/计数器T0、T1设置为定时器模式和计数器模式。定时器/计数器T0、T1有4种工作方式,分别为工作方式0、工作方式1、工作方式2、工作方式3。定时器/计数器T0和T1的工作原理完全相同,定时器/计数器T0、T1的控制框图如下图所示。275276定时器/计数器T0、T1的控制框图1. 工作方式0工作方式0为13位定时器/计数器,在此方式下的定时器/计数器T0由TH0的8位和TL0的低5位组成,TL0的高3位没有使用。TL0的低5位溢出后向TH0进位,TH0计数溢出后置位TF0标志位,向CPU提出中断请求,直到CPU响应转入中断时,硬件自动将TF0清0。TF0也可由软件查询和清0。工作方式0最大计数值为213(8192)。STC89C51单片机系统时钟有两种模式:一种是12T模式,每12个时钟周期为1个机器周期,定时器/计数器计数加1;另一种是6T模式,每6个时钟周期为1个机器周期,定时器/计数器计数加1。2772. 工作方式1工作方式1为16位定时器/计数器,在此工作方式下的定时器/计数器T0由TH0的8位和TL0的8位组成。工作方式1与工作方式0只是最大计数值不同,其他功能相同。工作方式1的定时时间为T=(216-T0初始值)×机器周期。2783. 工作方式2工作方式2为8位可自动重装初始值的定时器/计数器,在此工作方式下,TL0负责计数,TH0不参与计数,只是负责存放初始值。当TL0计数溢出时,硬件将溢出标志位TF0置1,同时自动将TH0的数值赋给TL0,即TL0=TH0,重装时TH0数值不变。TL0从该数值开始计数,直到下次计数溢出又进行重新装载。定时器在该工作方式下的定时时间为T=(28-TH0初始值)×机器周期,虽然定时时间相比工作方式0和工作方式1短了,但由于其可自动重装初始值功能,减少了程序中TL0赋初始值所占用的时间,所以定时时间更加精确。2794. 工作方式3工作方式3与前面3种工作方式有很大不同,T1在此工作方式下无效,T0可拆分成2个独立的8位定时器/计数器使用,其中TL0不能自动重装初始值,TL0的初始值仍需在程序中加载。TL0可以作为定时器或计数器使用,通过设置T0的C/位进行选择。TL0的功能和控制方式同工作方式0和1,最大计数值为28(256)。280在工作方式3中,TH0只能作为定时器使用,而不能用于计数,因此不用通过C/位进行设置。TH0的启动只受T1的运行控制位TR1控制,当TH0计数溢出时,硬件将TF1标志位置1,并向CPU提出中断请求,直到CPU响应中断时,硬件自动将TF1清0,定时时间为T=(28-TH0初始值)×机器周期。TH0的中断服务地址占用T1的中断入口地址。281当T0以工作方式3运行时,由于TH0占用了T1运行控制位TR1和溢出标志位TF1,因此T1的使用受到了限制。在此情况下,T1仍然可以以工作方式0、1、2运行,并且既可作为定时器使用,又可作为计数器使用,只是计数器计满溢出时不能使用溢出标志位TF1,不能向CPU申请中断,只能将溢出信号直接送到串口,此时T1可以作为波特率发生器,只需通过程序写入工作方式0、1、2,T1即可自动运行。如果需要T1停止工作,则在程序中将T1的工作方式设置为工作方式3即可,因为T1是不能以工作方式3运行的,强行将其设置为工作方式3,T1自然停止工作。282四、定时器/计数器的初始值计算T0、T1具有预赋初始值功能,特殊功能寄存器TH0、TH1、TL0、TL1用于存放初始值,单片机复位时初始值为0。定时器/计数器的计数原理如图所示,定时器/计数器T0、T1启动后从T初始值开始加1计数,当计数到最大值M时溢出,产生中断请求,并将相应的溢出标志位TF0、TF1置1,完成一次完整的计数过程。283定时器/计数器的计数原理初始值的设定根据定时时间或计数需要计算,定时器/计数器初始值设定的计算方法如下。定时器/计数器初始值NS=2n-实际计数值式中,n

为由工作方式决定的定时器/计数器位数。在工作方式0下,n=13,213=8192;在工作方式1下,n=16,216=65536;在工作方式2和3下,n=8,28=256。下面以定时器/计数器T0为例获取初始值,单片机系统晶振频率为12MHz,定时时间为5ms,采用工作方式1。定时器/计数器初始值的获取方式有两种:一种是通过公式计算获取,另一种是通过小程序输入数值获取。2841. 通过公式计算获取定时器/计数器初始值由于单片机系统晶振频率采用12MHz,则机器周期为1μs,首先计算实际计数值。然后计算定时器/计数器初始值。2852. 通过小程序输入数值获取定时器/计数器初始值通过小程序输入数值获取定时器/计数器初始值通常比较简单,首先打开“51初值设定”小程序,其界面如图所示。286“51初值设定”小程序界面然后在“定时器方式”中选择“方式1”,在“晶振频率”中输入“12”,在“定时时长”中输入“5”,最后单击“确定”按钮即可获取定时器/计数器初始值“EC78H”,如图所示。该十六进制数表示当51单片机系统晶振频率为12MHz时,定时器/计数器以工作方式1定时5ms(5000μs)所要设定的初始值。287获取定时器/计数器初始值五、定时器/计数器相关寄存器的初始化定时器/计数器相关寄存器的初始化步骤如图所示。288定时器/计数器相关寄存器的初始化步骤倒数计时器设计任务22891.了解定时器/计数器查询控制方式。2.掌握通过定时器/计数器查询控制方式实现定时的方法。3.能设计倒数计时器电路。4.能用中断和查询控制方式编写倒数计时器程序。5.能与他人分析讨论,发现并解决程序编写和调试问题。290倒计时在平时的生活中十分常见,如交通信号灯显示剩余时间或等待时间、微波炉加热食物时显示剩余加热时间、火箭发射升空倒计时显示等,如图所示为人行横道处的倒计时交通信号灯。291倒计时显示应用示例本任务

温馨提示

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

评论

0/150

提交评论