您的当前位置:首页正文

微机原理及接口技术课后习题及参考答案

2024-10-18 来源:威能网
第一章课后习

1.1把下列十进制数转换成二进制数、八进制数、十六进制数。

①16.25②35.75③123.875④97/128 1.2把下列二进制数转换成十进制数。

①10101.01②11001.0011③111.01④1010.1 1.3把下列八进制数转换成十进制数和二进制数。

①756.07②63.73③35.6④323.45 1.4把下列十六进制数转换成十进制数。

①A7.8②9AD.BD③B7C.8D④1EC 1.5求下列带符号十进制数的8位补码。

①+127②-1③-0④-128

1.6求下列带符号十进制数的16位补码。 ①+355②-1

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

1.8简述微处理器、微计算机及微计算机系统三个术语的内涵。 1.980X86微处理器有几代?各代的名称是什么? 1.10你知道现在的微型机可以配备哪些外部设备? 1.11微型机的运算速度与CPU的工作频率有关吗? 1.12字长与计算机的什么性能有关?

习题一参考答案

1.1①16.25D=10000.01B=20.2Q=10.4H

②35.75D=100011.11B=43.6Q=23.CH

③123.875D=1111011.111B=173.7Q=7B.EH

④97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H 1.2①10101.01B=21.25D②11001.0011B=25.1875D ③111.01B=7.25D④1010.1B=10.5D

1.3①②63.73Q=110011.111011B=51.922D

③35.6Q=11101.110B=29.75D④

1.4①A7.8H=167.5D②9AD.BDH=2477.738D

③B7C.8D=2940.551D④1ECH=492D

1.5①[+127]补=01111111②[-1]补=

③[-0]补=00000000④[-128]补

1.6①[+355]补=②[-1]补=1111111111111111

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

1.8答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影响。微计算机包括微处理器、存储器、I/O接口电路及系统总线。微计算机系统

是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。 1.9答:从体系结构上可分为5代:4004:4位机;8080/8085:8位机;8086/8088/80286:16位机;80386/80486:32位机;Pentium系列机:64位。

第二章课后习题

2.1、EU与BIU各自的功能是什么?如何协同工作?

2.2、8086/8088微处理器内部有那些寄存器,它们的主要作用是什么? 2.3、8086对存储器的管理为什么采用分段的办法?

2.4、在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。 2.5、给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。

2.6、8086/8088为什么采用地址/数据引线复用技术? 2.7、8086与8088的主要区别是什么?

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

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

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

2.11、在基于8086的微计算机系统中,存储器是如何组织的?是如何与处理器总线连接的?

BHE#信号起什么作用? 2.12、80X86系列微处理器采取与先前的微处理器兼容的技术路线,有什么好处?有什么不足?

2.13、80386内部结构由哪几部分组成?简述各部分的作用。 2.14、80386有几种存储器管理模式?都是什么?

2.15、在不同的存储器管理模式下,80386的段寄存器的作用是什么? 2.16、描述符的分类及各描述符的作用。

2.17、80386的分段部件是如何将逻辑地址变为线性地址的? 2.18、803866中如何把线性地址变为物理地址?

习题二参考答案

1、答:EU是执行部件,主要的功能是执行指令。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。

2、答:执行部件有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共同形成下一条指令的物理地址。

3、答:8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围(1MB,20位地址)。若不用分段方法,16位地

址只能寻址64KB空间。

4、答:逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。物理地址是8086芯片引线送出的20位地址码,用来指出一个特定的存储单元。 5、答:物理地址:320F8H。

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

7、答:8086有16条数据信号引线,8088只有8条;8086片内指令预取缓冲器深度为6字节,8088只有4字节。 8、答:引线MN/MX#的逻辑状态决定8086的工作模式,MN/MX#引线接高电平,8086被设定为最小模式,MN/MX#引线接低电平,8086被设定为最大模式。 最小模式下的控制信号由相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入为8086的S2#~S0#三条状态信号引线提供。 9、答:标志寄存器、IP、DS、SS、ES和指令队列置0,CS置全1。处理器从FFFFOH存储单元取指令并开始执行。

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

11、答:8086为16位处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,命名为偶字节体和奇字节体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的数据线连接D15~D8,“体选”信号接BHE#信号;BHE#信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。

12、答:好处是先前开发的软件可以在新处理器组成的系统中运行,保护了软件投资。缺点是处理器的结构发展受到兼容的约束,为了保持兼容性增加了硅资源的开销,增加了结构的复杂性。

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

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

16、答:描述符分为三类:存储器段描述符、系统段描述符、门描述符。存储器段描述符由8字节组成,它用来说明一个段中保存信息的情况。32位段基地址和20位段界限值定位了该段在存储空间中的位置,其它有关位决定访问权限及段的

长度单位。系统段描述符与存储器段描述符大多数字节段相同,有关访问权及属性字节段有些不同。门描述符用来改变程序的特权级别、切换任务的执行以及指出中断服务程序的入口。 17、答:分段部件根据段选择符从全局描述符表或局部描述符表中取出对应的段描述符。把段描述符32位段基地址与逻辑地址中的32位偏移量相加就形成了线性地址。

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

第三章课后习题

3.1、8086/8088微处理器有哪些寻址方式?并写出各种寻址方式的传送指令2条(源操作数和目的操作数寻址)。

3.2、有关寄存器和内存单元的内容如下:

DS=2000H,SS=1000H,BX=0BBH,BP=02H,SI=0100H,DI=0200H,(200BBH)=1AH,(201BBH)=34H,(200CCH)=68H,(200CDH)=3FH,(10202H)=78H,(10203H)=67H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(201CCH)=56H,(201CDH)=5BH,(201BCH)=89H,(200BCH)=23H,试写出下表中源操作数的寻址方式和寄存器AX的内容。

表3-7习题1

指令 MOVAX,1200H MOVAX,BX MOVAX,[1200H] MOVAX,[BX] MOVAX,[BX+11H] MOVAX,[BX+SI] MOVAX,[BP+DI] (1)MOV[SI],34H (2)MOV45H,AX (3)INC12

(4)MOV[BX],[SI+BP+BUF] (5)MOVBL,AX (6)MOVCS,AX

源操作数寻址方式 AX的内容 MOVAX,[BX+SI+11H] 3.3、指出下列语句的错误。

(7)OUT240H,AL (8)MOVSS,2000H (9)LEABX,AX (10)XCHGAL,78H

3.4、已知DS=2000H,(21000H)=2234H,(21002H)=5566H,试区别以下3条指令。

MOVSI,[1000H] LEASI,[1000H] LDSSI,[1000H]

3.5、简述堆栈的性质。如果SS=9B9FH,SP=200H,连续执行两条PUSH指令后,栈顶的物理地址是多少?SS,SP的值是多少?再执行一条POP指令后,栈顶的物理地址又是多少?SS、SP的值又是多少?

3.6、写出将AX和BX寄存器内容进行交换的堆栈操作指令序列,并画出堆栈变化过程示意图。

3.7、用两条指令把FLAGS中的SF位置1。 3.8、用一条指令完成下列各题。

(1)AL内容加上12H,结果送入AL。

(2)用BX寄存器间接寻址方式把存储器中的一个内存单元加上AX的内容,并加上CF位,结果送入该内存单元。

(3)AX的内容减去BX的内容,结果送入AX。

(4)将用BX、SI构成的基址变址寻址方式所得到的内容送入AX。 (5)将变量BUF1中前两个字节的内容送入寄存器SI中。 3.9、下面的程序段执行后,DX、AX的内容是什么? MOVDX,0EFADH MOVAX,1234H MOVCL,4 SHLDX,CL MOVBL,AH SHLAX,CL SHRBL,CL ORDL,BL

3.10、写出下面的指令序列中各条指令执行后的AX内容。 MOVAX,7865H MOVCL,8 SARAX,CL DECAX

MOVCX,8 MULCX NOTAL ANDAL,10H

3.11、如果要将AL中的高4位移至低4位,有几种方法?请分别写出实现这些方法的程序段。

3.12、利用串操作指令,将AREA1起始的区域1中的200个字节数据传送到以AREA2为起始地址的区域2(两个区域有重叠)。

3.13、寄存器BX中有4位0~F的十六进制数,编写程序段,将其转换为对应字符(即ASCII码),按从高到低的顺序分别存入L1、L2、L3、L4这4个字节单元中。

3.14、试将BUF起始的100个字节的组合BCD码数字,转换成ASCII码,并存放在以ASC为起始地址的单元中。已知高位BCD码位于较高地址中。 3.15、请给出以下各指令序列执行完后目的寄存器的内容。 (1)MOVBX,-78 MOVSXEBX,BX (2)MOVCL,-5 MOVSXEDX,CL (3)MOVAH,9 MOVZXECX,AH (4)MOVAX,87H MOVZXEBX,AX

3.16、请给出以下各指令序列执行完后EAX和EBX的内容。 MOVECX, BSFEAX,ECX BSREBX,ECX

3.17、给以TAB为首地址的100个ASCII码字符添加奇偶校验位(bit7),使每个字节中的“1”的个数为偶数,在顺序输出到10H号端口。

3.18、编写一段程序,要求在长度为100H字节的数组中,找出正数的个数并存入字节单元POSIT中,找出负数的个数并存入字节单元NEGAT中。

习题三参考答案

3.1答:寻址方式是指计算机在执行指令时寻找操作数的方式。8086/8088微处理器有以下几种寻址方式:

①立即寻址。操作数(仅限源操作数)直接放在指令中。例如:movcx,100;movah,20h。

②寄存器寻址。操作数在CPU的内部寄存器中。例如:moves,ax;movdl,bh。

③直接寻址。指令中直接给出了操作数的偏移地址。例如:movax,[3000h];movbuf,100。

④寄存器间接寻址。操作数的偏移地址放在寄存器bp,bx,si,di四个寄存器中的一个里。例如:movax,[si];mov[bx],cx。

⑤寄存器相对寻址。操作数的有效地址为基址寄存器或变址寄存器的内容与指令中指定的位移量之和。例如:movax,cnt[si];movstr[bx],ax。

⑥基址变址寻址。操作数的有效地址是一个基址寄存器和一个变址寄存器的和。例如:movax,[si+bx];mov[bx+di],dx。

⑦相对基址变址寻址。操作数的有效地址为一个基址寄存器、一个变址寄存器的内容与指令中指定的位移量三者之和。例如:movax,cnt[bx][si];movcnt[bx][si],ax。 3.2.答:

指令 MOVAX,1200H MOVAX,BX MOVAX,[1200H] MOVAX,[BX] MOVAX,[BX+11H] MOVAX,[BX+SI] MOVAX,[BX+SI+11H] MOVAX,[BP+DI] 3.3答:

(1)MOV[SI],34H;目的操作数必须指出是字节操作还是字操作,比如可改成MOVBYTEPTR[SI],34H

(2)MOV45H,AX;目的操作数不能是立即数 (3)INC12;操作数不能是立即数

(4)MOV[BX],[SI+BP+BUF];两个操作数不能同是存储单元 (5)MOVBL,AX;操作数不匹配

(6)MOVCS,AX;CS不能作为目的操作数

(7)OUT240H,AL;对于IN和OUT指令,端口号大于FFH时,必须先将端口号放入DX寄存器中

(8)MOVSS,2000H;段寄存器不能用立即数来赋值,可改成MOVSS,AX

(9)LEABX,AX;源操作数必须是内存,如LEABX,BUFFER (10)XCHGAL,78H;交换指令不能对立即数操作 3.4答:MOVSI,[1000H];(SI)=2234H

源操作数寻址方式 立即寻址 寄存器寻址 直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址 基址变址寻址 AX的内容 1200H 0BBH 4C2AH 231AH 3F68H 8934H 5B56H 6778H LEASI,[1000H];(SI)=1000H

LDSSI,[1000H];(SI)=2234H,(DS)=5566H 3.5答:先进后出。 9BBF0H-4=9BBECH 9BBECH+2=9BBEEH 3.6答:PUSHAX PUSHBX POPAX

POPBX

3.7答:MOVAX,7FH ADDAX,1

3.8答:⑴ADDAL,12H ⑵ADC[BX],AX ⑶SUBAX,BX ⑷MOVAX,[BX+SI] ⑸MOVSI,BUF1

3.9答:DX=FAD1H,AX=2340H 3.10答:AX=300H 3.11答:①循环左移

movcl,4 rolal,cl ②循环右移

movcl,4 roral,cl ③右移

movcl,4 shral,cl

3.12答:从末端开始传送即可解决重叠问题。

movcx,200 movsi,offsetaera1 addsi,200

movdi,offsetaere2 adddi,200

std;DF=1,进行地址减量 repmovsb 3.13答:

MOVCL,4

MOVAL,BL;处理最低位十六进制数 ANDAL,0FH CMPAL,0AH JCDIGT4 ADDAL,7

DIGT4:ADD,AL,30H MOVL4,AL

MOVAL,BL;处理次低位十六进制数 SHRAL,CL CMPAL,0AH JCDIGT3 ADDAL,7

DIGT3:ADD,AL,30H MOVL3,AL

MOVAL,BH;处理次高位十六进制数 ANDAL,0FH CMPAL,0AH JCDIGT2 ADDAL,7

DIGT2:ADD,AL,30H MOVL2,AL

MOVAL,BH;处理最高位十六进制数 SHRAL,CL CMPAL,0AH JCDIGT1 ADDAL,7

DIGT1:ADD,AL,30H MOVL1,AL 3.14答:

LEASI,BUF

LEABX,ASC MOVCH,100 MOVCL,4

AGAIN:MOVAL,[SI];处理低位BCD码 ANDAL,0FH

ADDAL,30H MOV[BX],AL INCBX

MOVAL,[SI];处理高位BCD码 SHRAL,CL ADDAL,30H MOV[BX],AL INCBX INCSI DECCH JNZAGAIN

3.15答:(1)MOVBX,-78;(BX)=FFB2H MOVSXEBX,BX;(EBX)=FFFFFFB2H (2)MOVCL,-5;(CL)=FBH MOVSXEDX,CL;(EDX)=FFFFFFFBH (3)MOVAH,9;(AH)=9H MOVZXECX,AH(ECX)=00000009H (4)MOVAX,87H;(AX)=87H MOVZXEBX,AX;(EBX)=00000087H 3.16答:MOV

BSFEAX,ECX;(EAX)=00000003H BSREBX,ECX;(EBX)=0000001CH 3.17答: MOVCX,100 LEABX,TAB AGN:MOVAL,[BX] ADDAL,0 JPNEXT ORAL,80H NEXT:OUT10H,AL INCBX LOOPAGN

3.18答:假设数组的起始地址是BUFFER LEABX,BUFFER MOVDX,0 MOVCX,100

ONCE:MOVAL,[BX]

TESTAL,80H;是正数还是负数 JNZFUSHU;是负数,跳转 CMPAL,0;是0吗? JZNEXT

INCDH;是正数,则DH加1 JMPNEXT

FUSHU:INCDL;是负数,则DL加1 NEXT:INCBX DECCX JNZONCE

MOVPOSIT,DH MOVNEGAT,DL

第四章课后习题

4.1、汇编语言有何特点?编写汇编语言源程序时,一般的组成原则是什么? 4.2、.MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪几种存储模式,各用于创建什么性质的程序?

4.3、如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?

4.4、逻辑段具有哪些属性?完整代码段定义时的默认属性是什么?小型模式下的简化代码段定义具有的默认属性是什么?

4.5、DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么? 4.6、给出下列语句中,指令立即数(数值表达式)的值: (1)moval,23hAND45hOR67h (2)movax,1234h/16+10h (3)movax,254hSHL4

(4)moval,’a’AND(NOT(‘b’一‘B’)) (5)movax,(76543LT32768)XOR7654h

4.7、画图说明下列语句分配的存储空间及初始化的数据值:

(1)byte_vardb‘BCD’,10,10h,’EF’,2dup(一l,?,3dup(4)) (2)word_vardw1234h,一5,6dup(?)

4.8、设置一个数据段,按照如下要求定义变量:

(1)myl_b为字符串变量,表示字符串“PersonalComputer!” (2)my2_b为用十六进制数表示的字节变量,这个数的大小为100 (3)my3_w为100个未赋值的字变量 (4)my4_c为100的符号常量

(5)my5_c为字符串常量,代替字符串“PersonalComputer!”

4.9、假设opw是一个字变量,opbl和opb2是两个字节变量,指出下列语句中的具体错误原因并改正错误。

(1)movbyteptr[bx],256 (2)movbx,offsetopw[si] (3)addopbl,opb2 (4)movopbl,al+l (5)subal,opw (6)mov[di],1234h

4.10、编制一个程序,把字变量X和Y中数值较大者存入MAX字单元;若两者相等,则把-1存入MAX中。假设变量存放的是有符号数。

4.11、设变量DAT为有符号16位数,请编写程序将它的符号状态保存在sign字节单元,即:如果变量值大于等于0,保存0;如果变量值小于0,保存-1。 4.12、X、Y和Z是3个有符号字节数据,编写一个比较相等关系的程序: (1)如果这3个数都不相等,则显示N;

(2)如果这3个数中有两个数相等,则显示X; (3)如果这3个数都相等,则显示Y。

4.13、编制程序完成12H,23H,F3H,6AH,20H,FEH,10H,C8H,25H和34H共10个无符号字节数据之和,并将结果存入字变量SUM中。

4.14、求出主存从2000H:0开始的一个64KB物理段中共有的空格个数,存入DX中。

4.15、过程定义的一般格式是什么?子程序开始为什么常有PUSH指令,返回前为什么有POP指令?下面完成16位无符号数累加的子程序是否正确?若有错,请改正。 jiafaPROC

pushax xorax,ax xordx,dx

again:addax,[bx]

adcdx,0 incbx

incbx loopagain ret

ENDPjiafa

4.16、编写一个程序,统计寄存器AX中二进制数位“0”的个数,结果以二位十进制数形式显示到屏幕上。

4.17、子程序的参数传递有哪些方法?

4.18、编写一个求32位数据补码的子程序,通过寄存器传递入口参数。

4.19、所谓“校验和”是指不记进位的累加,常用于检查信息的正确性。编写一个计算字节校验和的子程序。主程序提供入口参数:数据个数和数据缓冲区的首地址。子程序回送求和结果这个出口参数。

4.20、编制一个子程序,把一个16位二进制数用4位16进制形式在屏幕上显示出来。

4.21、在以BUF为首地址的字缓冲区中有3个无符号数,编程将这3个数按升序排列,结果存回原缓冲区。

4.22、在DAT字节单元中有一个有符号数,判断其正负,若为正数,则在屏幕上显示“+”号;若为负数,则显示“-”号;若是0,则显示0。

4.23、编程求1~400中所有奇数的和,结果以十六进制数形式显示到屏幕上。 4.24、在以DAT为首地址的字节缓冲区中存有100H个无符号字节数据,编程求其最大值与最小值之和,结果存入RESULT字单元。

4.25、在内存单元CNT中有一个字数据,编程将其二进制数显示到屏幕上。 4.26、在以STRG为首地址的缓冲区中有一组字符串,长度为100,编程实现将其中所有的英文小写字母转换成大写字母,其它的不变。

4.27、在以DAT为首地址的内存中有100个无符号数(数的长度为字),编程统计其中奇数的个数,结果以十进制形式显示到屏幕上。要求分别用子程序完成奇数个数统计,用宏完成十进制数显示。

4.28、编写一段程序,使汇编程序根据SIGN的值分别产生不同的指令。

如果SIGN=0,则用字节变量DATB中的无符号数除以字节变量SCALE;如果SIGN=1,则用字节变量DATB中的有符号数除以字节变量SCALE,结果都存放在字节变量RESULT中。

习题四参考答案

4.1答:汇编语言是计算机能够提供给用户使用的最快速有效的语言,它是以处理器指令系统为基础的低级程序设计语言,采用助记符表示指令操作码,采用标识符表示指令操作数。利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序。在对程序的空间和时间要求高的应用领域,汇编语言的作用是不容置疑和无可替代的。然而,汇编语言作为一种低级语言也存在很多不足,例如,功能有限、编程难度大、依赖处理器指令,这也限制了它的应用范围。

汇编语言源程序由若干语句组成,通常,这些语句可以分为3类,分别是: (1)指令语句;(2)宏指令语句;(3)伪指令语句。汇编语言也由段组成,8086/8088按照逻辑段组织程序,具有代码段、数据段、附加段和堆栈段,段与段之间的顺序可以任意排列。需要独立运行的程序必须包含一个代码段,一个程

序只有一个起始点,且必须指示程序的起始点。 4.2答:七种存储模型:

①Tiny所有数据和代码都放在一个段内,其数据和代码都是近访问。Tiny程序可以写成.COM文件格式,COM程序必须从0100H的存储单元开始。这种模型一般用于小程序。

②Small所有数据放在一个64KB的数据段内,所有代码放在另一个64KB的代码段内,数据和代码也都是近访问的。这是一般应用程序最常用的一种模型。

③Medium代码使用多个段,一般一个模块一个段,而数据则合并成一个64KB的段组。这样,数据是近访问的,而代码则可远访问。

④Compact所有代码都放在一个64KB的代码段内,数据则可放在多个段内,形成代码是近访问的,而数据则可为远访问的格式。

⑤Large代码和数据都可用多个段,所以数据和代码都可以远访问。 ⑥Huge与Large模型相同,其差别是允许数据段的大小超过64KB。 ⑦Flat允许用户用32位偏移量,但DOS下不允许使用这种模型,只能在OS/2下或其他保护模式的操作系统下使用。MASM5版本不支持这种模型,但MASM6可以支持。

4.3答:需要使用一个标号,如start。对于有数据段的程序,简化段定义下应该这样开始:

start:movax,@data movds,ax

汇编语言程序设计过程中,有多种返回DOS的方法,但一般用DOS功能调用的4CH子功能来实现。应用程序的终止代码是: movax,4c00h int21h

汇编结束是指汇编程序结束将源程序翻译成目标模块代码的过程。源程序的最后必须有一条end伪指令:end[标号];其中,可选的标号是程序指定的开始执行点,连接程序以此设置CS和IP。如: endstart

4.4答:逻辑段具有4个属性:(1)定位类型(align_type)说明段的起始地址应有怎样的边界值;(2)组合类型(combine_type)说明程序连接时的段合并方法;(3)使用类型(use_type)只适用于386及其后继机型,它用来指定寻址方式。(4)类别(‘class’)在引号中给出连接时组成段组的类型名。 完整代码段定义时的默认属性是:PARA、PRIVATE、USEl6

4.5答:COM和EXE程序结构。EXE程序有独立的代码段、数据段和堆栈段,还可以有多个代码段和多个数据段,程序长度可以超过64KB。COM程序只有一个逻辑段,其中包含数据区、代码区和堆栈区,程序代码长度不超过64KB,程序从100H

处开始执行。

4.6答:(1)moval,23hAND45hOR67h;67H (2)movax,1234h/16+10h;133H (3)movax,254hSHL4;2540H

(4)moval,’a’AND(NOT(‘b’-‘B’));21H (5)movax,(76543LT32768)XOR7654h;89ABH

4.7.答:(1)

42H 43H 44H 0AH 10H 45H 46H FFH - 04H 04H 04H FFH - 04H 04H 04H (2)

34H 12H FBH FFH - - - - - - - - - - - - 4.8答:(1)myl_bdb‘PersonalComputer!’ (2)my2_bdb64H

(3)my3_wdw100dup(?) (4)my4_cequ100

(5)my5_cequ

4.9答:(1)movbyteptr[bx],256;改正――movwordptr[bx],256

(2)movbx,offsetopw[si];改正――movbx,offsetopw (3)addopbl,opb2;改正――addal,opb2 (4)movopbl,al+l;改正――movopbl,al (5)subal,opw;改正――subal,opb1

(6)mov[di],1234h;改正――movwordptr[di],1234h 4.10答:

.MODELSMALL .DATA XDW1234H YDW4321H MAXDW? .CODE

START:MOVAX,@DATA MOVDS,AX MOVAX,X CMPAX,Y JNZNEQU MOVMAX,0FFFFH JMPSTOP NEQU:JCNEXT MOVMAX,X JMPSTOP NEXT:MOVMAX,Y STOP:MOVAX,4C00H INT21H ENDSTART

4.11答:.MODELSMALL .DATA DATDW9234H SIGNDW? .CODE

START:MOVAX,@DATA MOVDS,AX

MOVAX,DAT

CMPAX,0 JZSTOP

TESTAX,8000H JNZFU MOVSIGN,0 JMPSTOP

FU:MOVSIGN,0FFH STOP:MOVAX,4COOH

INT21H ENDSTART 4.12答: DISPLAYMACRO

MOVAH,2 INT21H ENDM

.MODELSMALL .DATA XDW1230H YDW1234H ZDW1234H

.CODE

START:MOVAX,@DATA

MOVDS,AX MOVAX,X MOVBX,Y CMPAX,Z JNZN1 CMPAX,BX JNZN2 MOVDL,'Y' DISPLAY STOP:MOVAX,4C00H

INT21H N1:CMPAX,BX

JNZN3 N2:MOVDL,'X'

DISPLAY JMPSTOP N3:CMPBX,Z

JNZN4 JMPN2 N4:MOVDL,'N'

DISPLAY JMPSTOP

ENDSTART 4.13答: .MODELSMALL .DATA

DATDB12H,23H,0F3H,6AH,20H,0FEH,10H,C8H,25H,34H SUMDW?

.CODE

START:MOVAX,@DATA

MOVDS,AX MOVCX,10 MOVDX,0 LEABX,DAT AGAIN:MOVAL,[BX] CBW MOVDX,AX INCBX LOOPAGAIN MOVSUM,DX MOVAX,4C00H INT21H ENDSTART 4.14答:

.MODELSMALL .CODE

START:MOVAX,2000H

MOVDS,AX MOVSI,0 MOVDX,0 MOVCX,0FFFFH AGAIN:MOVAL,[SI] CMPAL,20H JNZNEXT INCDX NEXT:INCSI LOOPAGAIN MOVAX,4C00H

INT21H ENDSTART

4.15.┇

ProcnameENDP

push和pop的使用是为了保护子程序的调用的现场,比如寄存器的值。本例中要保护的寄存器是ax和dx。

jiafaPROC;用CX,BX传参数――数据的个数和数据的起始地址,结果放在字内存单元SUM和SUM+1

pushax pushdx xorax,ax xordx,dx

again:addax,[bx]

adcdx,0 incbx

incbx loopagain movsum,ax mov[sum+1],dx popdx popax ret

jiafaENDP

4.16答: .MODELSMALL .CODE

START:MOVCX,16

MOVBL,0;BL中放0的个数 AGN:SHLAX,1;数0的个数 JCNEXT INCBL

NEXT:LOOPAGN MOVAL,BL DAA

MOVDL,AL;显示高位

procnamePROC[attributesfield][USESregisterlist][,parameterfield]

ANDDL,0F0H MOVCL,4 SHRDL,CL ADDDL,30H MOVAH,2 INT21H

MOVDL,AL;显示低位 ANDDL,0FH ADDDL,30H MOVAH,2 INT21H

MOVDL,0DH;显示回车 MOVAH,2 INT21H

MOVDL,0AH;显示换行 MOVAH,2 INT21H MOVAX,4C00H INT21H ENDSTART

4.17.答:1、用寄存器传参数。2、用共享变量传参数。3、用堆栈传参数。 4.18.答:设这个32位数放在DX.AX中,求补后的结果也放在DX.AX中。 BUMAPROC PUSHBX PUSHCX XORBX,BX XORCX,CX SUBBX,AX MOVAX,BX SBBCX,DX MOVDX,CX POPCX POPBX RET BUMAENDP

4.19答:设数据个数在CX中,数据缓冲区的首地址为BUF。出口参数:校

验和放在SUM字节单元。 CHKSUMPROC PUSHAX PUSHBX DECCX LEABX,BUF MOVAL,[BX] AGN:ADDAL,[BX] INCBX LOOPAGN MOVSUM,AL POPBX POPAX RET

CHKSUMENDP

4.20答:设这个十六进制的字放在数据段的TEMP字单元中。 BTOHPROC PUSHAX PUSHBX PUSHCX PUSHDX MOVCL,4

MOVBX,TEMP

MOVDL,BH;最高位 SHRDL,CL CMPDL,0AH JCN1 ADDDL,7 N1:ADDDL,30H MOVAH,2 INT21H

MOVDL,BH;次高位 ANDDL,0FH CMPDL,0AH JCN2 ADDDL,7

N2:ADDDL,30H MOVAH,2 INT21H

MOVDL,BL;次低位 SHRDL,CL CMPDL,0AH JCN3 ADDDL,7 N3:ADDDL,30H MOVAH,2 INT21H

MOVDL,BL;最低位 ANDDL,0FH CMPDL,0AH JCN4 ADDDL,7 N4:ADDDL,30H MOVAH,2 INT21H POPDX POPCX POPBX POPAX RET BTOHENDP

4.21答:

.MODELSMALL

.DATA

BUFDW9273H,0F3H,6A20H .CODE

START:MOVAX,@DATA MOVDS,AX LEABX,BUF MOVAX,[BX] CMPAX,[BX+2] JBN1

XCHGAX,[BX+2] MOV[BX],AX N1:MOVAX,[BX+2] CMPAX,[BX+4] JBN2

XCHGAX,[BX+4] MOV[BX+2],AX N2:MOVAX,[BX] CMPAX,[BX+2] JBSTOP

XCHGAX,[BX+2] MOV[BX],AX STOP:;INT3 MOVAX,4C00H INT21H ENDSTART

4.22答: DISPLAYMACRO MOVAH,2 INT21H ENDM

.MODELSMALL

.DATA DATDB9CH .CODE

START:MOVAX,@DATA MOVDS,AX MOVAL,DAT CMPAL,0 JZZERO JNSPOSI MOVDL,’-’ DISPLAY

STOP:MOVAX,4C00H INT21H

ZERO:MOVDL,’0’

DISPLAY JMPSTOP

POSI:MOVDL,’+’ DISPLAY JMPSTOP ENDSTART

4.23答: .MODELSMALL .CODE

START:XORBX,0 MOVCX,200 MOVDX,1

AGN:ADDBX,DX;求和 INCDX INCDX LOOPAGN CALLBTOH MOVAX,4C00H INT21H BTOHPROC MOVCL,4

MOVDL,BH;最高位 SHRDL,CL CMPDL,0AH JCN1 ADDDL,7 N1:ADDDL,30H MOVAH,2 INT21H

MOVDL,BH;次高位 ANDDL,0FH CMPDL,0AH JCN2 ADDDL,7 N2:ADDDL,30H MOVAH,2

INT21H

MOVDL,BL;次低位 SHRDL,CL CMPDL,0AH JCN3 ADDDL,7 N3:ADDDL,30H MOVAH,2 INT21H

MOVDL,BL;最低位 ANDDL,0FH CMPDL,0AH JCN4 ADDDL,7 N4:ADDDL,30H MOVAH,2 INT21H RET BTOHENDP ENDSTART

4.24答:

.MODELSMALL .DATA

DATDB……;准备100个数 RESULTDW?

.CODE

START:MOVAX,@DATA

MOVDS,AX MOVCX,99 LEASI,DAT MOVDL,[SI] MOVDH,DL INCSI MOVBX,SI

AGN1:CMPDH,[SI];求出最大值

JNBNEXT1

MOVDH,[SI] NEXT1:INCSI

LOOPAGN1 MOVCX,99

AGN2:CMPDL,[BX];求出最小值

JBNEXT2 MOVDL,[BX] NEXT2:INCBX

LOOPAGN2 XORAX,AX;求和 ADDDH,DL MOVAL,DH ADCAX,0 MOVRESULT,AX ;int3 MOVAX,4C00H INT21H ENDSTART 4.25答: DPLY0MACRO MOVDL,30H MOVAH,2 INT21H ENDM

DPLY1MACRO MOVDL,31H MOVAH,2 INT21H ENDM

.MODELSMALL

.DATA

CNTDW0AB3FH;准备数

.CODE

START:MOVAX,@DATA

MOVDS,AX MOVBX,CNT

MOVCX,16 AGN:SHLBX,1 JCNEXT DPLY0 LOOPAGN NEXT:DPLY1 LOOPAGN MOVAX,4C00H INT21H ENDSTART

4.26答:

.MODELSMALL .DATA

STRGDB……;准备字符串

.CODE

START:MOVAX,@DATA

MOVDS,AX LEASI,STRG MOVCX,100 AGN:MOVAL,[SI] CMPAL,61H JBN1 CMPAL,7AH JAN1 SUBAL,20H N1:INCSI LOOPAGN MOVAX,4C00H INT21H

4.27答:

DISPLAYMACRO;将BL中的数以十进制显示 MOVAL,BL;百位 MOVAH,0 MOVBH,100 DIVBH

MOVBL,AH;保留余数

CMPAL,1 JNZNO MOVDL,31H MOVAH,2

INT21H

NO:MOVAL,BL;十位 MOVAH,0

MOVBH,10

DIVBH

MOVBL,AH;保留余数 MOVDL,AL ADDDL,30H MOVAH,2

INT21H

MOVDL,BL;个位

ADDDL,30H MOVAH,2

INT21H

ENDM

.MODELSMALL .DATA

DATDB……;准备100无符号字数据

.CODE

START:MOVAX,@DATA

MOVDS,AX LEASI,DAT

MOVCX,100 CALLTONGJI DISPLAY MOVAX,4C00H INT21H

TONGJIPROC;统计起始地址为SI,长度为CX内存中的奇数个数,结果放在BL MOVBL,0

AGN:MOVAL,[SI] TESTAL,01H JZNEXT

INCBL NEXT:INCSI LOOPAGN RET

TONGJIENDP ENDSTART

4.28答:学习条件汇编的使用。 MOVAL,DATB MOVBL,SCAlE IFESIGN MOVAH,0 DIVBL ENDIF IFSIGN CBW IDIVBL ENDIF

MOV[RESULT],AL;商 MOV[RESULT+1],AH;余数

第五章课后习题

5.1、选择题

(1)EPROM虽然是只读存储器,但在编程时可向内部写入数据。()

A.正确B.不正确

(2)连接到64000h~6FFFFh地址范围上的存储器是用8k×8RAM芯片构成的,该芯片要()片。

A.8片B.6片C.10片D.12片

(3)RAM6116芯片有2K×8位的容量,它的片内地址选择线和数据线分别是() A.A0~A15和D0~D15B.A0~A10和D0~D7 C.A0~A11和D0~D7D.A0~A11和D0~D15

(4)对存储器访问时,地址线有效和数据线有效的时间关系应该是()

A.数据线较先有效B.二者同时有效 C.地址线较先有效D.同时高电平

(5)一台微型机,其存储器首地址为2000H,末地址为5FFFH,存储容量为()KB。

A.8B.10C.12D.16

(6)下列哪一种存储器存取速度最快()?

A.SRAMB.磁盘C.DRAMD.EPROM

(7)用2164DRAM芯片构成8086内存的最小容量是()。 A.16KBB.32KBC.64KBD.128KB 5.2、微机硬件存储器分成哪几级? 5.3、计算机的内存和外存有什么区别? 5.4、半导体存储器有哪些优点?

5.5、RAM与CPU的连接主要有哪几部分?

5.6、EPROM存储器芯片还没有写入信息时,各个单元的内容是什么?

5.7、在对存储器芯片进行片选时,全译码方式、部分译码方式和线选方式各有何特点?

5.8、某ROM芯片有11根地址线,8根数据线,该芯片的存储容量是多少? 5.9、某ROM存储容量为16K×1位,芯片应该有多少根地址线,多少根数据线? 5.10、SRAM靠_____________存储信息,DRAM靠_____________存储信息,为保证DRAM中内容不丢失,需要进行_______________操作。

5.11、用2k×8的SRAM芯片组成16K×16的存储器,共需SRAM芯片__________片,片内地址和产生片选信号的地址分别为__________位。

5.12、已知某微机控制系统中,RAM的容量为8K×8位,首地址为4800H,求其最后一个单元的地址。

5.13、某以8088为CPU的微型计算机内存RAM区为00000H~3FFFFH,若采用6264(8KX8)、62256(32KX8)、2164(8KX4)、21256(32KX4)各需要多少芯片?其各自的片内和片间地址线分别是多少(全地址译码方式)?

5.14、利用全地址译码将6264芯片接在8088系统总线上,地址范围为BE000H~BFFFFH,试画出连接电路图。

5.15、用两片64K×8位的SRAM芯片,组成8086最小模式下的存储器子系统,要求起始地址为C0000H。试画出连接图,指出偶地址存储体和奇地址存储体,并对连接图作详细说明。

5.16、计算机中为什么要采用高速缓存(Cache)? 5.17、Cache有哪几种组织方式?它们各有什么特点?

5.18、在Cache系统中,同一个数据既可能存储在Cache中,又有可能存储在内存中,这时数据的一致性如何解决?

习题五参考答案

5.1(1)(A)(2)(B)(3)(B)(4)(C)(5)(D)(6)(A) (7)(D)

5.2答:寄存器、Cache、内存、外存。

5.3答:内存:由DRAM构成,CPU可以直接访问,用来存放当前正在使用或要经常使用的程序或数据,内存的地址空间受CPU地址总线位数的限制,容量较

小,读写速度快,价格相对较高。

外存:一般由磁盘、光盘及U盘构成,CPU不能直接访问,需要专门的驱动设备,读写速度较慢,容量较大,价格相对较低。

5.4答:集成度高,存取速度快。计算机内存一般都使用半导体存储器。 5.5答:数据线、地址线、片选线、读写控制线。 5.6答:FFH

5.7答:全译码方式:所有的系统地址线都参与对存储单元的译码寻址。其中,低位地址线对片内存储单元进行译码寻址(片内译码),高位地址线对存储芯片进行译码寻址(片选译码),在此方式下,每个存储单元的地址都是唯一的,无重复地址,但译码电路复杂,连线较多。

部分译码方式:只有部分高位地址线参与对芯片的译码,对于被选中的芯片,这些未参与译码的高位地址可以是0也可以是1,因此,每个存储单元对应多个地址(地址重复),需要选取一个可用地址。此译码方式可简化译码电路的设计,但地址重复,系统的部分地址空间被浪费。

线选方式:只有少数几根高位地址线参与芯片的译码,且每根负责选中一个芯片(组),此方法构成简单,但地址空间严重浪费,有地址重复现象。 5.8答:2KB。

5.9答:14根地址线,1根数据线。

5.10答:触发器电路(6个晶体管)、电容、刷新 5.11答:(16)、(11、3 5.12答:67FFH。

5.13答:6264(8K×8):片内13根和片间5根地址线。 62256(32K×8):片内15根和片间3根地址线。 2164(8K×4):片内13根和片间5根地址线。 21256(32K×4):片内15根和片间3根地址线。

5.14答:一片6264的存储容量是8K×8位,而地址范围为BE000H~BFFFFH,所以只要一片。

低13位地址线是片内译码,高7位是片选译码(A19~A13为:1010111)。 5.15答:低16位地址线是片内译码,高4位是片选译码(A19~A16为:1100)。只有A19~A16为1100与A0=1同时出现才能选中偶地址存储体;只有A19~A16为1100与

=0同时出现才能选中奇地址存储体。只有

和IO/

同时为0才能写存储器。

和IO/

同时为0才能读存

储器;只有

5.16答:为了解决CPU和内存速度差距大的问题。

5.17答:全相联:主存的一个块可能放置到Cache的任何一块。命中率最高,查找机制复杂,代价大。

直接映像:主存的一个块可能放置到Cache的唯一一块。失效率最高,查找机制简单,代价小。

组相联:主存的一个块可能映像到Cache的任何一组。命中率和查找机制介于前两者之间。

5.18答:有如下三个解决方法: ①通写式(writethrough)

如果用这种方法,那么,每当CPU把数据写到Cache中时,Cache控制器会立即把数据写入主存对应位置。所以,主存随时跟踪Cache的最新版本,从而,也就不会出现主存将新数据丢失的问题。此方法的优点是简单,缺点就是每次Cache内容有更新,就有对主存的写入操作,这样,造成总线活动频繁,系统速度较慢。 ②缓冲通写式(bufferedwritethrough)

这种方式是在主存和Cache之间加一个缓冲器,每当Cache中作数据更新时,也对主存作更新,但是,要写入主存的数据先存在缓冲器中,在CPU进入下一个操作时,缓冲器中的数据写入主存,这样,避免了通写式频繁写主存而导致系统速度较低的缺点。不过用此方式,缓冲器只能保持一次写入数据,如果有两次连续的写操作,CPU还是要等待。

③回写式(writeback)

用这种方式时,Cache每一个块的标记中都要设置一个更新位,CPU对Cache中的一个块写入后,其更新位置1。当Cache中的块要被新的主存块替换时,如更新位为1,则Cache控制器先把Cache现有内容写入主存相应位置,并把更新位清0,再作替换。所以,用回写式时,只要更新的块不被替换,那么就不会写入主存,这样,真正写入主存的次数可能少于程序的写入次数,从而,可以提高效率。但是,用这种方式,Cache控制器比较复杂。

习题6

6.1、试说明一般中断系统的组成和功能。

6.2、什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?

6.3、什么是硬件中断和软件中断?在PC机中两者的处理过程有什么不同? 6.4、试叙述基于8086/8088的微机系统处理硬件中断的过程。

6.5、在PC机中如何使用“用户中断”入口请求中断和进行编程? 6.6、8259A中断控制器的功能是什么?

6.7、8259A初始化编程过程完成那些功能?这些功能由那些ICW设定?

6.8、8259A在初始化编程时设置为非中断自动结束方式,中断服务程序编写时应注意什么?

6.9、8259A的初始化命令字和操作命令字有什么区别?它们分别对应于编程结构中那些内部寄存器?

6.10、8259A的中断屏蔽寄存器IMR与8086中断允许标志IF有什么区别? 6.11、80X86的中断系统有哪几种中断类型?其优先次序如何?

6.12、什么是中断向量表?若编制一个中断服务程序,其中断类型约定为80H,则它的入口地址(包括段地址和偏移地址)应放置在中断向量表中的哪几个单

元?

6.13、简述80X86CPU对可屏蔽中断INTR的响应过程。

6.14、若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:对应该中断源的中断向量表入口地址是什么?若中断服务程序入口地址为4FE24H,则对应该中断源的中断向量表内容是什么,如何定位?

6.15、试按照如下要求对8259A设定初始化命令字:8086系统中只有一片8259A,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。中断类型码为20H~27H,8259A的端口地址为B0H和B1H。 6.16、给定SP=0100H、SS=2010H、PSW=0240H,在存储单元中已有内容为(00084)=107CH、(00086H)=00A7H,在段地址为13C2H及偏移地址为0210H的单元中,有一条中断指令INT21H。试指出在执行INT21H指令,刚进入它的中断服务程序时,SS、SP、CS、IP、PSW的内容是什么?栈顶的3个字的内容是什么(用图表示)?

6.17、中断处理程序的入口处为什么通常需要使用STI指令?

6.18、试编写这样一个程序段,它首先读出8259A中IMR寄存器的内容,然后屏蔽掉除IR1以外的其它中断。设8259A的偶地址端口为20H,奇地址端口为21H。 6.19、假设某80X86系统中采用一片8259A芯片进行中断管理。设8259A工作在全嵌套工作方式下,采用非自动结束中断命令,中断请求采用边沿触发方式,IR0所对应的中断类型号为80H。8259A在系统中的端口地址为280H和281H,试编写该系统中8259A的初始化程序段。

习题六参考答案

6.1、答:处理器内部应有中断请求信号的检测电路,输出中断响应信号,保存断点的逻辑,转向中断处理程序的逻辑,中断返回逻辑。系统中要有一中断控制器,管理多个中断源,提供处理机所需的中断处理信息。系统中请求中断处理的I/O接口电路要有提供中断请求信号及接收中断响应信号的逻辑。

6.2、答:处理机可处理的每种中断的编号为中断类型码。中断向量是指中断处理程序的入口地址,由处理机自动寻址。中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。

6.3、答:硬件中断是通过中断请求线输入电信号来请求处理机进行中断服务;软件中断是处理机内部识别并进行处理的中断过程。硬件中断一般是由中断控制器提供中断类型码,处理机自动转向中断处理程序;软件中断完全由处理机内部形成中断处理程序的入口地址并转向中断处理程序,不需外部提供信息。

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

6.5、答:PC机中分配给用户使用的中断是IRQ9,经扩展插槽B4引出,故把用户的中断请求线连接到B4上。在应用程序中,利用25H号系统调用将中断服务程序的入口地址写入对应0AH类型中断对应的中断向量表中去。在应用程序中

把主片8259AD2屏蔽位清0,把从片8259AD1屏蔽位清0,使主片的IR2、从片的IR1可以输入中断请求。中断服务程序结束前向主片8259A发中断结束命令。应用程序结束之前对主片的IR2和从片的IR1进行屏蔽,关闭用户中断请求。

6.6、答:8259A中断控制器可以接受8个中断请求输入并将它们寄存。对8个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。8259A可以对中断请求输入进行屏蔽,阻止对其进行处理。8259A支持多种中断结束方式。8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。8259A可以进行级连以便形成多于8级输入的中断控制系统。

6.7、答:初始化编程用来确定8259A的工作方式。ICW1确定8259A工作的环境:处理器类型、中断控制器是单片还是多片、请求信号的电特性。ICW2用来指定8个中断请求的类型码。ICW3在多片系统中确定主片与从片的连接关系。ICW4用来确定中断处理的控制方法:中断结束方式、嵌套方式、数据线缓冲等。 6.8、答:在中断服务程序中,在返回主程序之前按排一条一般中断结束命令指令,8259A将ISR中最高优先级位置0,结束该级中断处理以便为较低级别中断请求服务。

6.9、答:8259A的工作方式通过微处理器向其写入初始化命令字来确定。初始化命令字分别装入ICW1~ICW4内部寄存器。8259A在工作过程中,微处理器通过向其写入操作命令字来控制它的工作过程。操作命令字分别装入OCW1~OCW3内部寄存器中。8259A占用两个端口号,不同的命令字对应不同的端口,再加上命令字本身的特征位及加载的顺序就可以正确地把各种命令字写入对应的寄存器中。

6.10、答:IF是8086微处理器内部标志寄存器的一位,若IF=0,8086就不响应外部可屏蔽中断请求INTR引线上的请求信号。8259A有8个中断请求输入线,IMR中的某位为1,就把对应这位的中断请求IR禁止掉,无法被8259A处理,也无法向8086处理器产生INTR请求。

6.12、答:中断服务程序第一条指令所在的地址称为该中断服务程序的中断向

量。存放在00200H、00201H、00202H、00203H四个内存单元中,其中00200H、00201H两个单元中存放的是偏移地址,00202H、00203H两个单元中存放的是段地址。

6.14、答:中断向量表入口地址为:0段的0090H地址。对应4FE24H中断服务程序入口,在向量表中定位情况:(0090H)=24H、(0091H)=00H、(0092H)=E0H、(0093H)=4FH。

6.15、答:ICW1=1BH(送B0H端口),ICW2=20H(送B1H端口),ICW4=03H(送B1H端口)

6.16、答:SS=2010H,SP=00FAH,CS=00A7H,IP=107CH,PSW=0040H。

栈顶三个字的内容为:

000FA12H H

000FB02H H

000FCC2H H

000FD13H H

000FE40H H

000FF02H H

6.17、答:因为在CPU响应中断时,会把中断允许标志位设置为0,即禁止CPU再响应可屏蔽中断,在中断处理程序的入口处使用STI指令开放中断,允许响应更高级的中断,实现中断嵌套。 6.18、答:INAL,21H

ORAL,0FDH OUT21H,AL

6.19、答:MOVAL,13H

OUT280H,AL

MOVAL,10H OUT21H,AL MOVAL,01H OUT21H,AL

习题7

7.1、设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。 7.2、设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。

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

7.4、设8253的计数器0,工作在方式1,计数初值为2050H;计数器1,工作在方式2,计数初值为3000H;计数器2,工作在方式3,计数初值为1000H。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。 7.5、试简述微机系统中定时器/计数器的必要性和重要性,以及定时实现的常用方法。

7.6、可编程定时器/计数器8253/8254有几个通道?各通道有几种工作方式?各种工作方式的主要特点是什么?8254与8253有什么区别?

7.7、8253的初始化编程包括哪几项内容?它们在顺序上有无要求,如何要求? 7.8、何谓日时钟?日时钟运行原理是什么? 7.9、日时钟定时中断的作用是什么?修改日时钟定时中断的一般步骤和方法是什么?

7.10、8253通道0的定时中断是硬中断(8号中断),它不能被用户调用,当用户对系统的时间进行修改时,需采用软中断INT1AH。试问这两种中断有何关系?

习题七参考答案

7.1答:

MOVAL,80H OUT200H,AL

INAL,203H MOVBL,AL

INAL,203H, MOVBH,AL MOVAX,BX

7.2答:要输出脉冲周期为1ms,输出脉冲的频率是,当输入时钟频率为2MHz时,计数器初值是

使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。设控制口的地址是200H,计数器0的地址是202H。程序段如下: MOVDX,200H MOVAL,76H OUTDX,,AL MOVDX,202H MOVAX,2000

OUTDX,AL

MOVAL,AH OUTDX,AL 7.3答:

=76.4

应向计数器装入的初值是76。

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

计数器1工作在方式2,即分频器的方式。输出波形的频率f=

=

=666.7HZ,其周期为1.5ms,输出负脉冲的宽度等于CLK的周期

为0.5μs。

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

=2000Hz的对称方波。

习题8

8.1、比较中断与DMA两种传输方式的特点。 8.2、DMA控制器应具有那些功能?

8.3、8237A只有8位数据线,为什么能完成16位数据的DMA传送? 8.4、8237A的地址线为什么是双向的?

8.5、说明8237A单字节DMA传送数据的全过程。

8.6、8237A单字节DMA传送与数据块DMA传送有什么不同?

8.7、8237A什么时候作为主模块工作,什么时候作为从模块工作?在这两种工

作模式下,各控制信号处于什么状态,试作说明。 8.8、说明8237A初始化编程的步骤。

8.9、8237A选择存储器到存储器的传送模式必须具备那些条件? 8.10、DMA传送方式为什么能实现高速传送? 8.11、简述8237A的主要功能。

8.12、用DMA控制器8237A进行内存到内存传输时,有什么特点?

8.13、利用8237A的通道2,由一个输入设备输入一个32KB的数据块至内存,内存的首地址为34000H,采用增量、块传送方式,传送完不自动初始化,输入设备的DREQ和DACK都是高电平有效。请编写初始化程序,8237A的首地址用标号DMA表示

习题八参考答案

8.1、答:中断方式下,外设需与主机传输数据时要请求主给予中断服务,中断当前主程序的执行,自动转向对应的中断处理程序,控制数据的传输,过程始终是在处理器所执行的指令控制之下。

直接存储器访问(DMA)方式下,系统中有一个DMA控制器,它是一个可驱动总线的主控部件。当外设与主存储器之间需要传输数据时,外设向DMA控制器发出DMA请求,DMA控制器向中央处理器发出总线请求,取得总线控制权以后,DMA控制器按照总线时序控制外设与存储器间的数据传输而不是通过指令来控制数据传输,传输速度大大高于中断方式。

8.2、答:DMA控制器应有DMA请求输入线,接收I/O设备的DMA请求信号;DMA控制器应有向主机发出总线请求的信号线和接收主机响应的信号线;DMA控制器在取得总线控制权以后应能发出内存地址、I/O读写命令及存储器读写命令控制I/O与存储器间的数据传输过程。

8.3、答:I/O与存储器间在进行DMA传送过程中,数据是通过系统的数据总线传送的,不经过8237A的数据总线,系统数据总线是具有16位数据的传输能力的。 8.4、答:8237A的A0~A3地址线是双向的,当8237A被主机编程或读状态处于从属状态,A0~A3为输入地址信号,以便主机对其内部寄存器进行寻址访问。当8237A取得总线控制权进行DMA传送时,A0~A3输出低4位地址信号供存储器寻址对应单元用,A0~A3必需是双向的。

8.5、答:8237A取得总线控制权以后进行单字节的DMA传送,传送完一个字节以后修改字节计数器和地址寄存器,然后就将总线控制权放弃。若I/O的DMA请求信号DREQ继续有效,8237A再次请求总线使用权进行下一字节的传送。 8.6、答:单字节传送方式下,8237A每传送完一个字节数据就释放总线,传送下一字节时再请求总线的控制权。块传送方式下8237A必须把整个数据块传送完才释放总线。

8.7、答:8237A取得总线控制权后,开始进行DMA传送过程,此时8237A作为主模块工作。8237A在被处理器编程或读取工作状态时,处于从模块工作状态。 8237A处于从模块时,若CS#=0、HLDA=0说明它正被编程或读取状态,IOR#与IOW#为输入,A0~A3为输入。8237A处于主模块时,输出地址信号A0~A15(低8位经A0~A7输出,高8位经DB0~DB7输出)。8237A还要输出IOR#、IOW#、MEMR#、MEMW#、AEN、ADSTB等有效信号供DMA传送过程使用。

8.8、答:(1)写屏蔽字,阻止某通道的DMA请求。(2)写命令字(8号地址),确定信号有效电平、优先级方式、通道工作允许等。(3)写模式字(B号地址),确定某

通道传送方式、传送类型、地址寄存器变化方式等。(4)置0先/后触发器。(5)设置地址寄存器、字节数寄存器的初值。(6)清除某通道屏蔽位,允许8237A响应其DMA请求。

8.9、答:必须使用8237A内部的暂存器作为数据传送的缓冲器。8237A通道0的地址寄存器存放存储器的源地址、通道1的地址寄存器存放存储器的目的地地址、字节计数器存放传送的字节数,建立通道0的软件DMA请求来启动这一传输过程。

8.13、答:设存储器页面寄存器内容已被置为3。8237A初始化程序如下: MOVAL,06H;屏蔽通道2 MOVDX,DMA+0AH; OUTDX,AL;

MOVAL,80H;写通道2命令字:DREQ、

MOVDX,DMA+08H;DACK高电平有效,正常

DUTDX,AL;时序、固定优先级、允许8237A工作等。 MOVAL,86H;写通道2模式字:块传

MOVDX,DMA+0BH;输、写传输、地址增、 OUTDX,AL;禁止自动预置等。

MOVDX,DMA+0CH;置0先/后触发器 OUTDX,AL;

MOVAL,00H;设通道2基地址为4000H MOVDX,DMA+04H; OUTDX,AL; MOVAL,40H; OUTDX,AL;

MOVAL,0FFH;设通道2基字节数为 MOVDX,DMA+05H;7FFFH(32767D) OUTDX,AL; MOVAL,7FH; OUTDX,AL;

MOVAL,02H;清除通道2屏蔽。 MOVDX,DMA+0AH; OUTDX,AL;

MOVAL,06H;通道2发DMA请求 MOVDX,DMA+09H; OUTDX,AL;

习题9

9.1、填空题

(1)8255A端口C按位置位/复位控制字的()位用来指定置位或复位的端口C的具体位置。

(2)8255A端口C按位置位/复位控制字的()位决定对端口C的某一位置位或复位。

(3)8255A端口A工作在方式2时,使用端口C的()作为CPU和外部设备的

联络信号。

(4)8255A与CPU连接时,地址线一般与CPU的地址总线的()连接。 (5)8255A控制的最高位的D7=()时,表示该控制字为方式控制字。 (6)8255A的端口A的工作方式是方式控制字的()位决定。 (7)8255A的端口B的工作由方式控制字的()位决定。 (8)Intel8255A是一个()端口。

(9)8255A内部只有端口()没有输入锁存功能。

9.2、8255A的方式0一般使用在什么场合?在方式0时,如果使用应答信号进行联络,应该怎么办?

9.3、当8255A工作在方式2并且采用中断时,CPU如何区分是输入或输出引起的中断?

9.4、设8255A的4个端口地址为0060H~0063H,试编写下列各种情况下的初始化程序。

(1)将A组和B组设置方式0,A口、B口为输入,C口为输出。

(2)将A组工作方式设置方式2,B组为方式1,B口作为输出。 (3)将A口,B口均设置方式1,均为输入,PC6和PC1为输出。

(4)A口工作在方式1,输入;B口工作在方式0,输出;C口高4位配合A口工作,低4位为输入。

9.5、已知8255的A口外接8个发光二极管,B口的PB0外接一个按键,A、B组均工作在方式0,试编写一段程序,循环检测按键是否按下,若按下(低电平有效),则把8个二极管点亮,否则全灭。

9.6、若8255A的端口A定义为方式0,输入;端口B定义为方式1,输出;端口C的上半部定义方式0,输出。试编写初始化程序(设端口地址为80H~83H)。 9.7、试编程实现采用动态扫描方法在LED数码管上显示0000~9999,硬件图可参照例题2图9-9。设8255A的端口地址为300H~303H。

习题九参考答案

9.1、填空题

(1)D1~D3(2)D0(3)PC3~PC7(4)A1、A0

(5)1(6)D3~D6(7)D0~D2(8)可编程的并行(9)B

9.2、82555A工作在方式0,4个端口相互独立,它们之中每个端口既可作为输入端口,也可作为输出端口,各端口之间没有必然关系。4个端口的输入/输出可以有16种组合,所以可适用于多种使用场合。在方式0时,CPU采用无条件读写方式与8255A交换数据,也可采有查询方式与8255A交换数据。采用查询方式时,可利用端口C作为与外设的联络信号。

9.3、当8255A工作在方式2并且采用中断时,CPU根据INTE1和INTE2的状态来确定。INTE1为输出中断允许,由端口C的PC6置位/复位,INTE2为输入中断允许,由端口C的PC4置位/复位。

9.4、(1)MOVAL,82H

MOVDX,0063H

OUTDX,AL

(2)MOVAL,C4H MOVDX,0063H OUTDX,AL

(3)MOVAL,B6H

MOVDX,0063H

OUTDX,AL MOVAL,0BDH OUTDX,AL

(4)MOVAL,B1H

MOVDX,0063H OUTDX,AL

9.5、设8255A的4个端口地址为90H~93H CODESEGMENT

ASSUMECS:CODE,DS:DATA START:MOVAX,DATA MOVDS,AX MOVAL,82H MOVDX,93H

OUTDX,AL INAL,91H TESTAL,01H JNZLOOP1

MOVAL,00H OUT90H,AL

LOOP1:MOVAL,FFH OUT90H,AL CODEENDS ENDSTART

9.6、MOVAL,94H MOVDX,83H

OUTDX,AL

9.8、答:8255A的A端口,作为数据的输入、输出端口使用时都具有锁存功能。B端口和C端口当作为数据的输出端口使用时具有锁存功能,而作为输入端口使用时不带有锁存功能。

9.9、答:当数据从8255A的C端口读入CPU时,8255A的片选信号

应为低电平,

才能选中芯片。A1,A0为10,即A1接高电平,A0接低电平,才能选中C端口。

应为低电平(负脉冲),数据读入CPU,为高电平。

9.10、答:数据锁存就是延长数据存在时间,便于与外设存取时间配合。在外设速度与主机相匹配时,可以不需要锁存。

9.11、答:主要特点:数据并行传输,传输速度快,但距离较近。

主要功能:并行传输数据,在主机与外设之间起到数据缓冲和匹配的作用。 9.12、答:8255A有3种工作方式:方式0:基本I/O方式;方式1:单向选通I/O方式;方式2:双向选通I/O方式。

习题10

10.1、串行通信与并行通信相比,有那些基本特点?

10.2、在串行通信中有哪几种数据传送模式,各有什么特点? 10.3、什么是波特率?试举出几种常用的波特率系列。

10.4、已知异步通信接口的帧格式由1个起始位、7个数据位、1个奇偶校验位和1个停止位组成。当该接口每分钟传送3600个字符时,其传送波特率是多少? 10.5、异步通信的特点是什么?同步通信的特点是什么?

10.6、RS-232C总线的主要特点是什么?它的逻辑电平是如何定义的? 10.7、RS-232C标准与TTL之间进行什么转换?如何实现这种转换?

10.8、RS-485是什么?它为什么比RS-232C直接传输的距离远,速率高,而且可靠性高?

10.9、串行通信接口电路的基本功能有哪些? 10.10、试简述8251A内部结构及工作过程?

10.11、试分别说明8251A的工作方式控制字、操作命令控制字和状态控制字的作用?

10.12、异步方式下,8251A初始化包括哪几部分?初始化的顺序是怎样的?为什么要采用这种顺序?

10.13、某系统中使可编程串行接口芯片8251A工作在异步方式,8位数字,不带校验,2位停止位,波特率系数为64,允许发送也允许接收。假设8251A的两个端口地址分别为0C0H和0C2H,试编写初始化程序。

10.14、编写一段通过8251A采用查询方式接收数据的程序。8251A采用异步方式工作,波特率系数为16,偶校验,1位停止位,8位数据位。

10.15、编写使8251A发送数据的程序。将8251A定为异步传送方式,波特率系数为64,采用偶校验,2位停止位,8位数据位。8251A与外设有握手信号,采用查询方式发送数据。

10.16、编写接收数据的初始化程序。要求8251A采用同步传送方式、2个同步字符、内同步、奇校验、8位数据位和同步字符为16H。

10.17、甲乙两机进行串行通信,串行接口电路以8251A为核心,两个端口地址为04A0H(数据口)、04A2H(命令/状态口)。要求甲机接收字符,并将接收的字符求反,然后又向乙机发送出去。数据格式为:字符长度为8位,2位停止位,无奇偶校验,波特率系数为16。试编写实现这一功能的通信程序。

习题十参考答案

10.1答:串行通信与并行通信相比,其基本特点有:

(1)信息在1根传输线上,一位一位按位串行传送,且数据和控制联络信息混在

一起进行传送。

(2)串行传送的数据有固定的格式。 (3)串行通信,既可用于近距离,也可用于远距离,远距离传送要使用MODEM。 (4)串行通信,采用负逻辑和高压电平,与TTL电平不兼容。

(5)串行通信要求双方的传输速率必须一致,故须进行传输速率控制。 (6)串行通信易受干扰,出错难以避免,故须进行差错控制。 10.2答:在串行通信有三种数据传送模式:单工传送,半双工传送和全双工传送。 单工传送方式仅支持一个方向上的数据传送,即由设备A传送到设备B。在这种传送模式中,A只作为发送器,B只作为接收器。

半双工传送方式支持在设备A和设备B之间交替地传送数据,即设备A为发送器,发送数据到设备B,设备B为接收器。也可以设备B为发送器发送数据到设备A,设备A为接收器,由于A、B之间仅与一根数据传送线,它们都有独立地发送器和接收器,所以在同一个时刻只能进行一个方向地传送。

全双工传送方式支持数据在两个方向同时传送。即设备A可发送数据到设备B,设备B也可以发送数据到设备A,它们都有独立地发送起去和接收器,并有两条传送线。

10.3答:波特率是指串行传送线上每秒钟所能传送的二进制位数。国际上规定了标准波特率系列,最常用的标准波特率是:110波特、300波特、600波特、1200波特、1800波特、2400波特、4800波特、9600波特和19200波特。 10.4答:波特率

10.5答:异步通信是指字符与字符之间的传送是异步的,而字符内部位与位之间的传送是同步的。因为异步通信是以字符为单位进行传送的,发送端何时发送1个字符,接收端预先并不知道。也就是说,“异步”主要体现在字符与字符之间的传送没有严格的定时要求。

同步通信是指不仅字符内部位与位之间的传送是同步的,字符与字符之间的传送也是同步的。因为,同步通信是以数据块为单位进行传送的,而1个数据块包含了若干个字符,它作为1个整体,一旦传送开始,要求数据块内的每一位的传送都必须是同步的。也就是说,“同步”主要体现在数据块内字符与字符之间和字符内位与位自荐的传送都必须是同步的。

10.6答:RS-232C总线是为了电话网络进行数据通信而制定的标准。该标准属于异步通信总线,主要用于主机与CRT或调制解调器之间的通信,以及某些多机通信的情况。RS-232C总线的逻辑电平是负逻辑,以+3~+25之间的任意电压表示逻辑“0”,以-3~-25V之间的任意电压表示逻辑“1”,在实际使用中,电平常为12V或15V。

10.7答:RS-232C标准与TTL之间要进行逻辑关系(正逻辑负逻辑)及逻辑电平(低电平/低摆幅高电压/高摆幅)的转换。这种转换可通过专用芯片如MC1488/MC1489,MAX232/MAX233等接口电路实现。

10.8答:RS-485是一种多发送器/多接收器的串行接口标准。RS-485采用共线电路结构,在一对平衡传输线的两端配置终端电阻,其发送器、接收器、组合收发器可刮在平衡传输线的任何位置,实现多个驱动器和多个接收器共用同一传输线的多点通信。它也是RS-232C的改进型标准,并且也是一种平衡传输方式的接口标准。因此,它的直接传输距离、传输速率以及可靠性都比单线传输方式的

RS-232C标准要高得多。

10.9答:串行通信接口电路的基本功能有: (1)实现数据格式化; (2)进行并-串转换; (3)进行错误检验;

(4)提供符合RS-232C标准所定义的接口信号线;

(5)进行TTL与RS-232C标准的逻辑关系及逻辑电平转换; (6)进行数据传输速率控制。

10.10答:8251A是一个通用的串行输入/输出接口芯片,可用来将CPU传送给外设的信息以串行方式向外发送,或将外设输入给CPU的信息以串行方式接收并转换为并行数据传送给CPU。其内部结构包括发送器和接收器,数据总线缓冲器,读/写控制电路,调制解调控制等几个部分。 发送器和接收器是8251与外设交换信息的通道。 发送器的工作过程是:

(1)接收到来自CPU的数据存入发送缓冲器。

(2)发送缓冲器存有待发送的数据后,使引脚TXRDY变为低电平,表示

发送缓冲器满。

(3)当调制解调器作好接收数据的准备后,向8251A输入一个低电平信号,

使

引脚有效。

(4)在编写初始化命令时,使操作命令控制字的TXEN位为高,让发送器

处于允许发送的状态下。

(5)满足以上(2)、(3)、(4)条件时,若采用同步方式,发送器

将根据程序的设定自动送一个(单同步)或两个(双同步)同步字符,然后由移位寄存器从数据输出线TXD串行输出数据块;若采用异步方式,由发送控制器在其首尾加上起始位及停止位,然后从起始位开始,经移位寄存器从数据输出线TXD串行输出。

(6)待数据发送完毕,使TXENPTY有效。

(7)CPU可向8251A发送缓冲器写入下一个数据。 与发送器有关引脚信号如下:

TXD:数据发送端,输出串行数据送往外部设备。

TXRDY:发送器准备好信号。TXRDY=1,发送缓冲器空;TXRDY=0发送缓冲器满。当TXRDY=1、TXEN=1、CTS=0时,8251A已作好发送准备,CPU可以往8251A传输下一个数据。当用查询方式时,CPU可从状态寄存器的D0位检测这个信号,判断发送缓冲器所处状态。当用中断方式时,此信号作为中断请求信号。

TXEMPTY:发送移位寄存器空闲信号。TXEMPTY=0,发送移位寄存器满;TXEMPTY=1,发送移位寄存器空,CPU可向8251A的发送缓冲器写入数据。在同步方式时,若CPU来不及输出新字符,则TXEMPTY=1,同时发送器在输出线上插入同步字符,以填充传送间隙。

TXC:发送时钟信号,外部输入。对于同步方式,TXC的时钟频率应等于发送数据的波特率。对于异步方式,由软件定义的发送时钟可是发送波特率的1倍(×1)、16倍(×16)或64倍(×64)。

接收器包括接收缓冲器、接收移位寄存器及接收控制器三部分。

工作过程:

(1)当控制命令字的“允许接收”位RXE和“准备好接收数据”位DTR有效时,接收控制器开始监视RXD线。

(2)外设数据从RXD端逐位进入接收移位寄存器中,接收中对同步和异步两种方式采用不同的处理过程。

异步方式时,当发现RXD线上的电平由高电平变为低电平时,认为是起始位到来,然后接收器开始接收一帧信息。接收到的信息经过删除起始位和停止位,把已转换成的并行数据置入接收数据缓冲器。

同步方式时,每出现一个数据位移位寄存器就把它移一位,把移位寄存器数据与程序设定的存于同步字符寄存器中的同步字符相比较,若不相等重复上述过程,直到与同步字符相等后,则使SYNDET=1,表示已达到同步。这时在接收时钟RXC的同步下,开始接收数据。RXD线上的数据送入移位寄存器,按规定的位数将它组装成并行数据,再把它送至接收数据缓冲器中。 (3)当接收数据缓冲器接收到由外设传送来的数据后,发出“接收准备就绪”RXRDY信号,通知CPU取走数据。 与接收器有关的引脚信号如下:

RXD:数据接收端,接收由外设输入的串行数据。 RXRDY:接收器准备好信号。RXRDY=1表示接收缓冲器已装有输入的数据,通知CPU取走数据。若用查询方式,可从状态寄存器D1位检测这个信号。若用中断方式,可用该信号作为中断申请信号,通知CPU输入数据。RXRDY=0表示输入缓冲器空。

SYNDET/BRKDET:双功能检测信号,高电平有效。

对于同步方式,SYNDET是同步检测信号,该信号既可工作在输入状态也可工作在输出状态。内同步工作时,该信号为输出信号。当SYNDET=1,表示8251A已经监测到所要求的同步字符。若为双同步,此信号在传送第二个同步字符的最后一位的中间变高,表明已经达到同步。外同步工作时,该信号为输入信号。当从SYNDET端输入一个高电平信号,接收控制电路会立即脱离对同步字符的搜索过程,开始接收数据。

对于异步方式,BRKDET为间断检出信号,用来表示RXD端处于工作状态还是接收到断缺字符。BRKDET=1表示接收到对方发来的间断码。 RXC:接收时钟信号,输入。在同步方式时,RXC等于波特率;在异步方式时,可是波特率的1倍、16倍或64倍。

10.11答:8251A的方式命令、工作命令和状态字的作用如下:

(1)工作方式控制字是用来设置通信方式及该方式下的数据格式,因为

8251A支持同步和异步两种通信方式,所以工作方式控制字的各位在不同的通信方式下,其功能有所不同。

(2)操作命令控制字是用来控制串行接口的内部复位、发送、接收、清除

错误标志等操作以及设置

联络信号有效的。如果是异步方

式,且不使用MODEM,则工作命令字8位中,只有4个关键位需要使

用。

(3)状态控制字的作用是向CPU提供何时才能开始接收或发送1个字符,

以及接收数据中有无错误的信息。如果是异步方式,且不使用MODEM,则只使用5个关键位。

10.12答:异步方式下,8251A的初始化内容包括按顺序先写内部命令,并根据设计要求再写工作方式控制字,最后,写操作命令控制字。这个顺序不能改变。为了提高可靠性,往往还在写内部复位命令之前,向命令口写一长串0,作为空操作。

10.13答:初始化程序如下: MOVDX,0C2H

MOVAL,B;8位数字,不带校验,2位停止位,波特率系数为64 OUTDX,AL

MOVAL,00010101B;允许发送也允许接受 OUTDX,AL

10.14答:设8251A数据口地址为0C0H,控制口地址为0C2H。

MOVDX,0C2H

MOVAL,01111110B;工作方式控制字 OUTDX,AL

MOVAL,14H;写操作命令控制字 OUTDX,AL

WAIT∶INAL,DX;读入状态控制字 ANDAL,02H

JZWAIT;检查RXRDY是否为1 MOVDX,0C0H

INAL,DX;输入数据

10.15答:设8251A数据口地址为0C0H,控制口地址为0C2H。

MOVDX,0C2H

MOVAL,01111111B;写工作方式控制字 OUTDX,AL

MOVAL,31H;写操作命令控制字 OUTDX,AL

WAIT∶INAL,DX

ANDAL,01H;检查TXRDY是否为1 JZWAIT

MOVDX,0C0H

MOVAL,36H;输出的数据送AL OUTDX,AL

10.16答:设8251A数据口地址为0C0H,控制口地址为0C2H。

MOVDX,0C2H;控制口地址送DX

MOVAL,01011100B;写工作方式控制字 MOVDX,AL

MOVAL,16H;同步字符送AL OUTDX,AL

OUTDX,AL;输入两个同步字符 MOVAL,96H;写操作命令控制字 OUTDX,AL

10.17答:程序如下:

INT514:MOVDX,04A2H;初始化

MOVAL,0EEH;写工作方式控制字 OUTDX,AL

MOVAL,15H;写操作命令控制字 OUTDX,AL

CHKRX:MOVDX,04A2H;查接收状态 INAL,DX RORAL,1H

RORAL,1H;接收是否准备好? JNCCHKRX;未,等待

MOVDX,04A0H;已,接收1个字符 INAL,DX

NOTAL;接收的字符求反

MOVBL,AL;暂存接收的字符

CHKTX:MOVDX,04A2H;查发送状态 INAL,DX

RORAL,01H;发送是否准备好? JNCCHKTX;未,等待

MOVDX,04A0H;已,发送已经求反的字符 MOVAL,BL OUTDX,AL

JMPCHKRX;重发上述过程

习题11

11.1、什么是总线?简述微机总线的分类。

11.2、简要说明PC总线和ISA总线的区别与联系。 11.3、简述PCI总线的特点。

11.4、简述USB总线的应用场合与特点。

11.5、采用一种总线标准进行微型计算机的硬件结构设计具有什么优点? 11.6、一个总线的技术规范应包括哪些部分? 11.7、总线的定义是什么?简述总线的发展过程。

11.8、微型计算机系统总线由哪三部分组成?它们各自的功能是什么? 11.9、扩充总线的作用是什么?它与系统总线的关系是什么? 11.10、为什么要引入局部总线?它的特点是什么? 11.11、总线定时协议分哪几种?各有什么特点?

11.12、总线上数据传输分哪几种类型?各有什么特点?

11.13、总线的指标有哪几项,它工作时一般由哪几个过程组成? 11.14、为什么要进行总线仲裁?

11.15、为什么集中式总线仲裁方式优于菊花链式?

11.16、ISA总线信号分为多少组,它的主要功能是什么?

11.17、ISA16位总线是在ISA8位总线基础上扩充了哪些信号而形成的?

11.18、PCI总线访问时,怎样的信号组合启动一个总线的访问周期,又怎样结束一个访问周期?

习题十一参考答案

11.5、答:为适应用户不断变化的要求,微机系统设计必须采用模块化设计,不

同的模块组合形成一定的功能。模块之间的连接关系采用标准的总线结构可使不同功能的模块便于互连,兼容性好、生命周期长。模块采用标准化总线结构设计可使模块的生产供应规模化、多元化、价格低、有利于用户。

11.6、答:总线技术规范应包括:(1)机械结构规范:模块尺寸、总线插头插座形式与结点数以及模块与插头插座的机械定位。(2)功能规范:总线信号名称、功能以及相互作用的协议。(3)电气规范:总线中每个信号工作时的有效电平、动态转换时间、负载能力以及电气性能的额定值与最大值。

11.7、答:总线就是两个以上模块(或子系统)间传送信息的公共通道,通过它模块间可进行数据、地址码及命令的传输。

最早的标准化总线是S-100总线(1975),80年代初IBMPC/XT个人计算机采用8位ISA总线,之后又在IBMPC/AT机上推出16位ISA总线。随着外设接口对总线性能要求的不断提高,出现了EISA总线及PCI总线。PCI总线目前已被个人计算机广泛采用,成为新的工业标准。

11.8、答:由地址总线、数据总线和控制总线三部分组成。地址总线用于指出数据的来源或去向;数据总线提供了模块间数据传输的路径;控制总线用来传送各种控制信号以便控制数据、地址总线的操作及使用。

11.9、答:扩充总线是将许多I/O接口连接在一起,集中起来经桥接电路与系统总线相连,减轻系统总线的负载,提高系统性能。系统总线与扩充总线的之间有专门的连接电路,它们各自工作在不同的频宽下,可适应不同工作速度的模块的需要。

11.10、答:早期的扩充总线(ISA总线)工作频率低,不能满足象图形、视频、网络接口等高数据传输率I/O设备的要求。在处理器的系统总线与传统扩充总线之间插入一个总线层次,它的频率高于传统扩充总线,专门连接高速I/O设备,满足它们对传输速率的要求。这一层次的总线就是局部总线。局部总线与系统总线经桥接器相连,局部总线与传统扩充总线也经桥接器相连,三个层次的总线相互隔开,各自工作在不同的频宽上,适应不同模块的需要。

11.11、答:总线有三种定时方法。(1)同步定时,信息传输由公共时钟控制,总线信号中包括一个时钟信号,各模块上所有的操作都在时钟开始时启动。(2)异步定时,信息的传输的操作均由源或目的的特定信号跳变所确定,总线上每一个操作的发生均取决于前一个操作的发生,总线操作过程不用公共时钟来同步。(3)半同步定时,总线上各操作之间的时间间隔可以变化,但这个变化只允许为公共时钟周期的整数倍,信号的出现,采样和结束以公共时钟为基础。

11.12答:分单周期方式和突发方式两种。在单周期方式中,每个总线周期只传送一个数据。在突发方式下,占用一次总线要进行多个数据的传输,源模块发出首地址去访问目的模块的数据1,以后的数据是在首地址的基础上按一定的规则去寻址目地模块。

11.13、答:总线的指标有(1)总线宽度,一次总线操作可以传输的数据位数;(2)总线工作频率,总线上基本定时时钟的频率,它代表总线操作的最高频率;(3)单个数据传输所用时钟周期数。总线上信息传输过程可分解为:(1)请求总线;(2)总线裁决;(3)寻址;(4)数据传送;(5)错误检查。

11.14、答:总线结构的特点是,一个传送信息的公共通路总线为多个模块共同使用。但在某一时刻,只能允许一个主模块使用总线进行数据传输。当有多个主模块要占用总线进行数据传输时,要有一个总线的请求及转交的过程,首先按一定规则进行总线使用权的仲裁,把总线的使用权交给优先级最高的请求者。

11.15、答:菊花链式为串行总线仲裁逻辑,离处理器较远的主模块因前级主模块的占用而在较长时间内得不到响应,优先权的级别与逻辑上级连位置有关,因此灵活性差,缺少公平性。 集中式为并行总线仲裁逻辑,请求与响应信号都是独立与仲裁逻辑相连,优先级的处理可采用多种方式,不至因为某个请求设备的故障而造成整个仲裁逻辑的瘫痪,灵活性好。

11.16、答:分为总线基本信号、总线访问信号及总线控制信号。总线基本信号主要用来提供基本定时时钟、系统复位、电源和地信号。总线访问信号主要用来提供对总线目标模块访问的地址、数据、访问应答控制信号。总线控制信号的主要功能是提供中断、DMA处理时的请求及响应信号以及扩展模块主控状态的确定信号。

11.17、答:ISA16位总线在ISA8位总线基础上把数据线由8位扩充到16位,把地址线由20位扩充到24位;还扩充了中断请求信号、DMA请求与响应信号;还增加了16位数据访问的控制信号等。 11.18、答:PCI总线上的主设备取得总线控制权以后,在CLK-1期间发出FRAME#有效信号、要访问的从设备的地址信号及操作类型的命令字,从而启动了一个总线访问周期。结束一个访问周期是通过使FRAME#信号变为无效且保持主设备准备就绪信号IRDY#为有效,完成最后的数据传送后结束这个总线操作。此外用STOP#信号从设备可以主动仃止数据访问周期。

习题12

12.1、什么是编码键盘?什么是非编码键盘?

12.2、什么是线性键盘?什么是矩阵键盘?各有什么特点? 12.3、键盘接口的基本功能有哪些?

12.4、行扫描法矩阵键盘的工作原理是什么?

12.5、设键盘上有3×4个键,通过并行接口芯片8255A与微机相连。8255A的A口定义为输出口,其端口地址为PORTA,与键盘行线相连;B口定义为输入口,其端口地址为PORTB,与键盘列线相连;8255A控制口为PORTC。画出硬件连接图,并设计一个用“行扫描法”识别闭合键的扫描程序。 12.6、PC键盘的工作原理是什么?

12.7、鼠标器的基本工作原理是什么?

12.8、鼠标器按采样机构可分为哪几种?各有何特点? 12.9、鼠标与计算机的接口主要有哪几种形式? 12.10、说明CRT显示器的工作原理。 12.11、说明CRT屏幕光栅扫描过程。

12.12、CRT接口电路一般由哪些部分组成?简述各部分功能。 12.13、视频显示标准有几种工作模式,各有何特点? 12.14、打印机的主要技术指标有哪些?

12.15、针式打印机由哪些部分组成?说明针式打印机的打印过程 12.16、简述喷墨打印机的工作原理。 12.17、简述激光打印机的打印过程。

12.18、根据并行打印机的时序图,说明其数据传送过程。 12.19、并行打印机和PC系列机是如何连接的?

12.20、主机向打印机传送数据可采用哪两种控制方式?两种控制方式的初始化

命令有何区别?

12.21、利用ROMBIOS的INT17H功能,编写一段打印程序。打印一缓冲区字符,并进行错误检测。

12.22、简述LCD液晶显示器的工作原理。

12.23、扫描仪的主要性能指标有哪些?有哪几种主要的接口? 12.24、触摸屏按工作原理不同可分几类?各自的工作原理是什么?

12.25、数码相机的工作原理和主要性能指标是什么?其接口种类有哪些? 12.26、视频采集卡的功能是什么?其主要由哪几部分组成? 12.27、数字化仪的功能是什么?它有哪些主要技术指标?常见的数字化仪有哪几种?

习题十二参考答案

第十二章人机交互设备

1.什么是编码键盘?什么是非编码键盘?

答:(1)编码键盘:键盘本身带有硬件电路,能够由硬件逻辑自动检测被按下的键,然后自动产生与被按键对应的键编码(ASCII码等),并以并行或串行通信方式送往主机。其接口电路简单,使用方便,但本身电路复杂、成本较高。 (2)非编码键盘:由简单的键开关行列矩阵组成,只能提供键开关的行列位置(位置码或扫描码),按键的识别、键值的确定和输入到主机等工作全靠软件完成。其硬件电路简单、成本低,被广泛地应用于计算机中。 2.什么是线性键盘?什么是矩阵键盘?各有什么特点?

答:(1)线性键盘:每一个按键连接到一位I/O端口,无键闭合时各位都处于高电平。当有一个键按下时,就使对应位接地或成为低电平,其它位则仍为高电平。这样,CPU只要通过读I/O端口,检测端口中哪一位为低电平,就可以识别出所按下的键。这种键盘结构简单,但当键盘上的键较多时,需使用的I/O端口就太多,因此,只能用于仅有几个键的小键盘中。(2)矩阵键盘:将所有按键按行和列排列成矩阵形式,也叫行列式键盘。对于m×n个键的键盘,如果采用线性键盘结构,需要m×n位I/O端口,而采用矩阵键盘结构只需要m+n位。结构较为复杂,适用于按键较多的系统中。 3.键盘接口的基本功能有哪些?

答:键盘接口必须具有去抖动、防串键、按键识别和键码产生等几项基本功能。 (1)去抖动。抖动是指当一个键被按下或放开时,键的接触点在达到稳定的闭合或断开之前会有几次抖动跳变,其中,前沿抖动发生在键按下的时候,后沿抖动发生在释放按键的时候。抖动持续时间因键的质量而有所不同,一般不超过20ms。在识别被按键和释放键时必须避开这种抖动状态,被按键才能保证正确无误地被识别,这就是去抖动。

(2)防串键。防串键是为了解决多个键同时按下或者前一按键没有释放又有新的键按下时产生的问题。常用的解决方法有两种。其一是双键锁定:当检测到有两个或两个以上的键被按下时,只把最后释放的键当作有效键,并产生相应键码。其二是N键轮回:当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。

(3)识别被按键及生成键值、键码

键盘接口所要解决的主要问题是识别出被按键并生成其键值、键码。常用的方法有行扫描法和线反转法等

(4)键码的产生:通过查表获得被按键编码 4.行扫描法矩阵键盘的工作原理是什么?

答:行扫描法的矩阵键盘要求行接对应的并行输出端口,CPU通过行输出口输出行扫描代码;同时,要求列端接一个并行的输入端口,CPU通过它读入列信息代码。

行扫描法的执行过程一般分为四步:

(1)判断是否有键按下。对行并行端口输出全“0”,然后,通过列并行输入口读入列值,并机械比较判断。若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。

(2)延迟10ms~20ms,以消除按键的机械抖动。

(3)识别是哪个键按下。从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值。若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。

(4)依所得的行、列值查键号表可得键号,然后再由键号查健值表即可得出被按键的健值(即ASCII码)。

5.设键盘上有3×4个键,通过并行接口芯片8255A与微机相连。8255A的A口定义为输出口,其端口地址为PORTA,与键盘行线相连;B口定义为输入口,其端口地址为PORTB,与键盘列线相连;8255A控制口为PORTC。画出硬件连接图,并设计一个用“行扫描法”识别闭合键的扫描程序。 答:设计的硬件连接图如下: :

设计的参考程序如下: ;8255A初始化部分:

MOVAL,82H;方式0,A口输出,B口输入 OUTPORTC,AL

BEGIN:MOVAL,0;检查是否有键按下 OUTPORTA,AL

WAIT:INAL,PORTB ANDAL,0FH CMPAL,0FH

JZWAIT;延时去抖动 MOVCX,7FFH

L0:LOOPL0;识别被按下的键 ST:MOVBL,3;行数送BL MOVBH,4;列数送BH

MOVAL,0FEH;扫描码,0行为0 MOVCL,0FH;列线屏蔽码送CL MOVCH,0FFH;置键号初值为-1

L1:OUTPORTA,AL;扫描一行 ROLAL DECBL

MOVAH,AL;修改扫描码并送AH保存 INAL,PORTB

ANDAL,CL

CMPAL,CL;读入列线值,检查是否有列线为0 JNZL2;有列线为0时转去找该列线 ADDCH,BH;否则,指向该行末列键号 MOVAL,AH;取回扫描码 DECBL

JNZL1;行数减1,未完成转下一行 JMPBEGIN

L2:INCCH;该列非0,检查下一列 RCRAL

JCL2;该列非0,检查下一列

MOVAL,CH;该列为0,键号送AL

JMPKEYTABLE;转查找键盘编码表子程序, 获取与键功能对应的键码

6.PC键盘的工作原理是什么?

答:PC系列键盘主要由8048单片机、译码器和16行×8列的键开关阵列三部分组成。

8048单片机完成键盘扫描、消抖并生成键扫描码、对扫描码进行并串转换,并将串行的键扫描码和时钟送到主机的工作。

单片机中的计数器用于定时工作方式,每96μs计数器增1。P20输出一个选通信号时,则行、列译码电路开始工作。8位计数器的b6~b3位和b2~b0位,经DB总线送至键盘阵列的行扫描、列扫描译码电路,进行行列扫描。

检测电路检测有无键按下,并将检测信号送至8048的T1脚。若有键按下,此时计数器的低7位的值为键扫描码,计数器最高位输出为0,8位键扫描码经P22串行输出。由DATA线以异步串行方式,将按键的扫描码送至键盘接口,在扫描码输出的同时,P20输出时钟信号。

8048最多可存20个键扫描码,P11、P10分别用于请求输入和命令输入。当键按下时,键盘向接口发送的是1字节的扫描码。当键抬起时,键盘向接口发送的断开

的扫描码是2字节,也就是在接通扫描码前,再加F0字节。 7.鼠标器的基本工作原理是什么?

答:鼠标器一般由位置传感器、专用处理芯片和采样机构组成。当鼠标器相对桌面移动时,采样机构按X,Y相垂直的方向把位置和距离信息送往传感器,由传感器将它们转换成脉冲信号,输入给专用的微处理器,然后由微处理器按照异步串行口(或并行口)通讯协议,将动作位移以相应的数据格式传送到计算机主机。 8.鼠标器按采样机构可分为哪几种?各有何特点?

答::鼠标器按采样结构可分为光机式、光电式、机械式等几种。

机械鼠标结构简单、价格便宜、操作方便,但准确度、灵敏度较差。 光电鼠标传送速率快,灵敏度和准度高,但需用专用垫板,价格较贵。

光机鼠采用的是非接触部件,使磨损率下降,从而大大提高了鼠标的寿命,也能在一定范围内提高鼠标的精度。光机鼠的外形与机械鼠没有区别,不打开鼠标的外壳,很难分辨。

9.鼠标与计算机的接口主要有哪几种形式?

答:鼠标器的接口标准主要有三种:串行接口、专用主板鼠标器端口(PS/2)、USB接口

10.说明CRT显示器的工作原理。

答:CRT显示器主要部分是阴极射线管。阴极射线管由阴极、栅极、加速极和聚焦极以及荧光屏组成。阴极用来发射电子,也叫电子枪。阴极发射的电子在栅极、加速极、高压极和聚焦极产生的电磁场作用下,形成具有一定能量的电子束,射到荧光屏上使荧光粉发光产生亮点,从而达到显示的目的。为了在整个屏幕上显示出字符或图形,必须采用光栅扫描方式。CRT显示器中有水平和垂直偏转线圈,电子枪产生的电子束通过水平偏转线圈产生的磁场后从左到右做水平方向移动,到右端之后,又立刻回到左端;通过垂直偏转线圈产生的磁场后从上到下做垂直方向移动,到底部之后,又立刻回到上面。 由于电子束从左到右、从上到下有规律地周期运动,在屏幕上会留下一条条扫描线,这些扫描线形成了光栅,这就是光栅扫描,。如果电子枪根据显示的内容产生电子束,就可以在荧光屏上显示出相应的图形或字符。 11.说明CRT屏幕光栅扫描过程。

答:为了在整个屏幕上显示出字符或图形,必须采用光栅扫描方式。CRT显示器中有水平和垂直偏转线圈,电子枪产生的电子束通过水平偏转线圈产生的磁场后从左到右做水平方向移动,到右端之后,又立刻回到左端;通过垂直偏转线圈产生的磁场后从上到下做垂直方向移动,到底部之后,又立刻回到上面。 由于电子束从左到右、从上到下有规律地周期运动,在屏幕上会留下一条条扫描线,这些扫描线形成了光栅,这就是光栅扫描,。如果电子枪根据显示的内容产生电子束,就可以在荧光屏上显示出相应的图形或字符。 12.CRT接口电路一般由哪些部分组成?简述各部分功能。

答:CRT接口电路一般由图形控制器、显示缓冲区、属性控制器、DAC、CRT控制器、时序发生器等几部分组成。

其中,图形控制器接收主机送来的显示数据,并可对数据进行与、或、异或和循环移位等逻辑运算,然后写入显示缓冲区。

显示缓冲区是一个动态随机存储器,用来存放显示字符的ASCII码和属性代码、字符点阵信息或者存放被显示图形的位图。VGA卡中显示缓冲区容量为256KB~512KB。

从显示缓冲区读出的像素值经移位寄存器转换成串行信号送入属性控制器,属性控制器的基本功能是将像素值转换成颜色值。

DAC将选出的颜色值转换成模拟信号,并输出至CRT显示器。 CRT控制器一方面产生水平和垂直同步信号送至CRT显示器,使CRT的电子束不断地从上到下,从左到右进行扫描,产生光栅。另一方面又工具电子束在屏幕上的行列位置,自动计算并生成显示缓冲区的相应地址,不断地控制读出显示缓冲区中的像素值。

时序发生器则产生CRT控制器及动态存储器所需的时序信号,用来解决主机处理器和VGA的图形控制器访问显示缓冲区的时序冲突。

视频BIOS是一个只读存储器,里面除了固化视频控制程序外,还固化有不同字符集的字符点阵,在文本显示模式下,充当字符发生器的角色。 13.视频显示标准有几种工作模式,各有何特点? 答:有两种工作模式,即文本模式和图形模式。

文本模式以字符为单位在屏幕上显示信息。在文本模式下,显示缓冲区内用两个字节地址空间为每个字符保存信息,其中一个字节用来保存字符ASCII码或扩充的ASCII码值,另一个字节则是用来存放字符的属性(如前景色,背景色及闪烁等)。对文本模式来说,显示转换分两步进行:首先,按照字符的ASCII码信息为每个扫描行构造出精确的点阵形式,然后通过移位寄存器把点阵码转换成串行的视频信号送显示器。

图形模式以像素为单位在屏幕上显示信息。在图形模式下,显示缓冲区以位的显示为每个像素保存信息,每个像素仅具有独立的颜色属性,没有形状,无闪烁,无背景颜色,也无数据。显示图形时,用描述像素颜色属性的二进制数的位数决定可同时显示的颜色数。当二进制数位为1时,可显示两种颜色;当二进制数位为4时,可显示16种颜色;当二进制数位为8时,可显示256种颜色。针对图形模式来说,显示转换所要做的工作是使用正确的属性,以正确的顺序来向显示器发送像素信号。

14.打印机的主要技术指标有哪些?

答:打印机的主要技术指标有分辨率、打印速度和行宽。

(1)分辨率:一般用每英寸的点数(dpi)表示,它决定了打印机的印字质量。一般针式打印机的分辨率为180dpi,激光打印机可达600dpi以上。

(2)打印速度:由于打印方式不同,一般采用每秒针打印字符数(dps)、每分钟打印行数(lpm)以及每分钟打印页数(ppm)表示。目前行式打印速度一般在600lpm以上,页式印字速度在8ppm以上。

(3)行宽:是指每行中打印的标准字符数,可分为窄行和宽行。窄行每行打印标准字符80个,宽行每行可打印120或180个标准字符。

除了以上主要技术指标以外,常考虑的还有功耗、稳定性和性能价格比等。 15.针式打印机由哪些部分组成?说明针式打印机的打印过程

答:主要由打印头、字车、色带、电磁传动机构、走纸机构等组成。

针式打印机的基本工作原理:打印机工作状态时,主机便向打印机发出一个8位数据。这时打印机向主机发出信号请求暂停,直到主机准备好,才发出下一个数据。打印机一旦收到数据,就按其字符发生器的点阵在列计数器的控制下一列一列地输出。列点经过列逻辑控制将其转换成打印针所需的脉冲信号,再经过驱动电路转换为线圈电流,使打印头中的打印针动作,即可打印出字符或图形。其原理简图下图所示。

ASCII码输入

打印头

16.简述喷墨打印机的工作原理。 答:喷墨打印机的工作原理简单地说,就是通过打印头上的微小喷嘴将墨盒中的细微墨粒喷射到纸张等介质上,形成墨滴点阵而构成各种文字或图形的。其主要技术环节是墨滴的形成及其充电和偏转。墨滴的控制方式很多,有电荷控制式、静电发射式和脉冲控制式等。 17.简述激光打印机的打印过程。

答:激光打印机的元件,最主要的有感光鼓(硒鼓)、充电元件及显像单位等。激光打印机的核心技术是电子成像技术,。激光打印的过程即是充电(Charging)、曝光(Exposure)、显影(Development)、转印(Transferring)、定影(Fusing)、清除(Cleaning)及除像(Erasing)等七大步骤的循环。具体地说,当使用者在应用程序中下达打印的指令后,整个激光打印流程的“充电”动作展开,也就是先在感光鼓上充上负电荷或正电荷,然后再将打印机处理器处理好的影像资料,透过光束,照射“曝光”到感光鼓上,形成所谓的静电潜像。接着让炭粉盒中的炭粉带电,此时快速转动的感光鼓上的静电潜像表面,经过炭粉盒时,便会吸附带电的炭粉,并“显影”出图文影像。然后再将打印机进纸盒牵引进来的纸张,透过“转印”的步骤,让纸面带相反的正电荷或负电荷,由于异性相吸的缘故,如此便能使感光鼓上的炭粉吸附到纸张上。为使炭粉更紧附在纸上,接下来则以高温高压的方式,将炭粉“定影”在纸上,这也是为何每张刚打印出来的纸张都热乎乎的原因。然后再以刮板将感光鼓上残留的炭粉“清除”。最后的动作即为“除像”,也就是除去静电潜像,使感光鼓表面的电位,回复到初始状态,以便展开下一个循环动作。

18.根据并行打印机的时序图,说明其数据传送过程。 答:并行打印机的数据传送过程如下:

①当主机要打印数据时,首先查BUSY信号。当BUSY=0,即打印机“不忙”时,主机通过数据总线DATA7~DATA0把数据送到数据总线上。 ②当数据在数据总线上稳定后,CPU发一个选通脉冲0.5μs),以便通知打印机接收数据。

③打印机收到选通信号,便发“忙”信号接收数据(

的下降沿将打印机

(宽度不小于

的BUSY置为高电平,表示打印机这时不能接收数据)。当数据存入行缓冲器之后,打印机发响应信号

(宽度为5μs的负脉冲),表示打印机准备好,可

接收新数据。④响应信号

的上升沿清“忙”信号,即置打印机为“不忙”状态,以便通

知主机再向打印机传送数据。

至此,一个数据传送结束。若要再传送下一个数据,就再重复上述过程。 19.并行打印机和PC系列机是如何连接的?

答:在打印机接口板输出端装有25芯的D-SHELL连接器,打印机具有36引脚的Centronics标准的插头插座。其传递的信息主要分为数据信号、状态信号和控制信号。打印机接口板和打印机通过25芯扁平电缆对接起来,实现系统与打印机的信息传递。

20.主机向打印机传送数据可采用哪两种控制方式?两种控制方式的初始化命令有何区别?

答:主机向打印机传送数据可采用查询和中断两种控制方式。 查询方式的初始化命令包括设定禁止中断、打印机联机选择和不自动换行的控制方式。

中断方式下初始化命令包括设定允许中断、打印机联机选择和不自动换行的控制方式。其程序与查询控制方式下的初始化过程PRT_INIT十分相似,其差别是选择屏蔽打印机中断,然后把送到控制寄存器的参数0CH改成1CH。

21.利用ROMBIOS的INT17H功能,编写一段打印程序。打印一缓冲区字符,并进行错误检测。

答:参考程序如下:

;打印缓冲区字符的子程序

;入口:DS:SI=缓冲区段址:位移 PRT_BUFPROCNEAR JMPPRT_CHAR

MESG_1DB0DH,0AH,'Printeroutoftime,Strikeanykeywhenready.$' MESG_2DB0DH,0AH,'Printeroffline,Strikeanykeywhenready.$'

MESG_3DB0DH,0AH,'Printeroutofpaper,Strikeanykeywhenready.$‘ ;发送一个字符并检测错误状态

PRT_CHAR:MOVAH,0;打印一个字符 MOVDX,0;选择LPT1

LODSB;取打印字符

INT17H;输出到打印机

TESTAH,000010001B;有“超时”及“出错”否

JZERROR;不是,继续检测

LEADX,CS:MESG_1;取“超时信息” JMPDISP;转显示

ERRORR:TESTAH,08H;是否“错误”

JZEXIT;否,正常退出

TESTAH,20H;是否“纸尽” JZOFF_LINE;否。转脱机处理

LEADX,CS:MESG_3;取“纸尽信息” JMPDISP;转显示

OFF_LINE:LEADX,CS:MESG_2;取“脱机信息”

DISP:DECSI;恢复原入口指针

PUSHDS;保存DS PUSHCS;DS指向CS POPDS

MOVAH,9;DOS显示字符串 INT21H

POPDS;恢复DS

MOVAH,0;等待用户响应 INT16H

EXIT:RET;返回调用

PRT_BUFENDP

22.简述LCD液晶显示器的工作原理。

答:液晶显示器的工作原理。当外部光线通过上偏振片后形成偏振光,偏振方向成垂直排列。当此偏振光通过液晶材料之后,被旋转900,偏振方向成水平方向,此方向与下偏振片的偏振方向一致,因此,此光线能完全穿过下偏振片而达到反射极,经反射后沿原路返回,从而呈现出透明状态。当液晶盒的上、下电极加上一定的电压后,电极部分的液晶分子转成垂直排列,从而失去旋光性。因此,从上偏振片入射的偏振光不被旋转,当此偏转光到达下偏振片时,因其偏振方向与下偏转片的偏振方向垂直,因而被下偏振片吸收,无法到达反射板形成反射,所以呈现出黑色。根据需要,将电极做成各种文字、效字或点阵,就可获得所需的各种显示。

23.扫描仪的主要性能指标有哪些?有哪几种主要的接口?

答:扫描仪的主要性能指标有分辨率、色彩位数、幅面、扫描速度等。扫描仪接口标准主要有SCSI、EPP、USB及IEEE1394几种。

24.触摸屏按工作原理不同可分几类?各自的工作原理是什么?

答:触摸屏按工作原理不同可分为四种,分别为电阻式、电容感应式、红外线式以及表面声波式。

电阻式触摸屏的主要部分是一块与显示器表面配合非常好的电阻薄膜屏,这是一种多层的复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。当手指触摸屏幕时,平常绝缘的两层导电层在触摸点位置就有了一个接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,再根据模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。

电容式触摸屏是利用人体的电流感应进行工作的。电容式触摸屏是一块四层复合玻璃屏,玻璃屏的内表面和夹层各涂有一层ITO导电层,最外层是一层只有0.0015毫米厚的矽土玻璃保护层。夹层ITO涂层作为工作面,四个角上引出四个电极,内层ITO为屏蔽层以保证良好的工作环境。当手指触摸在金属层上时,由于人体电场,用户和触摸屏表面形成一个耦合电容,对于高频电流来说,电容是直接导体,于是手指从接触点吸走一个很小的电流。这个电流从触摸屏的四角上的电极中流出,并且流经这四个电极的电流与手指到四角的距离成正比,控制器通过对这四个电流比例的精确计算,得出触摸点的位置。

红外线触摸屏,一般是在显示器屏幕的前面安装一个外框,外框里有电路板,

框架四周有排布均匀的红外发射管和红外接收管,一一对应形成横竖交叉的红外线矩阵。当有触摸时,手指或其它物体就会挡住经过该点的横竖红外线,由控制器判断出触摸点在屏幕的位置。表面声波式触摸屏是根据被触摸点声波能量的变化来定位的,由一块与显示器相吻合的玻璃及相应控制器组成。它的优点是不影响显示质量,可以检测压力大小,但对环境要求高,且分辨率为中等,反应速度慢。

25.数码相机的工作原理和主要性能指标是什么?其接口种类有哪些?

答:数码相机的工作原理:数码相机主要由CCD、成像镜头和存储设备三大部分组成。其核心是CCD图像传感器,它是数码相机中用来感测光线,取代传统银盐相机的关键部件,其作用相当于传统相机中的胶卷。数码相机在工作时,首先通过镜头将被摄景物成像在CCD上。在光线的作用下,CCD将光线作用强度转化为电荷的积累,并经模数转换(A/D)芯片转换成数字信号,传输给相机中的缓存。然后,微处理器MPU读出缓存中的数字信号,判读成图像信号后,再将其压缩,由相机内部的快速闪速存储器或移动式存储卡保存下来,形成图像文件。需要时,可通过相机接口将图像传给电脑,以决定是否编辑修改或打印输出。数码相机上一般都配有彩色液晶显示屏(LCD),用以观看拍摄到的景像。

数码相机的主要性能指标有像素水平、色彩位数及相当感光度等。

数码相机与计算机的接口主要有RS-232串口、USB口、IEEEl394接口及红外接口。

26.视频采集卡的功能是什么?其主要由哪几部分组成?

答:视频采集卡的功能主要是从摄像机、录像机或视频网络上逐帧捕捉图像,并把它数字化,对数字化图像数据进行压缩与解压缩,将捕捉的图像或解压缩生成的图像与计算机生成的文字或图形叠加在仪器送至显示器显示;还可以将计算机输出的图像转换成标准的模拟视频信号记录在录像带上或电视机播放出来。

视频采集卡一般由视频通道多路转换器、A/D转换器、输入查找表、图像帧缓冲器、视频压缩/解压缩处理器、音频压缩/解压缩处理器、帧缓冲器输出查找表、视频D/A转换器及模拟输出混合器组成。

27.数字化仪的功能是什么?它有哪些主要技术指标?常见的数字化仪有哪几种? 答:数字化仪是在专业应用领域中一种用途非常广泛的图形输入设备,由电磁感应板、游标和相应的电子电路组成。当使用者在电磁感应板上移动游标到指定位置,并将十字叉的交点对准数字化的点位时,按动按钮,数字化仪则将此时对应的命令符号和该点的位置坐标值排列成有序的一组信息,然后通过接口(多用串行接口)传送到主计算机。

数字化仪的主要技术指标有有效图形幅面、有效图形准确度、有效图形分辨率和有效图形转换速率。

常见的数字化仪有DrawingBoardV系列数字化仪、胜马SummaSketchIII系列数字化仪和MicroScribe-3D三维数字化仪等。

习题13

13.1、什么是模拟量接口?在微机的哪些应用领域中要用到模拟接口? 13.2、D/A转换器的主要参数有哪几种?反映了D/A转换器什么性能? 13.3、A/D转换器的主要参数有哪几种?反映了A/D转换器什么性能?

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

13.5、DAC0832有哪几种工作方式?每种工作方式使用于什么场合?

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

13.7、DAC与8位总线的微机接口相连接时,如果采用带两级缓冲器的DAC芯片,为什么有时要用三条输出指令才能完成12位的数据转换?

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

13.9、A/D转换器和微机接口中的关键问题有哪些?

13.10、ADC0809中的转换结束信号(EOC)起什么作用?

13.11、求逐次比较式A/D转换器在输入电压等于2V、4V、1.5V、-2.5V、-4.5V时输出的二进制编码等于多少?(设输入电压范围为-5V~+5V)

13.12、D/A转换器DAC0832接口电路如题图13-1所示,分析该电路的连接和DAC0832的外部特性,然后回答以下3个问题:

(1)若要求DAC0832按直通方式工作,则8255的B口将如何设置? (2)如何利用该图产生指定输出幅度范围(1V~4V)的锯齿波? (3)编写幅度受限的锯齿波程序。

设8255A的端口地址为:300H(A口),301H(B口),302H(C口),303H(命令口),DAC0832的参考电压VR=5V。

习题十三参考答案

13.1答:连接CPU与A/D、D/A转换器之间的接口称为模拟量接口。微机在实时控制、在线测量和对物理、化学过程进行监控,以及图像、语音处理等领域的应用中都要用到模拟接口。

13.2答:主要有分辨率、转换精度、温度灵敏度、建立时间等几个指标。 (1)分辨率

这个参数反映了D/A转换器对模拟量的分辨能力,是最小输出电压(对应的输入数字量只有D0位为1)与最大输出电压(对应的输入数字量所有位全为1)之比。 (2)转换精度

转换精度表明了模拟输出实际值与理想值之间的偏差。精度可分为绝对精度和相对精度。绝对精度是指在输入端加入给定数字量时,在输出端实测的模拟量与理论值之间的偏差。相对精度是指当满量程值校准后,输入的任何数字量所对应的模拟输出值与理论值的误差。

D/A转换器的转换精度与D/A转换器的本身芯片的结构和与外接电路的配置有关。外接运算放大器,外接参考电源,都可影响D/A转换器的精度。 (3)温度灵敏度

这个参数表明D/A转换器受温度变化影响的特性。它是指数字输入不变的情况下,模拟输出信号随温度的变化。一般D/A转换器温度灵敏度为±50PPM/℃。1PPM为百万分之一。 (4)建立时间

建立时间是指从数字输入端发生变化开始,到输出模拟值稳定在额定值的±1/2LSB时所需时间。它是表明了D/A转换速率快慢的一个重要参数。

13.3答:主要有分辩率、转换时间、量程和精度等几个主要参数。 (1)分辨率

分辨率是指A/D转换器能分辨的最小模拟输入量。通常用能转换成的数字量的位数来表示,如8位、10位、12位、16位等。位数越高,分辨率越高。 (2)转换时间

转换时间是A/D转换器完成一次转换所需的时间 (3)量程

量程是指所能转换的输入电压范围。 (4)精度

精度是指与数字输出量所对应的模拟输入量的实际值与理论值之间的差值。A/D转换电路中与每一个数字量对应的模拟输入量并非是单一的数值,而是一个范围Δ。

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

13.5答:(1)双缓冲方式:数据通过二个寄存器锁存后送入D/A转换电路,执行两次写操作才能完成一次D/A转换。这种方式特别适用于要求同时输出多个模拟量的场合。

(2)单缓冲方式:两个寄存器中的一个处于直通状态,输入数据只经过一级缓冲送入D/A转换器电路。在这种方式下,只需执行一次写操作,即可完成D/A转换,可以提高DAC的数据吞吐量。

(3)直通方式:两个寄存器都处于直通状态,即ILE、CS、WR1、WR2和XFER都处于有效电平状态,数据直接送入D/A转换器电路进行D/A转换。这种方式可用于一些不采用微机的控制系统中。

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

于是,下限是取51,即33H。

上限是取205,即CDH。

13.7答:因为在使用内部不带数据寄存器的DAC时,常常需要在DAC前面增加数据缓冲器,用来锁存CPU通过数据总线发出的数字。如果总线为8位,而DAC超过8位(例如12位)时,CPU必须分2次才能把控制数字送入数据缓冲器,例如先送数据的低8位,然后送剩下的高4位,因此需要执行2条输出指令。另外,为了避免DAC在得到局部输入时,其输出端输出并不是最后结果的模拟量,通常采用2级数据缓存结构,相应地CPU也需要再增加执行一次输出指令,使在第一级缓冲器中锁存的数据经第二级缓冲器后能一次加到DAC输入端。第三条输

出指令仅仅是使第二级缓冲器得到一个选通信号。 13.8答:12位D/A的分辨率 最小分辨率电压VLSB

13.9答: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.10答:A/D转换结束,EOC变为高电平,指示A/D转换结束。此时,数据已保存到8位锁存器中。EOC信号可作为中断申请信号,通知CPU转换结束,可以读入经A/D转换后的数据。中断服务程序所要作的事情是:使OUTPUTENABLE信号变为高电平,打开ADC0809三态输出,由ADC0809输出的数字量传送到CPU。EOC信号也可作为查询信号,查询EOC端是否变为高电平状态。若为低电平状态等待,若为高电平状态,使OUTPUTENABLE信号变为高电平,打开ADC0809三态门输出数据。

13.11解:U

-5V~00H(0) +5V~FFH(255)

则线中任一点,可由线性插值方程得到:1)V=-4.5V,则2)V=-2.5V,则

3)V=1.5V,则4)V=2V,则5)V=4V,则

13.12解:(1)根据题图13-1的信号线连接情况和DAC0832的外部特性,若要求使DAC0832工作于直通方式,则8255A的PB0~PB7引脚应设置为00000001B,即向B口(301H)输出01H代码。 (2)若要求输出的锯齿波幅度不是从0增长到最大值FFH,就需要分别确定上下限所对应的数据。根据DAC0832的参考电压VR=5V,需输出的锯齿波幅度是从1V到4V,则可计算出对应下限电压与上限电压的数字量,然后,将此数字量按从小到大循环输出到DAC0832,就可得到一个幅度受限的锯齿波。

对应参考电压VR=5V,每一步的电压变化量为:

对应下限1V的数字量为:取整为51步,或33H。 对应上限4V的数字量为:

取整为205步,或CDH。 (3)具体程序段如下: ;8255A初始化

MOVDX,303H;8255A命令口 MOVAL,;方式命令字 OUTDX,AL ;B口的设置

MOVDX,301H;B口的地址

MOVAL,00000001B;置DAC0832为直通方式 OUTDX,AL

;产生幅度受限锯齿波

START:MOVDX,300H;A口的地址 MOVAL,33H;设置下限电压 LOP:OUTDX,AL INCAL;递增

CMPAL,0CDH;到了上限电压? JNELOP;未到,继续

JMPSTART;已到,再从下限开始

13.13答:假设ADC0809的EOC信号接到8259A的IRQ2上面,则中断类型号为0AH。

主程序在完成通常的初始化工作(如初始化段寄存器)之后,还需要完成中

断向量的装载;而中断服务子程序则负责完成数据的发送。

DATASEGMENT

BUFDB100 DUP(?);预留100个字节的地址以放数据 OLDOFFDW?;旧中断向量的偏移地址部分 OLDSEGDW?;旧中断向量的段基址部分 DATAENDS CODESEGMENT

ASSUMECS:CODE,DS:DATA STARTPROCFAR;主程序

;-------常规初始化-------------------------------------------------

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA MOVDS,AX

;--------取0AH号中断的原中断向量并保存----------------- CLI

MOVAL,0AH MOVAH,35H INT21H

MOVOLDSEG,ES MOVOLDOFF,BX

;--------设置新中断向量-------------------------------------------- PUSHDS

MOVAX,SEGRECIVE;取当前中断服务程序入口的段基址 MOVDS,AX

MOVDX,OFFSETRECIVE;取当前中断服务程序入口的偏移量 MOVAL,0AH;中断类型号为0AH MOVAH,25H

INT21H;将当前中断服务程序入口地址送向量表 POPDS

LEADI,BUF1;DI指向存数的首地址 MOVCX,100;共采集100个数据

MOVDX,04A0H;启动ADC0809进行数据采集 OUTDX,AL STI;开中断

;--------等待中断传送数据---------------------------------------------- WAT:CMPCX,0 JNZWAT

;--------发完数据后恢复原中断向量--------------------------------- MOVDX,OLDSEG MOVDS,OLDOFF MOVAL,0AH MOVAH,25H

INT21H

RET

STARTENDP

RECIVEPROCFAR;中断服务子程序

PUSHAX PUSHDX PUSHSI

MOVDX,04A0H;假设ADC0809的端口地址为04A0H INAL,DX;从ADC0809读取数据 MOV[DI],AL;转存到内存的某个区间去 MOVDX,INTA00;8259偶地址 MOVAL,20H

OUTDX,AL;发出中断结束命令 INCDI;修改数据区指针 DECCX;计数器减1

OUTDX,AL;再次启动A/D转换 STI;开中断,允许下次中断 POPSI POPDX POPAX IRET RECIVEENDP CODEENDS

ENDSTART

13.14解:硬件连接如图10.18所示。EOC信号通过一个三态门接总线的DO引脚。

MOVDI, 0300H;设置存放数据的首址 MOV BL, 08H;采集8次计数器 MOV AH, 00H;选0通道

AA1∶ MOV AL,AH

MOV DX,ADPORT;设置ADC0809芯片地址

OUT DX,AL;使ALE、START有效,选择模拟通道,见图10.18 MOVDX,EOCPORT

INAL,DX;查询EOC信号

WAIT∶ TESTAL,01H JZWAIT

MOVDX,ADPORT

INAL,DX;使OUTPUTENABLE有效,输入数据,见图10.18 MOV[DI],AL;保存数据

INCAH;换下一个模拟通道 INCDI;修改数据区指针 DECBL JNZAA1

13.15答:引脚信号说明如下。

:输出数据方式选择控制信号。当接高电平时,输出数据是12位字长,当

接低电平时,将转换后的数变成两个8位数据输出。

A0:转换数据长度选择控制信号。当A0为高电平,启动转换,进行8位转换,当A0为低电平,启动转换,进行12位转换。 CS:片选信号。

:读出或转换控制选择信号。当为低电平时,启动转换,当为高电平时,可将转换后的数据读出。

CE:芯片允许信号。该信号与CS信号一起有效时,AD574才可以进行转换或从AD574输出转换后的数据。

启动转换或读出数据时,CS、CE、R/、A0、12/8等控制信号的配合关系如教材表10.2所示。

因篇幅问题不能全部显示,请点此查看更多更全内容