第05章单片机定时计数器习题解答教材
- 格式:docx
- 大小:109.43 KB
- 文档页数:20
第5章思考题及习题5参考答案一、填空1.如果采用晶振的频率为3MHz,定时器/计数器T x(x=0,1)工作在方式0、1、2下,其方式0的最大定时时间为,方式1的最大定时时间为,方式2的最大定时时间为。
答:32.768ms,262.144ms,1024µs2.定时器/计数器用作计数器模式时,外部输入的计数脉冲的最高频率为系统时钟频率的。
答:1/243.定时器/计数器用作定时器模式时,其计数脉冲由提供,定时时间与有关。
答:系统时钟信号12分频后,定时器初值4.定时器/计数器T1测量某正单脉冲的宽度,采用方式可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度为。
答:方式1定时,131.072ms。
5. 定时器T2 有3种工作方式:、和,可通过对寄存器中的相关位进行软件设置来选择。
答:捕捉,重新装载(增计数或减计数),波特率发生器,T2CON6. AT89S52单片机的晶振为6MHz,若利用定时器T1的方式1定时2ms,则(TH1)= ,(TL1)= 。
答:FCH,18H。
二、单选1.定时器T0工作在方式3时,定时器T1有种工作方式。
A.1种B.2种 C.3种D.4种答:C2. 定时器T0、T1工作于方式1时,其计数器为位。
A.8位B.16位C.14位D.13位答:B3. 定时器T0、T1的GATE x=1时,其计数器是否计数的条件。
A. 仅取决于TR x状态B. 仅取决于GATE位状态C. 是由TR x和INT x两个条件来共同控制D. 仅取决于INT x的状态答:C4. 定时器T2工作在自动重装载方式时,其计数器为位。
A.8位B. 13位C.14位D. 16位答:D5. 要想测量INT0引脚上的正单脉冲的宽度,特殊功能寄存器TMOD的内容应为。
A.87HB. 09HC.80HD. 00H答:B三、判断对错1.下列关于T0、T1的哪些说法是正确的。
A.特殊功能寄存器SCON,与定时器/计数器的控制无关。
1. P0口用作输出端口时,输出级为漏极开路电路,在驱动NMOS电路及TTL电路时应外接上拉电阻(用作输入时与其他三个端口一样,在输入之前,都需要先向端口写“1”)。
P0口除用作I/O口外,还用作外部地址总线(用于送出16位地址的低8位)和外部数据总线。
3. P2口除用作I/O口外,还用外部地址总线(用于送出16位地址的高8位)。
4. P3口各口线的第二功能:P3.0——RXD,串行数据接收;P3.1——TXD,串行数据发送;P3.2——(INT0)’,外部中断0中断请求信号输入端;P3.3——(INT1)’,外部中断1中断请求信号输入端;P3.4——T0,定时器/计数器T0外部计数脉冲输入;P3.5——T1,定时器/计数器T1外部计数脉冲输入;P3.6——(WR)’,外部数据存储器写选通信号;P3.7——(RD)’,外部数据存储器读选通信号。
5. 优点:方便灵活,不需专门电路,改变逻辑关系只需重新编程即可。
缺点:延迟大。
6. 读-改-写指令:先读端口,然后对读入的数据进行修改,最后再写回到端口,这类指令称为读-改-写指令。
读-改-写指令不直接读取引脚上的数据而读锁存器Q端内容是为了消除错读错电平的可能性。
例如,用一根口线去驱动一个晶体管的基极,当向该端口写1时,晶体管导通,并把引脚上的电平拉低。
这时若从引脚读数据,将读回0,而实际输出的是1。
输出数据在锁存器中保存着,从锁存器的Q端读取,可以得到正确的结果。
7. 对端口的读-改-写指令,读的是端口锁存器,其他需要读端口的指令,读的是引脚。
(1)MOV C,P1.0;读引脚(2)MOV P1,#55H;写端口指令(3)PUSH P2;读引脚(4)INC P1;读锁存器(5)XRL P1,#01H;读端口锁存器(6)SETB P3.2;读端口锁存器(7)JBC P1.7,NEXT;读端口锁存器(8)JNB P3.2,$;读引脚8. 简单并行输出口的扩展方法:使用1片锁存器芯片,锁存器的数据输入端直接与单片机的P0口连接,单片机的(WR)’信号与锁存器的锁存脉冲信号,可用外部地址总线的高8位的某些位作为锁存器的片选(选通)信号。
《单片机原理与应用开发技术》第五章习题答案(P137-138):4. 答:串行口有四种工作方式:方式0、方式1、方式2、方式3。
有三种帧格式:8位、10位、11位。
串行口的4种工作方式对应三种波特率模式。
方式0:波特率是固定的,为f osc /12。
方式2:波特率由振荡频率f osc 和SMOD(PCON.7)所决定。
对应公式为波特率 = 2SMOD *f osc /64,当SMOD=0时,波特率为f osc /64;当SMOD=1时,波特率为f osc /32。
方式1和方式3:波特率由定时器/计数器T1的溢出率和SMOD 决定,即由下式确定:波特率 = 2SMOD *定时器/计数器T1溢出率 /32 。
= 6. 答:当定时器/计数器为定时工作方式时,其计数脉冲由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。
定时时间与系统的振荡频率、定时器/计数器工作模式和计数初值有关,t=(M -初值)*振荡周期*12 。
10. 设晶振频率为6MHz ,即机器周期为2μs 。
占空比(正脉冲持续时间:脉冲总周期)为1:10,即正脉冲时间为40μs ,负脉冲时间360μs 。
初值分别如下:(28-X 1)* 2μs = 40μs)x 256(12f 322osc smod-⋅X1 = 28 - 20 = 236D = 0ECH(28-X2)* 2μs = 360μsX2 = 28 - 180 = 76D = 4CH主程序:MOV TMOD,#02H;设置T0为模式2,定时方式START: MOV TH0,#0ECH;T0定时40μs初值MOV TL0,#0ECHSETB P1.0 ;P1.0置1SETB TR0 ;启动T0定时40μsLOOP1: JBC TF0,LOOP2;查询溢出标志,定时到TF0=1转移,且TF0=0 SJMP LOOP1LOOP2: CLR TR0 ;停止计数MOV TH0,#4CH ;T0定时360μs初值MOV TL0,#4CHCLR P1.0 ;P1.0清0SETB TR0 ;启动T0定时360μsLOOP3: JBC TF0,LOOP4;查询溢出标志,定时到TF0=1转移,且TF0=0 SJMP LOOP3LOOP4: CLR TR0 ;停止计数SJMP START中断方式下?如:可以设一个标志,00,01,02,,,07,00则设P1.0为高,01-07设P1.0为低。
《单片机应用技术》习题答案第一章概述1. 什么是总线?总线主要有哪几部分组成?各部分的作用是什么?总线是连接计算机各部件之间的一组公共的信号线。
一般情况下,可分为系统总线和外总线。
系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB)地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信息由地址总线输出,然后经地址译码单元处理。
地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。
在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。
控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。
CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。
数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。
在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设2.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线?CPU通过接口电路与外部输入、输出设备交换信息,一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。
CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。
一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。
3. 存储器的作用是什么?只读存储器和随机存储器有什么不同?存储器具有记忆功能,用来存放数据和程序。
计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。
随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。
第五章复习思考题答案一、 基础题1.B2.A3.B4.C5.B6.C7.B8.A9.A 10.C 二、 思考题与编程题1. 简述MCS-51单片机的定时器/计数器的结构和工作原理。
答:MCS-51单片机的定时器/计数器的结构:MCS-51单片机有2个定时器/计数器,被称为定时器/计数器T0和定时器/计数器T1。
定时器/计数器T0的计数器由2个8位的特殊功能寄存器TL0和TH0构成;定时器/计数器T1的计数器由特殊功能寄存器TL1和TH1构成,T0和T1有多种工作方式,由定时器/计数器方式寄存器TMOD 设置。
T0和T1的启动和停止由定时器/计数器控制寄存器TCON 控制。
工作原理:定时器/计数器工作在计数模式时,计数器对外部脉冲进行计数,脉冲信号发生1到0负跳变,计数器自动加1;定时器/计数器工作在定时模式时,计数脉冲信号来自单片机的内部,每个机器周期产生一个计数脉冲,计数器自动加1,也就是每个机器周期计数器加1。
计数器计满后,再计一次,计数器溢出,溢出标志被置1。
2. MCS-51单片机的定时器/计数器T0中有哪几种工作方式?作为计数器和定时器使用时,它们的计数信号有什么不同?其最大计数和定时时间分别是多少?答:T0有4种工作方式,方式0:13位定时器/计数器,方式1:16位定时器/计数器,方式2:8位常数自动装入的定时器/计数器,方式3:2个8位的定时器/计数器作为计数器,计数信号由外部脉冲提供,作为定时器,计数信号由单片机内部提供; 计数模式时,方式0的最大计数次数为8192,方式1的最大计数次数为65536,方式2和方式3的最大计数次数为256。
设单片机的机器周期为最大定时为,定时模式时,方式0的最大定时为8192M T ,方式1的最大定时为65536M T ,方式2和方式3的最大定时为256M T 。
3. 设置工作方式寄存器TMOD 时,GATE 位对定时器/计数器的工作有什么影响?定时器/计数器工作在方式2时,与其他几种方式有什么区别?当设置为方式3时,定时器/计数器T1将如何工作?答:当GATE=0时,只要TR0被置1时,定时器/计数器T0启动开始计数。
第5章 思考题及习题5参考答案一、填空1如果采用晶振的频率为3MHz 定时器/计数器TX (x=0,1 )工作在方式0、1、2下,其方时间为 _______答:,,1024 卩 s 2 .定时器/计数器用作计数器模式时,外部输入的计数脉冲的最高频率为系统时钟频率答:1/24关。
答:系统时钟信号12分频后,定时器初值率为6MHz 求允许测量的最大脉冲宽度为 答:方式1定时,。
式0的最大定时时间为,方式1的最大定时时间为 ,方式2的最大定时3•定时器/计数器用作定时器模式时,其计数脉冲由提供,定时时间与4•定时器/计数器T1测量某正单脉冲的宽度,采用方式可得到最大量程若时钟频 5.定时器T2有3种工作方式: ,可通过对寄存器的相关位进行软件设置来选择。
答:捕捉,重新装载(增计数或减计数),波特率发生器, T2CON6. AT89S52单片机的晶振为6MHz 若利用定时器T1的方式1定时2ms 贝^( TH1)=(TL1)=答:FCH 18H二、单选1. 定时器T0工作在方式3时,定时器T1有_种 种 C . 3种D. 4种 答:C2. 定时器T0、T1工作于方式1时,其计数器为 种工作方式。
位。
答:B 三、判断对错1下列关于TO 、T1的哪些说法是正确的。
2. 定时器TO 、T1对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持 续时间不小于1个机器周期。
特殊功能寄存器 SCONf 定时器/计数器的控制无关。
错3. 定时器TO 、T1对外部引脚上的脉冲进行计数时,要求输入的计数脉冲的高电平和低电平 的持续时间均不小于2个机器周期。
对四、简答1. 定时器/计数器T1、TO 的工作方式2有什么特点适用于哪些应用场合答:方式2为初值自动装入的8位定时器/计数器,克服了在循环定时或循环计数应用时 就存在用指令反复装入计数初值影响定时精度的问题。
2. TH <与TLx (x =0, 1)是普通寄存器还是计数器其内容可以随时用指令更改吗更改后的 新值是立即刷新还是等当前计数器计满后才能刷新答:THx 与TLx (x = 0,1)是计数器,其内容可以随时用指令更改,但是更改后的新 值要等当前计数器计满后才能刷新。
MCS-51 单片机定时器/计数器常见习题解答1、根据定时器/计数器0 方式1 逻辑结构图,分析门控位GATE 取不同值时,启动定时器的工作过程。
答:当GATE=0:软件启动定时器,即用指令使TCON 中的TR0 置1 即可启动定时器0。
GATE=1:软件和硬件共同启动定时器,即用指令使TCON 中的TR0 置1 时,只有外部中断INT0 引脚输入高电平时才能启动定时器0。
2、当定时器/计数器的加1 计数器计满溢出时, 溢出标志位TF1 由硬件自动置1,简述对该标志位的两种处理方法。
答:一种是以中断方式工作,即TF1 置1 并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1 清0;另一种以查询方式工作,即通过查询该位是否为1 来判断是否溢出,TF1 置1 后必须用软件使TF1 清0。
3、设MCS-51 单片机fosc=12MHz,要求T0 定时150µs,分别计算采用定时方式0、方式1 和方式2 时的定时初值。
答:方式0 的定时初值:IF6AH方式1 的定时初值:FF6AH方式2 的定时初值:6AH4、设MCS-51 单片机fosc=6MHz,问单片机处于不同的工作方式时,最大定时范围是多少?答:方式0 的最大定时范围:131,072µs方式1 的最大定时范围:16,384µs方式2 的最大定时范围:512µs5、设MCS-51 的单片机晶振为6MHZ,使用T1 对外部事件进行计数,每计数200 次后,T1 转为定时工作方式,定时5ms 后,又转为计数方式,如此反复的工作,试编程实现。
答:#includebit F0=0;void main() {TMOD=0x60; TL1=56;TH1=56;TR1=1;ET1=1;EA =1; While(1);}void serve() interrupt 3 {if (!F0){ TMOD=0x10;TL1=63036%16;TH1=63036/16;F0=~F0;}else{TMOD=0x60;TL1=56;TH1=56;F0=~F0;}}6、用方式0 设计两个不同频率的方波,P1.0 输出频率为200Hz,P1.1 输出频率为100Hz,晶振频率12MHz。
简答题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 用来控制定时计数器的工作方式,位结构如下:第05章单片机定时计数器 习题解答填空题1.MCS-51单片机中有 2 ________ 个 16 _____________ 位的定时器/计数器。
2. 定时器/计数器TO 可以工作于方式 0、1、2、3 _______________ 。
3. 方式0为13 位定时器/计数器。
4.若系统晶振频率为12MHz 则T0工作于定时方式1时最多可以定655365.欲对300个外部事件计数,可以选用定时器 /计数器T1的模式 0 或模6. TMOD 中的M1M0= 11时,定时器工作于方式 3。
7. 若系统晶振频率为 6MHz 则定时器可以实现的最小定时时间为8.MCS-51单片机工作于定时状态时,计数脉冲来自单片机内部的机器周9. 10.MCS-51单片机工作于计数状态时,计数脉冲来自 单片机外部事件 当GATE=0寸, 则当软件控制位 TR0= 1时启动T0开始工作。
C/T :定时或计数功能选择位。
1为计数方式,0为定时方式。
GATE门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。
GATE=0软件控制位TR0(TR1) = 1启动定时/计数器开始计数。
GATE=1软件控制位TR0(TR1) = 1 , INTO (INT1 )引脚为高电平时启动定时/计数器开始计数。
M1、M0定时/计数器工作方式选择位,如下表所示。
2.设MCS-51单片机的晶振频率f OS=6MHz分别讨论定时器/计数器0在各种工作方式下的最长定时时间。
答:由fosc =6MHz可知,一个机器周期T=2us,由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。
方式0: (213 - 0)x 2us= 2 14us=16384us=16.384ms方式1: (216 -0 )X 2us= 2 17us=131.072ms方式2、3:( 28- 0)x 2us= 29us=0.512ms 当fosc =6MHz 即T=2us 时各种方式下的定时时间,若fosc=12MHz,则最长定时时间将缩短一半。
3.编写程序从P1.0引脚输出频率为1KHz的方波。
设晶振频率为6MHz答:禾U用T1定时中断。
fosc= 6MHz 1机器周期=2 uS。
1KHz方波周期=1mS,半个方波周期=500uS。
500uS - 2uS =250若选择方式2工作,计算初值:256 - 250=6ORG 0000HAJMP MAINSTART MOV R7,#00H ORG 001BH; T1的中断矢量LJMP T1INTMAIN: MOV TMOD #20HMOV TH0 , #6 MOV TL0 , #6 SETB ET1 SETB EA SETB TR1HERE: AJMP HERE ;原地等待中断 T1INT:CPL P1.0;中断服务:P1.0 取非 RETI ;中断返回END4. 利用定时器/计数器1定时中断控制P1.7驱动LED 发光二极管亮1秒灭钟频率为12MHz+5 VI ED答:时钟频率为12MHz 1个机器周期1 us ,1秒闪烁一次,0.5秒0.5S=500ms=500000 us ,方式1最大计数 65536,让T1工作于方式 1 断一次,初值=65536 - 50000= 15536= 3CB0H用R7记录中断次数,计满10个中断为500ms 秒。
ORG 0000HAJMP MAINORG 001BHAJMP PT1INT1秒地闪烁,设时P1.7求反1次。
计数50000次中PI ?ORG 0030HMOV TMOD , #10HMOV TL1 , #0B0HMOV TH1 , #3CHSETB EASETB ET1SETB TR1HERE SJMP HEREPT1INT: MOV TL1 , #0B0HMOV TH1 , #03CHINC R7CJNE R7,#10, PENDMOV R7, #00HCPL P1.7PEND: RETIEND5.利用MCS-51单片机定时器/计数器设计一个数字秒表。
定时范围:00-99秒;两位LED数码管显示。
设时钟频率为6MHz基本原理:利用定时器方式2产生0.5毫秒时间基准,循环2000次,定时1秒。
答:电路如图所示把“单片机系统”区域中的PO.O/ADO — P0.7/AD7端口用8芯排线连接到“数 码显示模块”区域中的任一个a — h 端口上;要求:PO.O/ADO 对应着a ,PO.1/AD1 对应着b ,……,PO.7/AD7对应着h 0□ IROAIAE H RO.5.™PJM6 呛.個Rl^AID P2.3/A11R3.4/A12 阳 JfflXD pa.imp P32jiWP3.3m P3.4TBM.5/T1旳砸□RP1..3DpF...… R1匚=■吋 •「血j 卫J 4序$ 7 p p p p圈一竺竺业空叽帀二把“单片机系统”区域中的P2.O/A8 —P2.7/A15端口用8芯排线连接到“数码显示模块”区域中的任一个a—h端口上;要求:P2.O/A8对应着a, P2.1/A9 对应着b,……,P2.7/A15对应着h o把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;开始时,显示“ OO”,第1次按下SP1后就开始计时。
第2次按SP1后,计时停止。
第3次按SP1后,计时归零选择定时工作方式2;工作方式2就具有自动重装载功能,即自动加载计数初值,在这始化时把计数初值分别加载至TLO和THO中,当计数溢出时,由预置寄存器THO以硬件方法自动给计数器TL0重新加载。
汇编源程序TCNTA EQU 30H ;时间计数TCNTB EQU 31HSEC EQU 32HKEYCNT EQU 33H ;按键计数SP1 BIT P3.5ORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV KEYCNT,#00HMOV SEC,#00HMOV A,SECMOV B,#10DIV ABMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AMOV A,BMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,AMOV TMOD,#02H SETB ET0SETB EALCALL DEL Y10MSJB SP1,WT ;接着SP1 变为1INC KEYCNTMOV A,KEYCNTCJNE A,#01H,KN1SETB TR0 ; TR0置1 ,启动定时器T0 ,允许定时/计数器计数MOV TH0,#06H ;用于自动恢复定时初值MOV TL0,#06H ;置T0 定时初值250usMOV TCNTA,#00HMOV TCNTB,#00HKN1:CJNE A,#02H,KN2CLR TR0LJMP DKNKN2:CJNE A,#03H,DKN ;可以不要MOV SEC,#00HMOV A,SECMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,BMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,AMOV KEYCNT,#00H ;可以不要DKN: JNB SP1,$ ;直接寻址为0转移DELY10MS:DKN: JNB SP1,$ ;直接寻址为0转移D1: INT_TO:DONE: NEXT: MOV R6,#20MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINC TCNTAMOV A,TCNTACJNE A,#100,NEXTMOV TCNTA,#00HINC TCNTBMOV A,TCNTBCJNE A,#4,NEXTMOV TCNTB,#00HINC SECMOV A,SECCJNE A,#100,DONEMOV SEC,#00HMOV A,SECMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,BMOV DPTR,#TABLEMOVC A,@A+DPTR;子程序返回;可以不要;可以不要ENDC语言源程序#i nclude <AT89X51.H>unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};un sig ned char sec ond;un sig ned char keyc nt;un sig ned int tent;void mai n(void){un sig ned char i,j;TMOD=0x02;ET0=1;EA=1;second=0;P0=dispcode[seco nd/10];P2=dispcode[seco nd%10];while(1){if(P3_5==0){for(i=20;i>0;i--)for(j=248;j>0;j--);if(P3_5==0)keyc nt++;switch(keyc nt){case 1:TH0=0x06;TL0=0x06;TR0=1;break;case 2:TR0=0;break;case 3:keyc nt=O;sec on d=0;PO=dispcode[seco nd/10];P2=dispcode[seco nd%10]; break;}while(P3_5==0);}}}}void t0(void) in terrupt 1 using 0{tcnt++;if(tcnt==4OO){tcnt=0;second++;if(seco nd==100)sec on d=0; }PO=dispcode[seco nd/10]; P2=dispcode[seco nd%10]; } }三、 Proteus 仿真1.在Proteus 下,仿真实现5.4节内容。