南邮微机原理第11章_第1页
南邮微机原理第11章_第2页
南邮微机原理第11章_第3页
南邮微机原理第11章_第4页
南邮微机原理第11章_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十一章第十一章 并行接口芯片并行接口芯片8255a8255a8255a8255a是是intelintel公司的产品,可编程的并公司的产品,可编程的并行接口芯片行接口芯片11.1 8255a11.1 8255a的内部结构的内部结构 一、一、 结构框图(见下页)结构框图(见下页)结构框图结构框图数据总线缓冲器a组a口a组c口上半部a组控制b组c口下半部b组b口b组控制pa7pa0pc7pc4pb7pb0pc3pc0读/写控制wra1a0resetcs内部总线8cpudbrdh 2424根端口数据线根端口数据线接外设接外设 pa7pa0pa7pa0为为a a口数据线口数据线 pb7pb0pb7pb

2、0为为b b口数据线口数据线 pc7pc0pc7pc0为为c c口数据线口数据线二、二、 8255a8255a的外部引脚的外部引脚8255a8255a为双列直插式为双列直插式,40,40引脚引脚h8 8根系统数据线根系统数据线接接cpu d7d0cpu d7d0h 6 6根输入控制线根输入控制线 resetreset:复位信号,:复位信号,reset=1reset=1时,时,82558255内内部复位,部复位, 所有内部寄存器清零,所有内部寄存器清零,a a、b b、c c三个端三个端口自动为输入口口自动为输入口h电源线:电源线:+5v+5v,地线,地线三、三、8255a8255a的端口编址的

3、端口编址端口:接口电路中能和端口:接口电路中能和cpucpu直接交换信息的直接交换信息的寄存器寄存器8255a8255a有有4 4个端口寄存器个端口寄存器 cs cs:片选信号,:片选信号,cs=0cs=0时,该芯片被选中时,该芯片被选中 rdrd:来自:来自cpucpu的的i/oi/o读命令读命令 wrwr:来自:来自cpucpu的的i/oi/o写命令写命令 a1a1、a0a0:通常接:通常接cpucpu的地址线的地址线a1a1、a0a0如果系统产生片选信号如果系统产生片选信号的译码电路如图,则:的译码电路如图,则:aena9a8a7a6a5a4a3a2a1a0ioriowcsa1a0rdw

4、r8255aa a数据口地址数据口地址=60h=60hb b数据口地址数据口地址=61h=61hc c数据口地址数据口地址=62h=62h控制口地址控制口地址=63h=63h控制口寄存初始化控制口寄存初始化命令字命令字对控制寄存器不能进行读操作对控制寄存器不能进行读操作cs a1 a0 wr rd完成完成0 0 0 0 1cpucpu数据数据a a口数据寄存器口数据寄存器0 0 1 0 1cpucpu数据数据b b口数据寄存器口数据寄存器0 1 0 0 1cpucpu数据数据c c口数据寄存器口数据寄存器0 1 1 0 1cpucpu送来的命令字送来的命令字控制寄存器控制寄存器0 0 0 1

5、0读读a a口数据口数据cpucpu0 0 1 1 0读读b b口数据口数据cpucpu0 1 0 1 0读读c c口数据口数据cpucpu11.2 825511.2 8255的工作方式简介的工作方式简介a a口可工作在方式口可工作在方式0 0、1 1、2 2b b口可工作在方式口可工作在方式0 0、1 1c c口可工作在方式口可工作在方式0 0工作方式工作方式适用于端口适用于端口方式方式0 0:基本型入:基本型入/ /出出 a a口、口、b b口、口、c c口口方式方式1 1:选通型入:选通型入/ /出出 a a口、口、b b口口方式方式2 2:双向传输:双向传输 a a口口什么是选通型输入

6、?(以什么是选通型输入?(以a口为例)口为例)a口定义为选通型输入时,口定义为选通型输入时,端口和外设之间有两类信端口和外设之间有两类信号线号线 数据线数据线pa7pa0 联络线联络线ibfa、stbaibfibf(input buffer fullinput buffer full)输入缓冲器满)输入缓冲器满状态线状态线输入设备输入设备pa70ibfastba8255a口口stb(strobe)选通信号输入)选通信号输入 当外设把数据放在端口当外设把数据放在端口线上时必须伴随一个选线上时必须伴随一个选通信号。通信号。 当当stb= stb= 时完成时完成数据锁存。数据锁存。 端口收到数据后,

7、再端口收到数据后,再通知通知cpucpu来取来取 ibf=1ibf=1,通知外设输入缓冲器已满,请不,通知外设输入缓冲器已满,请不要再送数据要再送数据只有在只有在ibf=0ibf=0时时, ,外设才能写入数据外设才能写入数据输入设备输入设备pa70ibfastba8255a口口什么是选通型输出(以什么是选通型输出(以b b口为例)口为例)当端口定义为选通型输出当端口定义为选通型输出时,端口与外设之间也有时,端口与外设之间也有两类信号两类信号 数据线数据线pb7pb0pb7pb0 联络线联络线obfobfb b、ackackb bobf(outputobf(output buffer full)

8、 buffer full)输出缓冲器满输出缓冲器满状态线状态线ack(acknowledgeack(acknowledge) )确认应答确认应答输出设备输出设备pb70obfbackb8255b口口cpucpu对对b b口执行口执行outout指令指令, ,把一把一个数个数82558255 obfobfb b= ,= ,通通知外设输出缓冲器已满知外设输出缓冲器已满( (即数据线上信息可用了即数据线上信息可用了) ) 外设取走数据之后外设取走数据之后, ,使使ackackb b= ,= ,通知通知cpucpu端口数据已取走端口数据已取走, ,可再送可再送一个数一个数输出设备输出设备pb70obf

9、backb8255b口口什么是基本型输入什么是基本型输入( (以以b b口为例口为例) )当当b b口定义为基本型口定义为基本型输入时输入时, ,它相当于一它相当于一个输入缓冲器个输入缓冲器, ,对对b b口口执行一条执行一条inin指令指令, ,就就把输入数据把输入数据cpucpu对对b b口执行一条口执行一条inin指令打开控制门指令打开控制门pb7pb0至至cpud7d0什么是基本型输出什么是基本型输出( (以以a a口为例口为例) )当当a a口定义为基本型口定义为基本型输出时输出时, ,它为一个输它为一个输出锁存器出锁存器cpucpu对对a a口执行一条口执行一条outout指令把数

10、据锁存指令把数据锁存在端口在端口总之:基本型输入总之:基本型输入/出时,出时,8255和外设之间没有联和外设之间没有联络信号络信号对对a a口执行一条口执行一条outout指令锁存数据指令锁存数据d qcppa7pa0cpud7d0d qcp11.3 825511.3 8255控制字与初始化编程控制字与初始化编程1. 82551. 8255控制字控制字82558255有有2 2个控制字,方式选择控制字,个控制字,方式选择控制字,c c口按位置口按位置0/0/置置1 1命令字,控制字必须写入控命令字,控制字必须写入控制口才能有效制口才能有效 方式选择控制字方式选择控制字d61d5d3d1d0d2

11、d4c口pc3pc01=输入0=输出b组b口1=输入0=输出方式选择0=方式01=方式1c口pc7pc41=输入0=输出a组a口1=输入0=输出方式选择00=方式001=方式11x=方式2a a口工作在方式口工作在方式1 1、方式、方式2 2,b b口工作在方口工作在方式式1 1时,时,d3d3、d0d0只能定义部分只能定义部分pcpc线的入线的入/ /出出a a口工作在方式口工作在方式2 2时,时,d4d4不起作用不起作用c c口上、下半部可以选择不同的入口上、下半部可以选择不同的入/ /出出(都是方式(都是方式0 0)注意:注意: c c口按位置口按位置0/10/1命令字命令字注意:注意:

12、c c口按位置口按位置0/10/1命令字命令字必须写入控制口必须写入控制口x0xd3d1d0d2xd3d2d1位选择0 0 0pc00 0 1pc10 1 0pc20 1 1pc31 0 0pc41 0 1pc51 1 0pc61 1 1pc7d0d0功能功能1 1pcxpcx置置1 10 0pcxpcx置置0 0 根据需要:把根据需要:把c c口置口置0/0/置置1 1命令字命令字控制控制口,目的是禁止口,目的是禁止/ /允许某一口提中断允许某一口提中断2. 82552. 8255初始化编程步骤初始化编程步骤 方式选择命令字方式选择命令字控制口,目的选择控制口,目的选择某一口的工作方式某一口

13、的工作方式例:要求置例:要求置a a口为方式口为方式0 0输出,输出,b b口为方式口为方式0 0输输入,入,pc74pc74为输出,为输出,pc30pc30为输入为输入mov almov al,83h83hout out 控口地址,控口地址,alal解:方式选择命令字解:方式选择命令字a口口方方式式0a口口输输出出b口口方方式式0b口口输输入入pc74为输出为输出pc30为输入为输入0100110011.4 8255工作方式及时序工作方式及时序一、一、 方式方式0 0与时序与时序数据有效数据有效tartir端口数据有效端口数据有效thrtratrdtdftrrrd输入输入cs,a1,a0d7

14、d0方式方式0 输入时序输入时序数据有效数据有效tawtdw数据有效数据有效twdtwatwbtwwwr输出(端口输出)输出(端口输出)cs,a1,a0d7d0(cpu输出数据)输出数据)方式方式0 输出时序输出时序二、二、 方式方式1输入(选通型输入)及时序输入(选通型输入)及时序1 0 1 1 1/0 x x xa口口方式方式11=pc7、6为入线为入线0=pc7、6为出线为出线方式选择命令字方式选择命令字输入输入pc4pc5pc3inteapc76pa70空闲空闲stbaibfaintraa口选通型输入口选通型输入1. a口方式口方式1输入的预置输入的预置当方式字当方式字=b0h写入控制

15、写入控制口之后,口之后,a口即工作在选通型口即工作在选通型输入,输入,pc4pc5pc3inteapc76pa70空闲空闲stbaibfaintraa口选通型输入口选通型输入pc7、pc6空闲,输出线?输入线?受方式字空闲,输出线?输入线?受方式字d3控制控制pa7pa0即为输入线即为输入线pc4自动定义为入线,称为自动定义为入线,称为stbapc5自动定义为出线,称为自动定义为出线,称为ibfapc3自动定义为出线,称为自动定义为出线,称为intra它们是输出线?输入线?不再受方式字它们是输出线?输入线?不再受方式字d3d3、d0d0控制控制此时:此时:pc4pc5pc3inteapc76p

16、a70空闲空闲stbaibfaintraa口选通型输入口选通型输入 当当intea=1之后,若之后,若ibfa=1,则,则a口提出中断请求口提出中断请求2. a口方式口方式1输入时,输入时,a口的中口的中断管理断管理用用c口置口置0/置置1命令字使命令字使pc4=1,则则intea=1,允许,允许a口中断口中断用用c口置口置0/置置1命令字使命令字使pc4=0,则则intea=0,禁止,禁止a口中断口中断 intea为为a口的中断允许口的中断允许触发器,当触发器,当a口定义为方口定义为方式式1输入时:输入时: 注意:中断允许触发器只能受注意:中断允许触发器只能受cpu控制,外设信控制,外设信号

17、号stba不能使其置不能使其置0/1pc2pc1pc0intebpb70stbbibfbintrbb口选通型输入口选通型输入1 x x x x 1 1 xb口方式口方式1输入输入方式选择命令字方式选择命令字3. b口方式口方式1输入的预置输入的预置当方式字当方式字=86h写入控制写入控制口之后,口之后,b口即工作在选通口即工作在选通型输入,型输入,stbbpc2pc1pc0intebpb70b口选通型输入口选通型输入ibfbintrbpb7pb0即为输入线即为输入线pc2自动定义为入线,称为自动定义为入线,称为stbbpc1自动定义为出线,称为自动定义为出线,称为ibfbpc0自动定义为出线,

18、称为自动定义为出线,称为intrb输出线?输入输出线?输入线?不再受方线?不再受方式字式字d0控制控制此时:此时:4. b口方式口方式1输入时的中断管理输入时的中断管理 inteb=1之后,若之后,若ibfb=1,则,则intrb=1,b口可口可提出中断请求提出中断请求 inteb为为b口的中断允许触口的中断允许触发器,当发器,当b口工作在方式口工作在方式1输入时:输入时:用用c口置口置0/1命令字使命令字使pc2=1,则则inteb=1,允许,允许b口中断口中断;用用c口置口置0/1命令字使命令字使pc2=0,则则inteb=0,禁止,禁止b口中断口中断 注意:中断允许触发器注意:中断允许触

19、发器inteb受受cpu控制,外设控制,外设信号信号stbb不能使不能使inteb置置0/1stbbpc2pc1pc0intebpb70b口选通型输入口选通型输入ibfbintrb5. 方式方式1输入的时序图输入的时序图tsittsibtrittribtpstphtststbibfintr方式方式1 输入时序输入时序rd来自外设的来自外设的输入数据输入数据stbibfintrrd来自外设的来自外设的输入数据输入数据方式方式1输入操作是由输入操作是由stb=引发的,引发的,stb =后:后: 外设数据外设数据8255, ibf=stbibfintrrd来自外设的来自外设的输入数据输入数据 满足下

20、列条件,提中断请求:满足下列条件,提中断请求:hstb信号结束(信号结束(stb脉宽可以很宽)脉宽可以很宽)hibf=1,(外设数据确已锁存),(外设数据确已锁存)hinte=1(中断允许触发器置(中断允许触发器置1) 服务程序执行服务程序执行in指令之后:指令之后: rd信号前沿使信号前沿使intr= ,后沿使,后沿使ibf=0 从而结束一次数据输入过程从而结束一次数据输入过程stbibfintrrd来自外设的来自外设的输入数据输入数据6. 方式方式1输入时,输入时,cpu8255信息交换的方信息交换的方式式 可以用中断方式可以用中断方式 可以用查询方式,可以用查询方式,输入查询应查询输入查

21、询应查询ibf,不应该查询不应该查询stb!stb脉冲是外设送来,它最小可小到脉冲是外设送来,它最小可小到500ns,而在,而在500ns的时间内正好运行的时间内正好运行cpu的查询指令是不可能的的查询指令是不可能的三、三、 方式方式1输出输出(选通型输出选通型输出)及时序及时序1 0 1 0 1/0 x x xa口口方式方式1输出输出1=pc4、5为入线为入线0=pc4、5为出线为出线方式选择命令字方式选择命令字pc6pc7pc3inteapc4、5pa70空闲空闲ackaobfaintraa口选通型输出口选通型输出pc6pc7pc3inteapc4、5pa70空闲空闲ackaobfaint

22、raa口选通型输出口选通型输出1. a口方式口方式1输出的预置输出的预置当方式字当方式字=a0h写入写入控制口之后,控制口之后,a口即工作口即工作在选通型输出方式,在选通型输出方式,pc4、pc5空闲,出?入?受方式字空闲,出?入?受方式字d3控制控制pa70为输出线为输出线pc6自动定义为入线,称自动定义为入线,称ackapc7自动定义为出线,称自动定义为出线,称obfapc3自动定义为出线,称自动定义为出线,称intra输出?输入?输出?输入?不再受方式字不再受方式字d3、d0控制控制此时:此时:2. 方式方式1输出时输出时a口的中断管理口的中断管理 intea为为a口的中断允许口的中断允

23、许触发器,当触发器,当a口定义为方口定义为方式式1 输出时:输出时:用用c口置口置0/置置1命令字使命令字使pc6置置1,则则intea=1,允许,允许a口中断口中断用用c口置口置0/置置1命令字使命令字使pc6置置0,则则intea=0,禁止,禁止a口中断口中断 当当intea=1之后,若之后,若obfa=1,则,则a口提中断口提中断 intea只能受只能受cpu控制,外设控制,外设acka信号不能改信号不能改变其状态变其状态pc6pc7pc3inteapc4、5pa70空闲空闲ackaobfaintraa口选通型输出口选通型输出ackbobfbintrb1 x x x x 1 0 xb口方

24、式口方式1输出输出方式选择命令字方式选择命令字pc2pc1pc0intebpb70b口选通型输出口选通型输出obfbpc2pc1pc0intebpb70b口选通型输出口选通型输出ackbintrb3. 口方式输出的设置口方式输出的设置当方式字当方式字=84h控制控制口之后,口之后,b口即工作在选通口即工作在选通型输出方式,型输出方式,入线?出线?入线?出线?不 再 受 方 式不 再 受 方 式字字d0控制控制pb7pb0定义为输出线定义为输出线pc2自动定义为入线,称为自动定义为入线,称为ackbpc1自动定义为出线,称为自动定义为出线,称为obfbpc0自动定义为出线,称为自动定义为出线,称

25、为intrb此时:此时:4. 方式方式1输出时,输出时,b口的中断管理口的中断管理 inteb为为b口的中断允许口的中断允许触发器触发器,当当b口工作在方式口工作在方式1输出时:输出时:用用c口置口置0/1命令字使命令字使pc2=1,则则inteb=1,允许,允许b口中断口中断用用c口置口置0/1命令字使命令字使pc2=0,则则inteb=0,禁止,禁止b口中断口中断 inteb置置1后,后,obfb=1,则,则intrb=1,b口提口提出中断出中断 同样,同样,ackb不能改变不能改变inteb的状态,它只受的状态,它只受cpu控制控制obfbpc2pc1pc0intebpb70b口选通型输

26、出口选通型输出ackbintrb5. 方式方式1输出的时序图输出的时序图taxtwobtaobtaittwbtwitobfintr方式方式1 输出时序输出时序wr输出输出ack方式方式1输出时输出时 cpu针对针对8255数据口执行数据口执行out指令指令 wr信号结束后,数据出现在外设数据线上信号结束后,数据出现在外设数据线上obf有效(向外设通报其数据线信息可用)有效(向外设通报其数据线信息可用)使使intr无效,撤销中断请求无效,撤销中断请求obfintrwr输出输出ack 外设取走数据后,发来外设取走数据后,发来ack,ack信号前沿信号前沿使使obf无效,后沿提中断。无效,后沿提中断

27、。obfintrwr输出输出ack工作在方式工作在方式1输出时端口提中断的条件:输出时端口提中断的条件:h 外设发出外设发出ack信号且使信号且使obf=1h 中断允许触发器置中断允许触发器置1obfintrwr输出输出ack6. 方式方式1输出时,输出时,cpu8255交换信息的方式交换信息的方式 中断方式中断方式 查询方式:查询查询方式:查询obf,当,当obf=1(不满)(不满)时可送下一个数据时可送下一个数据四、四、 8255的双向方式的双向方式只有只有a口可以工作在双向方式口可以工作在双向方式当当a口工作在双向方式时,口工作在双向方式时,b口可以工作在口可以工作在基本型基本型i/o(

28、不需要联络线),也可以工作(不需要联络线),也可以工作在选通型在选通型i/o(使用(使用pc0、1、2做联络线)做联络线)方式选择命令字方式选择命令字1 1 x x x d2 d1 d0a口口双向双向1=pc20为入线为入线0=pc20为出线为出线00b口方式口方式0输出输出01b口方式口方式0输入输入10b口方式口方式1输出输出11b口方式口方式1输入输入1.1.双向方式的设置双向方式的设置pc7pc6pc3inte1pc20pa70pc4pc5空闲空闲intraackaobfaibfastbainte2a a口定义为双向方式之后:口定义为双向方式之后:pa70pa70是双向的数据线,可以分

29、时完成数据输是双向的数据线,可以分时完成数据输入入/ /出出pc3pc3自动定义为出线:自动定义为出线:intrintra apc7pc7自动定义为出线:自动定义为出线:obfobfa apc6pc6自动定义为入线:自动定义为入线:ackacka apc4pc4自动定义为入线:自动定义为入线:stbstba apc5pc5自动定义为出线:自动定义为出线:ibfibfa apc20pc20空闲空闲入入/ /出线?不再受出线?不再受方式字方式字d3d3、d0d0的控的控制制ibfibfa a、stbstba a是双向方式中的一对输入联络线是双向方式中的一对输入联络线obfobfa a、ackack

30、a a是双向方式中的一对输出联络线是双向方式中的一对输出联络线数据输入过程数据输入过程, ,数据输出过程与方式数据输出过程与方式1 1类似类似pc7pc6pc3inte1pc20pa70pc4pc5空闲空闲intraackaobfaibfastbainte22. a口双向方式的中断管理口双向方式的中断管理 inte1为双向方式中为双向方式中的输出中断允许触发器的输出中断允许触发器用用c口置口置0/1命令字使命令字使pc6置置0,则,则inte1=0 用用c口置口置0/1命令字使命令字使pc6置置1,则,则inte1=1i n t e 1 置置 1 后 , 若后 , 若obfa=1,则,则int

31、ra=1,提出中断请求提出中断请求a口定义为双向方式之后:口定义为双向方式之后: inte2inte2为双向方式中的为双向方式中的输入中断允许触发器输入中断允许触发器用用c c口置口置0/10/1命令字使命令字使pc4pc4置置0 0,则,则inte2=0inte2=0用用c c口置口置0/10/1命令字使命令字使pc4pc4置置1 1,则,则inte2=1inte2=1inte2inte2置置1 1后,若后,若ibfibfa a=1=1,则则intrintra a=1=1,提出中断请,提出中断请求求pc7pc6pc3inte1pc20pa70pc4pc5空闲空闲intraackaobfaib

32、fastbainte2inte1:双向方式中的输出中断允许触发器:双向方式中的输出中断允许触发器inte2:双向方式中的输入中断允许触发器:双向方式中的输入中断允许触发器ibfa、stba是双向方式中的一对输入联络线是双向方式中的一对输入联络线obfa、acka是双向方式中的一对输出联络线是双向方式中的一对输出联络线在在ibfa=0时表示输入缓冲器空闲时表示输入缓冲器空闲输入设备把数据输入设备把数据pa70,随后使,随后使stba=完成数据输入,在完成数据输入,在inte2=1的前提下向的前提下向cpu提提中断中断cpu响应后对响应后对a口执行口执行in指令取走数据指令取走数据cpu输入:输入

33、:cpu对对a口执行口执行out指令,数据写入指令,数据写入a口口obfa=0表示表示pa70有数据了有数据了外设取走数据后,向外设取走数据后,向acka送送在在inte1=1的前提下向的前提下向cpu提出中断提出中断cpu响应后再次执行响应后再次执行out指令又送一个指令又送一个新的数据新的数据a口口输出:输出: 方式方式0的特点:的特点:8255和外设交换信息时,不需和外设交换信息时,不需要联络线要联络线;方式方式1、2的特点:的特点:8255和外设交换和外设交换信息时,需要联络线信息时,需要联络线五、五、 8255小结小结1. 8255工作方式工作方式 a口可以工作在方式口可以工作在方式

34、0、1、2,b口可以工口可以工作在方式作在方式0、1,不能工作在方式,不能工作在方式2,c口可以口可以工作在方式工作在方式0 c口分为口分为pc74、pc30二部分,但程序员对二部分,但程序员对c口的读写是按字节操作的口的读写是按字节操作的 a口工作在方式口工作在方式2时,时,b口只能工作在方式口只能工作在方式0、1(限制:(限制:cpu只能用查询而不能用中断和只能用查询而不能用中断和b口交换数据)口交换数据) 数据口工作在方式数据口工作在方式1 1、2 2时,时,cpucpu用:用:(a) (a) 查询方式:输入查询测试查询方式:输入查询测试ibfibf,输出,输出查询测试查询测试obfob

35、f2. cpu2. cpu与与82558255交换信息的方式交换信息的方式 数据口工作在方式数据口工作在方式0 0时,时,cpucpu采用无条采用无条件传送件传送(b) (b) 中断方式:由于中断方式:由于82558255本身不能向本身不能向cpucpu回送中断向量,所以必须用回送中断向量,所以必须用82598259管理。管理。在系统外扩在系统外扩82558255时,时,82558255的的intrintr应接应接到系统机从到系统机从82598259的的ir1ir1,作为用户中断,作为用户中断来处理来处理3. 3. 中断允许触发器的置中断允许触发器的置0 0、置、置1 1对程序员来讲:工作在方

36、式对程序员来讲:工作在方式1 1、方式、方式2 2时,时,82558255内部有内部有4 4个中断允许触发器,用个中断允许触发器,用“c c口专口专用的置用的置0/10/1命令字命令字”可以使它们置可以使它们置0/10/1a a口方口方式式1 1入入a a口方口方式式1 1出出b b口方口方式式1 1入入b b口方口方式式1 1出出a a口口双向双向inteainteapc4pc4pc6pc6intebintebpc2pc2pc2pc2inte1inte1pc6pc6inte2inte2pc4pc4方方式式控制控制位位中断允中断允许触发器许触发器如:如:a a口工作在方式口工作在方式1 1入时

37、,执行:入时,执行:mov almov al,00001001b00001001bout 8255out 8255控制口,控制口,alal;即可使;即可使inteaintea置置1 1,允许中断,允许中断4. 8255的初始化编程的初始化编程 工作在方式工作在方式0时:方式选择命令字时:方式选择命令字控制口控制口 工作在方式工作在方式1、2时:时:a) 方式选择命令字方式选择命令字控制口控制口b) 允许中断(或禁止中断)的命令字允许中断(或禁止中断)的命令字控制口控制口六、六、 82558255应用举例应用举例例:设系统机外扩了一片例:设系统机外扩了一片82558255、以及相应的、以及相应的

38、实验电路实验电路, ,如后页图所示。要求如后页图所示。要求: :先预置先预置开关开关k3k3k1k1为一组状态为一组状态, ,然后按下自复然后按下自复按钮按钮k k 产生一个负脉冲信号输入到产生一个负脉冲信号输入到pc4pc4。用发光二极管用发光二极管lediledi亮来显示亮来显示k3k3k1k1的状的状态。主机键盘有任意键按下时结束演示。态。主机键盘有任意键按下时结束演示。k3 k2 k1000 时时,led1 亮亮 k3 k2 k1001 时时,led2 亮亮k3 k2 k1010 时时,led3 亮亮 k3 k2 k1011 时时,led4 亮亮k3 k2 k1100 时时,led5

39、亮亮 k3 k2 k1101 时时,led6 亮亮k3 k2 k1110 时时,led7 亮亮k3 k2 k1111 时时,led8 亮亮k3k1闭合为闭合为0,断开为断开为1。 要求要求:d7d0d7d05vresetioriowrdwr口地址译码口地址译码218h21fha1a1a0a082555vled8led7led1pb7pb6pb0pa2pa1pa0k3k2k15v单脉冲发生器单脉冲发生器pc4kpc5ibfaintrapc3inteacs实验电路图实验电路图(教材(教材p347)stbaa口口: 218h, 21chb口口: 219h, 21dhc口口: 21ah, 21eh控口

40、控口:21bh, 21fh 端口地址端口地址设计思路设计思路d7d0d7d05vresetioriowrdwr口地址译码口地址译码218h21fha1a1a0a082555vled8led7led1pb7pb6pb0pa2pa1pa0k3k2k15v单脉冲发生器单脉冲发生器pc4kpc5ibfaintrapc3inteacsstba 8255工作方式的选择工作方式的选择b口应为基本型输出口应为基本型输出a口应为选通型输入口应为选通型输入设计思路设计思路d7d0d7d05vresetioriowrdwr口地址译码口地址译码218h21fha1a1a0a082555vled8led7led1pb7

41、pb6pb0pa2pa1pa0k3k2k15v单脉冲发生器单脉冲发生器pc4kpc5ibfaintrapc3inteacsstba十 四 8255和和cpu交换交换信息的方式信息的方式 cpu8255b口用口用无条件输出无条件输出 设计思路设计思路d7d0d7d05vresetioriowrdwr口地址译码口地址译码218h21fha1a1a0a082555vled8led7led1pb7pb6pb0pa2pa1pa0k3k2k15v单脉冲发生器单脉冲发生器pc4kpc5ibfaintrapc3inteacsstba设计思路设计思路 cpu8255a口交口交换信息换信息解法解法1:查询方式,:

42、查询方式,当当pc5=1时,表示时,表示k3k2k1的值已写的值已写入入a口了口了解法解法2:中断方式,:中断方式,pc3接系统从接系统从8259 ir1,按用户中断,按用户中断处理处理d7d08255led8led7led1k十 四d7d0resetrdwra1a082555vled8led7led1pb7pb6pb0pa2pa1pa0k3k2k15v单脉冲发生器单脉冲发生器pc4kpc5ibfaintrapc3inteacsstbaa口禁止中断命令字口禁止中断命令字0 x x x 1 0 0 0=08h 用查询方式编程:用查询方式编程:方式选择命令字:方式选择命令字:1 0 1 1 x 0

43、 0 x =b0ha口口方式方式1a口口输入输入b口口方式方式0b口口输出输出b口方式口方式0输出,输出,a口选通型输入查询口选通型输入查询查询方式程序清单查询方式程序清单 ;filename:1021_1.asmdata segmentmesg db 8255a ready.,0dh,0ah,$tab db 11111110b db 11111101b db 11111011b db 11110111b db 11101111b db 11011111b db 10111111b db 01111111bdata endscode segment assume cs:code,ds:data

44、beg: mov ax,data mov ds,ax call i8255a ;8255a初始化初始化 mov ah,9 mov dx,offset mesg int 21h ;给出操作提示给出操作提示scan: mov ah,1 int 16h ;有键入有键入 ? jnz return ;有有 mov dx,21ah in al,dx ;读读8255a c口口 test al,00100000b ;pc5=1 ? jz scan ;no mov dx,218h in al,dx ;读读8255a a口口 and al,07h mov bx,offset tab xlat tab ;查表查表 mov dx,219h out dx,al ;表项输出到表项输出到b口口 jmp scanreturn: mov ah,4ch int 21h ;返回返回 dosi8255a proc mov dx,21bh mov al,0b0h out dx,al ;写入工作方式字写入工作方式字 mov al,08h out dx,al ;令令pc4=0 (inte a =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论