微机原理 周荷琴 答案

合集下载

微机原理第2章 习题答案

微机原理第2章 习题答案

第2章习题参考答案18086CPU由哪两部分构成它们的主要功能是什么答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。

指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成。

其主要功能是执行指令。

总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成。

其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。

2.8086CPU预取指令队列有什么好处8086CPU内部的并行操作体现在哪里答:8086CPU的预取指令队列由6个字节组成。

按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。

:从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。

8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取并送到指令队列。

3. 8086CPU中有哪些寄存器各有什么用途答:CPU有14个内部寄存器,可分为3大类:通用寄存器、控制寄存器和段寄存器。

通用寄存器是一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中,既可减少访问存储器的次数,又可缩短程序的长度,提高了数据处理速度,占用内存空间少。

指令执行部件(EU)设有8个通用寄存器:AX:累加器,一般用来存放参加运算的数据和结果,在乘、除法运算、I/O操作、BCD数运算中有不可替代的作用BX:基址寄存器,除可作数据寄存器外,还可放内存的逻辑偏移地址CX:计数寄存器,既可作数据寄存器,又可在串指令和移位指令中作计数用DX:DX除可作通用数据寄存器外,还在乘、除法运算、带符号数的扩展指令中有特殊用途#源变址寄存器SI:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据目标变址寄存器DI:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据基址指针BP:用于存放内存的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中堆栈指针SP:用于存放栈顶的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中控制寄存器包括指令指针寄存器IP和标志寄存器FLAG:IP用来指示当前指令在代码段的偏移位置。

微机原理第四章课后习题答案

微机原理第四章课后习题答案

第四章课后作业(6—27)6.试按下列要求分别编制程序段。

(1)把标志寄存器中符号位SF置“1”。

(2)寄存器AL中高、低四位互换。

(3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。

(4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B) C。

(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。

答:(1) LAHFOR AH,80HSAHF(2) MOV CL,4ROL AL,CL(3) MOV CX,0NEG BXJC CHGJMP GOCHG: MOV CX,1GO: NEG AXSUB AX,CX(4) MOV CL,AMOV AL,BMOV X,ALCHECK:INC XDEC CLJNZ CHECK(5) OR CX,0001H7.试给出下列各指令的机器目标代码。

(1)MOV BL,12H [SI](2)MOV 12H [SI],BL(3)SAL DX,1(4)AND 0ABH [BP] [DI],1234H答:(1)100010 1 0 01 011 100 00010010=8A5C12H(2)100010 0 0 01 011 100 00010010=885C12H(3)110100 0 1 11 100 010=0D1E2H(4)100000 0 1 10 100 011 10101011 00000000 00110100 00010010=81A3AB003412H8.执行下列指令:STR1 DW ‘AB’STR2 DB 16DUP(?)CNT EQU $-STR1MOV CX,CNTMOV AX,STR1HLT执行完成之后,寄存器CL的值是多少?寄存器AX的值是多少?答:因为CNT=16+2=18,所以CX=18=0012H,所以CL=12H=0001,0010;AX中装入的是‘AB’的ASCII码值,其中‘A’在高位AH中,‘B’在低位AL 中,所以AX=4142H=0100,0001,0100,0010。

微机原理第二章习题参考答案

微机原理第二章习题参考答案

微机原理第二章习题参考答案微机原理第二章作业参考答案:1.(2字节)a.指由8个二进制位组成的通用基本单元(6时钟周期)b.是cpu指令执行时间的刻度(10软件配置管理空间)c.cpu所要出访的存储单元数,与cpu地址总线条数有关(11实际地址)d.唯一能代表存储空间每个字节单元的地址,用5位16进制数表示(7总线周期)e.cpu执行访问存储器或i/o操作所花时间(12逻辑地址)f.由段基址和段偏转地址共同组成,均用4十一位16十进制则表示(4基本指令继续执行时间)g.指寄存器乘法指令继续执行所花掉时间(3指令)h.顺利完成操作方式的命令(1字长)i.指cpu在交换、加工、存放信息时信息位的基本长度(5指令执行时间)j.各条指令执行所花时间,不同指令值不一(8cache)k.为减轻cpu与主存储器间互换数据的速度瓶颈而建立的高速缓冲存储器(9虚拟存储器)l.cpu执行程序时看见的一个速度吻合内存却具有外存容量的假想存储器2.(1)mhz频率单位,可以用来表示cpu的主频1mhz=1000000hz(2)ghz频率单位,可以用来表示cpu的主频1ghz=1000000000hz(3)μs时间单位,可以用来表示基本指令执行时间1μs=10s(4)mips每秒百万条指令,用来表示基本指令执行速度(5)kb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1kb=2bytes(6)mb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1mb=2bytes(7)gb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1gb=2bytes(8)tb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1tb=2bytes3.eu的共同组成部件:(3)alu(7)状态标志寄存器(9)掌控单元(12)通用寄存器组与biu的共同组成部件:(1)地址部件au(2)段界检查器(4)20十一位地址产生器(5)20十一位物理地址加法器(6)指令队列(8)总线掌控逻辑(10)段寄存器组(11)指令指针4.标志sf(b符号标志)cf(d位次标志)af(h辅助位次标志)df(i方向标志)tf(a陷阱标志)of(c外溢标志)pf(f奇偶标志)if(g中断容许标志)zf(e零标志)类型sssccsscs为0时则表示的状态两个带符号数运算结果就是正数两个并无符号数经alu运算后并无位次或者借位产生两个数运算时,两个高4十一位运算并无位次或者借位产生数据串成操作方式的增量地址为自动递减正常调试两个带符号数运算后没产生外溢运算结果数据高8位中二进制存有奇数个1中断屏蔽数据运算时结果不为零403020?6107.首地址pa=62d87h末地址pa=62d87h+28h(则表示40字节)-1h=62daeh8.实际地址:99a40h9.实际地址:3ba00h10填写下列个状态下的有效信号状态总线操作类型t1t2t3t4最小模式下总线存储器读操作最小模式下总线存储器写操作11.特点方式最小模式最大模式12.00130h:00131h:00135h:00136h:13.0dah31h7fh5ehmn/mx引脚高电平低电平处理器个数12个以上总线控制信号的产生8086828834h00230h:2dh00231h:0abh00232h:00233h:67h14.55h00330h:20h00331h:00332h:45h00333h:20h00334h:53h00335h:20h00336h:54h00337h:20h00338h:43h15.(1)ds:11a7es:11a7ss:21becs:31b8ds,es段顶:11a70hss段顶上:21be0hss段底:22ca8hcs段顶上:31b80hds,es段底:21a6fhcs段底:41b7fh(2)of=0df=0if=1sf=0zf=0zf=0pf=0cf=016.5ch20a28h:00h20a29h:7ah20a2ah:20a2bh:20a2ch:20a2dh:20a2eh:20a2fh:20a30h:20a31h:53h42h0ffh12h00h5bh0ah入栈完毕时,(ss)=20a0h(ip)=0028h17.8086系统中:(1)8284a时钟产生器的作用是:为8086cpu提供时钟,产生cpu所需的系统时钟信号(2)8282/8283地址锁存器的作用是:锁存8086地址总线中的信息(3)8286/8287总线收发器的作用是:传送8086数据总线中的信息(4)8288总线控制器的促进作用就是:在最小工作模式下产生8086系统所需的掌控信号18.8086寻址i/o端口时,使用16条地址线,可寻址32k个字端口,或64k个字节端口。

微机原理与接口技术 第四章 课后答案

微机原理与接口技术 第四章 课后答案

第四章参考答案1.设下列指令中的所有标识符均是类型属性为字的变量,请指出下列指令中哪些是非法的指令?错误的原因?⑴MOV BP,AL⑵MOV WORD_OP1,WORD_OP2⑶MOV SA VE_WODR,DS⑷MOV SP,SS:DA TA_WORD[BX][SI]⑸MOV [BX][SI],2解:(1)非法。

源操作数与目的操作数类型不符。

(2)合法。

(3)合法。

(4)合法。

(5)非法。

需说明操作数类型。

2.设V AR1和V AR2为字变量,LAB为标号,试指出下列指令的错误之处:⑴ADD V AR1,V AR2⑵SUB AL,V AR1⑶JMP LAB[SI]⑷JNZ V AR1⑸JMP NEAR LAB解:(1)两个操作数均为符号地址。

(2)两个操作数的类型不同。

(3)(4)(5)3.画图说明下列语句所分配的存储空间及初始化的数据值。

⑴BYTE_V AR DB ‘BYTE’,12,-12H,3 DUP(0,?,2 DUP(1,2),?)⑵WORD_V AR DW 5 DUP(0,1,2),?,-5 ‘BY’,’TE’,256H解:(1)(2)41H59H54H45H0CHF4H00H?01H02H01H02H00H?01H02H01H02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H ??FBH FFH 59H 42H 45H 54H 56H 02H4.设程序中的数据定义如下:PARTNO DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PARTNO问PLENTH的值为多少?它表示什么意义?解:PLENTH的值为22(16H)。

表示当前位置与PARTNO之间有22个字节空间。

微机原理课后习题答案

微机原理课后习题答案

第二章1.8086CPU由哪两部分组成?它们的主要功能是什么?8086CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作是并行的。

总线接口部件BIU的功能:地址形成、取指令、指令排队、读/写操作数和总线控制。

所有与外部的操作由其完成。

指令执行部件EU的功能:指令译码,执行指令。

2.8086CPU中有哪些寄存器?各有什么用途?8086CPU的寄存器有通用寄存器组、指针和变址寄存器、段寄存器、指令指针寄存器及标志位寄存器PSW。

4个16位通用寄存器,它们分别是AX,BX,CX,DX,用以存放16位数据或地址。

也可分为8个8位寄存器来使用,低8位是AL、BL、CL、DL,高8位是AH、BH、CH、DH,只能存放8位数据,不能存放地址。

指针和变址寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。

段寄存器给出相应逻辑段的首地址,称为“段基址”。

段基址与段内偏移地址结合形成20位物理地址。

指令指针寄存器用来存放将要执行的下一条指令在现行代码中的偏移地址。

16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。

5.要完成下述运算或控制,用什么标志位判断?其值是什么?⑴比较两数是否相等?将两数相减,当全零标志位ZF=1时,说明两数相等,当ZF=0时,两数不等。

⑵两数运算后结果是正数还是负数?用符号标志位SF来判断,SF=1,为负数;SF=0,为正数。

⑶两数相加后是否溢出?用溢出标志位来判断,OF=1,产生溢出;OF=0,没有溢出。

⑷采用偶校验方式。

判定是否要补“1”?用奇偶校验标志位判断,有偶数个“1”时,PF=1,不需要补“1”;有奇数个“1”时,PF=0,需要补“1”。

(5)两数相减后比较大小?●ZF=1时,说明两数是相等的;●ZF=0时:无符号数时,CF=0,被减数大;CF=1,被减数小。

带符号数时,SF=OF=0或SF=OF=1,被减数大;SF=1,OF=0或SF=0,OF1,被减数小。

微机原理第三章课后习题解答

微机原理第三章课后习题解答

3.1已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H ,(1E4F6H)=091DH。

在以上给出的环境下,试问下列指令段之行后的结果如何?(1)MOV CL,[BX+20H][SI];物理地址=DS*10H+BX+SI+20H=091D0H+0024H+0012H+0020H=09226H(09226H)=00F6H,(09226H)=F6H, (09227H)=00H执行后:CL=F6H(2)MOV [BP][DI], CX物理地址=SS*10H+BP+DI=1E4A0H +0024H+0032H=1E4F6HCX=5678H 执行后:(1E4F6H) = 5678H(3)LEA BX, [BX+20H][SI];BX=BX+20H+SI=0056HMOV AX, [BX+2];物理地址=DS*10H+BX+2=091D0H +0058H=09228H (09228H)=1E40H 执行后:AX=1E40H(4)LDS SI, [BX][DI];物理地址=DS*10H+BX+DI=091D0H +0056H=09226H (09226H)=00F6H (09228H)=1E40H执行后:BX=(09226H)=00F6HDS=(09228H)=1E40HMOV [SI],BX物理地址=DS*10H+SI =1E400H +0012H=1E412HBX=0024H, 执行后:(1E412H)=0024H (5)XCHG CX,[BX+32H]物理地址=DS*10H+BX+32H =091D0H +0056H =09226H (09226H)=00F6H , CX=5678H执行后:(09226H)=5678H , CX=00F6HXCHG [BX+20H][SI], AX物理地址=DS*10H+BX+20H+SI =091D0H +0056H =09226H (09226H)=5678H , AX=1234H执行后:(09226H)=1234H , CX=5678H3.2设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H。

微机原理习题解答(供参考)

微机原理习题解答(供参考)

微机原理习题解答(供参考)第1章习题和解答15. 将下列⼗进制数分别转化为⼆进制数、⼗六进制数和BCD码。

(1)15.32=(0000 1111.0101 0001)2=(0F.51)16=(0001 0101.0011 0010)BCD(2)325.16=(0001 0100 0101.0010 1000)2=(145.28)16=(0011 0010 0101.0001 0110)BCD(3)68.31=(0100 0100.0100 1111)2=(44.4F)16=(0110 1000.0011 0001)BCD(4)214.126=(1101 0110.0010 0000)2=(0D6.20)16=(0010 0001 0100.0001 0010 0110)BCD16. 将下列⼆进制数分别转化为⼗进制数和⼗六进制数。

(1)10110101= 181=0B5H(2)11001011= 203=0CBH(3)10101.1001= 21.5625=15.9 H(4) 101101.0101= 45.3125=2D.5H17. 将下列⼗六进制数分别转化为⼆进制数、⼗进制数。

(1)FAH=1111 1010B=250(2)12B8H=0001 0010 1011 1000B=4792(3)5A8.62H=0101 1010 1000.0110 0010B=1448.3828125(4)2DF.2H=0010 1101 1111.0010B=735.12518. 若X=-107,Y=+74按8位⼆进制可写出:。

[X]补=95H ,[Y]补=4AH , [X +Y]补=0DFH,[X-Y]补=4BH。

19.X=34AH,Y=8CH。

问:有三位和两位⼗六进制数X和Y,(1)若X,Y是纯数(⽆符号数),则:X+Y=3D6H;X-Y=2BEH。

(2)若X,Y是有符号数,则:X+Y=2D6 H;X-Y=3BEH。

微机原理课后答案

微机原理课后答案

2.3 习题解答1.选择题:(1)某微机具有16MB的内存空间,其CPU的地址总线应有()条。

A.26 B.28 C.20 D.22 E.24(2)当RESET信号进入高电平状态时,将使8086/8088 CPU的()寄存器初始化为0FFFFH。

A.SS B.DS C.ES D.CS(3 )8086/8088 CPU与慢速存储器或I/O接口之间进行数据传输,为了使传送速度匹配,有时需要在()状态之间插入若干等待周期T W。

A.T1和T2B.T2和T3C.T3和T4D.随机答案:(1)E (2)D (3)C2.填空题:(1)8086/8088 CPU执行指令中所需操作数地址由()计算出()位偏移量部分送(),由()最后形成一个()位的内存单元物理地址。

(2)8086系统的存储体系结构中,1MB 存储体分( )个库,每个库的容量都是( )字节,其中和数据总线D 15~D 8相连的库全部由( )单元组成,称为高位字节库,并用( )作为此库的选通信号。

(3)用段基值及偏移量来指明内存单元地址的方式称为( )。

(4)通常8086/8088 CPU 中当EU 执行一条占用很多时钟周期的指令时,或者在多处理器系统中在交换总线控制时会出现( )状态。

(5)在8086/8088最大方式系统中各微处理器都有两条( )引脚,其中( )比( )具有更高的优先级。

答案:a) EU ,16,BIU ,BIU ,20b) 2,512K ,奇地址, BHEc) 逻辑地址d) 空闲e) 总线请求(输入)/总线请求允许(输出),G T /RQ 0 ,1G T /RQ3.8086/8088 CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?答:8086/8088 CPU中共有:8个16位的通用寄存器AX、BX、CX、DX 、BP、SP、SI、DI;2个变址寄存器SI、DI;2个指针寄存器BP、SP;其中BX、BP、SI、DI亦可作地址寄存器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第九章(并行接口,8255A)4. 若8255A的系统基地址为2F9H,则8255A的三个端口和控制口地址各是多少?已知CPU的系统总线为A9~A0,D15~D0,M/IO,IOR,IOW,RESET,试画出8255A的地址译码电路及它与CPU系统总线的连线图。

【解答】A、B、C和控制口的地址分别为:2F9H、2FBH、2FDH、2FFH。

5. 设8255A的的地址为:80H、82H、84H、86H。

要求A口工作在方式0输出,B口工作在方式0输入,C口高4位输入,低4位输出,试编写8255A的初始化程序。

【程序段】mov al , 10001010bout 86h , al6. 8255A的地址同5题,要求PC4输出高电平,PC5输出低电平,PC6输出一个正脉冲,试写出完成这些功能的程序段。

【程序段】方法1:设置C口置位/复位字mov al , 80h out 86h , al mov al , 09h out 86h , al mov al , 0ah out 86h , al mov al , 0chout 86h , alnopnopmov al , 0dhout 86h , alnopnopmov al , 0chout 86h , al方法2:直接从C口输出数据mov al , 80hout 86h , almov al , 00010000b out 84h , al nopnopmov al , 01010000bout 84h , alnopnopmov al , 00010000bout 84h , al7. 8255A的端口地址同5题,(a)若A口方式0输入,B口方式1输出,C口各位的作用是什么?控制字是何?(b)若B口方式0输出,A口方式1输入,C口各位的作用是什么?控制字是何?【解答】(a) PC1:OBF B,PC2:ACK B,PC0:INTR B,以上3位当联络信号,其余各位当输入/输出线。

控制字:1001×11×B(b) PC4:STB A,PC5:IBF A,PC3:INTR A,以上3位当联络信号,其余各位当输入/输出线。

控制字:1011×00×B8. 若A口工作在方式2,B口方式0输入,C口各位的作用是什么?若A口工作在方式2,B口方式0输出,C口各位的作用是什么?【解答】(a)PC3:INTRA,PC4:STBA,PC5:IBFA,PC6:ACKA,PC7:OBFA;作为A口的联络信号;PC0~PC2:作B口的联络信号。

(b)PC3~PC7: 意义同上,PC0~PC2:作输入/输出线。

9. 8255的口地址为:80H~83H,8253 的口地址为84H~87H。

(1) 若A口接8个开关K7~K0,B口接8个指示灯LED7~LED0,当开关闭合上时相应的指示灯点亮,断开时灯灭,要求每隔0.5秒检测一次开关状态,并在开关上显示出来,试画出硬件连线图,并编写出实现该功能的程序。

【方法1】中断方式。

设8253的输入时钟频率为1MHz。

将计数器0和1串接,从OUT1输出周期为0.5秒的负脉冲序列,用它作为中断源,接到8259A的IR2端(设中断类型是0AH)。

每进入中断就检测一次开关状态。

程序段如下:;8253初始化,计数器0为3方式,初值N1=10000;计数器1为2方式,初值N2=50。

mov al , 00110110b out 87h , almov al , 01010100b out 87h , al mov ax , 10000dout 84h , almov al , ahout 84h , almov al , 50dout 85h , al;8255A初始化,工作于0方式,A口输入,B口输出。

mov al , 10010000bout 83h , al;设置中断向量,等待中断。

mov ax , 350ahint 21hpush espush bxpush dsmov ax , seg int_pro mov ds , axmov dx , offset int_pro mov ax , 250ahint 21hpop dscli ;关中断;允许8259A的IR2中断in al , 21h;取原IMR中内容push ax ;压栈保存and al , 11111011bout 21h , al;写OCW1,打开IR2中断wite_int: sti ;开中断jmp wite_int ;等待中断mov ah , 0bhint 21hinc aljnz wite_int;判断有无键按下,有则退出cli ;关中断pop axout 21h , al;恢复原IMR的内容pop dxpop dsmov ax , 250ahint 21h;恢复原0AH类型的中断向量mov ah , 4chint 21h;中断服务子程序int_pro procin al , 80h;从A口检测开关状态out 81h , al;从B口输出控制灯亮mov al , 20h out 20h , al ;向8259A发EOI命令iret【方法2】查询方式。

8253的计数器1工作于方式2,OUT1输出接到8255A的PC4端,作为AS T B信号。

8255A的A口工作于方式1输入,B口工作于方式0输出。

当PC4收到负脉冲后,开关状态信息被锁入A口的输入缓冲器中,它使IBF A置1。

程序可查询状态字的IBF A或查询INTR A,当其为1时再执行A口输入指令,并从B口输出信号控制LED发光。

接线:A口输入,接8个开关;B口输出接8个LED。

开关闭合为0,打开为1;B口输出为0时LED亮,输出为1时LED灭。

连线图如下。

程序如下:;;8253初始化如【方法1】;8255A初始化;(A口输入方式1,B口输出方式0) mov al , 10110000bout 83h , al;控制程序scan:mov ah , 1 ;有键按下?int 16hjnz exit ;有则退出程序in al , 82 ;读C口状态字test al , 20h ;PC5(IBF A)=1 jz scan ;No,继续查询in al , 80h ;读A口out 81h , al ;输出到B口jmp scanexit:mov ah , 4chint 21h【方法3】查询负脉冲(这是非正规做法)。

8253的计数器1工作于方式0,将OUT1输出接到8255A 的PC0。

8255A工作方式同上,但C口低4位输入。

不断检测PC0,当其为1时检测开关状态并控制灯亮。

当为0时对8253的计数器1重新写初值,启动计数器工作。

程序如下:;8255A初始化,工作于0方式,A口输入,B口输出,C口低4位输入mov al , 10010001bout 83h , al;8253初始化,计数器0为3方式,初值N1=10000;计数器1为0方式,初值N2=50。

mov al , 00110110bout 87h , al ;写方式字mov ax , 10000dout 84h , al ;写初值mov al , ahout 84h , al redo: mov al , 01010000b out 87h , al ;写方式字nopnopmov al , 50dout 85h , al ;写初值;判断检测in al , 82hand al , 01hjz redomov al , 10010001b out 81h , almov ah , 0bh int 21hinc aljnz redo mov ah , 4ch int 21h(2) 若把接在端口A上的开关去掉,要求接在B口的指示灯轮流熄灭,每只灯熄灭1秒钟。

请编程实现这种功能。

【方法1】查询方式,基本同上【方法2】。

8255A的B口工作于方式1输出。

8253的OUT1接到8255A的PC2端,当作AC KB 信号。

程序反复查询O B FB(PC1),当其为1时从B口输出数据控制指示灯亮。

检测编程如下。

;8255初始化(B口工作于方式1输出)mov al , 10000100bout 83h , almov bl , 00000001bscan:mov ah , 1 ;有键按下?int 16hjnz exit ;有则退出程序in al , 82h ;读C口test al , 02h ;PC1=1? jz scan ;No 继续查询mov al , blout 81h , al ;从B口输出rol bl , 1jmp scanexit:mov ah , 4chint 21h【方法2】方法基本同上(方法3),不同点是8253的计数器1工作于方式2,要求不断探测PC0,当其为0时改变熄灭的灯。

要注意,控制灯熄灭后要延时一段时间(0.5秒>T>0.01秒一个脉冲宽度)。

mov al , 10000001bout 83h , al ;8255A工作于0方式,B口输出,C口低4位输入;8253初始化,计数器0为3方式,初值N1=10000;计数器1为2方式,初值N2=100。

mov al , 00110110bout 87h , al ;计数器0为3方式mov ax , 10000dout 84h , al ;对计数器0写初值mov al , ah out 84h , al mov al , 01010100b out 87h , al ;计数器1为2方式 mov al , 50d out 85h , al ;对计数器1写初值 ;判断检测 mov bl , 1 ;置初值,灯0熄灭 redo: in al , 82h ;读C 口数据 and al , 01h ;PC0=0? jnz redo ;非0继续探测mov al , blout 82h , al rol bl , 1 call delay ;延时 mov ah , 0bh int 21h ;探测是否有键按下inc al jnz redo ;没有则继续探测 mov ah , 4ch int 21h 注:delay 是延时子程序,B 口输出0灯亮,输出1灯熄灭。

10. 某病房有8个病人,病员号为0~7,每人床头有一个开关,使任一病人按下开关时,相应的LEDi发光二极管点亮,其中i 为病员号。

试设计硬件系统,并编写有关程序。

【编程】设8255A 的地址为80H 、81H 、82H 、83H ,8255A 工作于0方式,A 口输入, B 口输出。

mov al , 10010000b out 83h , al ;re_test:in al , 80hout 81h , al nop nop mov ah , 0bh int 21h inc al jnz re_testmov al , 4ch int 21h第十章习题(串行接口,8251)6. 若某一终端以2400波特的速率发送异步串行数据,发送1位需要多少时间?假设一个字符包含7个数据位、1个奇偶校验位、一个停止位,发送一个字符需要多少时间? 【解答】发送1位信息需0.42ms ,发送1个字符需4.2ms 。

相关文档
最新文档