微机原理及应用习题库与答案(清华版第四版) - 参考

更新时间:2023-11-27 20:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章 绪论

1. 计算机分那几类?各有什么特点?

答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统, 存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。 2. 简述微处理器、微计算机及微计算机系统三个术语的内涵。

答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影响。微计算机包括微处理器、存储器、I/O接口电路及系统总线。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。 3. 80X86微处理器有几代?各代的名称是什么?

答:从体系结构上可分为3代: ? 8080/8085:8位机。 ? 8086/8088/80286:16位机。 ? 80386/80486:32位机。

第2章 微处理器结构及微计算机的组成 1.8086是多少位的微处理器?为什么?

答:8086是16位的微处理器,其内部数据通路为16位,对外的数据总线也是16位。 2.EU与BIU各自的功能是什么?如何协同工作?

答:EU是执行部件,主要的功能是执行指令。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。 3.8086/8088与其前一代微处理器8085相比,内部操作有什么改进?

答:8085为8位机,在执行指令过程中,取指令与执行执令都是串行的。8086/8088由于内部有EU和BIU两个功能部件,可重叠操作,提高了处理器的性能。

4.8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?

答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。

5.8086对存储器的管理为什么采用分段的办法?

答:8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围 (1MB,20位地址)。若不用分段方法,16位地址只能寻址64KB空间。 6.在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。

答:逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。物理地址是8086芯片引线送出的20位地址码,用来指出一个特定的存储单元。 7.给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。

答:物理地址:320F8H。

8.8086/8088为什么采用地址/数据引线复用技术?

答:考虑到芯片成本,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。 9.8086与8088的主要区别是什么?

答:8086有16条数据信号引线,8088只有8条;8086片内指令预取缓冲器深度为6字节,8088只

1

有4字节。

10. 怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同

答:引线MN/MX#的逻辑状态决定8086的工作模式,MN/MX#引线接高电平,8086被设定为最小模式,MN/MX#引线接低电平,8086被设定为最大模式。 最小模式下的控制信号由相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入为8086的S2#~S0#三条状态信号引线提供。

11. 8086被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序?

答:标志寄存器、IP、DS、SS、ES和指令队列置0,CS置全1。处理器从FFFFOH存储单元取指令并开始执行。

12. 8086基本总线周期是如何组成的?各状态中完成什么基本操作?

答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。在T1期间8086发出访问目的地的地址信号和地址锁存选通信号ALE;T2期间发出读写命令信号RD#、WR#及其它相关信号;T3期间完成数据的访问;T4结束该总线周期。

13. 结合8086最小模式下总线操作时序图,说明ALE、M/IO#、DT/R#、RD#、READY信号的功能。

答:ALE为外部地址锁存器的选通脉冲,在T1期间输出;M/IO#确定总线操作的对象是存储器还是I/O接口电路,在T1输出;DT/R#为数据总线缓冲器的方向控制信号,在T1输出;RD#为读命令信号;在T2输出;READY信号为存储器或I/O接口“准备好”信号,在T3期间给出,否则8086要在T3与T4间插入Tw等待状态。

14. 8086中断分哪两类?8086可处理多少种中断?

答:8086中断可分为硬件中断和软件中断两类。8086可处理256种类型的中断。 15. 8086可屏蔽中断请求输入线是什么?“可屏蔽”的涵义是什么? 答:可屏蔽中断请求输入线为INTR;“可屏蔽”是指该中断请求可经软件清除标志寄存器中IF位而被禁止。

16. 8086的中断向量表如何组成?作用是什么?

答:把内存0段中0~3FFH区域作为中断向量表的专用存储区。该区域存放256种中断的处理程序的入口地址,每个入口地址占用4个存储单元,分别存放入口的段地址与偏移地址。 17.8086如何响应一个可屏蔽中断请求?简述响应过程。

答:当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,请除IF、TF;8086将类型码乘4后得到中断向量表的入口地址,从此地址开始读取4字节的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。

18. 什么是总线请求?8086在最小工作模式下,有关总线请求的信号引脚是什么?

答:系统中若存在多个可控制总线的主模块时,其中之一若要使用总线进行数据传输时,需向系统请求总线的控制权,这就是一个总线请求的过程。8086在最小工作模式下有关总线请求的信号引脚是HOLD与HLDA。

19. 简述在最小工作模式下,8086如何响应一个总线请求?

答:外部总线主控模块经HOLD引线向8086发出总线请求信号;8086在每个时钟周期的上升沿采样HOLD引线;若发现HOLD=1则在当前总线周期结束时(T4结束)发出总线请求的响应信号HLDA;8086使地址、数据及控制总线进入高阻状态,让出总线控制权,完成响应过程。

20.在基于8086的微计算机系统中,存储器是如何组织的?是如何与处理器总线连接的? BHE#信号起什么作用?

答:8086为16位处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,命名为偶字节体和奇字节体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的

2

数据线连接D15~D8,“体选”信号接BHE#信号;BHE#信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。 21.“80386是一个32位微处理器”,这句话的涵义主要指的是什么?

答:指80386的数据总线为32位,片内寄存器和主要功能部件均为32位,片内数据通路为32位。 22.80X86系列微处理器采取与先前的微处理器兼容的技术路线,有什么好处?有什么不足?

答:好处是先前开发的软件可以在新处理器组成的系统中运行,保护了软件投资。缺点是处理器的结构发展受到兼容的约束,为了保持兼容性增加了硅资源的开销,增加了结构的复杂性。 23.80386内部结构由哪几部分组成?简述各部分的作用。

答:80386内部结构由执行部件(EU)、存储器管理部件(MMU)和总线接口部件(BIU)三部分组成。EU包括指令预取部件、指令译码部件、控制部件、运算部件及保护检测部件,主要功能是执行指令。存储器管理部件包括分段部件、分页部件,实现对存储器的分段分页式的管理,将逻辑地址转换成物理地址。总线接口部件作用是进行片外访问:对存储器及I/O接口的访问、预取指令;另外的作用是进行总线及中断请求的控制

24.80386有几种存储器管理模式?都是什么?

答:80386有三种存储器管理模式,分别是实地址方式、保护方式和虚拟8086方式 25.在不同的存储器管理模式下,80386的段寄存器的作用是什么?

答:在实地址方式下,段寄存器与8086相同,存放段基地址。在保护方式下,每个段寄存器还有一个对应的64位段描述符寄存器,段寄存器作为选择器存放选择符。在虚拟8086方式下,段寄存器的作用与8086相同。

26.试说明虚拟存储器的涵义,它与物理存储器有什么区别?80386虚拟地址空间有多大? 答:虚拟存储器是程序员面对的一个巨大的、可寻址的存储空间,这个空间是内存与外存联合形成的,在操作系统的管理下,程序可象访问内存一样去访问外存而获得所需数据。物理存储器是指机器实际拥有的内存储器,不包括外存。80386的虚拟地址空间为64TB大。 27.试说明描述符的分类及各描述符的作用。

答:描述符分为三类:存储器段描述符、系统段描述符、门描述符。存储器段描述符由8字节组成,它用来说明一个段中保存信息的情况。32位段基地址和20位段界限值定位了该段在存储空间中的位置,其它有关位决定访问权限及段的长度单位。系统段描述符与存储器段描述符大多数字节段相同,有关访问权及属性字节段有些不同。门描述符用来改变程序的特权级别、切换任务的执行以及指出中断服务程序的入口。

28.描述符表的作用是什么?有几类描述符表?

答:描述符表顺序存放一系列描述符,描述符表定义了在80386系统中被使用的全部存储器段。有3类描述符表,即全局描述符表、局部描述符表及中断描述符表。 29. 80386的分段部件是如何将逻辑地址变为线性地址的?

答:分段部件根据段选择符从全局描述符表或局部描述符表中取出对应的段描述符。把段描述符32位段基地址与逻辑地址中的32位偏移量相加就形成了线性地址。 30. 80386中如何把线性地址变为物理地址?

答:分段部件形成的32位线性地址中高10位作为寻址页目录表的偏移量,与控制寄存器CR3中页目录表基地址共同形成一个32位的地址指向页表中的一个页项,即为一个页面描述符。该页面项中高20位作为页面基地址,线性地址的低12位为偏移量,相加后形成指向某一存储单元的32位物理地址。若禁止分页功能,线性地址就是物理地址。 31. 80386对中断如何分类?

答:80386把中断分为外部中断和内部中断两大类,外部中断经NMI和INTR引线输入请求信号。内部中断也叫内部异常中断,分为陷阱中断、内部故障异常中断、异常终止中断。 32. 80386在保护方式下中断描述符表与8086的中断向量表有什么不同?

答:8086工作在实地址方式,向量表是在存储器的0段中最低1024字节内存中。80386在保护方式

3

下要通过中断描述符表中的描述符访问虚拟空间的中断向量,中断描述符表的位置不是固定的,要由IDTR寄存器实现在虚拟空间的定位。

33. 简述80386在保护方式下的中断处理过程。

答:80386响应中断后,接收由中断源提供的类型码并将其乘8,与IDTR寄存器中基地址相加,指出中断描述符的位置,读出中断描述符,依其中的段选择符及条件决定从两个描述符表LDT或GDT中的一个得到段描述符,形成中断服务程序入口所在存储器单元的线性地址。 第3章 8086指令系统及寻址方式

1. 根据下列要求编写一个汇编语言程序:: (1) 代码段的段名为COD_SG (2) 数据段的段名为DAT_SG (3) 堆栈段的段名为STK_SG

(4) 变量HIGH_DAT所包含的数据为95

(5) 将变量HIGH_DAT装入寄存器AH,BH和DL (6) 程序运行的入口地址为START 答案:

DAT_SG SEGEMNT HIGH_DAT DB 95 DAT_SG ENDS ;

STK_SG SEGMENT DW 64 DUP(?) STK_SG ENDS ;

COD_SG SEGMENT MAIN PROC FAR

ASSUME CS: COD_SG, DS: DAT_SG, SS: STK_SG START: MOV AX, DAT-SG MOV DS, AX MOV AH, HIGH_DAT MOV BH, AH MOV DL, AH MOV AH, 4CH INT 21H MAIN ENDP COD_SG ENDS END START 2. 指出下列程序中的错误: STAKSG SEGMENT DB 100 DUP(?) STA_SG ENDS DTSEG SEGMENT DATA1 DB ? DTSEG END CDSEG SEGMENT MAIN PROC FAR START: MOV DS,DATSEG MOV AL,34H ADD AL,4FH

4

MOV DATA,AL START ENDP CDSEG ENDS END 答案: 改正后:

STAKSG SEGMENT DB 100 DUP(?) STAKSG ENDS DTSEG SEGMENT DATA1 DB ? DTSEG ENDS CDSEG SEGMENT MAIN PROC FAR ASSUME CS: CDSEG, DS: DTSEG, SS: STAKSG START: MOV AX, DTSEG MOV DS, AX MOV AL, 34H ADD AL, 4FH MOV DATA1, AL MOV AH, 4CH INT 21H MAIN ENDP CDSEG ENDS END S 3. 将下列文件类型填入空格:

(1) .obj (2) .exe (3) .crf (4) .asm (5) .lst (6) .map 编辑程序输出的文件有______________________________________; 汇编程序输出的文件有______________________________________; 连接程序输出的文件有______________________________________。 答案:编辑程序输出文件: (4) 汇编程序输出文件: (1), (3), (5) 连接程序输出文件: (2), (6) 4. 下列标号为什么是非法的? (1) GET.DATA (2) 1_NUM (3) TEST-DATA (4) RET (5) NEW ITEM 答案:非法标号: (1)因为‘.’只允许是标号的第一个字符 (2)第一个字符不能为数字 (3)不允许出现‘-’

(4)不能是保留字,如助记符 (5)不能有空格

5. 下面的数据项定义了多少个字节? DATA_1 DB 6 DUP(4 DUP(0FFH)) 答案:24字节

6. 对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么? DTSEG SEGMENT | DTSEG SEGMENT ORG 10H | ORG 10H DATA1 DB 72H | DATA1 DW 7204H DB 04H | DTSEG ENDS

5

(7) XOR AX,0FFE7H (8) REP STOSB (9) JMP WORD PYR[BX] (10) XCHG AX,ES:[BX+SI]

答案:

(1) (AX)=0F05FH, (SF)=1, (ZF)=0, (OF)=0, (CF)=1 (2) (SF)=1, (ZF)=0, (OF)=1, (CF)=1 (3) (AX)=0240H, (OF)=1, (CF)=1 (4) (AX)=0906H, (SF)=0, (ZF)=0 (5) (AX)=20ACH

(6) (AX)=0103H, (CF)=0

(7) (AX)=0DF87H, (CF)=0, (OF)=0, (SF)=1, (ZF)=0 (8) (23000H)~(23004H)=60H, 不影响标志位 (9) (IP)=0A006H, 不影响标志位

(10) (AX)=00B0H, (25060)=2060H, 不影响标志位

第4章 汇编语言程序设计基础

1. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 答案:

abc: mov ah,1 int 21h cmp al,’a’ jb stop cmp al,’z’ ja stop sub al,20h mov dl,al mov ah,2 int 21h jmp abc stop: ret

2. 编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示“MATCH”,若不同则显示“NO MATCH”。 答案:

datarea segment string1 db ‘asfioa’ string2 db ‘xcviyoaf’ mess1 db ‘MATCH’,’$’ mess2 db ‘NO MATCH’,’$’ datarea ends

prognam segment main proc far assume cs:prognam,ds:datarea start:

push ds

11

sub ax,ax push ax mov ax,datarea mov ds,ax mov es,ax begin: mov cx, string2-string1 mov bx, mess1-string2 cmp bx,cx jnz dispno lea dx,addr lea si,string1 lea di,string2 repe cmpsb jne dispno mov ah,9 lea dx,mess1 int 21h ret dispno: mov ah, 9 lea dx, mess2 int 21h ret

main endp prognam ends end start

3. 试编写程序,要求从键盘输入3个16进制数,并根据对3个数的比较显示如下信息: (1)如果3个数都不相等则显示0; (2)如果3个数中有2个数相等则显示2; (3)如果3个数都相等则显示3。 答案:

data segment array dw 3 dup(?) data ends code segment main proc far assume cs:code,ds:data start:

push ds sub ax,ax push ax mov ax,data mov ds,ax mov cx,3 lea si,array begin:

12

push cx mov cl,4 mov di,4 mov dl, ‘ ‘ mov ah,02 int 21h mov dx,0 input: mov ah,01 int 21h and al,0fh shl dx,cl or dl,al dec di jne input mov [si],dx add si,2 pop cx loop begin comp: lea si,array mov dl,0 mov ax,[si] mov bx,[si+2] cmp ax,bx jne next1 add dl,2 next1: cmp [si+4],ax jne next2 add dx,2 next2: cmp [si+4],bx jne num add dl,2 num: cmp dx,3 jl disp mov dl,3 disp: mov ah,2 add dl,30h int 21h ret

main endp code ends end start

4. 已知整数变量A和B,试编写完成下述操作的程序:

(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中; (2)若两个数均为奇数,则两数分别加1,并存回原变量;

13

(3)若两个数均为偶数,则两变量不变。 答案:

dseg segment a dw ? b dw ? dseg ends cseg segment main proc far assume cs:cseg,ds:dseg start: push ds sub ax,ax push ax mov ax,dseg mov ds,ax begin: mov ax,a mov bx,b xor ax,bx test ax,0001 jz class test bx,0001 jz exit xchg bx,a mov b,bx jmp exit class: test bx,0001 jz exit inc b inc a exit: ret main endp cseg ends end start

5. 把0~10010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为i+1的学生成绩。另一个数组RANK是30个学生的名次表,其中RANK+I的内容是学号为i+1的学生的名次。试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。 答案:

dseg segment

grade dw 30 dup(?) rank dw 30 dup(?) dseg ends cseg segment main proc far

assume cs:cseg, ds:dseg, es:dseg start: push ds sub ax,ax push ax mov ax,dseg

14

mov ds,ax mov es,ax begin: mov di,0 mov cx,30 loop1: push cx mov cx,30 mov si,0 mov ax,grade[di] mov dx,0 loop2: cmp grade[si],ax jbe go_on inc dx go_on: add si,2 loop loop2 pop cx inc dx mov rank[di],dx sdd di,2 loop loop1 ret main endp cseg ends end start

6. 分析下列程序的功能,写出堆栈最满时各单元的地址及内容。 SSEG SEGMENT ‘STACK’ AT 1000H ; 堆栈的段地址为1000H DW 128 DUP(?) TOS LABEL WORD SSEG ENDS

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DSEG SEGMENT DW 32 DUP(?) DSEG ENDS

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CSEG SEGMENT MAIN PROC FAR ASSUME CS:CSEG, DS:DSEG,SS:SSEG START: MOV AX,SSEG MOV SS,AX MOV AX,DSEG MOV DS,AX MOV AX,4321H CALL HTOA RETN: MOV AH,4CH INT 21H MAIN ENDP ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HTOA PROC NEAR CMP AX,15 JLE B1 PUSH AX PUSH BP MOV BP,SP MOV BX,[BP+2] AND BX,0FH MOV [BP+2],BX

15

第6章 常用可编程外围接口芯片

1. 设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。 答:

MOV AL,80H

OUT 200H,AL IN AL,203H MOV BL,AL IN AL,203H, MOV BH,AL MOV AX,BX

2. 设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。 答:

13?1?10?3要输出脉冲周期为1ms,输出脉冲的频率是1?10,当输入时钟频率为2MHz时,计数器初

值是

2?106?2?103?2000 31?10使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。设控制口的地址是200H,计数器0的地址是202H。程序段如下: MOV DX,200H MOV AL,76H OUT DX,,AL MOV DX,202H MOV AX,2000 OUT DX,AL

MOV AL,AH

OUT DX,AL

3. 设8253计数器的时钟输入频率为1.91MHz,为产生25KHz的方波输出信号,应向计数器装入的计数初值为多少? 答: 1.91MHz = 76.4

25KHZ应向计数器装入的初值是76。 4. 设8253的计数器0,工作在方式1,计数初值为2050H;计数器1,工作在方式2,计数初值为3000H;计数器2,工作在方式3,计数初值为1000H。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。 答:

计数器0工作在方式1,即可编程的单脉冲方式。这种方式下,计数的启动必须由外部门控脉冲GATE控制。因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。

21

计数器1工作在方式2,即分频器的方式。输出波形的频率f=输出负脉冲的宽度等于CLK的周期为0.5μs。

计数器2工作在方式3,即方波发生器的方式。输出频率f=三个OUT的输出波形如下:

OUT0 1.5ms OUT1 0.5μs 250μs 250μs fclk2MHz = =666.7HZ,其周期为1.5ms,N30002MHz = 2000Hz的对称方波。 1000OUT2 5. 8255A的3个端口在使用上有什么不同?

答:8255A的A端口,作为数据的输入、输出端口使用时都具有锁存功能。

B端口和C端口当作为数据的输出端口使用时具有锁存功能,而作为输入端口使用时不带有锁存功能。 6. 当数据从8255A的C端口读到CPU时,8255A的控制信号CS、RD、WR、A1、AO分别是什么电平?

答:当数据从8255A的C 端口读入CPU时,8255A的片选信号CS应为低电平,才能选中芯片。A1,A0为10,即A1接高电平,A0接低电平,才能选中C端口。RD应为低电平(负脉冲),数据读入CPU,WR为高电平。

7. 如果串行传输速率是2400波特,数据位的时钟周期是多少秒?

1答:数据位的时钟周期是 = 4.17×10-4 秒

24008. 在远距离数据传输时,为什么要使用调制解调器?

答:在远距离传输时,通常使用电话线进行传输,电话线的频带比较窄,一般只有几KHz,因此传送音频的电话线不适于传输数字信号,高频分量会衰减的很厉害,从而使信号严重失真,以致产生错码。使用调制解调器,在发送端把将要传送的数字信号调制转换成适合在电话线上传输的音频模拟信号;在接收端通过解调,把模拟信号还原成数字信号。

9. 全双工和半双工通信的区别是什么?在二线制电路上能否进行全双工通信?为什么? 答:

全双工和半双工通信,双方都既是发送器又是接收器。两者的区别在于全双工可以同时发送和接收。半双工不能同时双向传输,只能分时进行。在二线制电路上是不能进行全双工通信的,只能单端发送或接收。因为一根信号线,一根地线,同一时刻只能单向传输。

10. 同步传输方式和异步传输方式的特点各是什么? 答:

同步传输方式中发送方和接收方的时钟是统一的、字符与字符间的传输是同步无间隔的。异步传输方式并不要求发送方和接收方的时钟完全一样,字符与字符间的传输是异步的。

11. 在异步传输时,如果发送方的波特率是600,接收方的波特率是1200,能否进行正常通信?为什

22

么? 答:

不能进行正常通信,因为发送方和接收方的波特率不同,而接收端的采样频率是按传输波特率来设置。

12. 8251A在编程时,应遵循什么规则? 答:

8251在初始化编程时,首先使芯片复位,第一次向控制端口(奇地址)写入的是方式字;如果输入的是同步方式,接着向奇地址端口写入的是同步字符,若有2个同步字符,则分2次写入;以后不管是同步方式还是异步方式,只要不是复位命令,由CPU向奇地址端口写入的是命令控制字,向偶地址端口写入的是数据。

13. 试对一个8251A进行初始化编程,要求工作在同步方式,7位数据位,奇校验,1个停止位。 答:

对原题目的补充改动,要求工作在内同步方式,2个同步字符。 方式字是:00011000B=18H 程序段如下: XOR AX,AX MOV DX,PORT OUT DX,AL OUT DX,AL

OUT DX,AL ;向8251的控制口送3个00H MOV AL,40H

OUT DX,AL ;向8251的控制口送40H,复位 MOV AL,18H

OUT DX,AL ;向8251送方式字 MOV AL,SYNC ;SYNC为同步字符 OUT DX,AL

OUT DX,AL ;输出2个同步字符 MOV AL,10111111B

OUT DX,AL ;向8251送控制字

14. 一个异步串行发送器,发送具有8位数据位的字符,在系统中使用一位作偶校验,2个停止位。若每秒钟发送100个字符,它的波特率和位周期是多少? 答:

每个字符需要的发送位数是12位(数据位8位,校验位1位,停止位2位,起始位1位)。每秒发送

1100个字符共1200位。因此波特率为1200波特,位周期=≈833μs。

1200第7章 微机的基本接口技术

1. 简述行列式键盘矩阵的读入方法。

答:将行线接输出口,列线接输入口,采用行扫描法,先将某一行输出为低电平,其它行输出为高电平,用输入口来查询列线上的电平,逐次读入列值,如果行线上的值为0时,列线上的值也为0,则表明有键按下。否则,接着读入下一列,直到找到该行有按下的键为止。如该行没有找到有键按下,就按此方法逐行找下去,直到扫描完全部的行和列。

23

2. 简述用反转法实现键的识别的基本方法。 答: 将题目中的键改为闭合键。

用反转法识别闭合键,需要用可编程的并行接口。行线和列线分别接在PA和PB 2个并行口上,首先让行线上的PA口工作在输出方式,列线上的PB口工作在输入方式,通过编程使PA口都输出低电平,然后读取PB口的列线值,如果某一列线上的值为0,则判定改列有某一键按下。为了确定是哪一行要对PA和PB进行反转,即对PA口重新进行初始化工作在输入方式,列线上的PB口工作在输出方式,并将刚读取的列线值从列线所接的PB口输出,再读取行线所接的PA口,取得行线上的输入值,在闭合键所在的行线上的值必定为0。这样,当一个键被按下时,必定可读得一对唯一的行值和列值。根据这一对行值和列值就可判断是哪一行哪一列的键被按下。 3. LED数码管显示器共阴极和共阳极的接法主要区别是什么?

答:LED数码管显示器共阴极的接法是发光二极管的阴极接地,当数码管的笔划发光二极管的阳极为高电平时,该笔划被点亮。共阳极的接法是发光二极管的阳极接高电平,当数码管的笔划发光二极管的阴极为低电平时,该笔划被点亮。总之,主要区别在于LED数码管的接法和驱动笔划的数据电平的不同。

4. 试绘图说明LED数码管显示器的动态显示原理。 答:使用书上的图7.8

在图中LED数码管是共阴极的,总共可带动8位这样的LED数码管。动态驱动显示接口与静态驱动显示接口的一个明显特点是:动态驱动法将多位LED同名段的选择线都并联在一起,即8位中的所有同名段a接在一起,所有b段都接在一起??,这样只要一个8位的锁存器来控制段码a,b,c,d,e,f,g就够了。另外用一个锁存器来控制点亮的位。因此需要2个8位的I/O端口。

由于所有位的位选择码是用一个I/O端口控制,所有段的段选择码也是用一个I/O端口控制,因此在每个瞬间,8位LED只可能显示相同的字符。要想每位显示不同的字符,必须要采用扫描的显示方式。即在每一瞬间只能使某一位显示相应的字符,在此瞬间,由位选择控制的I/O端口在要显示的位上送入选通电平(共阴极接法送入低电平,共阳极接法送入高电平),以保证让该位显示字符;再由段选择控制的I/O端口输出相应字符的段选择码。如此循环下去,使每一位都显示该位应显示的字符,并保持延时一段时间,然后再选中下一位,利用发光显示器的余辉及人眼的视觉暂留特点,给人一种显示器同时被点亮的效果。段选择码,位选择码在每送入一次后一般需要延时1~5ms时间。 5. A/D和D/A转换在微机应用中分别起什么作用?

答:在微机应用中A/D转换器完成输入模拟量到数字量的转换,供微机采集数据。D/A转换器完成微机输出数字量到模拟量的转换,实现微机控制。

6. D/A转换器和微机接口中的关键问题是什么?对不同的D/A芯片应采用何种方法连接?

答:D/A转换器和微机接口时主要注意两点:第一要了解所选用的D/A转换器本身是否带有数据锁存器,如果芯片内部带有锁存器可以直接和CPU的数据总线相连接;如果芯片内部不带有锁存器,在接口电路中需要通过数据锁存器来连接CPU的数据总线和D/A转换器的数据线。第二是要注意D/A转换器的位数和所要连接的微机数据总线的位数是否一致。以便决定在需要加数据锁存器时,加几级锁存器,如果CPU的数据总线是8位,使用的是大于8位的D/A转换器,通常采用两级缓冲结构和CPU数据总线相连。

7. 什么叫D/A转换器的分辨率?

答:D/A转换器的分辨率指它所能分辨的最小输出电压与最大输出电压的比值。通常用D/A转换器输入数字量的位数来表示。

8. 若一个D/A转换器的满量程(对应于数字量255)为10V。若是输出信号不希望从0增长到最大,而是有一个下限2.0V,增长到上限8.0V。分别确定上下限所对应的数。

10V答: 因为满量程为10V,则每一步的电压变化量为= 0.039V/步

256步

24

2.0V =51.3步 取51,即33H。

0.039V/步8.0V上限是 = 205.1步 取205,即CDH。

0.039V/步9. DAC与8位总线的微机接口相连接时,如果采用带两级缓冲器的DAC芯片,为什么有时要用三条输出指令才能完成10位或12位的数据转换? 答:因为在使用内部不带数据寄存器的DAC时,常常需要在DAC前面增加数据缓冲器,用来锁存CPU通过数据总线发出的数字。如果总线为8位,而DAC超过8位(例如10位或12位)时,CPU必须分2次才能把控制数字送入数据缓冲器,例如先送数据的低8位,然后送剩下的高位,因此需要执行2条输出指令。另外,为了避免DAC在得到局部输入时,其输出端输出并不是最后结果的模拟量,通常采用2级数据缓存结构,相应地CPU也需要再增加执行一次输出指令,使在第一级缓冲器中锁存的数据经第二级缓冲器后能一次加到DAC输入端。第三条输出指令仅仅是使第二级缓冲器得到一个选通信号。

10. 已知某DAC的输入为12位二进制数,满刻度输出电压Vom=10V,试求最小分辨率电压VLSB和分辨率。

11??0.0244% 答:12位D/A的分辨率?122?1409511?Vom??10?0.00244V 最小分辨率电压VLSB?1240952?111. 已知某DAC的最小分辨电压VLSB=5mV,满刻度输出电压Vom=10V,试求该电路输入二进制数字量的位数n应是多少?答:

102n?1??2?103?35?102n?2?103?112. A/D转换器和微机接口中的关键问题有哪些? 3lg(2?10?1)n?log2(2?103?1)??11lg2 于是,下限是

答:

A/D转换器和微机接口时的关键问题主要有6个。① A/D转换器输出和CPU的接口方式,主要有2种连接方式:

一种是A/D芯片输出端直接和系统总线相连;另一种是A/D芯片输出端通过接口电路和总线相连。② A/D转换器的分辨率和微机数据总线的位数匹配:当10位以上的A/D转换器和8位数据总线连接时,由于数据要按字节分时读出,因此从8位数据线上需分2次来读取转换的数据。设计接口时,数据寄存器要增加读写控制逻辑。③ A/D转换的时间和CPU的时间配合问题:要注意A/D转换的启动方式,通常启动信号分为电平控制启动和脉冲启动两种。其中又有不同的极性要求。还要注意转换后信号的处理。④A/D的控制和状态信号。因为A/D转换器的控制和状态信号的类型与特征对接口有很大影响,在设计时必须要注意分析控制和状态信号的使用条件。⑤ 输入模拟电压的连接,特别是多路模拟电压的切换控制。 ⑥ 接地问题,为了减轻数字信号脉冲对模拟信号的干扰,数字地和模拟地要正确连接。

13. A/D转换器为什么要进行采样?采样频率应根据什么选定?

答:因为被转换的模拟信号在时间上是连续的,瞬时值有无限多个,转换过程需要一定的时间,不可能把每一个瞬时值都一一转换成模拟量。因此对连续变化的模拟量要按一定的规律和周期取出其中的某一瞬时值,这个过程就是将模拟量离散化,称之为采样,采样以后用若干个离散的瞬时值来表示原来的模拟量。

25

本文来源:https://www.bwwdw.com/article/x7et.html

Top