1、 第 7 章 思考题及 习 题 7 1 如果采用 的晶振的频率为 24MHz , 定时器/ 计 数器工作在方式 0 、 1 、 2 下, 其最大定时时间各为多少? 答:晶振的频率为 24MHz, 机器周 期为 0.5s 。 方式 0 最大 定时时间=0.5s2 13 =0.5s8192=4096s 方式 1 最大 定时时间=0.5s2 16 =0.5s65536=327686s 方式 2 最大 定时时间=0.5s2 8 =0.5s256=128s 2 定时器/ 计 数器用作计数器模式时,对外界计数频率有何限制? 答:外部输入的计数脉冲的最高频率为系统振荡器频率的 1/24 。 3 定时器/ 计
2、 数器的工作方式 2 有什 么特点?适用于哪些应用场合? 答: 方式 2 为初值自动装入的 8 位 定时器/ 计数器, 克服了在循环定时或循环计数应用时就存在用指令反 复装入计数初值影响定时精度的问题。适用于精确定时,比如波特率的产生。 4 THx 与 TLx (x = 0 ,1 )是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后的新值是 立即刷新还是等当前计数器计满后才能刷新? 答:THx 与 TLx (x = 0 ,1 ) 是计数器, 其内容可以随时用指令更改, 但是更改后的新值要等当前计数器 计满后才能刷新。答:THX 与 TLX(X=0,1) 是由 特殊功能寄存器构成的计数器
3、,其内容可以随时用指令更改, 更改后的新值是立即刷新。 但在读 THX 、TLX 的 值时, 应该先读 THX 值, 后读 TLX,再 读 THX 。 若两次读 得 THX 相同,则可确定读得的内容正确。若前后两次读得的 THX 有变化,再重复上述过程。 5 Proteus 虚拟仿真 使用定时器 T0,采用方式 2 定时,在 P1.0 脚输出周期为 400s,占空比为 4 :1 的矩形脉冲,要求在 P1.0 脚接有虚拟示波器,观察 P1.0 脚 输 出 的 矩形脉 冲波形。 答:略 6 Proteus 虚拟仿真 利用定时器 T1 的中断来使 P1.7 控制蜂鸣器发出 1kHz 的音频信号,假设
4、系统时钟频率为 12MHz 。 答: 利用定时器 T1 的中 断控制 P1.7 引脚输出频率为 1kHz 的 方波音频信号, 驱动蜂鸣器发声。 系统时钟 为 12MHz 。 方波音频信号的周期为 1ms ,因此 T1 的定时中断时间为 0.5 ms ,进入中断服务程序后,对 P1.7 求反。电 路 如 图 所 示 。 图 控制蜂 鸣器发出 1kHz 的音频信号 先计算 T1 初 值,系统时钟为 12MHz ,则方波的周期为 1s 。1kHz 的音频 信号周期为 1ms ,要定时 计 数 的脉冲数为 a 。则 T1 的初 值: TH1=(65 536a)/256 ; TL1=(65 536a)
5、%256 参考程序如下: #include / 包含头文件 sbit sound=P17; / 将 sound 位 定义为 P1.7 引脚 #define f1(a) (65536-a)/256 / 定义装入定 时器高 8 位 的时间常数 #define f2(a) (65536-a)%256 / 定义装入定 时器低 8 位 的时间常数 unsigned int i = 500; unsigned int j = 0; void main(void) EA = 1; / 开总中断. ET 1= 1; / 允许定时器 T1 中断 . T MO D =0x 10; /T MO D =0 00 1
6、0 00 B ,使 用 T1 的方 式 1 定时 TH1=f1(i); / 给定时器 T1 高 8 位赋初 值. TL1=f2(i); / 给定时器 T1 低 8 位赋初 值. TR 1= 1; / 启动定时器 T1 w h ile( 1) / 循环等待 i=460; while(j2000) ; j=0 ; i=3 60 ; while(j 2000) ; j=0 ; void T1(void) interrupt 3 using 0 / 定时器 T1 中断函数 T R 1= 0; / 关闭定时器 T1 sound=sound; /P1.7 输出求 反 TH1=f1(i); / 定时器 T1
7、 的高 8 位重 新赋初值. TL1=f2(i); / 定时器 T1 的低 8 位重 新赋初值. j +; TR 1= 1; / 启动定时器 T1 7 Proteus 虚拟仿真 制作一个 LED 数码管显示的秒表, 用 2 位数码管显 示计时时间, 最小计时单位为“ 百毫秒” , 计时范围 0.1 9.9s。当 第 1 次按下并松开计时功能键时, 秒表开始计时并显示时间; 第 2 次按下 并松开计时功能键时, 停止 计时,计算两次按下计时功能键的时间,并在数码管上显示;第 3 次 按下计时功能键,秒表清 0 ,再按 1 次 计时功能键,重新开始计时。如果计时到 9.9s 时,将停止计时,按下计
8、时功能键,秒表清零,再按下重新开 始计时。 答:本秒表 应用了 AT 8 9 C 5 1 的定时 器工作模式,计时范围 0.1 9.9s 。此 外还涉及如何编写控制 LED 数 码管显示的程序。 LED 数码管显示的秒表原理电路如图所示。 图 LED 数 码管显示的秒表原理电路及仿真 参考程序如下: #include / 包含 51 单 片机寄存器定义的头文件 unsigned char code discode1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; / 数码管显示 0 9 的段码 表, 带小数点 unsigned char c
9、ode discode2=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; / / 数码管显示 0 9 的段码 表,不带小数点 unsigned char timer=0; / 记录中断次 数 unsigned char second; / 储存秒 unsigned char key=0; / 记录按键次 数 m a i n ( ) / / 主函数 TMOD=0x01; / 定时器 T0 方式 1 定时 ET0= 1; / 允许定时器 T0 中断 EA =1; / 总中断允许 seco nd= 0; / 设初始值 P0=discode1sec
10、ond/10; / 显示秒位 0 P2=discode2second%10; / 显示 0.1s 位 0 w h i l e ( 1 ) / / 循环 if(P3 / / 按键次数 加 1 s w i t c h ( k e y ) / / 根据按键次 数分三种情况 c a s e 1 : / / 第一次按下 为启动秒表计时 T H 0 = 0 x e e ; / / 向 TH0 写 入初值的高 8 位 T L 0 = 0 x 0 0 ; / / 向 TL0 写入 初值的低 8 位,定时 5ms T R 0 = 1 ; / / 启动定时器 T0 b r e a k ; case 2: / 按下
11、两次暂 定秒表 T R 0 = 0 ; / / 关闭定时器 T0 b r e a k ; case 3: / 按下 3 次秒 表清 0 key =0 ; / 按键次数清 0 s e c o n d = 0 ; / / 秒表清 0 P0=discode1second/10; / 显示秒 位 0 P2=discode2second%10; / 显示 0.1s 位 0 b r e a k ; while(P3 / 如果 按键时间过长在此循环 void int_T0() interrupt 1 using 0 / 定时器 T0 中断函数 T R 0 = 0 ; / / 停止计时, 执行以下操作(会带来
12、计时误差) T H 0 = 0 x e e ; / / 向 TH0 写 入初值的高 8 位 T L 0 = 0 x 0 0 ; / / 向 TL0 写入 初值的低 8 位,定时 5ms t i m e r + + ; / / 记录中断次 数 if (timer=20) / 中断 20 次 ,共计时 20*5ms=100ms=0.1s timer=0; / 中断次数清 0 s e c o n d + + ; / / 加 0.1s P0=discode1second/10; / 根据计时时 间,即时显示秒位 P2=discode2second%10; / 根据计时时 间,即时显示 0.1s 位 i
13、f(second=99) / 当计时到 9.9s 时 T R 0 = 0 ; / / 停止计时 second=0; / 秒数清0 key=2; / 按键数置 2 ,当再次按 下按键时,key+, 即 key=3 ,秒表清 0 复原 e l s e / / 计时不 到 9.9s 时 T R 0 = 1 ; / / 启动定时 器继续计时 8 Proteus 虚拟仿真 制作一个采用 LCD1602 显示的电子钟,在 LCD 上显示当前的时间。显示格式为“ 时 时:分分:秒秒” 。 设有 4 个功 能键 k1k4 , 功能如下: (1 )k1 进 入时间修改。 (2 )k2 修 改小时,按一下 k2
14、,当 前小时增 1 。 (3 )k3 修 改分钟,按一下 k3 ,当 前分钟增 1 。 (4 )k4 确 认修改完成,电子钟按修改后的时间运行显示。 答:本题难 点在于处理功能键 K1 K4 的输入,由于每个功能键都具有相应的一种或多种功能,因此程 序中需要大量使用 dowhile 或 while 循环结构,以检测是否有按键按下的具体功能。按键检测函数如下: void time_change() unsigned char keyvalue0=0 ,keyvalue1=0; keyvalue0=keyscan(); / 检测 是否 有按 键按 下 if(keyvalue0) / 如果有按 键按
15、 下, 继续 检测 if(keyvalue0=1) / 按键 1 ,走时停 止, 开始 判断 更改 值, 直到 按键 4 按下 while( key0) ; / 防抖, 直到 按键 松开 时才 进行 下一 步的 操作 TR0 =0 ; / / 控制走时 的中 断停 止 do keyvalue1=keyscan();/ 检测 按键 按下 if(keyvalue1=2)/ 如果 按键 2 按下, 改变 时间 wh i le ( key1);/ 防抖 if(hour23)/ 如果小时数 小于 23 则加 1 hou r+ + ; else/ 如果小 时数 为 23 ,置位为 0 hour=0; el
16、se if(keyvalue1=3)/ 如果 按键 3 按下, 改变 分钟 wh i le ( key2);/ 防抖 if(minute59)/ 如果分 钟数 小于 59 则加 1 m inut e + ; else/ 如果分 钟数 为 59 ,置位为 0 minu te =0 ; c lock_w r it e () ; while(keyvalue1!=4);/ 重 复 对时 间的 修改 直到 按键 4 按下 while( key3=0);/ 防抖 TR0=1;/ 调整时 间后 重新 开始 走时 必须注意,程序设计中,小时、分钟、秒变量 hour 、minute 、second 必 须置为
17、全局变量,才能如上述函 数一样在各处函数中直接进行修改,如为局部变量,则上述形式的直接修改无效。 1602 液晶显 示模块以及基于单片机定时器的时钟实现见教材的介绍,不再赘述。 LCD 时钟原理电路图如下图。程序执行后工作指示灯 D1 闪动一下,表示时钟开始运行。按下按键 K1 后,D1 停止闪烁,即时钟停止走时,时钟停在当前时刻;按下按键 K2 和 K3 后,可改变小时和分钟;按下 按键 K4 后, 时钟从修改后的时间重新开始运行。 为加强 AT 8 9 C 5 1 的驱动 能力,原理图中加入作为上拉电阻的排电阻(CTRESPACK-7 ) ,即图中 的 RP1 。 图 L CD 电子钟电路
18、原理电路图与仿真 一、填空 题 1. MCS-51 单片 机中有 2 个 16 位 的定时器/ 计数器。 2. 定时/ 计数器有( 4 )种 工作方式,方式 2 的是 一个 8 位 自动重装初值 的定时/ 计数器。 3. 定时器/ 计数器 T0 可以工 作于方式 0 、1 、2 、3 。 4. 方式 0 为 1 3 位定 时器/ 计数器。 5. 若系统晶振频率为 12MHz ,则 T0 工 作于定时方式 1 时最多 可以定时 65536 s 。 6. 若系统晶振频率为 6MHz ,则定时器可以实现的最小定时时间为 2 s 。 7. 欲对 300 个 外部事件计数,可以选用定时器/ 计数器 T1
19、 的方 式 0 或方 式 1 。 8. TMOD 中的 M1M0= 11 时 ,定时器工作于方式 3 。 9. MCS-51 单片 机工作于定时状态时,计数脉冲来自 单片机 内部的机器周期 。 10. MCS-51 单片 机工作于计数状态时,计数脉冲来自 单片机 外部事件 。 11. 当 GATE=0 时, 则当 软件控制位 TR0 1 时 启动 T0 开始工作。 12. MCS-51 单片 机有两个定时器/ 计数器,即定时器/ 计数器 0 和 1 ,简称为 T0 和 T 1 。 13. T0 和 T1 都具 有 定时 和 计数 的功能,可以通过特殊功能寄存器来选择。 14. 寄存器 TMOD
20、 的 C/T 位又称为 工作模式 选择位 ,可以选择定时功能或者计数功能。 15. 中断控制寄存器 TCON 包含三个部分, T F 1 和 TR1 位 用于控制 T1 , TF0 和 T R 0 位用 于控制 T0 ,其余的 4 位为 定 时中断控制位 。 16. 定时/ 记数器的工作方式由寄存器 TMOD 决定,中断请求标志由寄存器 TCON 控制 。 17. 外部中断 0 的中断入口地址为 0003H ,定时/ 记数器 T1 的 中断入口地址为 001BH 。 18. 定时/ 计数器 T0 工作在方 式 2 的定时 状态, 已知晶振周期为 12MHZ , 定时时间为 250us , 计数
21、初值为 6 , 如果定时时间为 256us , 则计数初值为 0 19. 当 AT89S51 单片机的定时/ 计数器设置为计数方式时,外部事件的最高计数频率为振荡频率的 1/24 。 20. 设 MCS-51 单片机晶振频率为 12MHz ,定时器作计数器使用时,其最高的输入计数频率应为_0.5MHz 21. 若单片机的时钟频率为 8MHz ,则时钟周期为 ,机器周 期 T M = 。 0.125us 1. 5us 22. 若要利用定时器 T1 产生 串行通信的波特率,则 T1 工作在方 式 2 下。 23. 当定时器 T0 发生中断时,程序将自动跳到_0BH _ 地址 去执行。 24. 当定
22、时/ 计数器 T0 工作在 方式 3 时,T0 被拆分为 2 个独立的 8 位计 数器。 二、选择 题 1. T1 不可以工 作如下那个模式( D ) 。 A 工作模式0 B 工作模式 1 C 工作模式2 D 工作模式 3 2. 以下哪个寄存器可以位寻址( B ) 。 A TMOD B TCON C TH0 D TL0 3. 以下哪个工作模式为 16 位计数器方式( B ) 。 A 工作模式0 B 工作模式 1 C 工作模式2 D 工作模式 3 4. 51 系列单片 机最多可以使用( B )个定时器/ 计数器。 A 2 B 3 C 1 D 4 5. 判断下列的说法是否正确? (1) 特殊功能寄
23、存器 SCON ,与定时器/ 计数器的控制无关。 (对 ) (2) 特殊功能寄存器 TCON ,与定时器/ 计数器的控制无关。 (错 ) (3) 特殊功能寄存器 IE ,与定时器/ 计数器的控制无关。 (错 ) (4) 特殊功能寄存器 TMOD ,与定时器/ 计数器的控制无关。 (错 ) 6. MCS-51 单片 机定时器工作方式 0 是( C )工 作方式。 A )8 位 B )8 位自 动重装 C )13 位 D )16 位 7. 8051 单片机 的定时器 T1 用作定时方式时是 。B A 由内部时钟频率定时,一个时钟周期加 1 B 由内部 时钟频率定时,一个机器周期加 1 C 由外部时
24、钟频率定时,一个时钟周期加 1 D 由外部时钟频率定时,一个机器周期加 1 8. 8051 单片机 的定时器 T0 用作计数方式时是 。C A 由内部时钟频率定时,一个时钟周期加 1 B 由内部 时钟频率定时,一个机器周期加 1 C 由外部计数脉冲计数,下降沿加 1 D 由外部计数脉冲计数,一个机器周期加 1 9. 51 单片机的 定时器 T1 用 作计数方式时计数脉冲是 。A A 外部计数脉冲由 T1 (P3.5 )输入 B 外部 计数脉冲由内部时钟频率提供 C 外部计 数脉冲由 T0 (P3.4 )输入 D 由外 部计数脉冲计数 10. 8031 单片机 的定时器 T0 用作定时方式时是
25、。D A 由内部时钟频率定时,一个时钟周期加 1 B 由外部计数脉冲计数,一个机器周期加 1 C 外部定时脉冲由 T0 (P3.4 )输入定 时 D 由内部时钟频率计数,一个机器周期加 1 11. 51 单片机的 机器周期为 2s ,则其晶振频率 fosc 为 MH z 。 A 1 B 2 C 6 D 12 12. 定时器 T1 作 定时模式,用方式 1 ,则 工作方式控制字为 。C A 01H B 05H C 10H D 50H 13. 定时器 T1 作 计数模式,用方式 2 ,则 工作方式控制字为 。A A 60H B 0 2H C 06H D 20H 14. 定时器 T1 作 定时模式,
26、用方式 2 ,则 工作方式控制字为 。D A 60H B 02H C 06H D 20H 15. 21. 用定时 器 T0 作计数模 式,用方式 1 (16 位) ,则 工作方式控制字为 。D A 01H B 02H C 04H D 05H 16. 22. 用定时 器 T0 作定时模 式,用方式 2 ,则工作方式控制字为 。B A 01H B 02H C 04H D 05H 17. 启动定时器 0 开始计数的 指令是使 TCON 的 。B A TF0 位置 1 B TR0 位置1 C TR0 位置 0 D TR1 位置 0 18. 启动定时器 1 开始定时的 指令是 。B A TF1 位置 1
27、 B TR1 位置1 C TR0 位置 0 D TR1 位置 0 19. 使定时器 T0 停止计数的指令是 。A A TF0 位置 1 B TR0 位置1 C TR0 位置 0 D TR1 位置 0 20. 使定时器 T1 停止定时的指令是 。B A TF1 位置 1 B TR1 位置0 C TR0 位置 0 D TR1 位置 1 21. 当 CPU 响应定时器 T1 的 中断请求后,程序计数器 PC 的内容是 。D A 0003H B 000BH C 0 00 13H D 001BH 22. 用定时器 T1 方式 1 计数 ,要求每计满 10 次产生 溢出标志,则 TH1 、TL1 的初始值
28、是 A 。 A FFH 、F6H B F6H 、F 6H C F0H 、F0H D FFH 、F0H 23. 用定时器 T1 方式 2 计数 ,要求每计满 100 次, 向 CPU 发出中断请求,TH1 、TL1 的 初始值是 。A A 9CH B 20H C 6 4H D A0H 24. 单片机定时器溢出标志是 。D A TR1 和 TR0 B IE1 和 I E 0 C IT1 和 I T 0 D TF1 和 TF0 25. 51 单片机定 时器外部中断 1 和外部 中断 0 的触 发方式选择位是 。C A TR1 和 TR0 B IE1 和 I E 0 C IT1 和 I T 0 D T
29、F1 和 TF0 26. 定时器 T1 的 溢出标志 TF1 ,若计满数 产生溢出时,如不用中断方式而用查询方式,则应 。B A 由硬件清零 B 由软件 清零 C 由软件 置于 D 可不处理 27. 定时器 T0 的 溢出标志 TF0 ,若计满数 产生溢出时,其值为 。C A 00H B F F H C 1 D 计数值 28. 定时器 T0 的 溢出标志 TF0 ,若计满数 在 CPU 响应中断后 。A A 由硬件清零 B 由软件 清零 C A 和 B 都可以 D 随机状态 29. 单片机计数初值的计算中,若设最大计数值为 M ,对于方式 1 下的 M 值为 D 。 A M= 13 2 =81
30、92 B M= 8 2 =25 6 C M= 4 2 = 1 6 D M= 16 2 =65536 30. 对定时器控制寄存器 TCON 中的 IT1 和 IT0 位清 0 后,则外部 中断请求信号方式为 A 。 A 低电平 有效 B 高电平有效 C 脉冲上跳沿有效 D 脉冲后沿负跳有效 31. 51 单片机定 时器内部结构由 组成 。A 、B 、D 、E 、 A T CO N B TMOD C 计数 器 D T0 E T1 32. 51 单片机控 制寄存器 TCON 的作用是 A BCE 等。 A 定时/ 计数器的启、停控制 B 定时 器的溢出标志 C 外部中断请求标志 D 确定中断优先级
31、E 选择外部中断触发方式 33. 定时器 T0 作 定时用,采用方式 1 ,编 程时需有下列步骤 A CD E 。 A TMOD 初始化 B 选择电平触发还是边沿触发 C 置入计数初值 D 启动定时器 E 串行计数是否溢出及转移 34. 定时器 T1 作 定时模式,用方式 2 ,则 初始化编程为 BD 。 A 置 TMOD 为 05H B 置 TMOD 为60H C置 TMOD 为02H D 置 TH0 、TL0 相同初 值,以后不须重新置数 E 置 TH0 、TL0 相同 初值,以后须重新置数 35. 在下列寄存器中,与定时/ 计数控制无关的是( C ) (A )TCON (定时控制寄存器)
32、 (B )TMOD (工作方式控制寄存器) (C )SCON (串行控 制 寄存器) (D )IE (中 断允许控制寄存器) 36. 定时工作方式 1 和方式 0 比较,定时 工作方式 2 不具备的特点是( B ) (A )计数溢出后能自动重新加载计数初值 (B)增加 计数 器位数 (C )提高定时精度 (D )适于循环定时和循环计数应用 37. 振荡频率为 12 MHz ,定时 器在工作方式 1 下最大 定时时间为 A . 8. 1 92m s B. 65 . 5 36 m s C. 0 . 2 56m s D . 16 . 38 4m s 答案 :9.B 38. 当 8051 单片 机系统
33、的振荡晶体频率为 3MHz 时 ,其一个机器周期的时间是 D 。 (A ) 0.5 S (B ) 1 S (C ) 2 S (D )4 S 39. 下列特殊功能寄存器中可以位寻址的是 A 。 (A )TCON (88H ) (B ) DPL (82H ) (C ) TH0 (8CH ) (D )SBUF (99H ) 40. 定时/ 计数器 T1 的工作方 式 2 为( A )位工作 方式。 A 、8 B 、10 C 、13 D 、16 41. 当单片机的振荡频率为 12MHz 时,则 定时器每计一个内部脉冲的时间为( A ) 。 A 、1 s B 、2 s C 、3 s D 、4 s 42.
34、 定时/ 计数器 T0 工作在门 控方式时,其门控信号由( A ) 引脚输入。 A 、INT0 B 、I N T 1 C 、T0 D 、T1 43. 中断控制与哪些寄存器有关( D ) 。 A 、TCON ,SCON ,PSW ,SP B 、TCON ,SCON ,IE ,SP C 、TCON ,SCON ,PSW ,IP D 、TCON ,SCON ,IE ,IP 三、简答 题 1. 定时器作 定 时和计数 时 其计数脉 冲 分别由谁 提 供? 答:作定时 器时计数脉 冲由片内振 荡器输出经12分频后的脉 冲提供,作 计数时计数 脉冲由外部 信号通过 引脚 P3.4 和 P3.5 提供。 2
35、. 一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的定时? 答:方式一,在第一个定时器的中断服务程序里关闭本定时器的中断程序,设置和打开另一个定时器; 在另一个定时器的中断服务程序中关闭本定时中断,设置和打开另一个定时器。这种方式的定时时间为 两 个 定时器定时时间的和。 方式二, 一个作为定时器, 在定时中断后产生一个外部计数脉冲 (比如由 P1.0 接 INT0 产生) , 另一个定 时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值。 3. 当定时器 T0 用于方式 3 时,应该如何控制定时器 T1 的启动 和关闭? 答:由
36、 T1(P3.5) 口控制定 时器 T1 的启 动和关闭。 4. 定时器/ 计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为 6MHz ,求允 许测量的最大脉冲宽度是多少? 答:采用方式 1 定时工 作方式。最大脉冲宽度为 131.072ms 。 5. 定时器/ 计数器 T0 和 T1 各有几种工作方式?简述每种工作方式的特点。如何控制定时器/ 计数器的 工作方式? 答:T0 可以 工作于方式 0 ,1 ,2 ,3 ;T1 可以工作 于方式 0 ,1 ,2 方式 0 :是 13 位定时/ 计 数器,由 TLX 的低 5 位(TLX 的高 3 位未用) 和 THX 高 8 位
37、组成。 方式 1 :TLX 和 THX 组成 16 位定时/ 计数器。 方式 2 :方 式 2 为自动 重装初值的 8 位定时/ 计 数器。 方式 3 只适 用于定时/ 计数器 T0 ,当 T0 工作在方 式 3 时,TH0 和 TL0 被 分为两个独立的 8 位计 数器。 通过设置 TMOD 中的 M1 、M0 两位来 选择工作方式,如下表所示。 M1 M0 工作方式 方式说明 0 0 方式01 3 位定时/计数 器 0 1 方式11 6 位定时/计数 器 1 0 方式 2 具有自动重装初值的 8 位定时/ 计数器 1 1 方式3T 0 为两个独 立的 8 位计 数器,T1 为 波特率发生器
38、 6. 设单片机的晶振频率 f OSC =6MHz ,分 别讨论定时器/ 计数器 0 在各种工作方式下的最长定时时间。 答: 由 f OSC =6MHz 可知, 一个机器周期 T=2us , 由于是加 1 计 数, 所以最长定时应是计数初值最小时 (即 为 0 时)的 定时时间。 方式 0 : (2 13 0 )2us= 2 14 us=16384us=16.384ms 方式 1 : (2 16 0 )2us= 2 17 us=131.072ms 方式 2 、3 :(2 8 0 )2us= 2 9 us=0.512ms 5 简述 MCS-51 单片机 定时/ 计数器中定时/ 计数初值的设置方法
39、。 设单片机时钟电路的振荡频率 osc f 为 11.0592MHz,则 经 12 分频 后得到的机器周期 0 T 为: 0 12 12 1.085 11.0592 osc Tss f MCS-51 单片 机的定时/ 计数器 T1 和 T0 都是增量计数器,因此不能直接将要计数的值作为初值放入寄存 器中, 而是将计数的最大值 (溢出值) 减去实际要计数的值, 将差值存入寄存器中。 所以定时/ 计数器计数初 值的计算公式如下: 2 n 计数初值 实际计数值式中,n 为由 工作方式决定的定时/ 计数器位数。在工作方式 0 下,n 取 13 , 13 2 8192 ;在工作方式 1 下,n 取 16 , 16 2 65536 。