微型计算机的接口技术_第1页
微型计算机的接口技术_第2页
微型计算机的接口技术_第3页
微型计算机的接口技术_第4页
微型计算机的接口技术_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

输入输出学习要点:输入输出接口芯片8255和8253的工作方式及初始化编程。

可编程并行接口8255A并行接口:与CPU、外设的通信都是并行通信的接口8255A的基本功能:1。两个8位I/O口:A口和B口两个4位I/O口:C的高4位口和C的低4位口2。三种工作方式,即方式0:基本I/O方式,无固定联络线,A、B、C

方式1:选通I/O方式,有固定联络线,A、B

方式2:双向I/O方式,有固定联络线,A3。具有方式控制字和C口置1/置0控制字内部结构和引脚:方式控制字:信号与操作:

1A组控制B组控制

C口置位1/置0控制字:

0无效位选择置复位选择说明:(1)按位控制字写入8255的控制口。(2)该控制字仅对8255的端口输出锁存器操作。例:设8255A的控制口地址为00EEH,要求对端口C的PC7置1,则控制字00001111B=0FH,要求对端口C的PC3清零,控制字为00000110B=06H。下面的程序可以实现上述要求:

MOVAL,0FH

;对PC7置1的控制字

MOVDX,00EEH

;控制口地址送DX

OUTDX,AL

;对PC7置1操作

MOVAL,06H

;对PC3置0的控制字

OUTDX,AL

;对PC3进行置0的操作8255A的工作方式1、方式0—基本输入输出方式(1)输入a.端口A,B和PC7~PC4及PC3~PC0都可工作于此方式。b.在此方式下,口线直接与端口输入缓冲器相连,输入不具有锁存功能。c.CPU对数据口的输入指令读取口线当前状态。(2)输出a.端口A,B和PC7~PC4及PC3~PC0都可编程工作于此方式。b.在此方式下,输出口线直接与端口输出锁存器相连,端口输出缓冲器被打开。c.CPU对数据口的输出指令把数据输出到端口输出锁存器,并达到端口口线。例:用8255A控制三个发光二极管依秩序循环显示。

8255A0A1CS+5V200译码器D7~D08088CPUA0A1PA0

PA1

PA2端口地址340H-343HA2-A15发光二极管IORRDWRIOW用8255A控制三个发光二极管显示。8255A的端口地址为:

A端口:340HB端口:341HC端口:342H

控制口:343H

试编写8255初始化程序段和控制三个发光二极管显示程序段。开始8255A初始化延时BX

显示代码地址CX=0?YNBX=BX+1CX=CX-1CX

3输出到PA口1、程序框图:1)设A口为输出口,方式0。B口输入,方式0,则方式选择控制字为10000010

B=

82

H。2)A口输出代码:

00000110

06H,1号发光二极管亮

00000101

05H,2号发光二极管亮

0000001103H,3号发光二极管亮3)软件延时2、软件设计参考程序:DATASEGMENTCOTREQU343H ;8255A控制口地址PB_AEQU340H ;8255A的A口地址LEDDB06H,05H,03H;LED显示值DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA…...

MOVDX,COTR;控制口地址

MOVAL,82HOUTDX,AL;A口为方式0输出,B口为输入

MOVDX,PB_A;A口地址

LP:MOVCX,3LEABX,LED;1号灯代码地址

DON:MOVAL,[BX]

OUTDX,AL;1,2,3循环点亮

CALL

DELAY

;调延时1ms程序

INCBX

DECCXJNZDONJMPLPDEALY

PROCNEAR

;软件延时

PUSHCX

MOVCX,186L:NOPNOPLOOPL

POPCX

RETDEALY

ENDPCODEENDSEND2、方式1—选通输入输出方式(1)选通输入方式信号说明:a.STB选通输入:低电平有效,表示外设送出新的数据。b.IBF输入缓冲区满:输出,高电平有效。通知外设输入缓冲区满,不要送新数据,由CPU读取数据清除。c.INTR中断请求信号:输出,高电平有效,可向CPU申请中断。d.INTE中断允许,INTEA是C口输出锁存器的PC4,INTEB是C口输出锁存器的PC2,由它们分别控制A口和B口的中断申请。INTE=1中断允许,INTE=0中断禁止。例:8255A端口A工作在方式1,A口输入,允许A口中断,编写初始化程序。

MOVDX,PCTR;控制口地址送DXMOVAL,10110000B;A口方式1输入OUTDX,ALMOVAL,00001001B;置PC4=1,允许中断OUTDX,AL;方式1输入时序

信号说明:a.OBF输出缓冲器满,输出,低电平有效,通知外设端口已有可用数据。b.ACK收到信号,输入,低电平有效。外设通知8255已取走数据,由其清除OBF,并置“1”

。c.INTR中断请求信号,输出,高电平有效,可向CPU申请中断。d.INTE中断允许信号INTEA为PC6输出锁存器,INTEB为PC2输出锁存器。INTE=1中断允许,INTE=0禁止中断。方式1输出时序例:中断方式打印机接口及编程(方式1应用)

8255A工作在方式1,即端口A工作在方式1输出,外加一片中断控制器8259A,端口A的中断输出线PC3通过8259A向CPU申请中断,可以构成中断方式打印接口电路,如图8-15所示。设8255A的4个端口地址分别为:244H,245H,246H,247H,试编写打印机驱动程序。分析:用PC7作为打印机的选通信号,打印机的作为外设给8255A的应答信号(PC6),

8255A的中断请求输出信号PC3接至中断控制器8259A的IR38255A的控制字为:10101000BPC6置位:

00001101B即

0DH,允许8255A的端口A方式1输出中断假设8259A初始化时写入ICW2的值为08H,则8255A的端口A的中断类型码是0BH(对应IR3),此中断类型码对应的中断向量应放到中断向量表从002CH开始的4个存储单元中主程序

MAIN:

MOVDX,247H

MOVAL,0A8H

OUTDX,AL

;设置8255A的控制字

XORAX,AXMOVDS,AXCLIMOVAX,OFFSETRINGMOV[002CH],AX

MOVAX,SEGRING

MOV[002EH],AX

MOVDX,247HMOVAL,0DH;PC6为1,允许端口A方式1输出中断

OUTDX,AL

MOVDI,OFFSETBUFF;设置地址指针

MOVCX,99;设置计数器初值

MOVDX,244H

MOVAL,[DI]OUTDX,AL;输出第一个字符

INCDI

STINEXT:

HLT;等待中断

LOOPNEXT

ABC:

CLIMOVAH,4CHINT21HRING:

MOV

DX,244HMOVAL,[DI]OUTDX,AL

;从端口A输出一个字符

INC DI

;修改地址指针 IRET

;中断返回

中断服务子程序效数据。(3)ACKA输入,低电平有效。外设发出ACKA打开A口输出缓冲器,读取数据,同时清除OBFA,并使INTR有效。(4)STBA选通信号,输入,低电平有效,外设准备好数据,通过STBA把数据锁存到端口输入锁存器,同时使IBFA和INTRA有效。(5)IBFA输入缓冲区满,输出,高电平有效。通知外设端口已有数据。该信号由CPU对数据端口读操作清除。(6)INTE中断允许信号INTE1为PC6输出锁存器INTE2为PC4输出锁存器INTE=1中断允许INTE=0禁止中断。3、方式2—双向方式仅A口有此方式。控制信号:(1)INTR中断请求信号,输出,高电平有效,向CPU提出中断请求。由输出ACKA或输入STBA使中断申请信号有效。(2)OBFA输出缓冲器满,输出,低电平有效,通知外设端口已有有方式2输入输出操作时序 MOV CX,256 MOV AL,10000001B OUT 83H,AL MOV AL,00001111B OUT 83H,ALWAITK:IN AL,82H TEST AL,04H JNZ WAITK MOV AL,[BX] OUT 80H,AL MOV AL,00001110B OUT 83H,AL NOP NOP MOV AL,00001111B OUT 83H,AL INC BX LOOP WAITK MOV AH,4CH INT 21H例:

8255与打印机的连接8255工作于方式?用PC7、PC2做联络线可编程定时/计数器8253定时的作用:1。用作时间标准;2。作为一些接口的工作节拍;3。信息传输时的同步。计数:1。定时与计数本质是一样的:计数;2。定时的输入信号具有周期性,计数的输入信号是随机的。如何实现定时?软件方法:用一段程序实现延时利用程序循环延迟指定的时间缺点:CPU占用率?延时精度?兼容?硬件方法:定时/计数器电路利用脉冲计数在设定的时间输出定时信号●8253是一种硬件定时/计数器芯片8253的功能:1。三个独立的、功能相同的16位减1计数器;2。B、BCD3。有六种工作方式4。最高计数速度:2MHZ。8253的内部结构及引脚:8253的引脚8253端口信号与功能选择:CSA1A0RDWR功能

00001从计数器0读出计数值

00101从计数器1读出计数值

01001从计数器2读出计数值

00010对计数器0设置计数初值

00110对计数器1设置计数初值01010对计数器2设置计数初值

01110写控制寄存器

1XXXX数据总线为三态

0XX11数据总线为三态

0110X非法状态8253一个计数器的结构:计数器内部结构编程结构—程序员的观点计数器(3个)——包括控制寄存器(1个)——

存放控制命令字(8位)(只写)占用4个地址—3个计数器,1个控制寄存器16位初值寄存器(只写)16位计数寄存器(减1计数器)16位锁存寄存器(只读)(当前计数初值)8253的控制字:计数器读写格式工作方式BCD

控制字写入控制口,各位含义如下:SC1SC0:计数器通道选择

00通道001通道110通道211非法RW1RW0:计数器读写选择

00计数器锁存

01只读写低8位

10只读写高8位

11先低8位,再高8位

M2M1M0:计数器工作方式选择000方式0001方式1x10方式2x11方式3100方式4101方式5BCD:计数器进制选择

016位二进制计数器

1BCD码计数器(二)8253工作方式1、模式0——

计数结束产生中断方式1(可编程单稳)

方式2(分频器)

方式3(方波发生器)

方式4(软件触发选通方式)

方式5(硬件触发选通方式)

初始化程序流程写控制字写计数值低8位写计数值高8位*非必须写入顺序:可按计数器分别写入控制字和初值。也可先写所有计数器控制字,再写入它们的初值例:若8253的地址为40H、41H、42H、43H,选择计数器0,工作在方式0,计数初值为4,采用二进制计数,则初始化程序如下:读8253的当前计数值:先锁存,后读数值。例:MOVAL,00000000BOUT43H,ALINAL,40HMOVAL,10HOUT43H,ALMOVAL,4OUT40H,AL用8253监视一个生产流水线,每通过50个工件,扬声器响5秒钟,频率为2000Hz。其原理如图所示。图中工件从光源与光敏三极管间通过时,在晶体管的发射极会产生一个脉冲,此脉冲作为8253计数器的CLK

温馨提示

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

最新文档

评论

0/150

提交评论