当前位置:首页 > 单片机答案
A.电平方式的外部中断请求 B.下跳沿触发的外部中断请求
C.外部串行中断 D.定时中断
*5-10.中断响应需要满足哪些条件?参P93
答:一个中断源的中断请求被响应,必须满足以下必要条件:(1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。(2)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。
(3)该中断源的中断允许位=1,即该中断被允许。(4)无同级或更高级中断正在被服务。
、(C)、(D) )。 5-11.下列说法正确的是( (A)
A.同一级别的中断请求按时间的先后顺序响应
B.同一时间同一级别的多中断请求,将形成阻塞,系统无法响应
C.低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求D.同级中断不能嵌套
*5-12.某系统有三个外部中断源1、2、3,当某一中断源发出的中断请求使INT1引脚变为低电平时(参见图5-10),便要求CPU进行处理,它们的优先处理次序由高到低为3、2、1,中断处理程序的人口地址分别为1000H,1100H,1200H。试编写主程序及中断服务子程序(转至相应的中断处理程序的入口即可)。答:参见电路如图5-10,参考程序如下:
ORG 0000H
LJMP ORG LJMP ORG SETB SETB MOV NOP
MAIN 0013H INT_EX1 0030H
EX1 EA
;采用电平触发,低电平有效中断 ;允许外部中断1
MAIN: CLR IT0
;插入一段用户程序 WAIT:
PCON,#01H ;单片机进入休眠方式等待中断
LJMP WAIT ;以下为外部中断1服务子程序 INT_EX1: JB P1.2,NEXT1
LJMP INT_IR3
;判断是不是2号中断 NEXT1: JB P1.1,NEXT2
;跳转到2号中断处理程序 LJMP INT_IR2
;跳转到1号中断处理程序 NEXT2: LJMP INT_IR1
ORG 1000H INT_IR3: 相应中断处理程序
RETI ORG 1100H
INT_IR2: 相应中断处理程序 RETI ORG 1200H
INT_IR1: 相应中断处理程序
;中断返回
;判断是不是3号中断
;跳转到3号中断处理程序
;中断返回
RETI 第6章 AT89S51的定时/计数器
;中断返回
·9·
参考答案
。参P90,参P102~103 6-1.下列说法正确的是( A )
A.特殊功能寄存器SCON,与定时器∕计数器的控制无关 对 B.特殊功能寄存器TCON,与定时器∕计数器的控制无关 错
C.特殊功能寄存器IE,与定时器∕计数器的控制无关 错 D.特殊功能寄存器TMOD,与定时器∕计数器的控制无关 错
*6-2.如果采用的晶振频率为3MHZ,定时器∕计数器工作在方式0、1、2下,其最大定时时间各为多少?答:因为机器周期:
1212Tcy???4(?s)6 fOSC3?10所以定时器/计数器工作方式0下,其最大定时时间为
Tmax?213?4?10?6(s)?8192?4(?s)?32768(?s)?32.768(ms)
所以定时器/计数器工作方式1下,其最大定时时间为
Tmax?216?4?10?6(s)?65536?4(?s)?262144(?s)?262.144(ms)
所以定时器/计数器工作方式2下,其最大定时时间为
Tmax?2?4?108?6(s)?256?4(?s)?1024(?s)?1.024(ms)
6-3.定时器/计数器用作定时器模式时,其计数脉冲由谁提供?定时时间与哪些因素有关?参P102 答:定时/计数器作定时器模式时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。
6-4.定时器/计数器用作计数器模式时,对外界计数频率有何限制?参P107
答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
6-6. 定时器/计数器的工作方式2具有什么特点?适用于哪些应用场合?答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。参P105
6-8. 一个定时器的定时时间有限,如何使用两个定时器的串行定时来实现较长时间的定时?
答:方法1,在第一个定时器的中断程序里关闭本定时器的中断程序,设置和打开另一个定时器;在另一个定时器的中断程序中关闭本定时中断,设置和打开另一个定时器。这种方式的定时时间为两个定时器定时时间的和。方法2,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由P1.0接INT0 产生),另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值。
6-9. 当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭?参P106答:控制信号C/T和M1 M0。定时器T1的启动是工作于方式0、1、2。定时器T1的关闭是工作于方式3。
*6-10.定时器∕计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度是多少?答:采用方式1定时工作方式。最大脉冲宽度为131.072ms。
*6-12. THX与TLX(X=0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后的新值是立即刷新还是等当前计数器计满之后才能刷新?参P101答:THx与TLx (x=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改,更改后的新值是立即刷新。但在读THx、TLx的值时,应该先读THx值,后读TLx,再读THx。若两次读得THx相同,则可确定读得的内容正确。若前后两次读得的THx有变化,再重复上述过程。
。参P123 7-1.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式( 1 )
7-2.在串行通信中,收发双方对波特率的设定应该是(相等的)的。参P128
( ABDE )是正确的。 7-3.下列选项中,
·10·
(对)参P127 (A) 串行口通信的第9数据位的功能可由用户定义。
(对) (B) 发送数据的第9数据位的内容在SCON寄存器的TB8位中预先准备好的。
(错)参P125 (C) 串行通信帧发送时,指令把TB8位的状态送入发送SBUF中。
(D)串行通信接收到的第9位数据送SCON寄存器的RB8中保存。(对)参P125 (E)串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。(对)参P128 7-4.通过串行口发送或接收数据时,在程序中应使用:参P132~135 (C) (A)MOVC指令 (B)MOVX指令(C)MOV指令 (D)XCHD指令 7-5.串行口工作方式1的波特率是:参P128 (C)
(A)固定的,为fosc/32。(B)固定的,为fosc/16。 (C)可变的,通过定时器/计数器T1的溢出率设定。(D)固定的,为fosc/64。 7-6.在异步串行通信中,接收方是如何知道发送方开始发送数据的?参P123~124
答:当接收方检测到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
7-7.串行口有几种工作方式?(参P120)有几种帧格式?(参P121,P123~124)各种工作方式的波特率如何确定?参P128答:串行口有4种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOD/32×定时器T1的溢出率,方式2的波特率=2SMOD/64×fosc,方式3的波特率=2SMOD/32×定时器T1的溢出率
*7-8.假定串行口发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停止位,请画出传送字符“B”的帧格式?答:字符“B”的ASCII码为“42H”(既0BH+37H),帧格式如下:
数字(0~9)H的ASCII码为(0~9)+30H,数字(AH~FH)的ASCII码为(A~F)+37H。 请画出传送字符“C”的帧格式?
起始位01000011校验位停止位
7-9.为什么定时器/计数器T1用作串行口波特率发生器时,常采用方式2?若已知时钟频率,串行通信的波特率,如何计算装入T1的初值? 参P128答:因为定时器/计数器在方式2下,初值可以自动重装,这样在做串口波特率发生器设置时,就避免了执行重装参数的指令所带来的时间误差。
设定时器T1方式2的初值为X,计算初值X可采用如下公式:
2SMOD0 波特率 =
32定时器T1的溢出率?2SMOD32?fosc12(256?X)
定时器T1的溢出率=计数速率/(256-X)=fosc/[(256-X)*12] 故计数器初值为256-X = 2SMOD ×fosc/[12×32×波特率]
*7-10.若晶体振荡器为11.0592MHZ,串行口工作于方式1,波特率为4800b/s,写出用T1作为波特
2SMOD率发生器的方式控制字和计数初值。答:方式1的波特率 =2)
32?fosc12(256?X) = 4800 bit/s(T1工作于方式
X=250=FAH
经计算,计数初值为FAH,初始化程序如下:
;屏蔽低4位 ANL TMOD,#0F0H
;T1定时模式工作方式2 ORL TMOD,#20H
MOV MOV MOV
TH1,#0FAH TL1,#0FAH SCON,#40H
;写入计数初值,波特率为4800b/s
;串行口工作于方式1参P119
·11·
方式1的波特率?2SMOD?2SMOD32?定时器T1的溢出率解法2:由 得
32?fosc1265536?X?4800 (T1工作于方式2)
X?65536?11.0592?2384?4800?65536?12?65524?FFF4H初始化程序如下: ORG ANL
0000H
;屏蔽低4位 TMOD,#10H TH1,#0FFH TL1,#0F4H
;T1定时模式方式1
;写入计数初值,为4800b/s
TMOD,#0F0H ORL
MOV MOV
MOV
;串行口工作于方式1 SCON,#40H
MOV PCON,#80H ;串行通信波特率加倍
(P127) 7-11.简述利用串行口进行多机通信的原理。答:见7.3节的介绍。
7-12.使用AT89S51的串行口按工作方式1进行串行数据通信,假定波特率为2400bit/s,以中断方式传送数据 ,请编写全双工通信程序。答:见7.5.3小节的介绍(P132)。 ,7个数据位,1个偶校验位*7-13.某AT89S51单片机串行口,传送数据的帧格式为1个起始位(0)
和1个停止位(1)组成。当该串行口每分钟传送1800个字符时,试计算出波特率。答:串口每秒钟传送的字符为:1800/60=30个字符/秒,所以波特率为:30个字符/秒×10位/个字符=300bit/s。或波特率=1800×(1+7+1+1)/60=300bit/s
7-14.为什么AT89S51单片机串行口的方式0帧格式没有起始位(0)和停止位(1)? 答:串行口的方式0为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个MCS-51之间的串行通信。该方式以fosc/12的固定波特率从低位到高位发送或接收数据。 。参P141 8-1.单片机存储器的主要功能是存储(程序)和(数据)
。 8-2.假设外部数据存储器2000H单元的内容为80H,执行下列指令后累加器A中的内容为(80H)
MOV P2,#20H MOV R0,#00H MOVX A,@R0
无论是线选法还是译码法,最终都是为了扩展芯片的片选端提供(片选)控制。8-3在存储器扩展中,P143 8-4.起止范围为0000H-3FFFH的存储器的容量是(16)KB。参P157
8-5.在AT89S51单片机中,PC和DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。
8-6.11根地址线可选(2KB)个存储单元,16KB存储单元需要(14)根地址线。 8-7.4KB RAM存储器的首地址若为0000H,则末地址为( 0FFF)H
8-8.区分MCS-51单片机片外程序存储器和片外数据存储器的最可靠的方法是:参P158(C,D) A.看其位于地址范围的低端还是高段B.看其离MCS-51芯片的远近
C.看其芯片的型号是ROM还是RAM D.看其是与RD信号连接还是与PSEN信号连接
8-10.编写程序,将外部数据存储器中的4000H—40FFH单元全部清零。 答:本题主要考察对外部数据块的写操作;编程时只要注意循环次数和MOVX指令的使用就可以了。 ORG 0000H
;送预置数给A MAIN: MOV A,#0
;设置循环次数 MOV R0,#0FFH
LOOP:
MOV MOVX
INC DJNZ
DPTR,#4000H ;设置数据指针的初值
;当前单元清零 @DPTR,A
;指向下一个单元 DPTR
;是否结束 R0,LOOP
·12·
共分享92篇相关文档