2019/12/23 单片机的定时/计数器 单片机原理及其应用 一、定时/计数喝的定时和计最功能 定时/计量最的裤心部件是二进例加1计数最(们H0、TL0或 M、TL)。 1,定时幼能一计数输入信号是内部时钟脉冲,每个机雪 周期使膏存最的值加1,所以,计最频率是氧痛频率的1/12。 第六章定时计数器与并行接口 2。计数功能一计数脉冲来自相应的外都输入写引胸,T0为 P3.4,T1为P3.5。 在篇务男理于拉定时计量 二、定时。/计数最的控制寄存最 2.工作方式控制寄存器T0D 与定时慢/计数最有关的控制寄存最有: D7 D6 D5 D4 D3 D2 D1 DO 1。定时器控制寄存餐TC0 GATE C/斤M08ATEC/TM1O D7 D6 D5 D4 D3 D2 D1 D0 T1控制 T0控复 F1TR1F0F0E1T1山E0UT0 AT正门控位 中商断训求标志启动定时/计数最触爱方式选锋 C/T计数/定时选坪 麟 低电平 1下沿 1O一工作方式选择
2019/12/23 1 第六章 定时计数器与并行接口 一、定时/计数器的定时和计数功能 在TMOD中,各有一个控制位(C/T),分别用于控制定时/计数 器T0和T1是工作在定时器方式还是计数器方式。 1. 定时功能-计数输入信号是内部时钟脉冲,每个机器 周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。 2. 计数功能-计数脉冲来自相应的外部输入引脚,T0为 P3.4,T1为P3.5。 定时/计数器的核心部件是二进制加1计数器(TH0、TL0或 TH1、TL1) 。 单片机的定时/计数器 二、定时器/计数器的控制寄存器 与定时器/计数器有关的控制寄存器有: 1.定时器控制寄存器TCON D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 中断请求标志 启动定时/计数器 触发方式选择 0 低电平 1 下降沿 0 停止 1 启动 2.工作方式控制寄存器TMOD T1控制 T0控制 GATE C/T M1 M0 GATE C/T M1 M0 D7 D6 D5 D4 D3 D2 D1 D0 GATE—门控位 C/T—计数/定时选择 M1 M0—工作方式选择 1 2 3 4
2019/12/23 三、定时得/计数爵的工作方式 2.方式1-16位方式 定时需/计散福共有四种工作方式 1.方式0一13位方式 定时睡> 额瑞2i利 瑞司12 T-1 oTo网 画00- TRO 位8啦 16计最得 AATE TRO 13位计量腰 INTO 3.方式2-8位自动装入时间常数方式 4.方式3一2个8位方式 瑞隔2/i0 仅T0可以工作在方式3-此时T0分成2个轴立的计数最一 10/T-1 T几0和TH0,前者用原来T0的控制情号(TO、TFO),后 TRO 者用原来T1的控制信号(TR1、T下1)
2019/12/23 2 三、定时器/计数器的工作方式 定时器/计数器共有四种工作方式 1. 方式0—13位方式 TF0 T0 TR0 GATE INT0 1 ≥1 & C/T=1 振荡器 1/12 C/T=0 TL0 TH0 低5位 8位 13位计数器 定时器 计数器 2. 方式1—16位方式 振荡器 1/12 TL0 TH0 TF0 1 ≥1 & T0 TR0 GATE INT0 C/T=0 C/T=1 8位 8位 16位计数器 3. 方式2—8位自动装入时间常数方式 TF0 振荡器 1/12 1 ≥1 & T0 TR0 GATE INT0 C/T=0 C/T=1 TL0 TH0 4. 方式3—2个8位方式 仅T0可以工作在方式3—此时T0分成2个独立的计数器— TL0和TH0 ,前者用原来T0的控制信号(TR0、TF0),后 者用原来T1的控制信号(TR1、TF1)。 5 6 7 8
2019/12/23 四、应用举例 可城准器件在使用前需要进行初始化: 例1:设晶振频率fa一6化,使用定时最1以方式1产生周期为 ①晴定TMOD拉制字:端短时将拉制字递TMOD; 500H8的方波脉冲,并由P1.0输出。试以中断方式实现。 ②计算计数器的计数和佳 偏程时将计教初值延T五、T立; 8051 500u8 ③开中断(如果使用中斯方式): 编灌时夏位BA、BT江 P1. ④T位夏位拉制定时悬的启动和停止。 10 1控物 T0控制 (2160×2×106=250×10‘ 即216X125 QATE C/T M1MO QATE C/T M1 MO X=26-125=10000H-7DH 0001X XXX 0FF83H 控制字10州 所以,初值为: TH1-OFFH,TL1-83H ②计算计数最的计数初值; ③采用中断方式:编程时打开全局和局部中断。 要产生500μ的方波脉冲,只需在P1.0圳以 250为间隔,交管输出高低电平即可实现,为此,定 ④由定时最控制寄存最TCON中的TR1位控制定 时间应为250μ8。使用6MHz晶振,则一个机器周期 时最的启动和停止。 为2μ8,设特求计数初值为X,则: TR1=1,启动: TR1=0,停止, 12
2019/12/23 3 四、应用举例 ②计算计数器的计数初值: 编程时将计数初值送THi、 TLi; 可编程器件在使用前需要进行初始化: ①确定TMOD控制字:编程时将控制字送TMOD; ③ 开中断(如果使用中断方式): 编程时置位EA、ETi ④ TRi位置位控制定时器的启动和停止。 例1:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为 500μs的方波脉冲,并由P1.0 输出。试以中断方式实现。 8051 P1.0 500μs ① TMOD确定 T1控制 T0控制 0 0 0 1 X X X X GATE C/T M1 M0 GATE C/T M1 M0 控制字10H 要产生500μs 的方波脉冲,只需在P1.0端以 250μs为间隔,交替输出高低电平即可实现。为此,定 时间应为250μs 。使用6MHz晶振,则一个机器周期 为2μs,设待求计数初值为X,则: ② 计算计数器的计数初值; (216–X)×2×10 -6 =250×10 -6 即216–X=125 X=2 16-125=10000H-7DH =0FF83H 所以,初值为: TH1=0FFH,TL1=83H ③ 采用中断方式:编程时打开全局和局部中断。 ④ 由定时器控制寄存器TCON中的TR1位控制定 时器的启动和停止。 TR1=1,启动; TR1=0,停止。 9 10 11 12
2019/12/23 程序设计 0R90000H LP队IN 中断处理程序: :主程序入口 001B明 LJP INTT1 :T1中断入口 INTT1:MOV TH1,#OFFH 主程序: 0R1000H ,重新设量初值 0WTL1,83 AIN:MOV TM00,#10州;T1为方式1 MOV THi. CPL P1.0 !轴出取反 0F门H MOV 1, #83H RETI 初值 SETB E :允许中断 SETB T1 SETB TR 启动定时 SJP ;等特中断 13 14 例2:设晶振频率f6z,各种工作方式下最长定时时间。 练习:按要求编写草片机定时霉的和始化在序: T0作为定时,定时时间为10e: T1作计数,计满100滋出。 鲜所长定时应悬计数物值最小时 2由 (即为0时)的定时时间。 ·MOV TMOD,#51H 方式0: ·MOV TH0,#0D8H (230)X2u8=214u8=16384u8=16.384me ·MOV TL0,#0F0H ·MOV TH1,OFFH 方式1: (2t60)X2u8=217u8=131.072me MOV TL1,#9CH 方2、3 (20-0)×2u8=20u8-0.612m8 16
2019/12/23 4 程序设计 ORG 0000H LJMP MAIN ;主程序入口 ORG 001BH LJMP INTT1 ;T1中断入口 ORG 1000H MAIN:MOV TMOD, #10H ;T1为方式1 MOV TH1, #0FFH MOV TL1,#83H ;初值 SETB EA ;允许中断 SETB ET1 SETB TR1 ;启动定时 SJMP $ ;等待中断 主程序: INTT1: MOV TH1,#0FFH ;重新设置初值 MOV TL1,#83H CPL P1.0 ;输出取反 RETI 中断处理程序: • MOV TMOD,#51H • MOV TH0,#0D8H • MOV TL0,#0F0H • MOV TH1,#0FFH • MOV TL1,#9CH 练习:按要求编写单片机定时器的初始化程序: T0作为定时,定时时间为10ms; T1作计数,计满100溢出。 例2:设晶振频率fOSC=6MHz,各种工作方式下最长定时时间。 1. fOSC=6MHz: TM =2us; 2.由于是加1计数,所以最长定时应是计数初值最小时 (即为0时)的定时时间。 方式0: (213–0)×2us= 214us=16384us=16.384ms 方式1: (216–0)×2us= 217us=131.072ms 方式2、3 (28–0)×2us= 29 us=0.512ms 13 14 15 16
2019/12/23 PO口结构 MCS51单片机片内并行接口 0 P0口 P1日 P2口 写控制信号 P3口 读引脚 2、没有外智艺片时,PO口可以直接件为输入口成输出口使用。 17 18 P尚品鱼出值防过程 阁个路6管 存 D60.0 写控制信号 写控制信号 0 引陶 引鼻 注意:P0口做输出口时,内部数据经过在器送到C-P07上,由于上 注意: 入口时, 20
2019/12/23 5 MCS-51单片机片内并行接口 •P0口 •P1口 •P2口 •P3口 P0口结构 D CP Q Q & 读引脚 读锁存 写控制信号 DB0.0 地址/数据控制线 +5V P0.0 转换开关 锁存器 作用: 1、外扩芯片时,P0口不再做I/O口使用,而是先传送地址,后传送数据。 2、没有外扩芯片时,P0口可以直接作为输入口或输出口使用。 P0口直接做输出口时,输出信息的过程: (将0送到P0.0的过程) D CP Q Q & 读引脚 读锁存 写控制信号 DB0.0 地址/数据 控制线 +5V P0.0 转换开关 锁存器 0 0 0 1 0 注意: P0口做输出口时,内部数据经过锁存器送到P00-P07上。由于上 管始终截止,而当下管也截止时,P00—P07被架空,没有标准的高电平, 所以P0口作输出口使用时,必须外接上拉电阻。 P0口直接做输入口时,输入信息的过程: (将P0.0处的1送入DB0.0的过程) D CP Q Q & 读引脚 读锁存 写控制信号 DB0.0 地址/数据控制线 +5V P0.0 转换开关 锁存器 0 0 1 注意: P0口作输入口时,P00—P07上的信号经过缓冲器送到内部数据总线上。在读 引脚之前,要先将锁存器置1,否则总是读到0。 1 17 18 19 20