第05章 单片机定时计数器 习题解答
一、
填空题
1. MCS-51单片机中有 2 个 16 位的定时器/计数器。 2. 定时器/计数器T0可以工作于方式 0、1、2、3 。 3. 方式0为 13 位定时器/计数器。
4. 若系统晶振频率为12MHz,则T0工作于定时方式1时最多可以定
时 65536 μs。
5. 欲对300个外部事件计数,可以选用定时器/计数器T1的模式 0 或模
式 1 。
6. TMOD中的M1M0= 11时,定时器工作于方式 3 。
7. 若系统晶振频率为6MHz,则定时器可以实现的最小定时时间为 2 μs。 8. MCS-51单片机工作于定时状态时,计数脉冲来自 单片机内部的机器周
期 。
9. MCS-51单片机工作于计数状态时,计数脉冲来自 单片机外部事件 。 10. 当GATE=0时, 则当软件控制位TR0=1时 启动T0开始工作。 二、
简答题
1.定时器/计数器T0和T1各有几种工作方式?简述每种工作方式的特点。如何控制定时器/计数器的工作方式?
答:T0可以工作于方式0,1,2,3;T1可以工作于方式0,1,2
方式0:是13位定时/计数器,由TLX的低5位(TLX的高3位未用)和THX高8位组成。
方式1:TLX和THX组成16位定时/计数器。 方式2:方式2为自动重装初值的8位定时/计数器。
方式3只适用于定时/计数器T0,当T0工作在方式3时,TH0和TL0被分为两个独立的8位计数器。
TMOD用来控制定时计数器的工作方式,位结构如下:
D7 GATE D6 D5 M1 D4 M0 A D3 GAT M1 M0 D2 D1 D0 ←T1方式字段→ ←T0方式字段→ C/T:定时或计数功能选择位。1为计数方式, 0为定时方式。
GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。 GATE=0,软件控制位TR0(TR1)=1启动定时/计数器开始计数。
GATE=1,软件控制位TR0(TR1)=1,INT0(INT1)引脚为高电平时启动定时/计数器开始计数。
M1、M0:定时/计数器工作方式选择位,如下表所示。 M1 0 0 1 1 2.设MCS-51单片机的晶振频率fOSC=6MHz,分别讨论定时器/计数器0在各种工作方式下的最长定时时间。
答:由fosc =6MHz可知,一个机器周期T=2us,由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。
方式0:(213–0)×2us= 214us=16384us=16.384ms 方式1:(216–0)×2us= 217us=131.072ms
方式2、3:(28–0)×2us= 29us=0.512ms当 fosc =6MHz,即T=2us时各种方式下的定时时间,若fosc =12MHz,则最长定时时间将缩短一半。
3.编写程序从P1.0 引脚输出频率为1KHz的方波。设晶振频率为6MHz。
答:利用T1定时中断。fosc= 6MHz。1机器周期 =2 uS。1KHz方波周期 =1mS,半个方波周期=500uS。 500uS÷2uS =250
若选择方式2 工作,计算初值:256-250=6 ORG 0000H AJMP MAIN
ORG 001BH ;T1的中断矢量
1 方式3 T0为两个独立的8位计数器,T1为波特率发生器 0 方式2 具有自动重装初值的8位定时/计数器 1 方式1 16位定时/计数器 0 M0 工作方式 方式0 13位定时/计数器 方式说明 LJMP T1INT MAIN: MOV TMOD,#20H MOV TH0, #6 MOV TL0, #6 SETB ET1 SETB EA
SETB TR1 HERE: AJMP HERE ;原地等待中断 T1INT:CPL P1.0 ;中断服务:P1.0取非 RETI ;中断返回 END
4.利用定时器/计数器1定时中断控制P1.7驱动LED发光二极管亮1秒灭1秒地闪烁,设时
钟频率为12MHz。
答:时钟频率为12MHz,1个机器周期1 us,1秒闪烁一次,0.5秒 P1.7求反1次。 0.5S=500ms=500000 us,方式1最大计数65536,让T1工作于方式1,计数50000次中断一次,初值=65536-50000=15536=3CB0H
用R7记录中断次数,计满10个中断为500ms秒。 ORG 0000H
AJMP MAIN ORG 001BH AJMP PT1INT
ORG 0030H
START:MOV R7,#00H MOV TMOD,#10H
MOV TL1,#0B0H
MOV TH1,#3CH
SETB EA
SETB ET1 SETB TR1
HERE: SJMP HERE PT1INT: MOV TL1,#0B0H
MOV TH1,#03CH INC R7
CJNE R7,#10, PEND MOV R7, #00H CPL P1.7 PEND: RETI END
5.利用MCS-51单片机定时器/计数器设计一个数字秒表。定时范围:00-99秒;两位LED数码管显示。设时钟频率为6MHz。基本原理:利用定时器方式2产生0.5毫秒时间基准,循环2000次,定时 1秒。
答:电路如图所示
把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,??,P0.7/AD7对应着h。
把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,??,P2.7/A15对应着h。
把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;
开始时,显示“00”,第1次按下SP1后就开始计时。
第2次按SP1后,计时停止。 第3次按SP1后,计时归零
选择定时工作方式2;工作方式2就具有自动重装载功能,即自动加载计数初值,在这
种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初