单选题
1、要想测量 INT0引脚上的正单脉冲的宽度,特殊功能寄存器 TMOD 的内容应为( )。
A
87H
B
09H
C
80H
D
00H简答
答案解析
正确答案:B
解析:
要测量 INT0 引脚(P3.2)上正单脉冲的宽度,通常使用定时器/计数器 T0 的**门控位(GATE)**功能。
### 1. 原理分析
在 8051 单片机中,当定时器 T0 的门控位 **GATE=1** 时,定时器 T0 的启动不仅受软件控制位 TR0 的影响,还受外部中断引脚 **INT0** 的电平控制。
* 当 `TR0 = 1` 且 `INT0 = 1`(高电平)时,定时器 T0 开始计数。
* 当 `INT0` 变为低电平时,定时器停止计数。
因此,若将 T0 设置为定时模式,并置 GATE=1,然后让 INT0 引脚接收正脉冲,定时器记录的计数值就对应了该正脉冲的高电平持续时间(即脉冲宽度)。
### 2. TMOD 寄存器结构
TMOD 寄存器用于设置定时器的工作模式,其各位定义如下:
| 位 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| **功能** | GATE | C/$\bar{T}$ | M1 | M0 | GATE | C/$\bar{T}$ | M1 | M0 |
| **所属定时器** | **Timer 1** | | | | **Timer 0** | | | |
我们需要配置的是 **Timer 0**(低4位:D3-D0),Timer 1 保持默认或不影响即可(通常设为0)。
### 3. 具体位设置
为了测量 INT0 正脉冲宽度,对 Timer 0 的设置要求如下:
1. **GATE (D3)**: 必须为 **1**。这是关键,只有 GATE=1 时,INT0 引脚才能控制定时器的启停。
2. **C/$\bar{T}$ (D2)**: 必须为 **0**。因为我们要测量的是时间宽度(基于内部时钟振荡频率分频后的脉冲),而不是外部事件计数,所以选择**定时模式**。
3. **M1, M0 (D1, D0)**: 选择工作模式。通常为了获得较大的计数范围或简单的16位计数,常选用**方式1**(16位定时器/计数器)。
* 方式1:M1=0, M0=1。
综上,Timer 0 的低4位(D3-D0)应为:
* D3 (GATE) = 1
* D2 (C/$\bar{T}$) = 0
* D1 (M1) = 0
* D0 (M0) = 1
即二进制为 `1001`,转换为十六进制为 **9H**。
对于 Timer 1(高4位:D7-D4),题目未作特殊要求,通常初始化为 0,即 `0000`。
### 4. 计算最终值
* 高4位 (Timer 1): `0000` -> 0
* 低4位 (Timer 0): `1001` -> 9
组合起来,TMOD 的值为 **09H**。
### 5. 选项对比
* A. 87H: Timer 1 GATE=1, 方式1; Timer 0 GATE=0, 方式3。不符合。
* **B. 09H**: Timer 1 全0; Timer 0 GATE=1, 定时模式, 方式1。**符合**。
* C. 80H: Timer 1 方式0; Timer 0 方式0。不符合。
* D. 00H: 所有位均为0,GATE=0,无法通过 INT0 控制启停。不符合。
故正确答案为 **B**。
相关知识点:
测量INT0脉冲TMOD内容选
题目纠错
单片机
相关题目
单选题
2、AT89S51单片机共有26个特殊功能寄存器,它们的位都是可以用软件设置的,因此,都是可以位寻址的。 ( )
单选题
1、片外RAM的位寻址区,只能供位寻址使用,而不能进行字节寻址。 ( )
单选题
5、AT89S51单片机中特殊功能寄存器( )使用片外RAM的部分字节地址。
( )
单选题
4、PC可以看成程序存储器的地址指针。 ( )
单选题
3、在AT89S51单片机中,为使准双向的I/O口工作在输入方式,必须事先预置为“1”。 ( )
单选题
2、区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。 ( )
单选题
1、使用AT89S51单片机且引脚EA=1时,仍然外扩64KB的程序存储器。( )
单选题
1、下列说法正确的是( )。( )
单选题
1、程序在运行中,当前PC的值是( )。( )
单选题
12、AT89S51单片机复位时,堆栈指针SP中的内容为( ),程序指针PC中的内容为( )。
选择
