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

    片机原理及应用胡乾斌第七章.ppt

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

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

    片机原理及应用胡乾斌第七章.ppt

    第7章 MCS-51的定时器/计数器 两个可编程的定时器/计数器T1、T0。两种工作方式:(1)计数器工作方式(2)定时器工作方式 4种工作模式(模式0-模式3)。模式0,13位定时器/计数器 模式1,16位定时器/计数器 模式2,8位常数自动重新装载 模式3,T0分成两个8位定时器/计数器,T1停止计数。,单片机复位时,TMOD和TCON两个寄存器的所有位都被清0。,7.1 定时器/计数器的结构工作方式寄存器TMOD:选择定时器/计数器T0、T1的工作方式和工作模式;控制寄存器TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。,/INT0/INT1P3.2 P3.3,单片机复位时,TMOD和TCON两个寄存器的所有位都被清0。,7.1 定时器/计数器的结构工作方式寄存器TMOD:选择定时器/计数器T0、T1的工作方式和工作模式;控制寄存器TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。,7.1.1 定时器/计数器控制寄存器TCON,T1溢出中断标志:1,有请求;0,无请求;,T1运行控制位:1,启动T1;0,关闭T1;,T0溢出中断标志:1,有请求;0,无请求;,T0运行控制位:1,启动T0;0,关闭T0,/INT0触发方式:1,下降沿引起;0,低电平引起,/INT0中断请求标志位1,有请求;0,无请求;,/INT1触发方式:1,下降沿引起;0,低电平引起,/INT1中断请求标志位1,有请求;0,无请求;,低4位与外部中断有关,已介绍。高4位的功能如下:(1)TF0、TF1计数溢出标志位 当启动T0计数后,定时器/计数器T0从初值开始加1计数,当最高位产生溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中断时,由硬件自动清“0”TF0,TF0也可由软件查询,查询后由软件清0。(2)TR0、TR1计数运行控制位 1:启动定时器/计数器工作 0:停止定时器/计数器工作 由软件置位/复位,即由软件置“1”或“0”。,7.1.2 工作方式寄存器TMOD,M1 M0:工作模式选择位,计数器方式和定时器方式选择位:0:定时器方式;1:计数器方式。,门控位:1,打开;0,关闭,0 0 模式0 0 1 模式1 1 0 模式2,M1 M0:工作模式选择位,0 0 模式0 0 1 模式1 1 0 模式2 1 1 模式3,计数器方式和定时器方式选择位:0:定时器方式;1:计数器方式。,门控位:1,打开;0,关闭,(2)M1 M0工作模式选择位 M1 M0 工 作 模 式 0 0 模式0,13位定时器/计数器 0 1模式1,16位定时器/计数器 1 0 模式2,8位常数自动重新装载 1 1 模式3,仅适用于T0,T0分成两个8位计数器,T1停止计数。,8位分为两组,高4位控制T1,低4位控制T0。(1)GATE门控位 0:以运行控制位TRX(X=0,1)来启动定时器/计数器运行。1:用外中断引脚(/INT0或/INT1)上的高电平来启动定时器/计数器运行(TRX=1:X=0,1)。,(3)C/T*计数器方式和定时器方式选择位 0:定时器方式。1:计数器方式。,7.2 定时器/计数器的4种工作模式 7.2.1 模式0 M1、M0为00,定时器/计数器的框图:,为13位的定时器/计数器,C/T*位控制的电子开关决定了定时器/计数器的工作方式。0:电子开关打在上面,为定时器工作方式,对机器周期计数,计数信号频率fosc/12。1:电子开关打在下面,为计数器工作方式,计数脉冲为P3.4、P3.5引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加1,计数信号频率不超过fosc/24。GATE位的状态决定定时器/计数器运行控制取决于TRX一个条件还是TRX和引脚这两个条件。,启动计数方式:,非门控方式:当GATE0,控制权由 TRx 决定TRx1 计数开始TRx 0 计数停止,门控方式:当GATE1、TRx1 控制权由 INTx 决定INTx1 计数开始INTx 0 计数停止,7.2.2 模式1 M1、M0为01,16位的计数器。THx8位和TLx8位组成16位加1计数器,最大计数脉冲个数:165536(216),最长定时时间(晶振12MHz T=1s):1s 65536T=65.54ms,启动计数方式:,非门控方式:当GATE0,控制权由 TRx 决定 TRx1 计数开始 TRx 0 计数停止,门控方式:当GATE1、TRx1 控制权由/INTx 决定/INTx1 计数开始/INTx 0 计数停止,模式2为自动恢复初值的(初值自动装入)8位定时器/计数器,TLX作为常数缓冲器,当TLX计数溢出时,在置“1”溢出标志TFX的同时,还自动的将THX中的初值送至TLX,使TLX从初值开始重新计数。定时器/计数器的模式2工作过程如图所示(X=0,1)。,7.2.3 模式 2 计数满后自动装入计数初值。M1、M0=10,等效框图如下:,省去用户软件中重装初值的程序。精确的确定定时时间。,7.2.4 模式3 只适用于定时器/计数器T0,T1不能工作在模式3。T1为模式3时相当于TR1=0,停止计数(此时T1可用来作串行口波特率产生器)。工作模式3下的T0:T0分为两个独立的8位定时/计数器:TL0和TH0。TL0使用T0的状态控制位C/T*、GATE、TR0,而TH0被固定为一个8位定时器(不能作外部计数方式),并使用定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断请求源TF1。各引脚与T0的逻辑关系如图所示。,*T0工作在模式3下T1的各种工作模式 T0处于模式3时,T1可定为模式0、模式1和模式2,用来作为串行口的波特率发生器,或不需要中断的场合。最常用的是模式2,用来作为串行口的波特率发生器。设置T1为模式0、模式1和模式2就自动运行。设置T1为模式3就停止工。例:T1工作在模式2。,*运行中读定时器/计数器 在读取运行中的定时器/计数器时,需要特别加以注意,若恰好出现TLX溢出向THX进位的情况,则读得的(TLX)值就完全不对了。同样,先读(THX)再读(TLX)也可能出错。方法:先读(THX),后读(TLX),再读(THX)。若两次读得(THX)相同,则读得的内容正确。若前后两次读得的(THX)有变化,则再重复上述过程,这次重复读得的内容就应是正确的。下面是有关的程序,读得的(TH0)和(TL0)放置在R1和R0内。,ORG 300HRDTIME:MOV A,TH0;读(TH0)MOV R0,TL0;读(TL0)CJNE A,TH0,RDTIME;比较2次读得的(TH0),不相等则重复 MOV R1,A;(TH0)送入R1中 RET,7.3 定时器/计数器应用中的两个问题,*定时器/计数器对输入信号的要求 外部输入的计数脉冲的最高频率为系统振荡器频率的1/24,例如选用12MHz频率的晶体,则可输入500KHz的外部脉冲。为了确保某一给定的电平在变化之前能被采样一次,则这一电平至少要保持一个机器周期。当一个机器周期采样为高电平,另一个机器周期采样为低电平,计时器加1.故对外部输入信号的基本要求如图所示,图中Tcy为机器周期。,0:禁止中断;1:允许中断。,中断允许寄存器IE,#中断控制,中断优先级寄存器IP,1:高优先级中断;0:低优先级中断。,#定时器/计数器控制寄存器TCON,T1溢出中断标志:1,有请求;0,无请求;,T1运行控制位:1,启动T1;0,关闭T1;,T0溢出中断标志:1,有请求;0,无请求;,T0运行控制位:1,启动T0;0,关闭T0,/INT0触发方式:1,下降引起;0,低电平引起,/INT0中断请求标志位1,有请求;0,无请求;,/INT1触发方式:1,下降引起;0,低电平引起,/INT1中断请求标志位1,有请求;0,无请求;,#工作方式寄存器TMOD,M1 M0:工作模式选择位,计数器方式和定时器方式选择位:0:定时器方式;1:计数器方式。,门控位:1,打开;0,关闭,0 0 模式0 0 1 模式1 1 0 模式2,M1 M0:工作模式选择位,0 0 模式0 0 1 模式1 1 0 模式2 1 1 模式3,计数器方式和定时器方式选择位:0:定时器方式;1:计数器方式。,门控位:1,打开;0,关闭,7.4 定时器/计数器的应用,6.4.1 计算时间常数X(计数初值),使用定时器/计数器工作之前,先确定工作方式和工作模式,正确设置IP,IE,TCON,TMOD,对定时器/计数器初始化,并将初值送入定时器/计数器。,计数功能:X=2n-计数值,X=模-计数值 定时功能:(2n-X)12/fosc=T,(模-X)TM=T X=2n-T fosc/12,X=模-T fosc/12 X:计数初值;TM:机器周期;T:定时时间(s);晶振频率:fosc(HZ);n:8,13,16 模式0:2n=213=8192 X=1FF16-T fosc/12 模式1:2n=216=65536 X=FFF16-T fosc/12 模式2:2n=28=256 X=F16-T fosc/12 模式3:2n=28=256,例:单片机晶振fosc=6MHZ,要求由P1.0端输出一个周期为500us的方波信号,方波周期由定时器T1确定,采用查询方法。(参考),ORG 100H MOV TMOD,#00H;设置T1的定时模式0 MOV TH1,#0FCH;设置计数初值 MOV TL1,#03H MOV IE,#00H;禁止中断 SETB TR1;启动定时器LOOP:JBC TF1,LOOP1;查询计数溢出位TF1后清0 AJMP LOOPLOOP1:MOV TH1,#0FCH;重新置计数初值 MOV TL1,#03H CLR TF1;计数溢出标志位清零(可省)CPL P1.0;输出值取反 AJMP LOOP END,解:周期为500us的方波,其脉宽为250us,故定时值T=250us。采用模式0:晶振频率:fosc=6MHZ;X=模-T fosc/12 T fosc/12=25010-6 6 106/12=125D=7DH X=1FF16-7DH=1F83H=1111110000011B TH1=FCH TL1=00000011B=03H,例:单片机晶振fosc=6MHZ,用定时器T1的定时模式1,以中断方式由P1.0端输出一个周期为500us的方波信号。,ORG 2000HMAIN:MOV TMOD,#10H;设置定时器T1的定时模式1 MOV TH1,#0FFH;设置计数初值 MOV TL1,#83H SETB EA;开中断 SETB ET1;允许定时器T1 中断LOOP:SETB TR1;定时器T1 开始计数HERE:SJMP$;等待中断中断服务程序:ORG 001BH LJMP SOFTIM ORG 2400hSOFTIM:MOV TH1,#0FFH;重设计数初值 MOV TL1,#83H CPL P1.0;输出取反 RETI,解:周期为500us的方波,其脉宽为250us,故定时值T=250us。采用模式1:晶振频率:fosc=6MHZ;X=模-T fosc/12 T fosc/12=25010-6 6 106/12=125D=7DH X=FFF16-7DH=FF83H TH1=FFH TL1=83H,查询方式的参考程序:ORG 1000H MOV TMOD,#10H;设置T1为定时模式1LOOP:MOV TH1,#0FFH;设置计数初值 MOV TL1,#83H SETB TR1;定时器T1 开始计数LOOP1:JNB TF1,LOOP1;查询TF1标志 CLR TF1;T1溢出,清TF1 CPL P1.0;P1.0的状态求反 SJMP LOOP END,例:单片机晶振fosc=6MHZ,定时器T1用于产生1ms定时,T0用于模式2计数方式,计数器初值为FFH。T0作为外部中断请求输入线,以中断方式由P1.0端输出一个周期为2ms的方波信号。,ORG 0000HRESET:AJMP MAIN;转主程序 ORG 0100HMAIN:MOV SP,#60H MOV TMOD,#16;T1定时器模式1;T0计数器模式2 MOV TL0,#0FFH;T0置初值 MOV TH0,#0FFH MOV TL1,#0CH;T1置初值 MOV TH1,#0FEH CLR PSW.5 SETB ET0;允许T0中断 SETB EA;开中断 SETB TR0;启动T0LOOP:MOV C,PSW.5;T0产生中断了吗?JNC LOOP SETB ET1;允许T1中断 SETB TR1;启动T1HERE:AJMP HERE,ORG 000BH AJMP ITOP;转T0中断服务程序 ORG 140HITOP:CLR TR0;停止T0计数 SETB PSW.5 RETI ORG 001BH AJMP ITIP;转T1中断服务程序 ORG 150HITIP:MOV TL1,#0CH MOV TH1,#0FEH CPL P1.0;P1.0位取反 RETI,例:用定时器T0的模式3,分别产生200us,400us的定时中断,使晶振频率为6MHZ的单片机的P1.0和P1.1上产生400us和800us的方波。(参考),ORG 0000HRESET:AJMP MAIN;转主程序 ORG 000BH AJMP ITOP;转T0中断服务程序 ORG 001BH AJMP ITIP;转T1中断服务程序 ORG 0100HMAIN:MOV SP,#60H ACALL PTOM3HERE:AJMP HEREPTOM3:MOV TMOD,#03H;T0模式3,两;个8位定时器 MOV TL0,#09CH;T0置初值 MOV TH0,#38H SETB TR0;启动TL0 SETB ET0;允许TL0中断,SETB TR1;启动TH0 SETB ET1;允许TH0中断 SETB EA;全局开中断 RETITOP:MOV TL0,#9CH CPL P1.0 RETIITIP:MOV TH0,#38H CPL P1.1 RETI,门控位GATE的功能和使用方法测量脉冲宽度 GATE1=1时,定时器/计数器T0,T1的启动受/INT0、/INT1的控制,可测量引脚/INT0(P3.2)、/INT1(P3.3)上正脉冲的宽度(机器周期数)。,ORG 2000HMOV TMOD,#09H MOV TL0,#00HMOV TH0,#00HCLR EI;关中断MOV R0,#30H,HERE1:JB P3.2,HERE1;等/INT0=0 SETB TR0;启动T0HERE2:JNB P3.2,HERE2;等/INT0=1HERE3:JB P3.2,HERE3;等/INT0=0 CLR TR0;T0停止工作 MOV R0,TH0;存计数值 INC R0,MOV R0,TL0 SJMP$,显示TH0、TL0计数值,即显示脉宽有多少个机器周期。,例 利用定时器T1的模式2对外部信号计数,要求每计满100个数,将P1.0取反。(自学)(1)选择工作模式 外部信号由T1(P3.5)脚输入,每发生一次负跳变计数器加1,每输入100个脉冲,计数器产生溢出中断,在中断服务程序中将P1.0取反一次。T1工作在模式2的控制字为TMOD=60H。不使用T0时,TMOD的低4位可任取,但不能使T0进入方式3,这里取全0。(2)计算T1的初值X=28-100=156D=9CH 因此,TL1的初值为9CH,重装初值寄存器TH1=9CH,(3)程序设计 ORG 0000HLJMP MAINORG 001BH;T1中断服务程序入口 CPL P1.0;P1.0位取反 RETI ORG 0100HMAIN:MOV TMOD,#60H;设T1为模式2计数 MOV TL1,#9CH;T1置初值 MOV TH1,#9CH SETB EA SETB ET1 SETB TR1;启动T1HERE:AJMP HERE,编程和应用,例 假设系统时钟为6MHz,编写定时器T0产生1秒定时的程序。(参考)(1)定时器T0工作方式的确定 模式1最长可定时131.072ms;选模式1,每隔100ms中断一次,中断10次为1s。(2)计算计数初值 因为:(216-X)210-6=10-1 所以:X=15536=3CB0H 因此:TH0=3CH,TL0=B0H(3)10次计数的实现 对于中断10次计数,也可用循环程序的方法实现。本例采用循环程序法。(4)程序设计 参考程序:,ORG 0000HRESET:LJMP MAIN;上电,转主程序入口MAIN ORG 000BH;T0的中断入口 LJMP IT0P;转T0中断处理程序IT0P ORG 1000H MAIN:MOV SP,#60H;设堆栈指针 MOV B,#0AH;设循环次数10次 MOV TMOD,#01H;设T0工作在方式1 MOV TL0,#0B0H;给T0设初值 MOV TH0,#3CH SETB TR0;启动T0 SETB ET0;允许T0中断,SETB EA;CPU开放中断 HERE:SJMP HERE;等待中断 ITOP:MOV TL0,#0B0H;T0中断子程序,重装初值 MOV TH0,#3CH;DJNZ B,LOOP CLR TR0;1s定时时间到,停止T0工作 LOOP:RETI,例:(自学),T1 计数模式2,用于测试负脉冲T0 定时模式2,用于延时500us,ORG 0000HLJMP MAINORG 000BHSETB P1.0CLR TR0RETIORG 001BHCLR P1.0SETB TR0RETI,ORG 0100HMAIN:MOV SP,#30H;系统初始化 SETB P1.0 SETB ET0;中断系统初始化 SETB ET1 SETB EA MOV TMOD,#62H;T0/T1 初始化 MOV TH0,#06H MOV TL0,#06H MOV TH1,#0FFH MOV TL1,#0FFH SETB TR1;启动T1 WAIT:SJMP WAIT END,信号频率的测量?,基本原理:定时1s,记录脉冲个数。(提示:T0计数,T1定时),1.待测频率信号接与哪个引脚?(T0 引脚)2.设定T0 为定时方式还是计数方式?几位?3.设初值TH0、TL0 为多少?4.何时置位TR0?何时读取结果TH0、TL0?5.若TH0、TL0 发生溢出应如何处理?,要 求,了解:定时/计数信号的来源及对计数信号的要求重要的SFR、其作用和相关标志位的作用(TMOD,TCON,TH0,TL0,TH1,TL1)重点掌握方式1,2的使用方法(包括定时和计数)TMOD的设置和初值的计算方法不同占空比的脉冲波形产生方法(包括查询方式和中断方式的程序设计)理解:门控启动控制方法和其基本应用,

    注意事项

    本文(片机原理及应用胡乾斌第七章.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开