欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    MCS51单片机定时计数器.ppt

    • 资源ID:5439682       资源大小:212.50KB        全文页数:44页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MCS51单片机定时计数器.ppt

    定时/计数器的结构定时/计数器的工作方式定时/计数器的应用单片机音乐,第6章定时/记数器,本章内容,Single Chip Microcomputer,概述,通常采用以下三种方法来实现定时或计数:1硬件法 硬件定时功能完全由硬件电路完成,不占用CPU时间。但当要求改变定时时间时,只能通过改变电路中的元件参数来实现,很不灵活。2软件法 软件定时是执行一段循环程序来进行时间延时,优点是无额外的硬件开销,时间比较精确。但牺牲了CPU的时间。3可编程定时器计数器,MSC-51单片机定时/计数器的结构,返回,定时电路集成在芯片中,称为定时器/计数器。MCS-51的单片机内有两个16位可编程的定时器/计数器,分别称为定时器/计数器0和定时器/计数器1,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。,图-:定时/计数器结构,定时器/计数器的控制寄存器,1工作方式控制寄存器(TMOD),GATE:门控位。GATE=0 启动不受/INT0或/INT1的控制;GATE=1 启动受/INT0 或/INT1 的控制。C/:外部计数器/定时器方式选择位。C/=0 定时方式;C/=1 计数方式。M1M0:工作模式选择位。M1 M0 模式 说明 0 0 0 13位定时/计数器,高八位TH(7 0)+低五位TL(4 0)0 1 1 16位定时/计数器,TH(7 0)+TL(7 0)1 0 2 8位计数初值自动重装,TL(7 0)TH(7 0)1 1 3 T0运行,而T1停止工作,8位定时/计数。,定时/计数器控制寄存器(TCON),TR0:定时/计数器0运行控制位。软件置位,软件复位。与GATE有关,分两种情况:GATE=0 时:若TR0=1,开启T0计数工作;若TR0=0,停止T0计数。GATE=1 时:若TR0=1 且/INT0=1时,开启T0计数;若TR0=1 但/INT0=0,则不能开启T0计数。若TR0=0,停止T0计数。TR1:定时/计数器1运行控制位。用法与TR0类似。,定时器/计数器的工作方式,定时/计数器工作方式,工作方式0是13位计数结构的工作方式,其计数器由TH的全部8位和TL的低5位构成,TL的高3位没有使用。当C/T=0时,多路开关接通振荡脉冲的12分频输出,13位计数器以次进行计数。这就是定时工作方式。当C/T=1时,多路开关接通计数引脚(To),外部计数脉冲由银南脚To输入。当计数脉冲发生负跳变时,计数器加1,这就是我们常称的计数工作方式,图-2:定时/计数器工作方式0逻辑结构,在工作方式0下,计数器的计数值由下式确定:213-X=8192-X计数值范围是:18192(213)定时器的定时值由下式确定:T=N*Tcy=(8192-X)*Tcy,2.定时/计数器工作方式1,当M1,M0=01时,定时/计数器处于工作方式1,此时,定时/及数器的等效电路如图所示,可以看出,方式0和方式1的区别仅在于计数器的位数不同,方式0为13位,方式1则为16位,由TH0作为高8位,TL0为低8位,有关控制状态字与方式0相同。则只需将工作方式0的计算公式中的213改为216就可得到工作方式1的计数值计算公式和定时时间计算公式。,图-:定时/计数器工作方式逻辑结构,3定时/计数器工作方式2,当M1,M0=10时,定时/计数器处于工作方式2,此时,定时/及数器的等效电路如图所示,图-:定时/计数器工作方式逻辑结构,具有自动重装载功能,即自动加载计数初值,在这种工作方式中,16位计数器分为两部分,以TL0为计数器,以TH0作为预置寄存器,当计数溢出时,TH以硬件方法自动给计数器TL0重新加载。,工作在方式下,计数器的计数值由下式确定:28-X=256-X 计数范围为:1256 定时器的定时值由下式确定:T=N*Tcy=(256-X)*Tcy,定时/计数器工作方式,当M1,M0=10时,定时/计数器处于工作方式2,此时,定时/及数器的等效电路如图所示,图-5:定时/计数器工作方式3等效电路,工作方式3只适用于定时/计数器T0。当T0工作在方式3时,TH0和TL0被分为两个独立的8位计数器。TL0可作为定时器或计数器使用,占用了T0本身的控制信号TF0和TR0。TH0只能作为定时器使用,且占用了定时/计数器T1的两个控制信号TR1和TF1。当T0工作于方式3时,T1只能工作在方式0、方式1或方式2,并且由于已没有计数溢出标志位TF1可供使用,只能把计数溢出直接送给串行口,作串行口的波特率发生器使用。等效电路图如下,图-:方式下的作为波特率发生器等效电路,TH1(8位),TL1(8位或5位),12分频,OSC,TL1(8位),TH1(8位),12分频,OSC,C/T=0,C/T=1,C/T=0,C/T=1,串行口,串行口,T1(P3.5),T1(P3.5),T1工作方式0(或1),T1工作方式2,定时/计数器应用举例,在使用定时/计数器时,应做好四件事:设置TMOD以选择工作方式;计算并设置计数初值THX,TLX;设置IE、IP以规定中断的开放/禁止及优先级;设置TCON以启动/停止定时/计数器的工作。,工作方式的应用【例】设单片机晶振频率fosc=6MHZ,使用定时器1以方式0产生周期为600s的等宽方波脉冲,并由P1.7输出,以查询方式完成。解:(1)计算计数初值欲产生周期为600s的等宽方波脉冲,只需在P1.7端以300s为周期交替输出高低电平即可,因此定时时间应为300s。设待求计数初值为N,则:(213-N)210-6=30010-6N=8042=1F6AH将低5位01010B=0A写入TL1,将高8位有效值11111011B=FBH写入TH1中。,(2)TMOD初始化为把定时/计数器1设定为方式0,则M1M0=00。为实现定时功能应使C/=0,为实现定时器启动应使GATE=0,因此设定工作方式控制寄存器TMOD=00H。(3)由TR1启动和停止定时器TR1=1为启动,TR1=0为停止参考程序如下:ORG 1000H START:MOV TCON,#00H;清TCON MOV TMOD,#00H;工作方式设定 MOV TH1,#0FBH;计数初值设定 MOV TL1,#0AH,MOV IE,00H;关中断 SETB TR1;启动TR1LOOP0:JBC TF1,LOOP1;查询是否溢出 SJMP LOOP0LOOP1:MOV TH1,#0FBH;重设初值 MOV TL1,#0AH CPL P1.7;输出取反 SJMP LOOP0 END,工作方式应用【例】已知某生产线的传送带上不断地有产品单向传送,产品之间有较大间隔,如图6-6所示。使用光电开关统计一定时间内的产品个数。假定红灯亮时停止统计,红灯灭时才在上次统计结果的基础上继续统计,试用单片机定时/计数器T1的方式1完成该项产品的计数任务。解:(1)初始化:GATE=1,C/T=1,M0M1=01,故TMOD=11010000B=0D0H,TCON=00(2)T1在方式1时,溢出产生中断,且计数器回零,故在中断服务程序中,需用R0计数中断次数,以保护累积计数结果。(3)启动T1计数,开T1中断。,参考程序如下:ORG 0000H AJMP START ORG 001BH AJMP T1INT ORG 0100HSTART:MOV SP,#60H MOV TCON,#00H MOV TMOD,#0D0H MOV TH1,#0FFH,图-:产品传送带原理图,MOV TL1,#0FFH MOV R0,#00H MOV P3,#28H;置P3.5,P3.3为输入状态 SETB TR1 SETB ET1 SETB EA MAIN:LCALL DISP ORG 0A00H,T1INT:INC R0 MOV TH1,#0FFH MOV TL1,#0FFH RETI DISP:RET END,工作方式的应用【例】使用定时器T0以方式2产生200微秒定时,在P1.0输出周期为400微秒的连续方波。已知晶振频率fosc=6MHz。(1)计算计数初值(256-N)210-6=20010-6 N=156=9CH(2)TMOD初始化工作方式2时,M1M0=10,实现定时功能C/=0,GATE=0。定时器1不用,无关位设定为0,可得TMOD=02H。参考程序如下:ORG 000BHLJMP LOOP0ORG 0200H,START:MOV TCON,#00H MOV TMOD,#02H;定时器方式2 MOV TH0,#9CH;计数初值 MOV TL0,#9CH SETB EA;允许总中断 SETB ET0;T0中断允许 SETB TR0;启动T0HERE:SJMP HERE;等待中断 ORG 0500H;中断服务程序LOOP0:CPL P1.0 RETI END,工作方式的应用【例】假设有一个用户系统中已使用了两个外部中断源,并置定时器 T1 于方式 2,作串行口波特率发生器用,现要求再增加一个外部中断源,并由P1.0 口输出一个5 Hz的方波(假设晶振频率为 6 MHz)。在不增加其它硬件开销时,可把定时/计数器T0置于工作方式3,利用外部引脚T0端作附加的外部中断输入端,把TL0预置为0FFH,这样在T0端出现由1至0的负跳变时,TL0溢出,申请中断,相当于边沿激活的外部中断源。在方式3下,TH0总是作8位定时器用,可以靠它来控制由P1.0输出的5kHz方波。由P1.0输出5kHz的方波,即每隔100s使P1.0的电平发生一次变化。则TH0中的初始值:X=M-N=256-100/2=206。下面是有关的程序:,MOV TL0,0FFH MOV TH0,206 MOV TL1,BAUD;BAUD根据波特率要求设置常数 MOV TH1,BAUD MOV TMOD,27H;置T0工作方式3,TL0工作于计数器方式 MOV TCON,55H;启动定时器 T0、T1,置外部中断 0 和 1为边沿激活方式MOV IE,9FH;开放全部中断TL0 溢出中断服务程序(由 000BH单元转来):TL0INT:MOV TL0,0FFH;外部引脚 T0 引起中断处理程序 RETI,TH0 溢出中断服务程序(由 001BH转来):TH0INT:MOV TH0,206 CPL P1.0 RETI此处串行口中断服务程序、外中断0和外中断1的中断服务程序没有列出。,5.定时器作外部中断源应用MCS51单片机有两个定时器计数器,当它们选择计数工作方式时,T0或T1引脚上的负跳变将使T0或T1计数器加1,若把定时器计数器设置成计数工作方式,计数初值设定为满量程,一旦计数从外部引脚输入一个负跳变信号,计数器To或T1加1,产生溢出中断,这样,便可把外部计数输入端T0(P34)或T1(P35)扩展为外部中断源输入。,【例】将T1设置为工作方式2(自动恢复常数)及外部计数方式,计数器TH1、TLl初值设置为FFH,当计数输入端T1(P35)发生一次负跳变,计数器加1并产生溢出标志,向 CPU申请中断,中断处理程序使累加器A内容加1,送P1口输出,然后返回主程序。编程如下:ORG 0000H AJMP MAIN ORG 0013H AJMP INT MAIN:MOV SP,#53H MOV TMOD,#60H;T1方式2,计数 MOV TL1,#0FFH MOV TH1,#0FFH,SETB TR1;启动T1 SETB ET1;T1中断允许 SETB EA;CPU中断开放LOOP:SJMP LOOP;等待INT:INC A;T1中断处理 MOV P1,A RETI;中断返回 END,单片机音乐,声音的频谱范围为20Hz-200KHz,人的耳朵能辨别的声音频率大概在200Hz-20KHz。利用定时/计数器可以方便地产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,改变定时/计数器的初值,即可改变频率,即改变音调。用延时程序或另一个定时器控制某一频率信号持续的时间长短,就可以控制节拍。音调和节拍是音乐的两大要素,有了音调和节拍,就可以演奏音乐了。用单片机产生音频脉冲,只要算出该音频的周期T,然后用定时器定时1/2 T,定时时间到时,将输出脉冲的I/O管脚反相,再重新计时输出,定时时间到再反相,重复此过程就可在此I/O管脚得到此音频脉冲。,乐曲中,每个音符都对应着确定的频率,每一频率都对应定时器的一个频率初值。每个节拍都有固定的时间,都对应延时程序的一个参数或定时器的一个节拍初值。可以将每一音符对应的定时器频率初值和节拍参数或节拍初值计算出来,把乐谱中所有音符对应的定时器频率初值和节拍参数按顺序排列成表格,然后用查表程序依次取出,产生指定频率的音符并控制节奏,就可以实现演奏效果。为了控制演奏的结束,结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。为了产生节奏感,在某些音符(例如两个相同音符)间可以插入一个时间单位的频率略有不同的音符,以示区别。,乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音。音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。【例】用单片机演奏“生日快乐”歌曲,设用定时器T0工作于方式1产生频率,用T1控制节拍,P2.5驱动蜂鸣器,晶振频率为6MHz。节拍以1/8拍为基准,其它节拍为该节拍的N倍,用循环N次1/8基准节拍实现。电路如上图所示所示。表6-1列出了C调各音符频率与T0初值N的对照表。“#”表示半音,用于上升或下降半个音。参考程序如下:BASE EQU 62500;设定1/8拍 SPEAKER EQU P2.5;设定输出口;主程序 ORG 0000H;从0地址开始 JMP INITIAL;跳至INITIAL,ORG 000BH;TIMER0中断向量 JMP TONEINT;跳至TIMER0中断子程序 ORG 001BH;TIMER1中断向量 JMP BEATINT;跳至TIMERl中断子程序INITIAL:MOV TMOD,#11H;设定定时器模式;启用定时器 MOV IE,#10001010B;定时器中断开放 MOV SP,#70H;移开堆栈START:CLR F0;节拍结束标志 MOV R7,#0;音阶起始间距 MOV R6,#0;节拍起始间距,LOOP:LCALL LOADTONE;载入音阶 LCALL LOADBEAT1;载入节拍 JNB F0,$;节拍结束?CLR F0 JMP LOOP;下一个音节;载入音节LOADTONE:MOV DPTR,#TONE;指定音阶起始地址 MOV A,R7;指定间距 MOVC A,A+DPTR;读取音阶 JNZ CONTINUE;判断是否为最后一个音?MOV R6,#0;节拍从头开始,MOV R7,#0;音阶从头开始 JMP LOADTONE;跳到LOADTONECONTINUE:MOV 20H,A;储存定时器值高字节 MOV TH0,A;指定定时器值高字节 INC R7;下一个间距 MOV A,R7;指定间距 MOVC A,A+DPTR;读取定时器值低字节 MOV 21H,A;储存定时器值低字节 MOV TL0,A;指定定时器值低字节 INC R7;下一个间距 SETB TR0;启动TIMER0 RET;返回,;载入节拍LOADBEAT1:MOV DPTR,#BEAT;指定节拍起始地址 MOV A,R6;指定间距 MOVC A,A+DPTR;读取节拍 MOV R5,A;指定节拍 MOV TH1,#BASE;指定定时器初值高字节 MOV TL1,#BASE;指定定时器初值低字节 SETB TR1;启动TIMERl RET;返回,;音符中断子程序TONEINT:CLR TR0;关闭TIMER0 CPL SPEAKER;驱动喇叭 MOV A,20H;取回定时器初值高字节 MOV TH0,A;指定定时器初值高字节 MOV A,21H;取回定时器初值低字节 MOV TL0,A;指定定时器初值低字节 SETB TR0;启动TIMER0 RETI;T0中断返回,;节拍中断子程序BEATINT:CLR TR1;关闭TIMERl DJNZ R5,AGAIN;循环结束?CLR TR0;关闭TIMBR0 SETB F0;F01,结束节拍 JMP EXIT1;跳至EXIT1AGAIN:MOV TH1,#BASE;指定定时器初值高字节 MOV TL1,#BASE;指定定时器初值低字节 SETB TR1;启动TIMERlEXIT1:RETI,;音符表TONE;第一小节 DB 252,68,252,68 DB 252,173,252,68;第二小节 DB 253,52,253,10;第三小节 DB 252,68,252,68 DB 252,173,252,68;第四小节 DB 253,131,253,52,;第五小节 DB 252,68,252,68 DB 254,34,253,200;第六小节 DB 253,52,253,10 DB 254,87;第七小节 DB 254,6,254,6 DB 253,200,253,52;第八小节 DB 253,131,253,52,0,;节拍表BEAT:;第一小节 DB 4,4,8,8;第二小节 DB 8,16;第三小节 DB 4,4,8,8;第四小节 DB 8,16;第五小节 DB 4,4,8,8,;第六小节 DB 8,8,8;第七小节 DB 4,4,8,8;第八小节 DB 8,16,0;END,题目:音乐程序设计 内容:声音的产生是一种音频振动的效果,振动的频率高则为高音,振动的频率低则为低音。音频的频率范围为20Hz200KHz。以不同频率的信号驱动喇叭,喇叭即可发出不同的声音。音乐的核心要素是音调和节拍,在单片机上演奏音乐的基本原理是用定时器产生不同频率(音调)的信号驱动喇叭,以延时程序控制节拍。设计一个单片机音乐系统,演奏“雪绒花”歌曲。,实践,要求:用按键开关启动演奏,也可以用按键开关停止演奏,演奏期间LED发光二极管闪烁,闪烁频率为1Hz。硬件:画出硬件电路原理图,考虑按键中断及喇叭驱动。软件:画出程序流程图,编写源程序,考虑LED闪烁问题。调试:记录调试过程,分析调试结果。,

    注意事项

    本文(MCS51单片机定时计数器.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开