冯博琴《微型计算机原理与接口技术》(第3版)配套题库【名校考研真题+课后习题+章节题库+模拟试题】
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第7章 常用数字接口电路

一、选择题

18253-5工作在方式1时,输出负脉冲的宽度等于(  )。[上海交通大学研]

A.1个CLK脉冲宽度

B.2个CLK脉冲宽度

C.N个CLK脉冲宽度

D.N/2个CLK脉冲宽度

【答案】C

【解析】方式1是可重复触发的单稳态触发器。不同于方式4可软件触发的选通信号发生器。两者的区别主要在于低电平的脉冲宽度,前者输出低电平的宽度是N(计数初值)个CLK脉冲宽度。后者是维持计数初值减到0时间的高电平之后输出一个CLK脉冲宽度的低电平。

2将8253定时/计数器通道0设置为方式3,产生频率为10kHz的方波。当输入脉冲频率为2MHz时,计数初值为(  )。[北京理工大学研]

A.200

B.300

C.400

D.500

【答案】A

【解析】8253工作在方式3时,计数或定时任务完成一半的时候,输出发生倒置,即由原来的高电平转为低电平,直到计数结束。这样,输出的方波的一个周期恰好是完整的计数时间。因为2M/10k=200,所以计数的初值应该为200。

3要由8253产生占空比为0.5的方波信号,应选用8253的方式(  )。[南京理工大学研]

A.2

B.3

C.5

D.1

【答案】B

【解析】方式3的特点是:

方式3常用于波特率发生器。方式3和方式2类似。但输出为方波或近似方波的矩形波。

写入方式3控制字后输出为高电平。写入计数值后计数器自动开始对输入CLK脉冲计数,输出OUT仍维持为高;在计数完成一半时,输出OUT变为低电平,直到计数器全部完成,输出OUT又变为高电平,并复上述计数过程。

若计数值N为偶数时,OUT方波的占空比为1:1;若N为奇数,其占空比为[(N+1)/2]:[(N-1)/2]输出分频波高电平宽度为(N+1)/2 CLK周期,低电平周期为(N-1)/2 CLK周期。

48255A的PA口丁作于方式2,PB口工作于方式0时,其PC口可(  )。[长安大学研]

A.用做一个8位U0端口

B.用做一个4位I/O端口

C.部分作联络线

D.全部作联络线

【答案】D

【解析】PC口的PC3~PC7服务于PA口。PC0~PC2服务于PB口。所以全部用做联络线。

5一个系统通过其8255A并行接口与打印机连接,初始化时CPU将它的A口或8口设置成方式1输出,此时8255A与打印机的握手信号为(  )。[南京理工大学研]

A.IBF STB

B.RDYSTB

C.OBFACK

D.INTRACK

【答案】C

6一个串行接口设置为7位数据位,1位奇校验位和1位终止位的异步通信传送方式,传送数据5时,通过示波器观察到对方发送来的信号波形如图7-1所示。信号波形图对应二进制代码0110110110,则串口将(  )。[上海交通大学研]

图7-1

A.正确接收到7位二进制数5BH

B.置奇偶校验错标志

C.置帧出错标志

D.B+C

【答案】D

【解析】有一个0作起始位,奇校验表示7位的数据位和校验位一起的8位中的1的个数为奇数,终止位为高电平1,数据位的传输从低位开始,逐次到最高位。

上面的二进制代码显示,数据位和校验位的1的个数为偶数,不符合奇校验的规定,所以会置奇偶校验错误。另外停止位上没有置高电子,所以帧出错,置帧出错标志。

7若经过RS-232为接口进行串行数据传送,若一帧信息中带有一位奇偶校验位和2位停止位,当波特率为4800 B时,字符传输率为480,则数据位有(  )位。[上海交通大学研]

A.6

B.7

C.8

D.9

【答案】A

8下列数码中设有奇偶校验位,检测数据是否有错误,试问采用偶校验时,哪个数据出错(  )。[华东师范大学研]

A.11011010

B.10010110

C.01100110

D.10010101

【答案】A

【解析】奇偶校验是根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。

9(多选)8253的OUT端可以输出一个宽度为时钟周期的负脉冲,可选择的工作方式有(  )。[中国科学院研]

A.方式1

B.方式2

C.方式3

D.方式4

E.方式5

【答案】ABDE

【解析】8253的OUT端可以输出一个宽度为时钟周期的负脉冲,可选择的工作方式有方式1、2、4和方式5。

二、填空题

1已知8254(或8253)口地址为40H~43H,CLK2计数频率为1.2 MHz,GATE2为高电平,执行下列程序段:

则,fout2=______[南京邮电大学研]

【答案】30 kHz。

2某计算机系统有一并口芯片8255A,初始化时将8255A的A口设置成方式1输出,这时8255A与外设的联络信号为______、______。[南京邮电大学研]

【答案】输出缓冲器满信号;响应输入信号

3一个微机系统中用8255A作为I/O接口,初始化时,8088 CPU访问其08H端口,将它设置为方式0,这时PA、PB和PC均作为输入,则PA口的端口地址是______。[广东工业大学研]

【答案】05H

4设8255A中C端口的内容为88H,将7DH写入8255A控制字寄存器后,则C端口的内容变为______H。[厦门大学研]

【答案】80

5PC串行口连续发送同一帧标准ASCII码数据,用示波器在RS232连接器的数据发送端监测到图7-2所示波形。该帧数据代表______字符,它有______个停止位,其校验方式是______。假设通信速率为4800Baud,传送1 KB,需要______ms。[南京邮电大学研]

图7-2 波形

【答案】“F”;1;无奇偶校验;2134

【解析】该帧数据写成二进制数为0011000118,开始的0为起始位、最后的1为停止位,这样中间的7位数据为要传输的字符,因为是低位先传输,所以将中间7位数据0110001颠倒过来为1000110,即46H,为“F”的ASCII码。所以传送的字符为“F”。

6计算机与外部有串行和并行两种通信方式,串行接口常用RS 232 C接口标准,该标准规定SPACE(即逻辑“0”)的电平为______;MARK(即逻辑“1”)的电平为______。并行接口通常有______、______、______和______4种工作方式。[大连理工大学研]

【答案】+3~+15V;-3~-15V;无条件传送方式;查询方式;中断传送方式;直接存取存储器传送方式

【解析】RS 232 C标准规定:低电平为-3~-15V,高电平为+3~+15V,在实际应用中,常采用±12V或±15V。另外,232C的数据线采用负逻辑,即高电平表示逻辑0,低电平表示逻辑1。

7在进行远程通信时,为了避免低次谐波损失引起的失真而采用调制解调。调制是______,解调是调制的逆过程。数字调制中由电子开关控制相位的变化,称为______键控,即PSK。[上海交通大学研]

【答案】把数字信号按照一定规则用交变模拟信号来表示;相移

三、判断题

1如果8253-PIT通道0的时钟输入频率为2.5 MHz,要产生频率为1 kHz的方波,那么这个通道的计数初值为08C4H。(  )[重庆大学研]

【答案】错误

【解析】计数初值=2.5 MHz/1 kHz=2500D=09C4H。

28255A的A端口有3种工作方式,不管用哪一种方式进行工作,都可以采用中断的方式来传送。(  )[重庆大学研]

【答案】错误

【解析】8255A的工作方式0最适合用于无条件传送方式,除此之外还熊用予查询工作方式。方式1翻方式2可以用中断方式传送。

3RS 232 C标准规定的逻辑1电平范围是+3~+15V。(  )[北京航空航天大学研]

【答案】错误

【解析】RS 232 C采用的是负逻辑,所以逻辑1的电平范围应该是-3~-15V。

4PC的串行通信接口只允许工作在异步通信方式,而不允许工作在同步通信方式。(  )[北京航空航天大学研]

【答案】正确

【解析】因为串行通信中的同步通信需要通信的双方共用一个时钟信号,而PC的串行通信接口中没有提供可共同使用时钟的输出引脚,也没有提供可接收共同使用时钟的输入引脚,所以PC在和外设串行通信时,只能靠波特率和各自的时钟发生器来采用异步方式传送数据。

5微机中同一个串口全双工传送数据时,数据的发送和接收使用同一地址。(  )[北京航空航天大学研]

【答案】正确

【解析】因为串行通信接口电路内部有独立的发送和接收缓冲器,独立的发送和接收控制电路。所以使用同一个地址发送和接收不会产生冲突问题且可提高使用的简便性。

四、解答题

1已知MCS-51单片机的振荡频率为11.0592MHz,用定时器T1以工作方式2作波特率发生器,产生19200、9600、4800、2400、1200等5种波特率,求所对应的初值。[华东理工大学研]

答:定时/计数器作为波特率发生器,在已知定时器号,工作方式及所产生的波特率的条件下,可由波特率公式推导出求定时器初值的公式。

MCS-51单片机的振荡频率为11.0592 MHz,即fOSC=11.0592 MHz用定时器T1以工作方式2作波特率发生器,则K=8,SMOD取为1。

波特率为19200时,对应初值为253=11111101B=FDH;

波特率为9600时,对应初值为250=11111010B=FAH;

波特率为4800时,对应初值为244=11110100B=F4H;

波特率为2400时,对应初值为232=11101000B=E8H;

波特率为1200时,对应初值为208=11010000B=D0H。

2说明当8253的外部时钟为1MHz时,只用该8253如何产生宽度为1s的负脉冲?[西安电子科技大学研]

答:因为计数时钟为1 MHz,而每个计数器的计数值是16位的。因此,一个计数器的最大计数时间只有65.5ms左右,无法满足要求。但8253有3个计数器,可以串联使用以解决问题。

例如,将时钟接到CLK0上,使GATE0有效(高电平)并将OUT0输出接到CLK1上作为计数器1的计数时钟,并使GATE。为高电平。这就将计数器0和计数器1串到一起。可使计数器0工作在方式2或方式3,使其输出连续的脉冲。使计数器1工作在方式0。且使两计数器的总计数值为1000×1000,可使计数器0的计数值均为1000,则OUT的输出就是周期为1 ms的对称方波或窄脉冲。使计数器1的计数值为999,则OUT1的输出即为宽度1s的负脉冲。

3源程序如下:

设8253的端口地址为140H~143H,问:

(1)程序是对8253的哪个通道进行初始化?

(2)该通道的计数常数为多少?

(3)若该通道时钟脉冲CLK的周期为1μs,则输出脉冲OUT的周期为多少?[南京航空航天大学研]

解:(1)程序对8253的通道1进行初始化。

(2)计数常数为10000D,BCD计数。

(3)工作在方式3,方波速率发生器,输出脉冲OUT的周期如下:周期=10000×1μs=10000μs=10ms。

4设外部有一脉冲信号源PLUS,要求用8253-5的计数器0对该信号源连续计数,当计数器计为0时向CPU发出中断请求。

(1)画出82535的CLK0、GATE0和OUT0的信号连接图。

(2)若该芯片的端口地址为40H~43H,计数初值为1234H,写出该计数器工作在方式2,按二进制计数的初始化程序。

(3)若计数初值为12345H,在上述基础上增加计数器1如何连接以实现计数。[华中科技大学研]

答:(1)8253-5的CLK0、GATE0和OUT0的信号连接图如图7-3所示。

图7-3 8253-5的信号连接图

(2)

(3)PLUS作CLK0的输入,OUT0的输出作CLK1的输入信号。OUT1的输出作CPU的请求信号。用两个计数器串联计数实现20位二进制的计数。

5图7-4为8255A方式1输入时序图,请叙述其工作过程。[南京邮电大学研]

图7-4 8255A方式1输入时序图

答:外设产生STB故据选通信号,低电平有效,将PA口或PB口线上的数据锁存入相应的输入锁存器。8255A则将发出IBF输入缓冲器满信号给CPU作为对唐号的廊答信号。在CPU的读信号有效前,IBF一直保持高电平,在和IBF同为高电平时,8255A发出INTR高电平信号最为中断申请信号给CPU,该信号有效时,CPU可以从输入缓冲器读出数据。当CPU的信号有效,INTR信号复位为低电平,信号持续有效直到从8255A的相应输入缓冲器读走数据,此后IBF信号恢复到低电平,表示输入缓冲器空。

6假设可编程并行接口芯片Intel 8255的地址为200H~203H(依次对应A口、B口、C口、控制寄存器)。Intel 8255方式控制字格式如图7-5所示。

图7-5 8255A控制字格式

编写程序,对此芯片进行初始化处理,使A组以方式0工作,且A口指定为输出,PC4、PC5、PC6、PC7指定为输入;B组以方式0工作,且B口指定为输入,PC0、PC1、PC2、PC3指定为输出。[武汉理工大学研]

解:由工作方式可知,8255A的方式控制字应该是:10010001B或91H。则初始化程序段为:

7简述单片机串行通信的定义及类型。[华东理工大学研]

答:串行通信是指数据是一位一位地按顺序传送的通信方式。它的突出优点是只需一根传输线,并且可以利用电话线作为传输线,这样大大降低传输成本,特别适用于远距离通信。其缺点是传送速度较低。串行通信分为异步传送和同步传送两种基本方式。

(1)异步传送方式。异步传送的特点是数据在线路上的传送不是连续的。在线路上数据是以一个字为单位来传送的。异步传送时,各个字符可以是接连传送的,也可以是间断传送的,由发送方根据需要来决定。在异步传送时,同步时钟脉冲并不传送到接收方,即双方各用自己的时钟源来控制发送和接收。

(2)同步传送方式,同步传送是一种连续传送数据的方式。在通信开始以后,发送端连续发送字符,接收端也连续接收字符,直到通信告一段落。

8在串行异步通信接口传送标准ASCII字符,约定1位奇偶校验位,两位停止位,请回答:

(1)如果在接收到的数据波形如图7-6所示,则作传送字符的代码是什么?

(2)如果传输的波特率为9600 Baud,问每秒钟最多可传多少个字符?[中科院合肥智能所研]

图7-6 接收到的数据波形

答:(1)传送的代码:1010110,即56H。

(2)帧格式为11位,9600/11=872,故可传送872个字符。

9如何区分串行通信中的发送中断和接收中断?[华东理工大学研]

答:通过判断串行口控制寄存器SCON中的D1和D0,即TI和RI来区分串行通信中的发送中断和接收中断。其中,TI是发送中断标志,当TI=1时,申请发送中断,CPU响应中断后,发送下一帧数据,该位必须由软件清0。RI是接收中断标志,当RI=1时申请接收中断,要求CPU取走数据,该位必须由软件清0。

10简述8251A芯片功能及芯片内部结构组成。[厦门大学研]

答:8251A是可编程串行接口,适合用于异步起止式协议和同步,面向字符协议的接口。它的内部结构主要由五个部分组成,即接收器、发送器、调制控制、读写控制及系统数据总线缓冲器。数据总线缓冲器使8251A与系统数据总线连接起来;接收器的功能是接收在RxD脚上的串行数据并按规定把它转换为并行数据,存放在数据总线缓冲器中;发送器负责在不同的通信方式下按照不同的步骤发送数据;读写控制逻辑对CPU输出的控制信号进行译码以实现不同的读写功能,并实现对Modem的控制。

此外,8251的接业器和发送器分别设置接收时钟和发送时钟信号输入线,以决定通信速率;提供外部时钟信号的装置称为波特率发生器;在同步方式下波特率是0~64 kbit/s,而在异步方式下波特率为0~19.2 kbit/s;使用时,根据不同速率要求,在接收器和发送控制器中分频,以得到合适的接收或发送时钟频率;数据传输波特率等于夕部时钟频率除以分频系数,其分频系数也叫波特率因子。

11若已知8250芯片上有3条地址线A0~A2,该8250最少需占多少个接口地址?[西安电子科技大学研]

答:因为地址A0~A2三条地址线共有8种编码,故8250最多占8个接口地址。

12设8250端口地址为3F8H~3FFH,部分初始化程序如下:[南京邮电大学研]

(1)在分号之后写出注释。

(2)若8250使用频率为1.8432 MHz的基准时钟信号,8250串行传送数据时,时钟信号的频率是波特率的16倍,从该程序中可看出,通信波特率是______。

(3)8250内部优先级最低的中断源是______。

(4)设发送的数据是“A”=41H,求:

以bit为单位画出传输线上的帧数据格式。

注明每一部分的物理意义及每比特的0/1代码。

(5)全双工通信,设收发双方约定:任何一方发出“EUT”代码(ASCII码为04H)就表示通信结束。因此数据发送完毕,需执行下列程序段,请补充完整。

单片机甲发送程序如下。

单片机乙接收程序如下。

答:(1)选择对分频次数锁存器寻址

对分频低字节寻址

低字节数据18H

写入分频低字节锁存器

对分频高字节寻址

高字节数据写入00H,设定波特率

设置帧格式为奇校验、7位数据位、2位停止位

(2)4800 bit/s。

(3)Modem状态寄存器改变。

(4)如图7-7所示。

图7-7 以bit为单位画出的帧数据格式

图中标注逻辑0和逻辑1的部分构成了一个完整的帧。从0时刻开始至t时刻依次的物理含义为:起始位、D0、D1、D2、D3、D4、D5、D6、奇校验位、停止位、停止位。其中的“D0~D6”表示字符用7位表示的“低位~高位”。

(5)IN AL,3FDH

AND AL,20H

CMP AL,20H

⑪WAIT: JNZ 21H

五、编程题

1利用8253周期性的每隔20 ms产生一次中断,试选择工作方式和参数,并编出相应程序。8253的控制字格式如图7-8所示。[东南大学研]

图7-8 8253的控制字格式

答:

解答思路:8253每隔20 ms溢出一次,所以计数初值取24H,当8253溢出时,产生中断。

2利用8253A(或8254A)周期性地每隔20ms产生一次中断(已知计数时钟频率为1MHz),要求:

(1)选择工作方式和参数,并编出相应的初始化程序。[重庆大学研]

(2)当接口中断系统己设计好时,编写每中断一次就对AX(初值为0)加1,一直加到1000的工作主程序和中断服务程序。

解:(1)设控制寄存器的地址为0FF07H,计数器2的计数初值为=20ms/0.5 μs=40000,初始化程序如下:

(2)主程序MAIN完成以下功能:将中断服务子程序的入口地址送中断向量表,开中断,8253初始化。中断服务子程序ADD1完成:对AX进行从1到1000的累加。

3已知图7-9,要求:

(1)使用地址总线的A9~A0,利用74LS138(可适当添加逻辑电路)给8253编一个I/O地址,使当CPU输出I/O地址为200H~203H时,分别选中8253的0#、1#、2#计数器及控制字寄存器,并使8253能正常工作。试在图中间画出所有相关连线。

(2)设8253的0#计数器作为十进制计数器用,其输入计数脉冲频率为100 kHz,要求0#计数器输出频率为1 kHz的方波,试写出设置8253工作方式及计数初值的有关指令。(控制字格式如图7-8所示)[北京航空航天大学研]

解:(1)A#9为1,A#8~A2为0的时候,芯片被选中。

图7-9 电路原理图

(2)8253的工作方式3可用做方波发生器。分频系数为100 kHz/1 kHz=100,采用十进制计数,BCD码为0100 H。

4某8086系统包含一片8253A,编程完成以下功能:

(1)计数器0完成对外部计数功能,计满100次向CPU发出中断请求;

(2)计数器1输出频率为1 kHz的方波;

(3)计数器2设置为模式2,计数初值为2010H。

8253A的端V1地址为3130H(外部CLK为2.5 MHz)。定时器/计数器8253A的控制字格式如图7-8所示。[中山大学研]

解:(1)设置8253的计数器0为模式3,初值为双字节写入。固定记数100次发一次中断请求(1M/200—5000)。相关程序如下:

MOV AL,36H;

OUT DX,P8253+3;

OUT DX,AL;

MOV BX,5000;

MOV AL,BL;

OUT P8253,AL;

MOV AL,BH;

OUT P8253,AH;

(2)这是8253用于定时器的应用,所需的总分频系数为2.5 MHz/1 kHz=2500,故设通道0分频系数为2500,相关程序如下:

MOV DX,P8253+3;

MOV AL,76H;(00110110B)

OUT DX,AL;

MOV DX,P8253;

MOV AX,2500;

OUT DX,AL;

MOV AL,AH;

OUT DX,AL;

(3)计数器2设置为模式2,计数初值为2010H,8253A的端口地址为3B0H,相关程序如下。

MOV DX,383H;

MOV AL,10110108;

OUT DX,AL;

MOV DX,3BIH;

MOV AL,10H;

OUT DX,AL

MOV AL,20H;

OUT DX,AL;

5某8086微机控制系统中扩展一片8255A作为并行口,如图7-10所示,PA口为方式1输入。以中断方式与CPU交换数据,中断类型号为0FH;PB口工作于方式0输出,PC口的普通I/O线作为输入。

请编写8255A的初始化程序(片选地址范围为0B0H~0BFH)。并行接口芯片8255A的控制字格式如图7-5所示。PC口按位置位/复位控制字。[中山大学研]

图7-10 扩展的8255A

答:

6图7-11为8088 CPU某微机打印控制系统,使用逻辑门电路实现地址译码,8255A芯片查询打印机的状态,并向打印机输出数据使其打印(打印机正在打印时BUSY信号为高电平,否则为低电平)。[北京理工大学研]

图7-11 8088CPU某微机打印控制系统

完成下列问题:

(1)8255A芯片4个端口的地址是多少?

(2)编写完整程序,使用查询方式将存放在CONDATA开始的存储区中的100个8位二进制数据打印出来。

答:(1)由图可知,要片选8255A,必须与非门的输出和A7~A3均为0,要保证在访问8255A的时候(这时IO/为1)与非门的输出为0,必须A10~A6均为1,再考虑到A2、A1用来选择8255A的内部端口,所以4个端口的地址应该为1111000000B~1111000011B,即3COH~3C3H。

(2)根据打印机系统的连接,可以设置8255A采用方式0工作,其中PB口设置为输出,PC0~PC3设置为输入,查询PC0的状态,如果为低电平0,表示打印机空闲,将存储区的数据取出一个字节传送给PB口输出到打印机打印,之后再去判断打印机是否空闲,重复以上操作100次,直到将全部数据输出打印。具体程序代码如下。

7试编写一程序段,将8255中A口输入的8位开关量从高位到低位依次在CRT上显示出来,0表示该开关断开,1表示合上。[厦门大学研]

解:设8255控制寄存器的地址为0FBC3H,端口A工作在方式2,端I=I A8位输入。首先从A口读入8个开关的状态存入AL中,然后让AL逻辑左移1位共8次,就能把开关量从高位到低位在CRT显示出来。程序如下。

8已知电路如图7-12所示,8255控制格式如图7-5所示。图中的数码管为共阴极型,共阴极端接GND,数码管的a,b,…,g段依次接8255的PB0,PB1,…,PB6。要求对该电路进行编程,使数码管初始状态显示0。每按下一个S0键后,数码管显示的数字减1,减至0后,再按S0键,则数码管显示9;每按下一次S1键后,数码显示的数字加1,加至9后,再按S1键,则数码管显示0。若同时按下S0和S1键,则退出程序。[北京航空航天大学研]

图7-12 电路

解:主要是利用PA口和PB口的基本输入输出方式来进行程序设计和编写。具体代码如下:

98255用做查询方式打印机接口时的电路连接如图7-13所示,A组、B组均工作在方式0,A口和C口的高4位为输出,C口的低4位为输入,B口保留(作输入)。

(1)编写8255初始化程序。

(2)编写一段程序,将AL中的8位数据送打印机打印。[西北大学研]

图7-13 8255用做查询方式打印机接口电路连接图

答:在本题中,CPU通过74138译码器与8255芯片相连。当A4A3A2=000时,Y0=0, CPU选中8255。因为8255A的数据线D7~D0与CPU的低8位数据总结D7~D0相连,所以8255A的4个口地址都应为偶地址。

A0必须总等于0,用地址线A0、A1来选择片内的4个端口。图中,地址线A9A8A7接译码器的G1,A6与AEN接与门后接2B,A52A。这样4个端口地址分别为3COH、3C2H、3C4H和3C6H,对应于8255芯片的A口、B口、C口和控制字寄存器。其中8255A的A口作为向打印机输出数据的通道,B口作为CPU向8255输送数据的通道,C口作为判断打印机是否空闲的指示。

108086系统使用8255A扩展键盘接口电路如图7-14所示。8255A的端口A工作于方式0,输入;端口C输出。设8255A端口地址范围为:80H~83H。

图7-14 电路图

(1)编写8255A的初始化程序(控制字无关位置0),并加简要注释。

(2)编写CPU扫描键盘程序段(无键按下时,循环扫描;确认有键按下时,退出),并加简要注释。[北京大学研]

答:(1)

(2)