第四章中断定时串行口例题习题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、MCS-51单片机内有两个16位加1定时/计数器,可通过编程实现4种工作方式。
7. 8031单片机定时/计数器有哪几种工作方式?
答:1)、8031单片机模式0、1、2、3等4中定时/计数方式。
模式0为13位定时/计数方式;
模式1为16位定时/计数方式;
模式2为8位循环定时/计数方式;
模式3为2个8位定时/计数方式。
8.T0和T1都是减法定时器/计时器。( )
9.在定时工作方式2状态下,因为把TH作为预置寄存器,所以在应用程序中应当在有计数溢出时从TH向TL加载计数初值的操作。( )
10.中断初始化时,对中断控制寄存器的状态设置,只能使用位操作指令,而不能使用字节操作指令。( )
11.MCS-51单片机的定时和计数都使用同一计数机构,所不同的只是计数脉冲的来源。来自于单片机内部的是定时,而来自于外部的则是计数。( )
②当晶振频率为6MHz时,机器周期为2μs,当初值=0时达到最大定时:
定时时间为:=(216-0)×2μs = 131072μs = 131.072ms
5、MCS-51单片机系统时钟为12MHZ,试利用定时/计数器0控制每隔200?S从P1.6口输出1个4?S低电平脉冲。(本题20分)
答:1)、定时/计数器的模式选定(此部分2分)
IE0(TCON.1)外部中断0请求标志.当INTO出现有效的中断请求信号时,硬件使IE0置位.在边沿触发方式时,当CPU响应IE0中断后,由硬件清除IE0。
IE1(TCON.3)外部中断1请求标志.置位复位方式与IE0相同。
TF0(TCON.5)T0溢出中断请求标志。每当T0计数器加1计数到溢出时,TF0=1。CPU响应TF0中断,硬件清除TF0。也可以由查询软件清除TF0。
4)、程序设计
主程序(此部分6分)
ORG0000H;系统复位入口
AJMP0100H;系统主程序从0100H开始
ORG000BH;定时器0中断入口
AJMP0500H;定时器0中断服务程序放在0500H处
ORG0100H
MOVSP,#30H;置栈顶
MOVTH0,#9CH;设置定时器初值
MOVTL0,#9CH;
NOP
SETBP1.6;P1.6输出高电平
POPPSW
SETBET0;开中断
RETI
6、MCS-51单片机系统时钟为6MHZ,试利用定时/计数器0控制每隔200?S从P1.6口输出1个8?S低电平脉冲。(本题20分)
答:
1)、定时/计数器的模式选定(此部分2分)
由于8位定时时间为256?s,因此,将定时/计数器0设置为模式2(8位自动重装
=OFEOCH
ORG 3000H
START:MOV TMOD,#01H
MOV TL0,#OCH
MOV THO,#OFEH
SETB TR0
LOOP: JBC TFO,DONE
SJMP LOOP
DONE: MOV TL0,#OCH
MOV THO,#OFEH
CPL P1.0
SJMP LOOP
9、应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
TF1(TCON.7)T1溢出中断请求标志。置位复位方式与TF0相同。
R1(SCON.0)串行口接收中断请求标志。当串行口接收器收到一个串行帧,R1=1。CPU响应R1中断,硬件并不清除R1,R1必须由软件清0。
T1(SCON.1)串行口发送中断请求标志.将8位数据写入SBUF后,发送完一个串行帧,T1=1.CPU响应T1中断,硬件并不清除T1,T1必须由软件清0.
TH0=0E0H,TL0=18H
(若不选择模式0而采用其它模式完成,得3分)
1、单片机系统时钟12MHZ,利用定时/计数器0实现1ms定时,如何设置?
答:1)、定时/计数器0设置为模式0,13位方式,TMOD=#XXXX0000B
2)、时间常数设置如下
即T=1?10-3S,?=12?106MHZ,代入得
中断定时/计数器串行口部分例题习题
一、填空:
1、单片机CPU和外设进行数据交换时常用的方式有无条件转换、查询方式、中断方式三种
2、中断系统中共有INTO、INT1、T0、T1、串行口五个中断源,其中优先级最高的是INTO、优先级最低的是串行口。
二、选择:
1、6MHz晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是。
设置定时/计数器1(若使用0,扣2分)为计数状态,选择工作模式2。
即控制字TMOD=0110****B(此部分5分)
时间常数为TL1=TH1=256-200=56(此部分5分)
(2)、程序设计如下:(此部分10分)
ORG0000H
AJMP0100H
ORG000BH
AJMP0400H
ORG0100H
MAIN:。。
SJMP LOOP
DONE: MOV TL0,#OCH
MOV THO,#OFEH
CPL P1.0
SJMP LOOP
10.图示为一个自动包装系统。单片机系统时钟为6MHZ,试编制一个计数程序,对T1口的脉冲数进行监测,每200个脉冲,继电器J状态改变1次。
(本题20分)
题二.4图
答:解:
(1)、分析(此部分5分)
各中断源对应的矢量地址如下:
外部中断0:0003H
定时器T0:000BH
外部中断:0013H
定时器T1:001BH
串行口接收和发送:001BH
2.为什么定时器T1用作串行口波特率发生器时,常选用工作模式2?若已知系统时钟频率和通信用的波特率,如何计算其初值?
答:因为工作模式2是自动重装初值定时器,编程时无需重装时间参数(计数初值),比较实用。若选用工作模式0或工作模式1,当定时器T1溢出时,需在中断服务程序中重装初值。
3.在MCS-51单片机中,高级中断可以打断低级中断形成中断嵌套。( )
4.在一般情况下,MCS-51单片机允许同级中断嵌套。( )
5.只要有中断出现,CPU就立即响应中断。( )
6.MCS-51单片机定时工作方式0与定时工作方式l除了计数结构位数不同,别无差别。( )
7.除了低优先级中断不能打断高优先级中断的情况外,其他情况都能形成中断嵌套。( )
4.已知8031单片机晶振频率是12MHz,定时器T1最长定时时间是多少?如果8031单片机晶振频率是6MHz,定时器T1最长定时时间又是多少?
答:为实现最长的定时时间,定时/计数器应选工作方式1。
①当晶振频率为12MHz时,机器周期为1μs,当初值=0时达到最大定时:
定时时间为:=(216-0)×1μs = 65536μs = 65.536ms
AJMP0100H;系统主程序从0100H开始
ORG000BH;定时器0中断入口
AJMP0500H;定时器0中断服务程序放在0500H处
ORG0100H
MOVSP,#30H;置栈顶
MOVTH0,#9CH;设置定时器初值
MOVTL0,#9CH;
MOVTMOD,#06H;设置定时器0为模式2
SETBTR0;启动定时器0
D.SWAP指令
6、用MCS-51用串行扩展并行I/O口时,串行接口工作方式选择(A)
(A)方式0(B)方式1(C)方式2(D)方式3
答BADDAA
三、判断题
1.MCS-51单片机共有五个中断源,因此相应地在芯片上就有五个中断请求输入引脚。( )
2.当全局中断允许位EA=0时,系统将不响应任何中断。( )
SETBET0;允许定时器0中断
SETBEA;开系统中断
SETBP1.6
。。。。。。。。。
中断ຫໍສະໝຸດ Baidu务程序(此部分6分)
ORG0500H
T200US:PUSHPSW;栈保护
CLRP1.6;P1.6输出低电平
NOP;延时6?s
NOP
NOP
NOP
NOP
SETBP1.6;P1.6输出高电平
POPPSW
SETBET0;开中断
定时器T0和T1各有几种工作方式?(8分)
答:T0有4种工作方式,T1有3种工作方式,见表面4.4所述。
表4.4定时器的工作方式
工作方式
适用定时器
功能说明
方式0
方式1
方式2
方式3
T0、T1
T0、T1
T0、T1
T0
13位的定时器/计数器
16位的定时器/计数器
自动重新装入计数初值的8位的定时器/计数器
分为两个8位计数器TL0和TH0。TL0可工作于定时或计数状态,TH0则固定为定时状态。方式3对T1则停止计数
X=7192=0E018H
即TH0=#0E0H,TL0=#18H
8、应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
请(1)计算时间常数X,应用公式X=216-t(f/12)
(2)写出程序清单
解:解:X=216-t(F/12)
=216-1*10-3*6*106/12
四、简答题:
1、8051单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的?又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少?
答:8051单片机提供了5个中断源:两个外部INTO和INT1中断源,两个定时片内定时器T0和T1溢出中断源,一个片内全双工串行口中断源.提供了高、低两个中断优先级、能实现两级中断服务程序嵌套,同一个优先级里,由硬件查询来确定优先序列。各中断源请求中断的标志分别由特殊功能寄存器TCON、SCON的相应位锁存,这些标志位的产生和清除方式如下:
RETI
7.单片机系统时钟6MHZ,利用定时/计数器0实现2ms定时,如何设置时间常数?
答:1)、定时/计数器0设置为模式0,13位方式,TMOD=#XXXX0000B
2)、时间常数设置如下
即T=2?10-3S,?=6?106MHZ,代入得
得X=7192(完成以上工作得4分)
3)、X=7192=1C18H=0001110000011000B,取后13位为1110000011000B,高8位送TH0=0E0H,TL0取低5位,TL0的高3位无效,以000补齐,TL0=18H,即
MOVTMOD,#06H;设置定时器0为模式2
SETBTR0;启动定时器0
SETBET0;允许定时器0中断
SETBEA;开系统中断
SETBP1.6
。。。。。。。。。
中断服务程序(此部分6分)
ORG0500H
T200US:PUSHPSW;栈保护
CLRP1.6;P1.6输出低电平
NOP;延时4?s
NOP
请(1)计算时间常数X,应用公式X=216-t(f/12)
(2)写出程序清单
解:X=216-t(F/12)
=216-1*10-3*6*106/12
=OFEOCH
ORG 3000H
START:MOV TMOD,#01H
MOV TL0,#OCH
MOV THO,#OFEH
SETB TR0
LOOP: JBC TFO,DONE
C.1638 u s
D.32768 u s
4、以下所列特点,不属于串行工作方式0的是。
A.波特率是固定的,为时钟频率的十二分之一
B.8位移位寄存器
C.TI和RI都须用软件清零
D.在通信时,须对定时器l的溢出率进行设置
5、通过串行口发送或接收数据时,在程序中应使用。
A.MOV指令
B.MOVX指令
C.MOVC指令
由于8位定时时间为256?s,因此,将定时/计数器0设置为模式2(8位自动重装
载方式)。设置定时200?s。
2)、控制字设置(此部分3分)
TMOD=****0110B
3)、时间常数确定(此部分3分)
?=12?106HZ,T=200?10-6S代入,得
X=256-200=156=9CH
初值设置为:TH0=TL0=#09CH
CLRTMOD.4;
SETBTMOD.5;
SETBTMOD.6;
CLRTMOD.7;
MOVTL1,#156
MOVTH1,#156
SETBTR1;启动定时器1
SETBET1;允许定时器1中断
SETBEA;开系统中断
。。
ORG0400H
CLRET1
PUSHPSW
A.1 u s
B.2 u s
C.4 u s
D.8 u s '
2、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是。
A.1 u s
B.2 u s
C.4 u s
D.8 u s
3、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最大定时时间是。
A.4096 u s
B.8192 u S
载方式)。设置定时200?s。
2)、控制字设置(此部分3分)
TMOD=****0110B
3)、时间常数确定(此部分3分)
?=6?106HZ,T=200?10-6S代入,得
X=256-100=156=9CH
初值设置为:TH0=TL0=#09CH
4)、程序设计
主程序(此部分6分)
ORG0000H;系统复位入口
7. 8031单片机定时/计数器有哪几种工作方式?
答:1)、8031单片机模式0、1、2、3等4中定时/计数方式。
模式0为13位定时/计数方式;
模式1为16位定时/计数方式;
模式2为8位循环定时/计数方式;
模式3为2个8位定时/计数方式。
8.T0和T1都是减法定时器/计时器。( )
9.在定时工作方式2状态下,因为把TH作为预置寄存器,所以在应用程序中应当在有计数溢出时从TH向TL加载计数初值的操作。( )
10.中断初始化时,对中断控制寄存器的状态设置,只能使用位操作指令,而不能使用字节操作指令。( )
11.MCS-51单片机的定时和计数都使用同一计数机构,所不同的只是计数脉冲的来源。来自于单片机内部的是定时,而来自于外部的则是计数。( )
②当晶振频率为6MHz时,机器周期为2μs,当初值=0时达到最大定时:
定时时间为:=(216-0)×2μs = 131072μs = 131.072ms
5、MCS-51单片机系统时钟为12MHZ,试利用定时/计数器0控制每隔200?S从P1.6口输出1个4?S低电平脉冲。(本题20分)
答:1)、定时/计数器的模式选定(此部分2分)
IE0(TCON.1)外部中断0请求标志.当INTO出现有效的中断请求信号时,硬件使IE0置位.在边沿触发方式时,当CPU响应IE0中断后,由硬件清除IE0。
IE1(TCON.3)外部中断1请求标志.置位复位方式与IE0相同。
TF0(TCON.5)T0溢出中断请求标志。每当T0计数器加1计数到溢出时,TF0=1。CPU响应TF0中断,硬件清除TF0。也可以由查询软件清除TF0。
4)、程序设计
主程序(此部分6分)
ORG0000H;系统复位入口
AJMP0100H;系统主程序从0100H开始
ORG000BH;定时器0中断入口
AJMP0500H;定时器0中断服务程序放在0500H处
ORG0100H
MOVSP,#30H;置栈顶
MOVTH0,#9CH;设置定时器初值
MOVTL0,#9CH;
NOP
SETBP1.6;P1.6输出高电平
POPPSW
SETBET0;开中断
RETI
6、MCS-51单片机系统时钟为6MHZ,试利用定时/计数器0控制每隔200?S从P1.6口输出1个8?S低电平脉冲。(本题20分)
答:
1)、定时/计数器的模式选定(此部分2分)
由于8位定时时间为256?s,因此,将定时/计数器0设置为模式2(8位自动重装
=OFEOCH
ORG 3000H
START:MOV TMOD,#01H
MOV TL0,#OCH
MOV THO,#OFEH
SETB TR0
LOOP: JBC TFO,DONE
SJMP LOOP
DONE: MOV TL0,#OCH
MOV THO,#OFEH
CPL P1.0
SJMP LOOP
9、应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
TF1(TCON.7)T1溢出中断请求标志。置位复位方式与TF0相同。
R1(SCON.0)串行口接收中断请求标志。当串行口接收器收到一个串行帧,R1=1。CPU响应R1中断,硬件并不清除R1,R1必须由软件清0。
T1(SCON.1)串行口发送中断请求标志.将8位数据写入SBUF后,发送完一个串行帧,T1=1.CPU响应T1中断,硬件并不清除T1,T1必须由软件清0.
TH0=0E0H,TL0=18H
(若不选择模式0而采用其它模式完成,得3分)
1、单片机系统时钟12MHZ,利用定时/计数器0实现1ms定时,如何设置?
答:1)、定时/计数器0设置为模式0,13位方式,TMOD=#XXXX0000B
2)、时间常数设置如下
即T=1?10-3S,?=12?106MHZ,代入得
中断定时/计数器串行口部分例题习题
一、填空:
1、单片机CPU和外设进行数据交换时常用的方式有无条件转换、查询方式、中断方式三种
2、中断系统中共有INTO、INT1、T0、T1、串行口五个中断源,其中优先级最高的是INTO、优先级最低的是串行口。
二、选择:
1、6MHz晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是。
设置定时/计数器1(若使用0,扣2分)为计数状态,选择工作模式2。
即控制字TMOD=0110****B(此部分5分)
时间常数为TL1=TH1=256-200=56(此部分5分)
(2)、程序设计如下:(此部分10分)
ORG0000H
AJMP0100H
ORG000BH
AJMP0400H
ORG0100H
MAIN:。。
SJMP LOOP
DONE: MOV TL0,#OCH
MOV THO,#OFEH
CPL P1.0
SJMP LOOP
10.图示为一个自动包装系统。单片机系统时钟为6MHZ,试编制一个计数程序,对T1口的脉冲数进行监测,每200个脉冲,继电器J状态改变1次。
(本题20分)
题二.4图
答:解:
(1)、分析(此部分5分)
各中断源对应的矢量地址如下:
外部中断0:0003H
定时器T0:000BH
外部中断:0013H
定时器T1:001BH
串行口接收和发送:001BH
2.为什么定时器T1用作串行口波特率发生器时,常选用工作模式2?若已知系统时钟频率和通信用的波特率,如何计算其初值?
答:因为工作模式2是自动重装初值定时器,编程时无需重装时间参数(计数初值),比较实用。若选用工作模式0或工作模式1,当定时器T1溢出时,需在中断服务程序中重装初值。
3.在MCS-51单片机中,高级中断可以打断低级中断形成中断嵌套。( )
4.在一般情况下,MCS-51单片机允许同级中断嵌套。( )
5.只要有中断出现,CPU就立即响应中断。( )
6.MCS-51单片机定时工作方式0与定时工作方式l除了计数结构位数不同,别无差别。( )
7.除了低优先级中断不能打断高优先级中断的情况外,其他情况都能形成中断嵌套。( )
4.已知8031单片机晶振频率是12MHz,定时器T1最长定时时间是多少?如果8031单片机晶振频率是6MHz,定时器T1最长定时时间又是多少?
答:为实现最长的定时时间,定时/计数器应选工作方式1。
①当晶振频率为12MHz时,机器周期为1μs,当初值=0时达到最大定时:
定时时间为:=(216-0)×1μs = 65536μs = 65.536ms
AJMP0100H;系统主程序从0100H开始
ORG000BH;定时器0中断入口
AJMP0500H;定时器0中断服务程序放在0500H处
ORG0100H
MOVSP,#30H;置栈顶
MOVTH0,#9CH;设置定时器初值
MOVTL0,#9CH;
MOVTMOD,#06H;设置定时器0为模式2
SETBTR0;启动定时器0
D.SWAP指令
6、用MCS-51用串行扩展并行I/O口时,串行接口工作方式选择(A)
(A)方式0(B)方式1(C)方式2(D)方式3
答BADDAA
三、判断题
1.MCS-51单片机共有五个中断源,因此相应地在芯片上就有五个中断请求输入引脚。( )
2.当全局中断允许位EA=0时,系统将不响应任何中断。( )
SETBET0;允许定时器0中断
SETBEA;开系统中断
SETBP1.6
。。。。。。。。。
中断ຫໍສະໝຸດ Baidu务程序(此部分6分)
ORG0500H
T200US:PUSHPSW;栈保护
CLRP1.6;P1.6输出低电平
NOP;延时6?s
NOP
NOP
NOP
NOP
SETBP1.6;P1.6输出高电平
POPPSW
SETBET0;开中断
定时器T0和T1各有几种工作方式?(8分)
答:T0有4种工作方式,T1有3种工作方式,见表面4.4所述。
表4.4定时器的工作方式
工作方式
适用定时器
功能说明
方式0
方式1
方式2
方式3
T0、T1
T0、T1
T0、T1
T0
13位的定时器/计数器
16位的定时器/计数器
自动重新装入计数初值的8位的定时器/计数器
分为两个8位计数器TL0和TH0。TL0可工作于定时或计数状态,TH0则固定为定时状态。方式3对T1则停止计数
X=7192=0E018H
即TH0=#0E0H,TL0=#18H
8、应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
请(1)计算时间常数X,应用公式X=216-t(f/12)
(2)写出程序清单
解:解:X=216-t(F/12)
=216-1*10-3*6*106/12
四、简答题:
1、8051单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的?又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少?
答:8051单片机提供了5个中断源:两个外部INTO和INT1中断源,两个定时片内定时器T0和T1溢出中断源,一个片内全双工串行口中断源.提供了高、低两个中断优先级、能实现两级中断服务程序嵌套,同一个优先级里,由硬件查询来确定优先序列。各中断源请求中断的标志分别由特殊功能寄存器TCON、SCON的相应位锁存,这些标志位的产生和清除方式如下:
RETI
7.单片机系统时钟6MHZ,利用定时/计数器0实现2ms定时,如何设置时间常数?
答:1)、定时/计数器0设置为模式0,13位方式,TMOD=#XXXX0000B
2)、时间常数设置如下
即T=2?10-3S,?=6?106MHZ,代入得
得X=7192(完成以上工作得4分)
3)、X=7192=1C18H=0001110000011000B,取后13位为1110000011000B,高8位送TH0=0E0H,TL0取低5位,TL0的高3位无效,以000补齐,TL0=18H,即
MOVTMOD,#06H;设置定时器0为模式2
SETBTR0;启动定时器0
SETBET0;允许定时器0中断
SETBEA;开系统中断
SETBP1.6
。。。。。。。。。
中断服务程序(此部分6分)
ORG0500H
T200US:PUSHPSW;栈保护
CLRP1.6;P1.6输出低电平
NOP;延时4?s
NOP
请(1)计算时间常数X,应用公式X=216-t(f/12)
(2)写出程序清单
解:X=216-t(F/12)
=216-1*10-3*6*106/12
=OFEOCH
ORG 3000H
START:MOV TMOD,#01H
MOV TL0,#OCH
MOV THO,#OFEH
SETB TR0
LOOP: JBC TFO,DONE
C.1638 u s
D.32768 u s
4、以下所列特点,不属于串行工作方式0的是。
A.波特率是固定的,为时钟频率的十二分之一
B.8位移位寄存器
C.TI和RI都须用软件清零
D.在通信时,须对定时器l的溢出率进行设置
5、通过串行口发送或接收数据时,在程序中应使用。
A.MOV指令
B.MOVX指令
C.MOVC指令
由于8位定时时间为256?s,因此,将定时/计数器0设置为模式2(8位自动重装
载方式)。设置定时200?s。
2)、控制字设置(此部分3分)
TMOD=****0110B
3)、时间常数确定(此部分3分)
?=12?106HZ,T=200?10-6S代入,得
X=256-200=156=9CH
初值设置为:TH0=TL0=#09CH
CLRTMOD.4;
SETBTMOD.5;
SETBTMOD.6;
CLRTMOD.7;
MOVTL1,#156
MOVTH1,#156
SETBTR1;启动定时器1
SETBET1;允许定时器1中断
SETBEA;开系统中断
。。
ORG0400H
CLRET1
PUSHPSW
A.1 u s
B.2 u s
C.4 u s
D.8 u s '
2、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是。
A.1 u s
B.2 u s
C.4 u s
D.8 u s
3、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最大定时时间是。
A.4096 u s
B.8192 u S
载方式)。设置定时200?s。
2)、控制字设置(此部分3分)
TMOD=****0110B
3)、时间常数确定(此部分3分)
?=6?106HZ,T=200?10-6S代入,得
X=256-100=156=9CH
初值设置为:TH0=TL0=#09CH
4)、程序设计
主程序(此部分6分)
ORG0000H;系统复位入口