第8章 可编程接口芯片及其与CPU的接口_第1页
第8章 可编程接口芯片及其与CPU的接口_第2页
第8章 可编程接口芯片及其与CPU的接口_第3页
第8章 可编程接口芯片及其与CPU的接口_第4页
第8章 可编程接口芯片及其与CPU的接口_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

第八章可编程接口芯片及其与CPU的接口8.1可编程并行输入/输出接口芯片8255A8.2可编程计数器/定时器82548.3可编程串行输入/输出接口芯片8251A8.1可编程并行输入/输出接口芯片8255A8.1.18255A的内部结构

8.1.28255A的引脚分配

一、与外设联系的引脚

A口有PA0~PA78个引脚,同样B口和C口均有PB0~PB7,PC0~PC78个引脚。

二、与CPU联系的引脚数据和命令通道线D0~D7,读/写控制引脚RD、WR、CS、A0,A1,RESET。三、端口地址控制引脚

CSA1A0端口

000A口地址

001B口地址

010C口地址

011控制端口地址8.1.38255A的工作方式及编程

一、8255A的工作方式

1、方式0(基本输入/输出方式)

2、方式1(选通输入/输出方式)

3、方式2(双向传送方式)各端口可工作的方式:

A口:方式0、方式1、方式2B口:方式0、方式1C口:方式0二、8255A的控制字

1、方式控制字

D7D6D5D4D3D2D1D0B组C口低半字节:1-输入,0-输出B口:1-输入,0-输出

方式选择:0-方式0,1-方式1A组C口高半字节:1-输入,0-输出A口:1-输入,0-输出

方式选择:

方式控制字标志:1-有效00-方式001-方式11X-方式22、C口置“1”/清“0”控制字

D7D6D5D4D3D2D1D0位控:1-置1,0-清0状态选中位000001010011100101110111PC0PC1PC2PC3PC4PC5PC6PC7位控字标志:0-有效无效8.1.48255A各工作方式的功能及应用一、8255A工作在方式0特点:

8255A工作在方式0时,各个端口(包括2个8位端口A、B及2个4位端口C)的输入、输出可以有16种不同的组合。在这种方式下,任一个端口都由CPU用简单的输入/输出指令进行读/写。不用提供“联络”信号,适用于各种同步传送情况。另外,方式0也可用于程序查询方式来进行数据传送。此时,通常以A口和B口作为数据口,而用C口的某些位作为输入输出“联络”信号。注意,输入“联络”信号和输出“联络”信号不在同一4位C口中。方式0应用举例1(同步情况):例18255A的A口和B口工作在方式0,A口为输入端口,接有4个开关;B口为输出端口,接有1个7段发光二极管,其硬件连接电路如图所示。试编一程序要求7段发光二极管显示开关所拨通的数字。分析:

1、端口地址

A口:8020HC口:8024HB口:8022H控制口:8026H2、字符代码对照表显示字符7段代码显示字符7段代码

03FH87FH106H96FH25BHA77H34FHb7CH466Hc39H56DHd5EH67DHE79H707HF31H程序:APORTEQU8020HBPORTEQU8022HCONTREQU8026HDATASEGMENTTAB1DB3FH,06H,5BH,4FH,

……DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

MOVAL,90H;定义8255A工作方式

MOVDX,CONTROUTDX,ALADDR1:MOVDX,APORT;取开关值

INAL,DX

ANDAL,0FH;屏蔽高4位

MOVBX,OFFSETTAB1;取代码表首址

XLAT;找到字符代码

MOVDX,BPORT;输出显示

OUTDX,AL

MOVCX,0400H;显示延时

ADDR2:DECCX

JNZADDR2

JMPADDR1

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

方式0应用举例2(异步查询情况):例2如图所示,假设8255A端口A,B,C及控制口的地址分别为80H,81H,82H和83H;打印机的选通信号为STB,纸带读入机的驱动信号为DRV,编写接口程序。程序片段:

MOVAL,83H;8255A初始化

OUT83H,AL;打印机驱动程序PST:INAL,82HTESTAL,04HJNZPSTMOVAL,BL;若打印数据在BL中

OUT80H,AL

MOVAL,0DHOUT83H,AL;选通打印机

DECALOUT83H,AL

;断开打印机;纸带读入机驱动程序

MOVAL,09HOUT83H,AL

;启动纸带读入机PRT:INAL,82HTESTAL,01HJZPRT;未准备好,循环

INAL,81H;准备好,读入数据

MOVBL,AL

MOVAL,08HOUT83H,AL;断开纸带读入机方式0应用举例3(异步查询情况):例3利用8255A实现打印机接口,打印BL中的数据。打印机工作时序如左图所示。数据接口将数据传送到打印机的数据端口,利用一个负脉冲STROBE打入锁存。这时打印机可发回答信号ACK,然后由打印机处理。同时打印机送出高电平信号BUSY,表示打印机忙于打印。一旦BUSY变为低电平,表示打印结束,即可接收下一数据。请利用8255A工作方式0实现上述打印控制。硬件连接如右图.根据连线分析得知4个端口地址依次为:80H,84H,88H,8CH程序如下:MOVAL,10000001BOUT8CH,AL;8255A初始化WAIT:INAL,88H;读BUSYTESTAL,01HJNZWAIT;BUSY=1等待

MOVAL,BLOUT80H,AL;数据输出

MOVAL,00001110BOUT8CH,AL;PC7置低电平

MOVAL,00001111BOUT8CH,AL;PC7恢复高电平二、8255A工作在方式1特点:

8255A工作在方式1时,数据输入/输出操作要在选通信号控制下完成。A口和B口可作为输入或输出口,而C口的某些位作为“联络”信息。和方式0相比,最重要的差别在于C口的这些位与联络信号有着固定的一一对应关系。A口的联络信息由C口的PC3~PC7提供,B口的联络信息由C口的PC0~PC2提供。另外,8255A在方式1下具有中断能力,可以发出中断请求信号,为CPU工作在中断方式提供了条件。由于输入接口和输出接口所需的选通控制不同,下面分别予以介绍。1、选通输入方式(1)选通输入方式C口“联络”信号定义图2、选通输出方式(1)选通输出方式C口“联络”信号定义图方式1应用举例1(异步查询情况):例1在某一系统中接有一个μ80微型打印机,8255A作为输出接口,工作在选通方式,试编一程序将缓冲区BUFF内的400H个字节的ASCII码送打印机打印,其接口硬件电路如图所示。8255A作为打印机接口电路源程序如下:APORTEQU0FFF8HCPORTEQU0FFFCHCONTREQU0FFFEHDATASEGMENTBUFFDB400HDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,400H;字节长度

MOVAL,0A8H;8255A控制字

MOVDX,CONTROUTDX,ALMOVDI,OFFSETBUFFABC1:MOVAL,[DI];ASCII码输出

MOVDX,APORTOUTDX,ALMOVDX,CPORTABC2:INAL,DX;查OBFA信号

ANDAL,80H;OBFA变高了吗?JZABC2;否;再查ABC3:INAL,DX;查BUSY信号

ANDAL,10H;BUSY变低吗?JNZABC3;否,再查

INCDI;是,传送下一个数

LOOPABC1MOVAH,4CH;返回操作系统

INT21HCODEENDSENDSTART方式1应用举例2(中断情况):例2利用8255工作方式1实现打印控制。8255A工作在方式1时,PC7作为OBFA输出端,PC6作为ACKA输入端,PC3作为INTRA输出端,其硬件连接如图所示。设中断类型码为0BH,中断服务程序首地址为PRINTER。程序片段设计如下:

MOVAL,10100000BOUT8CH,AL;初始化

MOVAL,00001101BOUT8CH,AL

;INTEA置1MOVAH,25H;设置DOS调用功能号

MOVAL,0BH;设置类型码

LEADX,PRINTER;设置中断服务程序偏移地址

MOVBX,SEGPRINTER;设置中断服务程序段地址

MOVDS,BXINT21H;DOS功能调用,设置中断向量

STI;开中断

……PRINTERPROCFAR;中断服务程序

MOVAL,BLOUT80H,AL;输出打印

IRETPRINTERENDP(参考书)例8.6接口图如图9.4所示,设:8259A边沿触发,八个中断类型码为60~67H。写出对以内存DSR开始连续10个字节数进行打印的汇编程序片段。注:未用的地址线可设为0。解根据接口图,8255A的A、B、C、控制口地址分别为8000H、8002H、8004H、8006H,B口工作在方式1。8259A的地址为8028H和802AH。

;初始化8259AMOVDX,8028HMOVAL,13HOUTDX,AL;ICW1MOCDX,802AHMOVAL,60HOUTDX,AL;ICW2MOVAL,01HOUTDX,AL;ICW4;建立中断向量表

PUSHDSMOVAX,0MOVDS,AXMOVSI,OFFSETXYMOVDI,SEGXYMOV[018CH],SIMOV[018EH],DIPOPDS;初始化8255AMOVDX,8006HMOVAL,84HOUTDX,ALMOVAL,05HOUTDX,AL;INTE置1

;循环10次

MOVCX,10LEABX,DSRW:HLTLOOPW……

;中断服务程序

XY:MOVAL,[BX]MOVDX,8002HOUTDX,ALINCBXIRET【评注】由于中断源从8259A的IR3接入,故该中断源的中断类型码为63H,由此计算出中断向量地址为63H×4=018CH。三、8255A工作在方式2特点:

8255A只有A口可工作在方式2,此时B口可工作在方式0或者方式1。

8255A工作在方式2,CPU通过它与外设交换数据可采用无条件传送方式,查询传送方式或中断传送方式。A口设置为方式2,也就是说从A口既可以输入数据,也可以输出数据,但某时某刻只能是输入或输出。实际上是A口方式1输入和输出的组合形式。方式2下C口“联络”信号定义图8.2可编程计数器/定时器82548.2.18254的内部结构及功能一、内部结构及引脚

端口地址分配:

CSA1A0端口地址

0000#计数器地址

0011#计数器地址

0102#计数器地址

011控制字寄存器地址计数器的内部结构二、功能计数器方式定时器方式

8.2.28254的编程

设置控制字(写入控制寄存器地址)

初始化赋计数初值(写入相应计数器地址)包括

读计数器内容(从相应计数器地址读出)一、控制字格式

1BCD计数D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCD0二进制计数工作方式选择000

方式0001方式110方式211方式3100方式4101方式5计数长度选择00将计数器中的数据锁存于输出锁存器01选择计数器低8位读或写,高8位自动为010选择计数器高8位读或写,低8位自动为011选择先低后高两个字节读或写计数器选择00计数器001计数器110计数器211非法二、对计数器赋计数初值控制字写完后,接着赋计数初值。计数初值写入计数器的格式必须按照控制字的RL1、RL0的读写指示来写。另外,当D0=0时,即选择二进制计数,计数初值可在0~FFFFH之间选择。当D0=1时,即选择BCD码计数,计数初值可在0~9999之间选择。若想扩大计数范围,可以将两个或三个计数器级连使用。即将一计数器的OUT信号与另一计数器的CLK信号相连接。三、读计数器的内容

8254的读操作只能读计数器的值,而不能读控制字。若读16位计数值,则对该计数器读两次,先读低8位,再读高8位。如果在计数过程中读计数器内容,则需发锁存命令。计数器的锁存命令是用一个字节的最高两位D7,D6指定要锁存的计数器;D5,D4必须为00作为锁存命令的标志。而低4位可为全0。它是控制字的一种特殊形式,所以要把此锁存命令写到控制字寄存器中去。可见,3个计数器的锁存命令分别为00H,40H和80H。

四、举例例1

若要使计数器1工作在方式0,仅用8位二进制计数,计数值为128,试对其进行初始化编程。

MOVAL,50HOUT73H,ALMOVAL,80HOUT71H,AL

例2

若要使计数器0工作在方式1,按BCD码计数,计数值为3000,试对其进行初始化编程。

MOVAL,23HOUT73H,ALMOVAL,30HOUT70H,AL

例3若要使计数器2工作在方式2,按二进制计数,计数值为1110H,试对其进行初始化编程。

MOVAL,0B4HOUT73H,ALMOVAL,10HOUT72H,ALMOVAL,11HOUT72H,AL

例48254工作方式同上题。要在计数过程中读取该计数器的计数值。试对其进行初始化编程。

MOVAL,0B4HOUT73H,ALMOVAL,10HOUT72H,ALMOVAL,11HOUT72H,ALMOVBH,20HW:DECBHJNZW

MOVAL,80HOUT73H,AL

INAL,72HMOVCL,AL

INAL,72HMOVAH,ALMOVAL,CL

8.2.38254的工作方式一、方式0主要特点:*方式0的OUT输出是一次性负方波。*若想再次OUT输出,必须重写控制字、计数值或只写计数值。二、方式1主要特点:*方式1的OUT输出是一次性负方波。*若想再次OUT输出,只须重新启动GATE脉冲。三、方式2主要特点:*方式2的OUT输出是周期性的负脉冲。

例5已知计数脉冲CLK频率为2MHZ,要求每10ms产生一次中断,选用2#计数器。8253地址70H~73H。分析:1、工作方式的选择

2、计数初值的确定

MOVAL,0B4HOUT73H,ALMOVAL,20HOUT72H,ALMOVAL,4EHOUT72H,AL四、方式3主要特点:*方式3的OUT输出是周期性的方波。(若计数值n是偶数,则输出OUT是对称方波;若计数值n是奇数,则输出OUT在(n+1)/2计数期间保持为高电平,而在(n-1)/2计数期间保持为低电平。)五、方式4主要特点:*方式4的OUT输出是一次性负脉冲。*若想再次OUT输出,须再次写入计数值。故又称软件触发选通方式。六、方式5主要特点:*方式5的OUT输出是一次性负脉冲。*若想再次OUT输出,只须再次启动GATE脉冲。故又称硬件触发选通方式。OUT输出特性及GATE的区别OUTGATE方式0一次性负方波电平控制方式1一次性负方波脉冲触发方式2周期性负脉冲电平控制方式3周期性正方波电平控制方式4一次性负脉冲电平控制方式5一次性负脉冲脉冲触发软件触发硬件触发例6某8086系统中有一片8254芯片,利用其通道1完成对外部事件计数,计满250次向CPU发出中断申请;利用2通道输出频率为1kHz的方波,试编写8254的初始化程序,硬件电路如图所示。

MOVAL,71H;通道1控制字

OUT1EH,AL

MOVAL,0A7H;通道2控制字

OUT1EH,AL

MOVAL,50H;通道1计数值低8位

OUT1AH,AL

MOVAL,02H;通道1计数值高8位

OUT1AH,AL

MOVAL,20H;通道2计数值高8位

OUT1CH,AL例78254通道2接有一发光二极管,要使发光二极管以点亮2s,熄灭2s的间隔工作,8254各通道端口地址分别为FFE9H~FFEFH。其电路硬件图如图。试编程完成以上工作。MOVDX,0FFEFH;控制字端口地址

MOVAL,65H;通道1控制字

OUTDX,AL

MOVAL,0A7H;通道2控制字

OUTDX,AL

MOVDX,0FFEBH;通道1端口地址

MOVAL,40H;通道1计数值高8位

OUTDX,AL

MOVDX,0FFEDH;通道2端口地址

MOVAL,10H;通道2计数值高8位

OUTDX,AL例8有如下接口原理图。要求发光二极管L0亮5秒后就熄灭;L1在K1启动后亮6秒后就熄灭;L2亮4秒灭4秒交替进行。写出源程序片段。分析:由译码电路分析可知,8254芯片计数器1、计数器2、计数器3及控制端口的地址分别为91H,93H,95H,97H。根据接口图及题目要求,8254的计数器0应该工作在方式0,计数初值N0=5000;计数器1应工作在方式1,N1=6000;计数器2应工作在方式3,N2=8000。

MOVAL,21H;初始化计数器0OUT97H,ALMOVAL,50HOUT91H,AL

MOVAL,63H;初始化计数器1OUT97H,ALMOVAL,60HOUT93H,AL

MOVAL,0A7H;初始化计数器2OUT97H,ALMOVAL,80HOUT95H,AL

8.3可编程串行输入/输出接口芯片8251A8.3.1串行通讯概述一、串行通讯方式

异步通讯同步通讯1、异步通讯数据格式规定:

(1)字符格式

.起始位、停止位的位数

.数据采用的编码

.是否奇偶校验,若要,规定奇校验还是偶校验(2)波特率

温馨提示

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

评论

0/150

提交评论