• 816.00 KB
  • 2022-04-22 11:46:34 发布

微机系统与接口技术答案(熊江、杨凤年、成运).doc

  • 93页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'课后习题参考答案习题一参考答案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.C2H1.2①10101.01B=21.25D②11001.0011B=25.1875D③111.01B=7.25D④1010.1B=10.5D1.3①756.07Q=111101110.000111B=494.109D②63.73Q=110011.111011B=51.922D③35.6Q=11101.110B=29.75D④323.45Q=11010011.100101B=211.578D1.4①A7.8H=167.5D②9AD.BDH=2477.738D③B7C.8D=2940.551D④1ECH=492D1.5①[+127]补=01111111②[-1]补=11111111③[-0]补=00000000④[-128]补=100000001.6①[+355]补=0000000101100011②[-1]补=11111111111111111.7答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统,存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。1.8答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影响。微计算机包括微处理器、存储器、I/O接口电路及系统总线。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。1.9答:从体系结构上可分为5代:4004:4位机;8080/8085:8位机; 8086/8088/80286:16位机;80386/80486:32位机;Pentium系列机:64位。习题二参考答案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、答:物理地址:C21A0H。 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微处理器有以下几种寻址方式:①立即寻址。操作数(仅限源操作数)直接放在指令中。例如: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.答:指令源操作数寻址方式AX的内容MOVAX,1200H立即寻址1200HMOVAX,BX寄存器寻址0BBHMOVAX,[1200H]直接寻址4C2AHMOVAX,[BX]寄存器间接寻址231AHMOVAX,[BX+11H]寄存器相对寻址3F68HMOVAX,[BX+SI]基址变址寻址8934HMOVAX,[BX+SI+11H]相对基址变址寻址5B56HMOVAX,[BP+DI]基址变址寻址6778H3.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)=2234HLEASI,[1000H];(SI)=1000HLDSSI,[1000H];(SI)=2234H,(DS)=5566H3.5答:先进后出。9BBF0H-4=9BBECH9BBECH+2=9BBEEH3.6答:PUSHAXPUSHBXPOPAXPOPBX3.7答:MOVAX,7FHADDAX,13.8答:⑴ADDAL,12H⑵ADC[BX],AX⑶SUBAX,BX⑷MOVAX,[BX+SI]⑸MOVSI,BUF13.9答:DX=FAD1H,AX=2340H 3.10答:AX=300H3.11答:①循环左移movcl,4rolal,cl②循环右移movcl,4roral,cl③右移movcl,4shral,cl3.12答:从末端开始传送即可解决重叠问题。movcx,200movsi,offsetaera1addsi,200movdi,offsetaere2adddi,200std;DF=1,进行地址减量repmovsb3.13答:MOVCL,4MOVAL,BL;处理最低位十六进制数ANDAL,0FH CMPAL,0AHJCDIGT4ADDAL,7DIGT4:ADD,AL,30HMOVL4,ALMOVAL,BL;处理次低位十六进制数SHRAL,CLCMPAL,0AHJCDIGT3ADDAL,7DIGT3:ADD,AL,30HMOVL3,ALMOVAL,BH;处理次高位十六进制数ANDAL,0FHCMPAL,0AHJCDIGT2ADDAL,7DIGT2:ADD,AL,30HMOVL2,AL MOVAL,BH;处理最高位十六进制数SHRAL,CLCMPAL,0AHJCDIGT1ADDAL,7DIGT1:ADD,AL,30HMOVL1,AL3.14答:LEASI,BUFLEABX,ASCMOVCH,100MOVCL,4AGAIN:MOVAL,[SI];处理低位BCD码ANDAL,0FHADDAL,30HMOV[BX],ALINCBXMOVAL,[SI];处理高位BCD码SHRAL,CLADDAL,30HMOV[BX],ALINCBX INCSIDECCHJNZAGAIN3.15答:(1)MOVBX,-78;(BX)=FFB2HMOVSXEBX,BX;(EBX)=FFFFFFB2H(2)MOVCL,-5;(CL)=FBHMOVSXEDX,CL;(EDX)=FFFFFFFBH(3)MOVAH,9;(AH)=9HMOVZXECX,AH(ECX)=00000009H(4)MOVAX,87H;(AX)=87HMOVZXEBX,AX;(EBX)=00000087H3.16答:MOVECX,12345678H;(ECX)=12345678HBSFEAX,ECX;(EAX)=00000003HBSREBX,ECX;(EBX)=0000001CH3.17答:MOVCX,100LEABX,TABAGN:MOVAL,[BX]ADDAL,0JPNEXTORAL,80HNEXT:OUT10H,AL INCBXLOOPAGN3.18答:假设数组的起始地址是BUFFERLEABX,BUFFERMOVDX,0MOVCX,100ONCE:MOVAL,[BX]TESTAL,80H;是正数还是负数JNZFUSHU;是负数,跳转CMPAL,0;是0吗?JZNEXTINCDH;是正数,则DH加1JMPNEXTFUSHU:INCDL;是负数,则DL加1NEXT:INCBXDECCXJNZONCEMOVPOSIT,DHMOVNEGAT,DL习题四参考答案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,@datamovds,ax汇编语言程序设计过程中,有多种返回DOS的方法,但一般用DOS功能调用的4CH子功能来实现。应用程序的终止代码是:movax,4c00hint21h汇编结束是指汇编程序结束将源程序翻译成目标模块代码的过程。源程序的最后必须有一条end伪指令:end[标号];其中,可选的标号是程序指定的开始执行点,连接程序以此设置CS和IP。如:endstart4.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;89ABH4.7.答:(1)42H43H44H0AH10H45H46HFFH-04H04H04HFFH -04H04H04H(2)34H12HFBHFFH------------ 4.8答:(1)myl_bdb‘PersonalComputer!’(2)my2_bdb64H(3)my3_wdw100dup(?)(4)my4_cequ100(5)my5_cequ4.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],1234h4.10答:.MODELSMALL.DATAXDW1234HYDW4321HMAXDW?.CODESTART:MOVAX,@DATAMOVDS,AXMOVAX,XCMPAX,Y JNZNEQUMOVMAX,0FFFFHJMPSTOPNEQU:JCNEXTMOVMAX,XJMPSTOPNEXT:MOVMAX,YSTOP:MOVAX,4C00HINT21HENDSTART4.11答:.MODELSMALL.DATADATDW9234HSIGNDW?.CODESTART:MOVAX,@DATAMOVDS,AXMOVAX,DATCMPAX,0JZSTOPTESTAX,8000HJNZFU MOVSIGN,0JMPSTOPFU:MOVSIGN,0FFHSTOP:MOVAX,4COOHINT21HENDSTART4.12答:DISPLAYMACROMOVAH,2INT21HENDM.MODELSMALL.DATAXDW1230HYDW1234HZDW1234H.CODESTART:MOVAX,@DATAMOVDS,AXMOVAX,XMOVBX,YCMPAX,Z JNZN1CMPAX,BXJNZN2MOVDL,"Y"DISPLAYSTOP:MOVAX,4C00HINT21HN1:CMPAX,BXJNZN3N2:MOVDL,"X"DISPLAYJMPSTOPN3:CMPBX,ZJNZN4JMPN2N4:MOVDL,"N"DISPLAYJMPSTOPENDSTART4.13答:.MODELSMALL.DATA DATDB12H,23H,0F3H,6AH,20H,0FEH,10H,C8H,25H,34HSUMDW?.CODESTART:MOVAX,@DATAMOVDS,AXMOVCX,10MOVDX,0LEABX,DATAGAIN:MOVAL,[BX]CBWMOVDX,AXINCBXLOOPAGAINMOVSUM,DXMOVAX,4C00HINT21HENDSTART4.14答:.MODELSMALL.CODESTART:MOVAX,2000HMOVDS,AX MOVSI,0MOVDX,0MOVCX,0FFFFHAGAIN:MOVAL,[SI]CMPAL,20HJNZNEXTINCDXNEXT:INCSILOOPAGAINMOVAX,4C00HINT21HENDSTART4.15.答:procnamePROC[attributesfield][USESregisterlist][,parameterfield]┇ProcnameENDPpush和pop的使用是为了保护子程序的调用的现场,比如寄存器的值。本例中要保护的寄存器是ax和dx。jiafaPROC;用CX,BX传参数――数据的个数和数据的起始地址,结果放在字内存单元SUM和SUM+1pushaxpushdx xorax,axxordx,dxagain:addax,[bx]adcdx,0incbxincbxloopagainmovsum,axmov[sum+1],dxpopdxpopaxretjiafaENDP4.16答:.MODELSMALL.CODESTART:MOVCX,16MOVBL,0;BL中放0的个数AGN:SHLAX,1;数0的个数JCNEXTINCBLNEXT:LOOPAGN MOVAL,BLDAAMOVDL,AL;显示高位ANDDL,0F0HMOVCL,4SHRDL,CLADDDL,30HMOVAH,2INT21HMOVDL,AL;显示低位ANDDL,0FHADDDL,30HMOVAH,2INT21HMOVDL,0DH;显示回车MOVAH,2INT21HMOVDL,0AH;显示换行MOVAH,2INT21HMOVAX,4C00HINT21H ENDSTART4.17.答:1、用寄存器传参数。2、用共享变量传参数。3、用堆栈传参数。4.18.答:设这个32位数放在DX.AX中,求补后的结果也放在DX.AX中。BUMAPROCPUSHBXPUSHCXXORBX,BXXORCX,CXSUBBX,AXMOVAX,BXSBBCX,DXMOVDX,CXPOPCXPOPBXRETBUMAENDP4.19答:设数据个数在CX中,数据缓冲区的首地址为BUF。出口参数:校验和放在SUM字节单元。CHKSUMPROCPUSHAXPUSHBXDECCX LEABX,BUFMOVAL,[BX]AGN:ADDAL,[BX]INCBXLOOPAGNMOVSUM,ALPOPBXPOPAXRETCHKSUMENDP4.20答:设这个十六进制的字放在数据段的TEMP字单元中。BTOHPROCPUSHAXPUSHBXPUSHCXPUSHDXMOVCL,4MOVBX,TEMPMOVDL,BH;最高位SHRDL,CLCMPDL,0AHJCN1 ADDDL,7N1:ADDDL,30HMOVAH,2INT21HMOVDL,BH;次高位ANDDL,0FHCMPDL,0AHJCN2ADDDL,7N2:ADDDL,30HMOVAH,2INT21HMOVDL,BL;次低位SHRDL,CLCMPDL,0AHJCN3ADDDL,7N3:ADDDL,30HMOVAH,2INT21HMOVDL,BL;最低位ANDDL,0FH CMPDL,0AHJCN4ADDDL,7N4:ADDDL,30HMOVAH,2INT21HPOPDXPOPCXPOPBXPOPAXRETBTOHENDP4.21答:.MODELSMALL.DATABUFDW9273H,0F3H,6A20H.CODESTART:MOVAX,@DATAMOVDS,AXLEABX,BUFMOVAX,[BX]CMPAX,[BX+2] JBN1XCHGAX,[BX+2]MOV[BX],AXN1:MOVAX,[BX+2]CMPAX,[BX+4]JBN2XCHGAX,[BX+4]MOV[BX+2],AXN2:MOVAX,[BX]CMPAX,[BX+2]JBSTOPXCHGAX,[BX+2]MOV[BX],AXSTOP:;INT3MOVAX,4C00HINT21HENDSTART4.22答:DISPLAYMACROMOVAH,2INT21HENDM .MODELSMALL.DATADATDB9CH.CODESTART:MOVAX,@DATAMOVDS,AXMOVAL,DATCMPAL,0JZZEROJNSPOSIMOVDL,’-’DISPLAYSTOP:MOVAX,4C00HINT21HZERO:MOVDL,’0’DISPLAYJMPSTOPPOSI:MOVDL,’+’DISPLAYJMPSTOPENDSTART4.23答: .MODELSMALL.CODESTART:XORBX,0MOVCX,200MOVDX,1AGN:ADDBX,DX;求和INCDXINCDXLOOPAGNCALLBTOHMOVAX,4C00HINT21HBTOHPROCMOVCL,4MOVDL,BH;最高位SHRDL,CLCMPDL,0AHJCN1ADDDL,7N1:ADDDL,30HMOVAH,2INT21H MOVDL,BH;次高位ANDDL,0FHCMPDL,0AHJCN2ADDDL,7N2:ADDDL,30HMOVAH,2INT21HMOVDL,BL;次低位SHRDL,CLCMPDL,0AHJCN3ADDDL,7N3:ADDDL,30HMOVAH,2INT21HMOVDL,BL;最低位ANDDL,0FHCMPDL,0AHJCN4ADDDL,7N4:ADDDL,30H MOVAH,2INT21HRETBTOHENDPENDSTART4.24答:.MODELSMALL.DATADATDB……;准备100个数RESULTDW?.CODESTART:MOVAX,@DATAMOVDS,AXMOVCX,99LEASI,DATMOVDL,[SI]MOVDH,DLINCSIMOVBX,SIAGN1:CMPDH,[SI];求出最大值JNBNEXT1MOVDH,[SI] NEXT1:INCSILOOPAGN1MOVCX,99AGN2:CMPDL,[BX];求出最小值JBNEXT2MOVDL,[BX]NEXT2:INCBXLOOPAGN2XORAX,AX;求和ADDDH,DLMOVAL,DHADCAX,0MOVRESULT,AX;int3MOVAX,4C00HINT21HENDSTART4.25答:DPLY0MACROMOVDL,30HMOVAH,2INT21H ENDMDPLY1MACROMOVDL,31HMOVAH,2INT21HENDM.MODELSMALL.DATACNTDW0AB3FH;准备数.CODESTART:MOVAX,@DATAMOVDS,AXMOVBX,CNTMOVCX,16AGN:SHLBX,1JCNEXTDPLY0LOOPAGNNEXT:DPLY1LOOPAGNMOVAX,4C00HINT21H ENDSTART4.26答:.MODELSMALL.DATASTRGDB……;准备字符串.CODESTART:MOVAX,@DATAMOVDS,AXLEASI,STRGMOVCX,100AGN:MOVAL,[SI]CMPAL,61HJBN1CMPAL,7AHJAN1SUBAL,20HN1:INCSILOOPAGNMOVAX,4C00HINT21H4.27答:DISPLAYMACRO;将BL中的数以十进制显示 MOVAL,BL;百位MOVAH,0MOVBH,100DIVBHMOVBL,AH;保留余数CMPAL,1JNZNOMOVDL,31HMOVAH,2INT21HNO:MOVAL,BL;十位MOVAH,0MOVBH,10DIVBHMOVBL,AH;保留余数MOVDL,ALADDDL,30HMOVAH,2INT21HMOVDL,BL;个位ADDDL,30HMOVAH,2 INT21HENDM.MODELSMALL.DATADATDB……;准备100无符号字数据.CODESTART:MOVAX,@DATAMOVDS,AXLEASI,DATMOVCX,100CALLTONGJIDISPLAYMOVAX,4C00HINT21HTONGJIPROC;统计起始地址为SI,长度为CX内存中的奇数个数,结果放在BLMOVBL,0AGN:MOVAL,[SI]TESTAL,01HJZNEXTINCBLNEXT:INCSI LOOPAGNRETTONGJIENDPENDSTART4.28答:学习条件汇编的使用。MOVAL,DATBMOVBL,SCAlEIFESIGNMOVAH,0DIVBLENDIFIFSIGNCBWIDIVBLENDIFMOV[RESULT],AL;商MOV[RESULT+1],AH;余数习题五参考答案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答:FFH5.7答:全译码方式:所有的系统地址线都参与对存储单元的译码寻址。其中,低位地址线对片内存储单元进行译码寻址(片内译码),高位地址线对存储芯片进行译码寻址(片选译码),在此方式下,每个存储单元的地址都是唯一的,无重复地址,但译码电路复杂,连线较多。部分译码方式:只有部分高位地址线参与对芯片的译码,对于被选中的芯片,这些未参与译码的高位地址可以是0也可以是1,因此,每个存储单元对应多个地址(地址重复),需要选取一个可用地址。此译码方式可简化译码电路的设计,但地址重复,系统的部分地址空间被浪费。线选方式:只有少数几根高位地址线参与芯片的译码,且每根负责选中一个芯片(组),此方法构成简单,但地址空间严重浪费,有地址重复现象。5.8答:2KB。5.9答:14根地址线,1根数据线。5.10答:触发器电路(6个晶体管)、电容、刷新5.11答:(16)、(11、35.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.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。栈顶三个字的内容为:000FAH12H000FBH02H000FCHC2H000FDH13H000FEH40H 000FFH02H6.17、答:因为在CPU响应中断时,会把中断允许标志位设置为0,即禁止CPU再响应可屏蔽中断,在中断处理程序的入口处使用STI指令开放中断,允许响应更高级的中断,实现中断嵌套。6.18、答:INAL,21HORAL,0FDHOUT21H,AL6.19、答:MOVAL,13HOUT280H,ALMOVAL,10HOUT21H,ALMOVAL,01HOUT21H,AL习题七参考答案7.1答:MOVAL,80HOUT200H,ALINAL,203HMOVBL,ALINAL,203H, MOVBH,ALMOVAX,BX7.2答:要输出脉冲周期为1ms,输出脉冲的频率是,当输入时钟频率为2MHz时,计数器初值是使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。设控制口的地址是200H,计数器0的地址是202H。程序段如下:MOVDX,200HMOVAL,76HOUTDX,,ALMOVDX,202HMOVAX,2000OUTDX,ALMOVAL,AHOUTDX,AL7.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==2000Hz的对称方波。三个OUT的输出波形如下:习题八参考答案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;屏蔽通道2MOVDX,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基地址为4000HMOVDX,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.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,82HMOVDX,0063HOUTDX,AL(2)MOVAL,C4HMOVDX,0063HOUTDX,AL(3)MOVAL,B6HMOVDX,0063HOUTDX,ALMOVAL,0BDHOUTDX,AL(4)MOVAL,B1HMOVDX,0063HOUTDX,AL9.5、设8255A的4个端口地址为90H~93HCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,82HMOVDX,93HOUTDX,ALINAL,91HTESTAL,01HJNZLOOP1MOVAL,00HOUT90H,ALLOOP1:MOVAL,FFHOUT90H,ALCODEENDS ENDSTART9.6、MOVAL,94HMOVDX,83HOUTDX,AL9.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.1答:串行通信与并行通信相比,其基本特点有:(1)信息在1根传输线上,一位一位按位串行传送,且数据和控制联络信息混在一起进行传送。(2)串行传送的数据有固定的格式。(3)串行通信,既可用于近距离,也可用于远距离,远距离传送要使用MODEM。(4)串行通信,采用负逻辑和高压电平,与TTL电平不兼容。(5)串行通信要求双方的传输速率必须一致,故须进行传输速率控制。 (1)串行通信易受干扰,出错难以避免,故须进行差错控制。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,0C2HMOVAL,11001111B;8位数字,不带校验,2位停止位,波特率系数为64OUTDX,AL MOVAL,00010101B;允许发送也允许接受OUTDX,AL10.14答:设8251A数据口地址为0C0H,控制口地址为0C2H。MOVDX,0C2HMOVAL,01111110B;工作方式控制字OUTDX,ALMOVAL,14H;写操作命令控制字OUTDX,ALWAIT∶INAL,DX;读入状态控制字ANDAL,02HJZWAIT;检查RXRDY是否为1MOVDX,0C0HINAL,DX;输入数据10.15答:设8251A数据口地址为0C0H,控制口地址为0C2H。MOVDX,0C2HMOVAL,01111111B;写工作方式控制字OUTDX,ALMOVAL,31H;写操作命令控制字OUTDX,ALWAIT∶INAL,DXANDAL,01H;检查TXRDY是否为1JZWAIT MOVDX,0C0HMOVAL,36H;输出的数据送ALOUTDX,AL10.16答:设8251A数据口地址为0C0H,控制口地址为0C2H。MOVDX,0C2H;控制口地址送DXMOVAL,01011100B;写工作方式控制字MOVDX,ALMOVAL,16H;同步字符送ALOUTDX,ALOUTDX,AL;输入两个同步字符MOVAL,96H;写操作命令控制字OUTDX,AL10.17答:程序如下:INT514:MOVDX,04A2H;初始化MOVAL,0EEH;写工作方式控制字OUTDX,ALMOVAL,15H;写操作命令控制字OUTDX,ALCHKRX:MOVDX,04A2H;查接收状态INAL,DXRORAL,1HRORAL,1H;接收是否准备好? JNCCHKRX;未,等待MOVDX,04A0H;已,接收1个字符INAL,DXNOTAL;接收的字符求反MOVBL,AL;暂存接收的字符CHKTX:MOVDX,04A2H;查发送状态INAL,DXRORAL,01H;发送是否准备好?JNCCHKTX;未,等待MOVDX,04A0H;已,发送已经求反的字符MOVAL,BLOUTDX,ALJMPCHKRX;重发上述过程习题十一参考答案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#信号从设备可以主动仃止数据访问周期。习题十二参考答案第十二章人机交互设备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。画出硬件连接图,并设计一个用“行扫描法”识别闭合键的扫描程序。答:设计的硬件连接图如下::  PA0PA1PA2PB3PB2PB1PB08255ACPU行0行1行2列0列3列1列2设计的参考程序如下:;8255A初始化部分:MOVAL,82H;方式0,A口输出,B口输入OUTPORTC,ALBEGIN:MOVAL,0;检查是否有键按下OUTPORTA,ALWAIT:INAL,PORTBANDAL,0FHCMPAL,0FHJZWAIT;延时去抖动 MOVCX,7FFHL0:LOOPL0;识别被按下的键ST:MOVBL,3;行数送BLMOVBH,4;列数送BHMOVAL,0FEH;扫描码,0行为0MOVCL,0FH;列线屏蔽码送CLMOVCH,0FFH;置键号初值为-1L1:OUTPORTA,AL;扫描一行ROLALDECBLMOVAH,AL;修改扫描码并送AH保存INAL,PORTBANDAL,CLCMPAL,CL;读入列线值,检查是否有列线为0JNZL2;有列线为0时转去找该列线ADDCH,BH;否则,指向该行末列键号MOVAL,AH;取回扫描码DECBLJNZL1;行数减1,未完成转下一行JMPBEGINL2:INCCH;该列非0,检查下一列RCRAL JCL2;该列非0,检查下一列MOVAL,CH;该列为0,键号送ALJMPKEYTABLE;转查找键盘编码表子程序,获取与键功能对应的键码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_BUFPROCNEARJMPPRT_CHARMESG_1DB0DH,0AH,"Printeroutoftime,Strikeanykeywhenready.$"MESG_2DB0DH,0AH,"Printeroffline,Strikeanykeywhenready.$"MESG_3DB0DH,0AH,"Printeroutofpaper,Strikeanykeywhenready.$‘;发送一个字符并检测错误状态PRT_CHAR:MOVAH,0;打印一个字符MOVDX,0;选择LPT1LODSB;取打印字符 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;保存DSPUSHCS;DS指向CSPOPDSMOVAH,9;DOS显示字符串INT21HPOPDS;恢复DSMOVAH,0;等待用户响应INT16HEXIT:RET;返回调用 PRT_BUFENDP22.简述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.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的分辨率 最小分辨率电压VLSB13.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解:UD-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,10000000B;方式命令字OUTDX,AL;B口的设置MOVDX,301H;B口的地址MOVAL,00000001B;置DAC0832为直通方式OUTDX,AL;产生幅度受限锯齿波START:MOVDX,300H;A口的地址MOVAL,33H;设置下限电压LOP:OUTDX,ALINCAL;递增CMPAL,0CDH;到了上限电压?JNELOP;未到,继续JMPSTART;已到,再从下限开始13.13答:假设ADC0809的EOC信号接到8259A的IRQ2上面,则中断类型号为0AH。主程序在完成通常的初始化工作(如初始化段寄存器)之后,还需要完成中断向量的装载;而中断服务子程序则负责完成数据的发送。DATASEGMENT BUFDB100 DUP(?);预留100个字节的地址以放数据OLDOFFDW?;旧中断向量的偏移地址部分OLDSEGDW?;旧中断向量的段基址部分DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFAR;主程序;-------常规初始化-------------------------------------------------PUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AX;--------取0AH号中断的原中断向量并保存-----------------CLIMOVAL,0AHMOVAH,35HINT21HMOVOLDSEG,ES MOVOLDOFF,BX;--------设置新中断向量--------------------------------------------PUSHDSMOVAX,SEGRECIVE;取当前中断服务程序入口的段基址MOVDS,AXMOVDX,OFFSETRECIVE;取当前中断服务程序入口的偏移量MOVAL,0AH;中断类型号为0AHMOVAH,25HINT21H;将当前中断服务程序入口地址送向量表POPDSLEADI,BUF1;DI指向存数的首地址MOVCX,100;共采集100个数据MOVDX,04A0H;启动ADC0809进行数据采集OUTDX,ALSTI;开中断;--------等待中断传送数据---------------------------------------------- WAT:CMPCX,0JNZWAT;--------发完数据后恢复原中断向量---------------------------------MOVDX,OLDSEGMOVDS,OLDOFFMOVAL,0AHMOVAH,25HINT21HRETSTARTENDPRECIVEPROCFAR;中断服务子程序PUSHAXPUSHDXPUSHSIMOVDX,04A0H;假设ADC0809的端口地址为04A0HINAL,DX;从ADC0809读取数据MOV[DI],AL;转存到内存的某个区间去MOVDX,INTA00;8259偶地址   MOVAL,20HOUTDX,AL;发出中断结束命令 INCDI;修改数据区指针DECCX;计数器减1OUTDX,AL;再次启动A/D转换STI;开中断,允许下次中断POPSIPOPDXPOPAXIRETRECIVEENDPCODEENDSENDSTART13.14解:硬件连接如图10.18所示。EOC信号通过一个三态门接总线的DO引脚。 MOVDI, 0300H;设置存放数据的首址MOV  BL, 08H;采集8次计数器MOV  AH, 00H;选0通道AA1∶ MOV  AL,AHMOV  DX,ADPORT;设置ADC0809芯片地址OUT  DX,AL;使ALE、START有效,选择模拟通道,见图10.18MOVDX,EOCPORTINAL,DX;查询EOC信号WAIT∶ TESTAL,01HJZWAITMOVDX,ADPORTINAL,DX;使OUTPUTENABLE有效,输入数据,见图10.18MOV[DI],AL;保存数据 INCAH;换下一个模拟通道INCDI;修改数据区指针DECBLJNZAA113.15答:引脚信号说明如下。:输出数据方式选择控制信号。当接高电平时,输出数据是12位字长,当接低电平时,将转换后的数变成两个8位数据输出。A0:转换数据长度选择控制信号。当A0为高电平,启动转换,进行8位转换,当A0为低电平,启动转换,进行12位转换。CS:片选信号。:读出或转换控制选择信号。当为低电平时,启动转换,当为高电平时,可将转换后的数据读出。CE:芯片允许信号。该信号与CS信号一起有效时,AD574才可以进行转换或从AD574输出转换后的数据。启动转换或读出数据时,CS、CE、R/、A0、12/8等控制信号的配合关系如教材表10.2所示。'