版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章2单片机的定时器计数器第一节定时/计数器的结构和功能第二节定时器/计数器的工作方式第三节定时器/计数器应用第一节定时器/计数器的结构和功能一、结构和功能二、方式寄存器TMOD和控制寄存器TCON一、结构和功能8051单片机内有两个可编程16位定时器/计数器,常称为定时器0和定时器1,简称为T0和T1,每个定时计数器都由两个8位专用寄存器组成,T0由TH0,TL0组成,T1由TH1,TL1组成,同时还有TCON,TMOD两个专用寄存器对其进行控制。常用于定时控制、延时、外部计数和检测等。1.结构:外部控制门b.计数:
对外来脉冲进行计数。 T0(P3.4)和T1(P3.5)两个引脚,作为计数输入端。 外部输入的脉冲在出现从1到0的负跳变时有效,计数器进行加1。 计数方式下,单片机在每个机器周期的S5P2拍节时对外部计数脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效的计数脉冲。在下一机器周期的S3Pl进行计数。 即采样计数脉冲需要2个机器周期,即24个振荡周期。因此,计数脉冲的频率最高为振荡脉冲频率的
1/24
TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT01.控制寄存器TCONTF1(TCON.7,8FH位)----定时器T1中断请求溢出标志位。TF0(TCON.5,8DH位)----定时器T0中断请求溢出标志位。
TR1(TCON.6,8EH位)----T1运行控制位。0:关闭T1;1:启动T1运行。只由软件置位或清零。TR0(TCON.4,8CH位)----T0运行控制位。0:关闭T0;1:启动T0运行。只由软件置位或清零。 8051设有定时/计数器应用相关的控制器,即两个8位专用寄存器TMOD和TCON。定/计工作前,必须经过由CPU将一些命令写入定/计的初始化过程。
二、方式寄存器TMOD和控制寄存器TCON2.方式寄存器TMOD(不能进行位寻址,没有位地址)
GATED7D6D5D4D3D2D1D0C/TM1M0C/TM1M0GATETMOD
M1M0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器定时器1:停止计数C/T----定时器/计数器方式选择位。0:定时器;1:计数器。GATE----外部门控位。0:不用外部门,只将TR0/TR1置1来启动定时器;1:使用外部门,外部请求信号INT0/INT1(高电平)和TR0/TR1(置1)共同来启动定时器。定时计数器1定时计数器0
1、方式0(T1,T0)当M1M0两位为00时,定时/计数器被选为工作方式0,13位计数器,其逻辑结构如图所示。控制振荡器÷12TL0低5位TF0中断T0端C/
T=0C/
T=1+INT0端GATETR0TH0高8位第二节定时器/计数器的工作方式在方式0下,计数工作方式时,计数值的范围是: 1~8192(213)定时工作方式时,定时时间的计算公式为: (213一计数初值)×晶振周期×12或(213一计数初值)×机器周期若晶振频率为6MHz,1个机器周期为1/6x10-6x12=2μs则最小定时时间为:最大定时时间为:[213–0]x2μs=16384μs=16.384ms[213–(213-1)]x2μs=2μs2、方式1(T1,T0)当M1M0两位为01时,定时/计数器被选为工作方式1,16位计数器,其逻辑结构如图所示。控制振荡器÷12TL0(8位)TF0中断T0端C/
T=0C/
T=1+INT0端GATETR0TH0(8位)在方式1下,计数工作方式时,计数值的范围是: 1~65536(216)定时工作方式时,定时时间的计算公式为: (216一计数初值)×晶振周期×12或(216一计数初值)×机器周期若晶振频率为6MHz,1个机器周期为1/6x10-6x12=2μs则最小定时时间为:最大定时时间为:[216–(216-1)]x2μs=2μs[216–0]x2μs=131072μs=131.072ms控制振荡器÷12TL0(8位)TF0中断T0端C/
T=0C/
T=1+INT0端GATETR0TH0(8位)重新装入3、方式2(T1,T0)当M1M0两位为10时,定时/计数器被选为工作方式2,自动重加载8位计数器,其逻辑结构如图所示。方式0和方式1有个共同的特点,就是计数溢出后计数器全清0,因此,循环定时时就需要反复设定计数器初值,比较麻烦,而方式2具有自动重加载初值的功能,免去很多反复设置初值的工作。在方式2下,计数工作方式时,计数值的范围是: 1~256(28)定时工作方式时,定时时间的计算公式为: (28一计数初值)×晶振周期×12或(28一计数初值)×机器周期若晶振频率为6MHz,1个机器周期为1/6x10-6x12=2μs则最小定时时间为:最大定时时间为:[28–(28-1)]x
2μs=2μs[28–0]x
2μs=512μs控制振荡器÷12TL0(8位)TF0中断T0端C/
T=0C/
T=1+INT0端GATETR0TH0(8位)1/12fosc1/12foscTF1中断1/12foscTR14、方式3(T0)当M1M0两位为11时,定时/计数器被选为工作方式3,只用于定时器0,T0被分成两个独立的8位计数器,其逻辑结构如图所示。定时器T0方式3结构控制振荡器÷12TL1(8位)串行口T1(P3.5)端C/
T=0C/
T=1TH1(8位)重新装入振荡器÷12TL1(8/5位)T1(P3.5)端C/
T=0C/
T=1TH1(8位)串行口定时器T0用作方式3时,T1仍可用于方式0~2结构这时,仅用C/T来切换定时或计数。T1方式0或1T1方式2在方式0下,计数工作方式时,计数值的范围是: 1~8192(213)213-计数初值=计数的脉冲数定时工作方式时,定时时间的计算公式为: (213一计数初值)×晶振周期×12=定时时间或(213一计数初值)×机器周期=定时时间若晶振频率为6MHz,1个机器周期为1/6x10-6x12=2μs则最小定时时间为:最大定时时间为:[213–(213-1)]x2μs=2μs[213–0]x2μs=16384μs=16.384ms第三节定时/计数器应用我们编程时,通常是求计数初值(1)计算计数初值:例1:设单片机晶振频率Fosc=6MHz,使用定时器1以方式0产生周期为200μs的等宽正方波脉冲,并由P1.0输出。以查询方式完成。
欲产生200μs的等宽正方波脉冲,只需在P1.0端以100μs为周期交替输出高低电平即可实现,为此定时时间应为100μs。使用6MHz晶振,则一个机器周期为2μs。方式0为13位计数结构。设待求的计数初值为x,则:(213—x)×2μs=100μs,求解得:x=8142(D)=1FCEH=1111111001110B=1111111001110B。低5位和高8位分别转换为十六进制数,高8位为FEH,低5位为0EH。其中高8位放入THl,即THl=FEH;低5位放入TLl,即TL1=0EH。(2)TMOD寄存器初始化为把定时器/计数器1设定为方式0,则MlM0=00H;为实现定时功能,应使C/T=0;为实现定时器/计数器1的运行控制,则GATE=0。定时器/计数器0不用,有关位设定为0。因此TMOD寄存器应初始化为00H。由定时器控制寄存器TCON中的TR1位控制定时的启动和停止:
TR1=1启动,TR1=0停止(4)程序设计 MOV TMOD,#00H MOV TH1,#0FEH MOV TL1,#0EH SETB TR1LOOP1: JBC TF1,LOOP2 SJMP LOOP1LOOP2: MOV TL1,#0EH MOV TH1,#0FEH
CLR TF1 CPL P1.0 SJMP LOOP1
在方式1下,计数工作方式时,计数值的范围是: 1~65536(216)
216-计数初值=计数的脉冲数定时工作方式时,定时时间的计算公式为: (216一计数初值)×晶振周期×12=定时时间或(216一计数初值)×机器周期=定时时间若晶振频率为6MHz,1个机器周期为1/6x10-6x12=2μs则最小定时时间为:最大定时时间为:[216–(216-1)]x2μs=2μs[216–0]x2μs=131072μs=131.072ms例2:设单片机晶振频率Fosc=12MHz,使用定时器0以方式1产生周期为2S的等宽正方波脉冲,并由P1.0输出。以查询方式完成。
(1)计算计数初值
设待求的计数初值为x,则:(216—x)×1μs=50000μs,求解得:x=15536D=3CB0H。即TH0=3CH;TL0=B0H。(2)TMOD寄存器初始化TMOD=00000001B(3)程序设计ATART: MOV R2,#20 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0LOOP1:JBC TF0,LOOP2 SJMP LOOP1LOOP2:MOV TL0,#0B0H MOV TH0,#3CH DJNZ R2,LOOP1 CPL P1.0 MOV R2,#20 SJMP LOOP1在方式2下,计数工作方式时,计数值的范围是: 1~256(28)
28-计数初值=计数的脉冲数定时工作方式时,定时时间的计算公式为: (28一计数初值)×晶振周期×12=定时时间或(28一计数初值)×机器周期=定时时间若晶振频率为6MHz,1个机器周期为1/6x10-6x12=2μs则最小定时时间为:最大定时时间为:[28–(28-1)]x
2μs=2μs[28–0]x
2μs=512μs例3:使用定时器0以工作方式2产生100μs定时,在P1.0输出周期为200μs的连续方波。已知晶振频率fosc=6MHz。(1)计算计数初值6MHz晶振下,一个机器周期为2μs,以TH0作重装载的预置寄存器,TL0作8位计数器,假设计数初值为x。则:(28—x)×2μs=100μs求解得:X=206D=11001110B=CEH把CEH分别装入TH0和TL0中:TH0=CEH,TL0=CEHTMOD寄存器初始化(2)定时器/计数器0为工作方式2,MlM0=10;为实现定时功能C/T=0;依题意GATE=0;定时器/计数器1不用,有关位设定为0。综上情况TMOD寄存器的状态应为02H。(3)程序设计(查询方式): MOV TMOD,#02H MOV TH0,#0CEH MOV TL0,#0CEH SETB TR0LOOP: JBC TF0,LOOP1 SJMP LOOPLOOP1: CPL P1.0 SJMP LOOP例4:用定时器l以工作方式2计数,每计100次进行累计器加1操作.(1)计算计数初值.28—100=156D=9CHTH1=9CH,TL1=9CHTMOD寄存器初始化:MlM0=10,C/T=1,GATE=0因此TMOD=60H(2)程序设计序设计 CLR A MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH SETB TR1DEL: JBC TF1,LOOP SJMP DELLOOP: INC A SJMP DEL例5:(应用两个定时器)设重复周期大于1ms的低频脉冲信号从P3.5引脚(T1)输入。要求P3.5每发生1次负跳变时,P1.0输出1个500μs同步负脉冲,同时P1.1输出1个1ms的同步正脉冲,其波形图如下,设fosc=6MHz。P3.5P1.0P1.11ms500μs1ms计算计数初值:定时器T0定时500us,使用方式2,T1用于计数1个脉冲(每一次负跳变发生一次变化)因此同时使用两个定时计数器,T0:(28-x)×2us=500usx=6D=06HTH0=06H,TL0=06HT1:X=28-1X=255D=0FFHTH1=0FFH,TL1=0FFHT0用于定时C/T=0,方式2M1M0=10,GATE=0T1用于计数C/T=1,方式2M1M0=10,GATE=0TMOD寄存器初始化:TMOD=62H ORG 0030HSTART1: MOV TMOD,#62H MOV TH0,#06H;T0,定时500us MOV TL0,#06H MOV TH1,#0FFH;T1,计数一个脉冲 MOV TL1,#0FFH SETB P1.0 CLR P1.1 SETB TR1;启动T1LP1: JBC TF1,NEX1 SJMP LP1
NEX1: CLR P1.0 SETB P1.1 SETB TR0;启动T0LP2: JBC TF0,NEX2;定时500us SJMP LP2NEX2: SETB P1.0LP3: JBC TF0,NEX3 SJMP LP3NEX3: CLR P1.1;定2次500us共1ms CLR TR0;T0停止工作 AJMP LP1P3.5P1.0P1.11ms500μs1ms例6:利用定时器0控制产生周期为2ms和100ms的方波信号,分别由P1.0和P1.1引脚输出,采用中断方式。系统时钟为12MHz。分析:方波为2ms,定时时间为1ms。机器周期为1μs,采用方式0,则计数初值为X=213-1000=7192=1110000011000BTH0=E0H,TL0=18H方波为100ms,定时时间为50ms,可采用50次1ms定时ORG0000HLJMPBEGINORG000BHLJMPTOINTORG2000HBEGIN:MOVTMOD,#00HMOVTL0,#18H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025云南省建筑安全员考试题库附答案
- 贵州大学《计算机艺术设计》2023-2024学年第一学期期末试卷
- 贵州财经大学《土木工程施工与组织管理》2023-2024学年第一学期期末试卷
- 贵阳幼儿师范高等专科学校《城市交通系统》2023-2024学年第一学期期末试卷
- 2025辽宁省建筑安全员考试题库及答案
- 2025年湖南省建筑安全员知识题库及答案
- 2025山西建筑安全员《B证》考试题库及答案
- 硅湖职业技术学院《计算机辅助设计一》2023-2024学年第一学期期末试卷
- 2025年陕西省建筑安全员C证考试(专职安全员)题库附答案
- 广州幼儿师范高等专科学校《科技文献检索(理工)》2023-2024学年第一学期期末试卷
- 二甲双胍恩格列净片(Ⅲ)-临床用药解读
- 煤层应力状态及煤与瓦斯突出防治研究
- 小学五年级上册数学基础知识练习题带答案
- 诊所聘用医生合作协议书
- 抖音认证承诺函
- 药物分离纯化-药物分离纯化技术的作用
- 《精益生产培训》课件
- GB/T 3518-2023鳞片石墨
- 22G101三维立体彩色图集
- MQL4命令中文详解手册
- 水平井施工方案及措施
评论
0/150
提交评论