当前位置:首页 > 单片机考试每章的复习题试卷及答案
MOV R2,#14H MOV 41H,#00H
W0: CJNE @R0,#00H,W1 INC 41H W1: INC R0
DJNZ R2,W0 AJMP MAIN
第5章 MCS-51的中断系统
1. 写出MCS-51的所有中断源,并说明说明哪些中断源在响应中断时,由硬件自动清除,哪些中断源必须用软件清除,为什么?
答:中断源:(1)外部中断源两个:(P3.2) INT0、(P3.3)INT1
?当其为脉冲触发时,由于脉冲信号自动消失,故中断信号自动撤销;
?当其为电平方式触发时:由于电平信号不会自动消失,故需要硬件电路和软件编程配合撤销中断
(2)定时计数中断源两个:(P3.4) T0、(P3.5) T1----由硬件自动清除 (3)串行中断源一个-----必须软件清除
2.中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别?(4分)
解:RETI除了将压栈的内容出栈外(即现场恢复)
清除在中断响应时被置1的MCS-51内部中断优先级寄存器的优先级状态。
3. 8031有 2 级中断, 5 个中断源.
8031的中断源有 外部中断源INT0 , 外部中断源 INT1 , 定时计数中断源T0 , 定时计数中断源T1 , 串行中断源 ,有 2 个中断优先级。
4. 中断系统的作用是什么?MCS-51有哪些中断源?
功能:用于解决系统资源竞争,使多项任务共享一个资源,即资源共享。 中断源:外部中断源两个:P3.2 INT0、P3.3INT1 定时计数中断源两个:P3.4 T0、P3.5 T1 串行中断源一个
5.下列说法错误的是: A,B,C
(A)各中断源发出的中断请求信号,都会标记在MCS-51系统中的IE寄存器中。 (B)各中断源发出的中断请求信号,都会标记在MCS-51系统中的TMOD寄存器中。
(C)各中断源发出的中断请求信号,都会标记在MCS-51系统中的IP寄存器中。 (D)各中断源发出的中断请求信号,都会标记在MCS-51系统中的TCON与SCON
寄存器中。
8.8031单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:
首先把( PC )的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送( PC ),使程序执行转向( 相应的中断区入口地址处 )。
9.编写出外部中断1为跳沿触发的中断初始化程序。 SETB IT1 SETB EA SETB ET1
10.在MCS-51中,需要外加电路实现中断撤除的是: D
(A) 定时中断
(B) 脉冲方式的外部中断 (C) 外部串行中断
(D) 电平方式的外部中断
第6章 MCS-51的定时器/计数器
1. 在MCS-51单片机中,如果采用6MHz晶振,一个机器周期为(2μS)。
2.MCS-51采用12MHz的晶振,定时1ms,如用定时器方式1时的初值(16进制数)应为多少?(写出计算过程)(6分)
解:采用12MHZ的晶振,Tcy=1/fosc×12=1/12×10-6×12=1us
采用定时器方式1(为16位) 定时1ms 设初值为X,则:(216-X)×1×10-6=1×10-3 则=>X=64536将其转换成二进的为:1111110000011000 再将其转化为16进制数为:FC18 初值为TXH=FCH TXL=18H
3.MCS-51内部提供( 2 )个可编程的( 16 )位定时/计数器,定时器有( 4 )种工作方式。
4.MCS-51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期。 ( √ ) 5.特殊功能寄存器SCON与定时器/计数器的控制无关。( √ )
6.采用6MHz的晶振,定时1ms,用定时器方式0时的初值应为多少?(请给出计算过程)(6分)
由晶振频率6MHz得机器周期为:2μs,故定时寄存器TH1、TL1(低5位)需要执行加一操作次数为:1000/2=500次
计数初值的计算:X=213-100=0FF1FH-0604H=0F91BH
7.如果采用的晶振的频率为3MHz,定时器/计数器工作在方式0、1、2下,其最大的定时时间各为多少?
方式0:213时钟周期 方式1:216时钟周期 方式2:256时钟周期
8. 用定时器T1,工作方式0,在P1.0产生周期为500us的连续方波,时钟振荡频率为6MHZ,用查询方式编写程序。 答:(1)计算机器周期:Tm=12/focs=12/6*106=2us (2)to=(213—X)*Tm
500/2*10-6=(213—X)*2*106 250=(213—X)*2 X=213—125=8067 TH1=0FCH TL1=03H
MOV TMOD, #00H MOV TL1,#03H MOV TH1,#0FCH SETB TR0
LOOP: JBC TF0, NEXT
SJMP LOOP
NEXT:MOV TL1,#03H
MOV TH1,#0FCH CPL, P1.0
SJMP LOOP
9. 设T0工作在方式0,定时时间为1ms,在P1.0输出,周期为2ms的方波,时钟晶振为6MHZ,请用查询方式编程。 答:t=(213—TO初值)*机器周期 1*10-3=(213—X)*12/6*106 1*10-3=(213—X)*2*106
(213—X)=0.5*103
X=213—500=8192—500=7692
TL0=0CH TH0=0F0H TMOD=00H
MOV TMOD, #00H MOV TL0,#0CH MOV TH0,#0F0H SETB TR0
LOOP: JBC TF0, NEXT
SJMP LOOP
NEXT:MOV TL0,#0CH
MOV THP,#0F0H CPL, P1.0
SJMP LOOP
10. 用定时器0以工作方式2,产生100us定时,在P1.0输出周期为200us连续方波。时钟晶振为6MHZ,请用查询方式编程。 答:(1)计算机器周期:Tm=12/focs=12/6*106=2us (2)to=(28—X)*Tm
200/2*10-6=(28—X)*2*10-6 100=(28—X)*2 X=256—50=216 TH0= 0D8H TL0= 0D8H
MOV TMOD, #02H MOV TL0,# 0D8H MOV TH0,# 0D8H SETB TR0
LOOP: JBC TF0, NEXT SJMP LOOP
NEXT:MOV TL0,# 0D8H MOV TH0,# 0D8H CPL, P1.0
SJMP LOOP 11.
12. 采用定时器/计数器TO对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数方式,如此循环不止。假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用定时计数方式1, 查询方式实现,要求编写出程序。
由晶振频率6MHz得机器周期为:2μs,故定时寄存器TH1、TL1需要执行加一操作次数为:1000/2=500次
1、计数初值的计算:X=216-100=0FFFFH-64H=0FF9BH 2、定时初值的计算:X=216-500=0FFFFH-1F4H=0FE0BH
3、设置GATE位为0,得出:TR1=1启动定时计数器,TR1=0停止定时计数器 C/T=0定时,C/T=1计数 4 、程序如下: ORG 0000H AJMP 0030H ORG 0030H
MAIN: MOV IE,#00H M1: CLR TF0
MOV TMOD,#05H MOV TH0,#0FFH MOV TL0,#9BH SETB TR0 M2: JB TF0,M3 AJMP M2 M3: CLR TF0
MOV TMOD,#01H MOV TH0,#0FEH MOV TL0,#0BH SETB TR0 M4: JB TR0,M1 AJMP M4
13.编写一段程序,功能要求为:当P1.0引脚的电平上跳变时,对P1.1的输入脉冲进行计数;当P1.0引脚的电平负跳变时,停止计数,并将计数值写入R0。
共分享92篇相关文档