第十七讲 定时/计数器 教学方法: 讲授法 授课时数: 2学时 教学目的: 1、了解MCS-51单片机内定时/计数器系统组成 2、掌握定时/计数器工作方式的控制 3、能编制简单的应用程序 教学重点: 定时/计数器的工作方式及模式 教学难点: 方式及模式确定 教学环节: 组织教学:(5分钟) 检查学生人数,强调课堂纪律和要求,自我介绍。 新授课:(70分钟) §4-2 定时 / 计数器 一、定时 / 计数器的结构 T0、T1均为16位加1计数器。 TH0 TH1 TL0 TL1 TMOD 工作方式 TCON 1、工作方式控制寄存器 TMOD T1 T0 TMOD GATE C//T M1 M0 GATE C//T M1 M0 GATE —— 门控位。 GATE = 0 启动不受 /INT0或 /INT1的控制; GATE = 1 启动受 /INT0 或 /INT1 的控制。 C//T —— 外部计数器 / 定时器方式选择位 C//T = 0 定时方式; C //T = 1 计数方式。 M1M2 —— 工作模式选择位。 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位定时/计数。 2、定时 / 计数器控制寄存器TCON TCON TR1 TR0 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运行控制位。 用法与TR1类似。 二、定时 / 计数器的四种工作模式 1、模式0 T1、T0的等效逻辑结构 (显示投影胶片) 计数寄存器TLi 低5位 + THi8位 C//T = 0 ——定时 C//T = 1 —— 对外计数。 定时:fosc / 12 = 1 /(12/fosc) = 1 / T 等间隔,次数已定,时间确定 T 即对机器周期进行计数。 左图定时时间为n×T。 n 计数:脉冲不等间隔。 每个下降沿计数一次 确认一次负跳变需两个机器周期, 所以,计数频率最高为fosc / 24。 GATE = 0 时,A =“1” B = “1”(TRi = 1时),启动计数 B = “0”(TRi = 0时),停止计数。 GATA = 1 时, A =“1”(/ INTXi =“1”) B =“1”(TRi = 1时)启动, B = “0”(TRi = 0时)停止。 A =“0”(/ INTXi =“0”)停止。 2、模式1 与模式0相似。 与模式0的区别:计数位数不同。 计数寄存器:THi(高8位)+ TLi(低8位) 3、模式2 与模式0、1的区别:1)计数位数不同; 2)初值自动重装。 计数寄存器: TLi(8位) 溢出时 TFi THi(8位初值) 4、模式3 T0定时/计数,而T1停止计数,但可作波特率发生器。T0分成两独立定时/计数器TL0和TH0。 TL0使用C//T、GATE、TR0、/INT0、TF0定时/计数, TH0使用TR1、TF1 因此,只能用于定时。 (展示投影胶片。) 模式3时,T1可定时为模式0、1、2的定时/计数,但不可中断,所以一般只作串口波特率发生器用。(投影展示图4-8) 三、定时/计数器的应用 编程前确定参数: (1)定时/计数器—— T0、T1选择其一, (2)工作方式——C//T及GATA, (3)计数初值——加1计数、16位。 FFFFH X=M-N;M=213=8192(模式0) N X M=216=65536(模式1) X M M=28=256 (模式2、模式3) 0000H (4)工作模式——M1、M0 编制初始化程序: 1)写TMOD;2)确定IE、IP;3)写计数初值;4)启动计数(TRi) 例1、设计一个能产生t=1ms的周期信号发生器,试编程。 解:选T0; C//T=0,GATE= 0 N = t / T = t /(12×(1/fosc))= 500 所以, X = M - 500 ,问:M取多少? 模式0、模式1均可,取模式0,M=213=8192 X = 8192-500 = 7692 = 1E0CH = 0001 1110 000 0 1100B, 先将低五位放入TL0中,再将剩余的数从右向左数出八位放入TH0中: TH0 0F0H TL0 0CH 程序: ORG 0000H LJMP MAIN ORG 000BH LJMP INSE1 ORG 1000H MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0F0H MOV TMOD,#00H SETB TR0; IE SETB ET0;TCON SETB EA SJMP $ INSE1: MOV TL0,#0CH MOV TH0,#0F0H CPL P10 RETI 小结:1、MCS-51单片机内有几个定时计数器?如何计数? 2、T0、T1有几种工作方式? 3、编程应用前要事先确定的参数有几个? 布置作业:P141 9 版书设计 一、定时 / 计数器的结构 1、…….. 2、……. 3、……. 4、…….. 二、定时 / 计数器的四种工作模式 1、…….. 2、…….. 3、…….. 4、……..  三、定时/计数器的应用 1、……. 2、……. 3、……... 小结: 1、……. 2、……. 3、…….. 作业: