- 0
- 0
- 约1.06万字
- 约 10页
- 2017-09-02 发布于浙江
- 举报
第四章80C51基本功能单元结构与操作原理
第四章 80C51基本功能单元结构与操作原理
4·1 80C51定时器/计数器方式 0的 13往/计数器初值如何计算? 有方式1的 16位/计数为什么还要 13位的计数方式?
答: 在80C51定时器/计数器中,有方式0和方式1两种方式:方式0为13位计数方式,相当
于有5位预分频的8位计数方式;方式1为16位计数方式。
方式0工作状态的计数器结构,保留了80C51前身MCS一48单片机32分频的8位计数方式,由TLi的低5位和THi的8位组成13位计数器。计数初值设置不直观。
方式1为16位计数方式,与方式0的区别在于方式1为16位计数,并且是置位方式。而方式0为复位方式(即单片机复位后为方式0状态)。
80C51定时器川十数器的方式0的13位计数器是按5位预分频定标器、8位计数器设置的。在80C5lTHi、TLi两个8位计数器构成的13位计数中,TLi为低5位,THi为高8位。这种计数器的配置其计数初值不是按13位减法所得的数据值。例如,要实现x的定时要求,系统时钟为fosc,定时器计数脉冲周期为12//fosc,按13位减法,13位加计数器的计数初值m为
x×fosc
m=213 一
12
设x=1ms, fosc=12MHz,则
l×l0-3×l2×106
m=213一 =7192=lCl8H
12
上述m是按13位计数(高5位,低8位)的减法求得的计数器初值;而80C51定时器方式
0的13位计数器是按高8位、低5位安排的,即要把郴按高8位、低5位组合成计数初值:
lCl8H=l1100000 11000B=E0 l8H
计数初值为E0 l8H。
4·2 如何使用外部引脚信号来挂制定时器/计数的启、棒?
答: 定时器/计数器方式寄存器TMOD申,GATE是控制方式选择位。
当GATE=0时,计数器由内部TRi位控制启、停;当GATE=l时,计数器由TRi和外部
引脚INTi控制启、停。
为了能通过INT0引脚来控制定时器/计数器T0的启、停,必须在方式寄存器TMOD中
将GATE置l:
MOV TMOD,#0DH ;控制字为0000110lB
定时器/十数器可由外部引脚INTi控制启、停,利用这一特性,可对外部脉冲信号宽度进行测量。
通过T1对外部脉冲信号正脉冲宽度进行测量。外部脉冲频率信号从引脚INT1输入,如
题图4 – 1所示。正脉冲信号宽度为TW。
①设计电路
由外部引脚INT1控制T1计数器定时计数的启动、停止,高电平时启动计数,低电平时停止计数。
INT1高电平时,计数器中记得的数值m为12分频的时钟频率fosc的周期数。脉冲宽度TW则为
TW=(12/fosc)×m
②定时器/计数器的控制字
选定T1、方式1、外部INT1控制启停(GATE、1)、定时器方式(C/T=0),故TMOD=1001××××B。令TMOD=90H
③测量Tw子程序STW清单:
STW: MOV TMOD,#90H ;设Tl控制字
MOV TLl,#00H ;计数器清零
MOV THl,#00H
SETB P3.3 ;置P3.3为输入方式
STLP0:MOV C,P3.3 ;读INTl引脚入CY
JC STLP0 ;等待外部引脚变低电平
SETB TR1 ;置INTl启、停允许
STLP1:MOV C,P3.3 ;查询INTl状态是否变高电平
JNC STLPl ;末变高等待
STLP2:MOV C,P3.3 ;查询INTl是否变低
JC STLP2 ;未变低,等待
CLR TR1
原创力文档

文档评论(0)