欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第09章 可编程外围接口芯片8255A及其应用.ppt

    • 资源ID:68702525       资源大小:489KB        全文页数:60页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第09章 可编程外围接口芯片8255A及其应用.ppt

    9-1 可编程并行通信可编程并行通信接口接口8255A 8255A8255A是是INTERINTER系列的并行接口芯片。它是可系列的并行接口芯片。它是可编程的,可以通过软件来设置芯片的工作方式。编程的,可以通过软件来设置芯片的工作方式。一、一、8255A的结构和功能的结构和功能1数据端口数据端口A、B、C1.8255A内部包含3个8位的输入输出端口A、B和C,用于与外设交换数据或进行通信联络。2.端口A包含一个8位的数据输入锁存器和一个8位的数据输出锁存器缓冲器,因此A口作输入、输出可以同时锁存数据。3.端口B包含一个8位的数据输入输出锁存器和一个8位的数据输入缓冲器,输出数据可以锁存,输入数据也可锁存,但输入/输出不能同时锁存。4.端口C包含一个8位的数据输入缓冲器和一个8位的数据输出锁存器,无输入锁存功能,当它被分成两个4位端口时,每个端口有一个4位的输出锁存器。2、A组和B组控制逻辑1.8255A的端口A和端口C的高4位(PC7PC4)由A组控制逻辑管理,端口B和端口C的低4位(PC3PC0)由B组控制逻辑管理。2.这两组控制电路都从读/写控制逻辑接受命令信号,从内部数据总线接收控制字,然后向各有关端口发出相应的控制命令,控制每个端口的工作方式。3.还可以根据CPU的命令字对端口C的每一位按位进行置位或复位。3、数据总线缓冲器1.双向三态的8位缓冲器,用作8255A和系统数据总线之间的接口。2.当片选信号 CS=0 时,通过这个缓冲器和与之相连的8位数据总线D7D0,从CPU接收的数据或控制字,向CPU传送外设的数据或状态信息。3.当片选信号 CS=1 时,数据总线缓冲器与外部总线D7D0之间为高阻状态,即电气隔离状态;RESETRESET:复位信号,低电平有效。复位信号,低电平有效。D D7 7D D0 0:和数据线相连。和数据线相连。CSCS:芯片选择信号,低电平有效。芯片选择信号,低电平有效。RDRD:芯片读出信号,低电平有效。芯片读出信号,低电平有效。WRWR:芯片写入信号,低电平有效。芯片写入信号,低电平有效。A A1 1、A A0 0:端口选择信号。端口选择信号。A A1 1A A0 0=00,=00,选中端口选中端口A;A;A A1 1A A0 0=01,=01,选中端口选中端口B;B;A A1 1A A0 0=10,=10,选中端口选中端口C;C;A A1 1A A0 0=11,=11,选中控制端口选中控制端口;4 4、读写控制信号、读写控制信号A1A0操 作00001端口A数据总线00101端口B数据总线01001端口C数据总线01101非法状态00010数据总线端口A00110数据总线端口B01010数据总线端口C01110数据总线控制字寄存器0XX11数据总线高阻态1XXXX二、二、8255A的控制字的控制字8255A8255A控制字分为两类。控制字分为两类。n 芯片各端口的芯片各端口的方式选择控制字方式选择控制字,它可以使,它可以使8255A8255A的的3 3个数据端口工作在不同的工作方个数据端口工作在不同的工作方式。式。n C C端口端口置位置位/复位控制字复位控制字,它可以使,它可以使C C端口端口中的任何一条口线进行置位或复位,而不中的任何一条口线进行置位或复位,而不影响其他各位的状态。影响其他各位的状态。1.1.方式控制字方式控制字2.2.端口端口C C置置1/01/0控制字控制字0 D7 D6 D5 D4 D3 D2 D1 D01=置置10=置置0端口端口C置置1/0控制字控制字0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7图、端口图、端口C置置1/0控制字控制字例例1:设:设A端口工作方式端口工作方式0,输出,输出,B端口工作于方式端口工作于方式0,输入。,输入。方式选择控制字:方式选择控制字:1 0 0 0 1/0 0 1 1/0 =10000010=82H 方方式式选选择择A口口方方式式0A口口输输出出C口口高高位位不不用用B口口方方式式0B口口输输入入C口口低低位位不不用用n n例例例例2 2:设:设8255A的控制口地址为的控制口地址为00EEH,要求对要求对端口端口C的的PC7置置1,则控制字,则控制字00001111B=0FH,要求对端口要求对端口C的的PC3置置0,控制字为,控制字为00000110B=06H。n下面的程序可以实现上述要求:下面的程序可以实现上述要求:MOV AL ,0FH ;对对PC7置置1的控制字的控制字 MOV DX ,00EEH ;控制口地址送控制口地址送DX OUT DX ,AL ;对对PC7置置1操作操作 MOV AL ,06H ;对对PC3置置0的控制字的控制字 OUT DX ,AL ;对对PC3进行置进行置0的操作的操作三、三、8255A的工作方式和的工作方式和C口状态字口状态字1.1.方式方式0-0-基本输入输出方式基本输入输出方式适用于不需要用应答信号的简单输入输出场合。适用于不需要用应答信号的简单输入输出场合。在这种方式下,在这种方式下,A口和口和B口可作为口可作为8位的端口,位的端口,C口的高口的高4位和低位和低4位可作为两个位可作为两个4位的端口。位的端口。这这4个端口中的任何一个可作输入或者输出,个端口中的任何一个可作输入或者输出,从而构成从而构成16种不同的输入输出组态。在实际应种不同的输入输出组态。在实际应用时,用时,C口的两半部分也可以合在一起,构成口的两半部分也可以合在一起,构成一个一个8位的端口。这样位的端口。这样8255A可构成可构成3个个8位的端位的端口,或两个口,或两个8位、两个位、两个4位的端口。位的端口。CPU与这些端口交换数据时,可以直接用输入与这些端口交换数据时,可以直接用输入指令从指定端口读取数据,或用输出指令将数指令从指定端口读取数据,或用输出指令将数据写入指定的端口。据写入指定的端口。由于输入不能锁存,在用由于输入不能锁存,在用IN指令读取数据时,指令读取数据时,所得到的数据是信号有效时端口线上的状态。所得到的数据是信号有效时端口线上的状态。在输出方式下,用在输出方式下,用OUT指令把指令把CPU的数据写入的数据写入端口时,信号把数据锁存到该端口的输出锁存端口时,信号把数据锁存到该端口的输出锁存器中,输出口线上的数据会一直保持不变,直器中,输出口线上的数据会一直保持不变,直到再次改变锁存器的值为止。到再次改变锁存器的值为止。2 2方式方式11选通的输入输出方式选通的输入输出方式A口和B口均可工作于输人或输出方式,这两个8位数据口的输入、输出数据都能锁存。C口被定义为A口、B口的联络信号,PC0PC2作端口B的状态和控制线,PC3PC7作端口A的状态和控制线,用于提高数据交换性能。方式1下输入、输出的操作时序与引脚定义不同。在采用中断方式进行输入/输出的场合,如果外部设备能为8255A提供选通信号或着数据接收应答信号,则通常使用8255A的端口工作方式1的情况。1)1)方式方式1 1输入输入 STB(Strobe)选通信号,低电平有效,)选通信号,低电平有效,它是由外设送给它是由外设送给8255A的。当该信号有效的。当该信号有效时,时,8255A将外部设备通过端口数据线将外部设备通过端口数据线PA7PA0或或PB7PB0输入的数据送到对输入的数据送到对应端口的输入锁存器中。应端口的输入锁存器中。IBF(Input Buffer Full):输入缓冲器):输入缓冲器满信号,高电平有效,满信号,高电平有效,8255A输出给外设输出给外设的应答,要求外设不能再送数据。的应答,要求外设不能再送数据。INTR(Interrupt Request):):中断请求信中断请求信号,高电平有效,号,高电平有效,8255A输出给输出给CPU的中的中断请求信号。只有当断请求信号。只有当STB、IBF和和INTE三三者都高时,者都高时,INTR才能被置为高电平。才能被置为高电平。INTE(Interrupt Enable):):中断允许信中断允许信号,为号,为1时,使端口处于中断允许状态,而时,使端口处于中断允许状态,而为为0时,使端口处于中断屏蔽状态。没有外时,使端口处于中断屏蔽状态。没有外部引出脚。用软件才能使这两个触发器置部引出脚。用软件才能使这两个触发器置或清或清0。INTE_A由由C口按位操作控制字口按位操作控制字通过对通过对PC4位的置位位的置位/复位来控制,复位来控制,INTE_B通过通过PC2位控制。位控制。例:例:MOVAL,0000 1001BOUTCTRL_PORT,AL;INTEA1 RDPA7PA0INTE APC4PC5PC3PC6.PC7I OINTRAIBFASTBA来自外设的选同信号输入端来自外设的选同信号输入端去外设的输入缓冲区满信号去外设的输入缓冲区满信号送往送往8259A8259A的中断请求信号的中断请求信号中断允许信号中断允许信号,INTE,INTE由置位由置位STB(PC4)STB(PC4)操作置操作置“1”1”A口方式口方式1输入有关信号的规定输入有关信号的规定10 11 1/0 D7 D6 D5 D4 D3 D2 D1 D0方式方式1PC7.PC61=输入输入0=输出输出端口端口A输入输入11 1 D7 D6 D5 D4 D3 D2 D1 D0端口端口B输入输入方式方式1 RDINTE BPC2PC1PC0PB7PB0STBBIBFBINTRBB口口方式方式1输入输入有关信号的规定有关信号的规定选选通信号输入端,来自外设通信号输入端,来自外设输入缓冲区满信号,送往外设输入缓冲区满信号,送往外设送往送往8259A8259A的中断请求信号的中断请求信号中断允许信号中断允许信号,INTE,INTE由置位由置位/复位复位STB(PC2)STB(PC2)操作置操作置1/01/0方式方式1输入输入选通输入时序选通输入时序方式方式 1 1 输入输入 C C 口状态字口状态字在方式1下,CPU用输入指令对C口进行读操作得到C口状态字,其中存有端口C的握手信号的状态。B组方式1输入状态字为:A组方式1输入状态字为:2 2)方式)方式1 1输出输出 OBF(Output Buffer Full)输出缓冲器满信号,输出缓冲器满信号,低电平有效,输出。当它为低电平时,表示低电平有效,输出。当它为低电平时,表示CPU已将数据写到已将数据写到8255A的指定输出端口,即数据已的指定输出端口,即数据已被输出锁存器锁存,并出现在端口数据线被输出锁存器锁存,并出现在端口数据线PA7PA0或或PB7PB0上,通知外设可将数据取走。上,通知外设可将数据取走。ACK(Acknowledge):外设的应答信号,低:外设的应答信号,低电平有效,由外设送给电平有效,由外设送给8255A。当它为低电平时,。当它为低电平时,表示表示CPU输出到输出到8255A的的A口或口或B口的数据已被外口的数据已被外设接受。设接受。INTR(Interrupt Request):):中断请求信中断请求信号,高电平有效,号,高电平有效,8255A输出给输出给CPU的中的中断请求信号。只有当断请求信号。只有当ACK、OBF和和INTE三三者都高时,者都高时,INTR才能被置为高电平。才能被置为高电平。INTE(Interrupt Enable):):中断允许信中断允许信号,为号,为1时,使端口处于中断允许状态,而时,使端口处于中断允许状态,而为为0时,使端口处于中断屏蔽状态。没有外时,使端口处于中断屏蔽状态。没有外部引出脚。用软件才能使这两个触发器置部引出脚。用软件才能使这两个触发器置或清或清0。INTE_A由由C口按位操作控制字口按位操作控制字通过对通过对 PC6 位的置位位的置位/复位来控制,复位来控制,INTE_B通过通过 PC2 位控制。位控制。10 10 1/0 D7 D6 D5 D4 D3 D2 D1 D0方式方式1PC4.PC51=输入输入0=输出输出端口端口A输出输出A口方式口方式1输出有关信号的规定输出有关信号的规定WRPA7PA0INTE APC3PC6PC7PC4.PC5I OINTRAOBFAACKA输出缓冲区满信号,去外设输出缓冲区满信号,去外设外设响应信号外设响应信号,来自外设来自外设中断请求信号中断请求信号中断允许信号中断允许信号,INTE,INTE由由PC6(ACKPC6(ACKA A)置置“1”,INTR1”,INTR有效有效11 0 D7 D6 D5 D4 D3 D2 D1 D0端口端口B输出输出方式方式1WRINTE BPC0PC2PC1PC7PC0ACKBOBFBINTRB中断允许信号中断允许信号,INTE,INTE由由ACKACKB B(PC2)(PC2)置置“1”,INTR1”,INTR有效有效输出缓冲区满信号,高电平有效输出缓冲区满信号,高电平有效外设响应信号外设响应信号,是外设送给是外设送给8255A的的中断请求信号中断请求信号B口方式口方式1输出有关信号的规定输出有关信号的规定方式1输出选通输出时序方式方式 1 1 输出输出 C C 口状态字口状态字在方式1下,CPU用输入指令对C口进行读操作得到C口状态字,其中存有端口C的握手信号的状态。B组方式1输出状态字为:A组方式1输出状态字为:只有只有A口可以工作于这种方式。在这种方口可以工作于这种方式。在这种方式下,式下,CPU与外设交换数据时,可在单一与外设交换数据时,可在单一的的8位端口数据线位端口数据线PA7PA0上进行,既可上进行,既可以通过以通过A口把数据传送到外设,又可以从口把数据传送到外设,又可以从A口接收从外设送过来的数据,而且输入口接收从外设送过来的数据,而且输入和输出数据均能锁存。和输出数据均能锁存。端口端口A工作于方式工作于方式2时,端口时,端口C的高的高5位位(PC3PC7)作作A口的联络控制信号,方式口的联络控制信号,方式2看成是看成是A口方式口方式1输出和方式输出和方式1输入的结合。输入的结合。B口可工作在方式口可工作在方式0或方式或方式1,与,与A口无关。口无关。3、方式2双向传输方式 D7 D6 D5 D4 D3 D2 D1 D011端口端口A方式方式B组方式组方式0=方式方式01=方式方式1PC2PC01=输入输入0=输出输出端口端口B1=输入输入0=输出输出方式方式2 2的方式控制字的方式控制字PC2PC0PC4PC5PC6PC7PC3 INTE1 INTE2I O IBFA STBA ACKA OBFA INTRAWRRDPA7 PA0方式方式2的控制信号的控制信号输出缓冲区满信号输出缓冲区满信号外设收到数据外设收到数据,发响应信号发响应信号外设准备好数据外设准备好数据,发选通信号发选通信号8255A8255A收到数据收到数据,向外设向外设发输入缓冲区满信号发输入缓冲区满信号方式2时序方式方式2 2状态字状态字 注:方式2下,输入、输出都可能通过同一个INTR向CPU提出中断请求,因此在检测到INTR有效时,应该通过查询OBF、IBF状态位,以判断是输出中断还是输入中断。9-2 8255使用举例使用举例例例1 1、键盘接口、键盘接口如如何检测是否有键按下?何检测是否有键按下?1.把所有行线都输出低电平;把所有行线都输出低电平;2.当所有按键都没有按下时,所有列线都不当所有按键都没有按下时,所有列线都不与行线连接,而是通过上拉电阻直接挂在与行线连接,而是通过上拉电阻直接挂在+5V,这时读取列线只能得到高电平,这时读取列线只能得到高电平,PA3PA0=1111。3.如果至少有一个键按下,则如果至少有一个键按下,则PA3PA0中中至少有一个是至少有一个是0。把行线全定为低电平,。把行线全定为低电平,再比较列线是否都是高电平,就可知是否再比较列线是否都是高电平,就可知是否有键按下。有键按下。如何确定按下的是哪个键?如何确定按下的是哪个键?1.当有键按下时,采用逐行检查的方法来确定按当有键按下时,采用逐行检查的方法来确定按下的按键。下的按键。2.检查第检查第r行时,只把该行线设为低电平,其余行行时,只把该行线设为低电平,其余行线都是高电平,然后读取列线的状态。线都是高电平,然后读取列线的状态。3.如果列线都是高电平,则该行上的按键都没有如果列线都是高电平,则该行上的按键都没有被按下;如果第被按下;如果第c条列线等于低电平,则可确定条列线等于低电平,则可确定第第r行、第行、第c列交叉处的按键被按下。列交叉处的按键被按下。4.并称此时的行线、列线状态为并称此时的行线、列线状态为行码行码、列码列码,把,把行码放在前,列码放在后,形成按键行码放在前,列码放在后,形成按键扫描码扫描码,它表示按键的行列位置。例如,按键它表示按键的行列位置。例如,按键“9”在第在第3行、第行、第2列,其扫描码为列,其扫描码为1101 1011=DBH。5.这种依次按行检查的方法称为行扫描法。这种依次按行检查的方法称为行扫描法。n按键扫描码表示了按键在矩阵中的位置,按键扫描码表示了按键在矩阵中的位置,并不表明并不表明按键功能按键功能含义。例如,按键含义。例如,按键“7”,它的扫描码为,它的扫描码为BEH,其功能却是,其功能却是数字数字“7”,称其,称其键值键值为为“7”。n在矩阵键盘中,按键的扫描码是唯一确定在矩阵键盘中,按键的扫描码是唯一确定的,但每个按键的键值可能有不同的定义。的,但每个按键的键值可能有不同的定义。n为了便于实现从扫描码到键值的转换,根为了便于实现从扫描码到键值的转换,根据键值从小到大的顺序,依次存放按键的据键值从小到大的顺序,依次存放按键的扫描码,形成按键扫描码表。扫描码,形成按键扫描码表。n获得按键扫描码后,把它与表中的数据依获得按键扫描码后,把它与表中的数据依次比较,相等时对应的顺序号就是该键的次比较,相等时对应的顺序号就是该键的键值。键值。n按键的抖动与处理按键的抖动与处理1.按键开关通常为机械弹性开关,均利用了按键开关通常为机械弹性开关,均利用了机械触点的闭合、断开作用。由于机械触机械触点的闭合、断开作用。由于机械触点的弹性作用,在闭合及断开的瞬间均伴点的弹性作用,在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由按随有一连串的抖动,抖动时间的长短由按键的机械弹性决定,一般键的机械弹性决定,一般510ms;2.操作人员的压键、释键操作表现为按键稳操作人员的压键、释键操作表现为按键稳定闭合、断开,反映在电平上就是稳定的定闭合、断开,反映在电平上就是稳定的低电平、高电平。为了确保低电平、高电平。为了确保CPU对一次击对一次击键动作只确认一次压键,必须消除抖动的键动作只确认一次压键,必须消除抖动的影响。按键操作有几种?影响。按键操作有几种?n软件消除抖动的方法软件消除抖动的方法1.在第一次检测到有键按下时,执行一段延在第一次检测到有键按下时,执行一段延时时10ms的子程序以后再读取键盘状态,的子程序以后再读取键盘状态,进行比较;进行比较;2.如果两次的状态电平保持一致则认为真正如果两次的状态电平保持一致则认为真正有键稳定按下,从而消除抖动的影响。有键稳定按下,从而消除抖动的影响。3.如果两次的状态不一致,重复前两个步骤如果两次的状态不一致,重复前两个步骤;-;定义各端口地址A_PORTEQU0FFE0H;A口地址B_PORTEQU0FFE2H;B口地址C_PORTEQU0FFE4H;C口地址CTRL_PORTEQU0FFE6H;控制口地址;-;数据段,单个按键扫描码表DATASEGMENTTABLE DB077H,07BH,07DH,07EHDB0B7H,0BBH,0BDH,0BEH DB0D7H,0DBH,0DDH,0DEHDB0E7H,0EBH,0EDH,0EEHDATAENDS;-STACKSEGMENT;堆栈段DW100 DUP(0)TOP_STACKLABELWORDSTACKENDS;-;-CODESEGMENT;代码段;代码段ASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARSTART:MOVAX,STACKMOVSS,AXLEASP,TOP_STACKMOVAX,DATAMOVDS,AX;初始化:;初始化:A组方式组方式0,A口输入,口输入,C口高口高4位输出位输出MOVDX,CTRL_PORT MOVAL,10010000BOUTDX,AL;检查是否所有键都弹起;检查是否所有键都弹起MOVAL,00HMOVDX,C_PORTOUTDX,AL;所有行线等于;所有行线等于0WAIT_OPEN:MOVDX,A_PORTINAL,DXANDAL,0FHCMPAL,0FHJNEWAIT_OPEN;所有键都弹起;所有键都弹起MOV AL,00H;检查是否有键被按下;检查是否有键被按下MOV DX,C_PORTOUTDX,AL;所有行线等于;所有行线等于0WAIT_PRES:MOV DX,A_PORTINAL,DXANDAL,0FHCMP AL,0FHJEWAIT_PRESMOV AH,AL;有键按下时,消抖;有键按下时,消抖MOV CX,16EAHLOOP$INAL,DXANDAL,0FHCMP AL,AHJNEWAIT_PRES;不相等,抖动状态;不相等,抖动状态;稳定状态,确定是哪个键被按下;稳定状态,确定是哪个键被按下MOVCL,0EFH;指向第一行;指向第一行NEXT_ROW:MOVDX,C_PORTMOVAL,CLOUTDX,ALMOVDX,A_PORTINAL,DXANDAL,0FH;低;低4位等于列码位等于列码CMPAL,0FHJNEENCODEROLCL,01;指向下一行;指向下一行JMPNEXT_ROW;检查下一行;检查下一行ENCODE:ANDCL,0F0H;组成按键扫描码;组成按键扫描码ORAL,CL;AL=扫描码扫描码;根据;根据扫描码扫描码查找查找键值键值NEXT_TRY:MOVBX,000FHCMPAL,TABLEBXJEFINDDECBXJNSNEXT_TRY;MOVAH,001H ;出错标志;出错标志JMPEXITFIND:MOVAL,BL;AL=键值键值0FMOVAH,00HEXIT:HLT;方式方式1输入输入n假设假设8255A的的A、B、C、控制端口地址分别为、控制端口地址分别为70H、71H、72H、73H,PA7PA0分别与分别与PB7PB0对应连接,对应连接,PC4与与PC0连接,连接,PC3、PC5都悬空。对于以下程序段,指出缓冲区都悬空。对于以下程序段,指出缓冲区BUFFER的内容。的内容。;-START:MOVBX,0000HMOVAL,10111000BOUT73H,ALMOVAL,01HOUT73H,AL;PC0=1MOVAL,00HOUT73H,AL;STB=0MOVAL,88HOUT71H,AL;PA=PB=88HINAL,70H;AL=A口锁存器值口锁存器值=PA7PA0=88HMOVBUFFERBX,ALINCBXMOVAL,01HOUT73H,AL;STB=01,A口锁存口锁存88HINAL,70H;AL=A口锁存器值口锁存器值=88HMOVBUFFERBX,ALINCBXMOVAL,77HOUT71H,AL;PA=PB=77HINAL,70H;AL=锁存器值锁存器值=88H PA=77HMOVBUFFERBX,AL;-运行结果运行结果BUFFER中数据为:中数据为:88H、88H、88H。方式1输出:打印机接口;定义各端口地址PORT_AEQU2F8H;8255A端口A地址PORT_BEQU2FAH;8255A端口B地址PORT_CEQU2FCH;8255A端口C地址PORT_CTRL EQU 2FEH;8255A控制口地址PORT_0EQU2F0H;8259A偶地址PORT_1EQU2F2H;8259A奇地址;-STACKSEGMENT;堆栈段DW50 DUP(0)TOP_POINTERLABELWORDSTACKENDS;-DATASEGMENT;数据段 MESS_1DB “This is test!”DB 0DH,0AHMESS_LENEQU$-MESS_1PRNT_DONEDB0POINTERDW0000HCOUNTDB0PRNT_ERRDB0DATAENDSCODESEGMENT;代码段;代码段ASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARSTART:MOVAX,STACKMOVSS,AXLEASP,TOP_ POINTERMOVAX,DATAMOVDS,AX;填写中断向量表;填写中断向量表MOVAX,0000HMOVES,AXMOVBX,00AHSHLBX,1SHLBX,1MOVAX,OFFSET PRNT_INTMOVES:BX,AXMOVAX,SEG PRNT_INTMOVES:BX+2,AX;8259A:边沿触发,单片,非缓冲,非自动:边沿触发,单片,非缓冲,非自动EOI,;8088CPU,允许请求,允许请求IR2MOVDX,PORT_0 MOVAL,00010011BOUTDX,ALMOVDX,PORT_1 MOVAL,08HOUTDX,ALMOVAL,00000001BOUTDX,ALMOVAL,11111011BOUTDX,AL;8255A:A口方式口方式0输入,输入,C口高口高4位输出,位输出,B口方式口方式1输出,输出,C口低口低4位输入位输入MOVDX,PORT _ CTRLMOVAL,10010100BOUTDX,ALMOVAL,00001001B;OUTDX,AL;初始化打印机,给出负脉冲;初始化打印机,给出负脉冲(PC5=INIT)MOVDX,PORT_CTRLMOVAL,00001011BOUTDX,AL;=1MOVAL,00001010BOUTDX,AL;=0 MOVCX,17H;延时;延时50usLOOP$MOVAL,00001011BOUTDX,AL;=1;初始化后,;初始化后,PA=XXXX0101,否则,认为错误,否则,认为错误MOVPRINT_ERR,0MOVDX,PORT_A INAL,DXANDAL,0FHCMPAL,00000101BJZSEND_ITMOVCX,16EAH;延时;延时LOOP$INAL,DXANDAL,0FHCMPAL,00000101BJZSEND_ITMOVPRINT_ERR,01H;打印机出错;打印机出错JMPFINSEND_IT:;初始化发送数据;初始化发送数据MOVAX,OFFSET MESS_1MOVPOINTER,AXMOVPRNT_DONE,0MOVCOUNT,MESS_LENMOVAL,00000101BMOVDX,PORT_CTRLOUTDX,AL;置位;置位INTEBSTIWAIT_INT:JMPWAIT_INTFIN:NOP;结束;结束MOVAH,4CHINT21HMAIN ENDPPRNT_INTPROCNEAR;中断服务程序;中断服务程序PUSHAXPUSHBXPUSHDXSTIMOVDX,PORT_BMOVBX,POINTERMOVAL,BXOUTDX,ALMOVDX,PORT _ CTRLMOVAL,00001000BOUTDX,ALMOVAL,00001001BOUTDX,ALINCPOINTERDECCOUNTJNZNEXTDONE:MOVAL,00000100BMOVDX,PORT_CTRLOUTDX,ALMOVPRNT_DONE,1NEXT:MOVAL,20HMOVDX,PORT_0OUTDX,ALPOPDXPOPBXPOPAXIRETPRNT_INT ENDPCODEENDSEND作业nP354:3,4,5

    注意事项

    本文(第09章 可编程外围接口芯片8255A及其应用.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开