微机原理第十章:并行接口技术_第1页
微机原理第十章:并行接口技术_第2页
微机原理第十章:并行接口技术_第3页
微机原理第十章:并行接口技术_第4页
微机原理第十章:并行接口技术_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

第十章并行接口技术

内容摘要:★详细介绍通用、可编程并行接口芯片8255A和定时/计数器

8253-5芯片★通过可编程芯片的学习,认识接口的内部结构及功能特点★在学习这些芯片的过程中,掌握接口技术及编程的技巧以及它们的应用方法。学习要点:★并行8255A芯片内部结构、三种工作方式、控制字和状态字★定时/计数器8253计数器结构、六种工作方式特点和应用10.1概述

一、并行通信:是把一个字符的八位用8条数据线同时进行传递

★优点:传输速度快,信息率高

★缺点:传输距离短,所需的电缆多

☆常用在传送距离较短和数据传输率较高的场合二、并行接口:实现并行通信的接口电路称为并行接口

1.单通道并行接口,只具有一个信息传输的通道

★单通道输入接口

★单通道输出接口

★单通道输入/输出接口(分时)

2.双通道并行接口★具有两个信息传输的通道,分别作为输入及输出接口10.2可编程并行通信接口芯片8255A10.2.1可编程接口芯片的基本概念★

在启动接口芯片工作之前,通过程序将控制字写入到芯片的控制寄存器中,以确定芯片电路的不同工作方式和选择不同的工作通道,使其按照用户要求的工作模式进行工作★这种过程被称为:(芯片的)初始化★接口芯片(电路)的工作状态和功能可通过程序进行设定和控制,这样的接口芯片称为“可编程接口芯片”★可编程接口芯片具有:多通道、多功能的功能★一般可编程芯片的构成:见下图一般可编程芯片的构成1.内部构成:控制、状态及I/O端口,读写控制逻辑电路2.外部引脚:与CPU相连接引脚和与外部设备相连接的引脚系统总线控制寄存器输入缓存寄存器状态寄存器输出缓存寄存器读写逻辑控制电路输入设备输出设备输入RDYACKSTBROY输出DB低位地址RDWR准备好INT复位OEWECSAB高位译码+M/IO端口地址线10.2.28255A芯片内部结构及其引脚★

8255A基本特征:

1.40引脚双列直插芯片,单一正5V电源;

2.有三个相互独立又关联的8位并行输入/输出数据端口,各端口均具有输出锁存和输入三态缓冲功能;

3.具有一个控制端口,CPU可通过编程写入控制字,用于设置各个端口工作在某种工作方式下;

4.三个数据端口分别称为:A口、B口、C口具有三种工作方式:方式0、方式1、方式2★

8255A是一种通用型、应用较广的可编程输入/输出接口芯片,常用来扩展控制器(CPU)的输入/输出接口10.2.28255A芯片内部结构及其引脚一、8255A的内部结构:四部分组成1.数据总线缓冲器:三态、八位、双向,是与数据总线的接口2.A、B、C数据端口:具有输出锁存、输入三态缓冲功能;

A组:A口和C口的高四位;

B组:B口和C口的低四位;3.A、B组控制电路:根据工作方式控制字,决定各组中各口的工作方式;4.读写控制逻辑电路:接收CPU经总线发出的地址和控制信号,管理接口中信息传送、控制字的接收和状态信号的传递。②④③①8255A的内部结构框图I/OPA7~PA0

I/O

PC3~PC0

I/OPC7~PC4I/OPB7~PB0D7~D0

数据总线缓冲器:三态、八位、双向,是与数据总线的接口。★

A、B、C数据端口:具有输出锁存、输入三态缓冲功能

A组:A口和C口的高四位;B组:B口和C口的低四位一、8255A的内部结构★A、B组控制电路根据工作方式控制字,决定各组中各口的工作方式;★读写控制逻辑电路:接收CPU经总线发出的地址和控制信号,管理接口中信息传送、控制字的接收和状态信号的传递。10.2.28255A芯片内部结构及其引脚二、8255A的外部引脚:40条引脚,输入、输出信号均为TTL电平1.面向系统总线信号的引脚◆

D0~D7:双向三态数据信号线,接系统总线◆

CS:片选端,输入低电平有效,高位地址译码后和M/IO信号共同产生片选信号◆

RD:读信号,输入低电平有效◆

WR:写信号,输入低电平有效◆

REAST:复位信号,输入高电平有效。复位后,各口为输入方式,内部寄存器被清零。◆

A1、A0:片内端口地址线,输入;用于端口选择:

2.面向外设的信号引脚◆

PA0~PA7A端口◆

PB0~PB7B端口◆

PC0~PC7C端口各个端口的输入、输出线。10.2.28255A芯片内部结构及其引脚二、8255A的外部引脚A1A2端口00A端口01B端口10C端口11控制端口★端口地址分配10.3.38255A的编程命令

★8255A内部有两个控制寄存器,共用一个端口地址:11B★

用于存放工作方式控制字和C口按位置位/复位控制字一、工作方式控制字D7=1工作方式控制字标志1特征位举例~~~~例如:A口工作于方式1,作为输入端口,C口高4位为输出端口;

B口工作于方式0,作为输出端口,C口低4位为输入端口。

则工作方式控制字为:10110001B=B1H

8255A端口地址为:300H~303H

则初始化程序如下

MOVDX,303H

;8255A控制字寄存器地址

MOVAL,0B1H

;设置方式字

OUTDX,AL

;送到8255A控制寄存器中二、C口的按位操作控制字

◆对C口中的某一位进行置位(置一)或复位(置零)特征位D7=00例:将8255AC口的PC4位置位(置一)

MOVDX,303H

;控制端口地址送DX寄存器

MOVAL,00001001B

;设置C口的按位操作控制字

OUTDX,AL

;送到8255A控制寄存器中10.3.48255A的工作方式

8255A有三种工作方式:方式0

;方式1

;方式2100××0××工作方式控制字一、方式0:基本输入输出方式

1.该方式8255A的三个端口均用作数据的输入/输出

2.其中A口、B口是8位端口,C口作为两个独立的4位端口使用

3.无论是8位端口还是4位端口,不能同时既是输入又是输出

4.方式0

下8255A共有16种工作组态,不需要联络线,可用于实现无条件数据传送10.3.48255A的工作方式二、方式1:选通输入或输出方式(1)A组和B组端口均可选用此工作方式(2)当A口、B口置于此工作方式时,与A口、B口同组的C口部分引脚(位)被用作A口或B口输入输出时的联络线,从而不能作为I/O端口使用(3)方式1时,C口作为联络控制信号线,CPU可采用查询方式或中断方式与8255A交换信息(4)A口、B口在作为输入和输出时的选通信号不同,即C口的作用不同(5)C口的8位除用作选通信号外,其余位可工作于方式0下,作为输入或输出口1、方式1

的输入结构A口:占用PC3~PC5作为联络信号B口:占用PC2~PC0作为联络信号A口工作方式控制字B口工作方式控制字1011××××1××××11×◆

STB:选通信号,输入。是外设给接口的启动信号,有效时:将PA0~PA7引脚上的数据装入A口寄存器◆IBF:输入缓存寄存器满信号,输出。作为给外设的应答信号◆INTR:中断请求信号,输出。用于向CPU发出请求,CPU根据此信号,可采用中断或查询方式将接口中的数据取走。(CD4)INTE(CD2)INTE2.方式1的输入过程的时序◆

STB:选通信号,输入。是外设给接口的启动信号,有效时:将PA0~PA7引脚上的数据装入A口寄存器◆

IBF:输入缓存寄存器满信号,输出。作为给外设的应答信号◆

INTR:中断请求信号,输出。用于向CPU发出请求,CPU根据此信号,可采用中断或查询方式将接口中的数据取走。3.方式1的输出结构A口工作方式控制字B口工作方式控制字1010××××1××××10×A口的联络信号占用:PC3、PC6、PC7B口的联络信号占用:PC2、PC1、PC0◆

ACK:读输出缓存器信号,输入。外设给接口的读信号,有效时,将输出端口中的数据读取走,同时将INTR信号置位(有效)◆

OBF:输出缓存寄存器满信号,输出。用于通知外设接收数据。◆

INTR:中断请求信号,输出。用于向CPU发出请求,CPU根据此信号,可采用中断或查询方式将数据送入接口中。(CD2)(CD6)中断允许位4.方式1的输出过程的时序◆

ACK:读输出缓存器信号,输入。外设给接口的读信号,有效时,将输出端口中的数据读取走,同时将INTR信号置位(有效)◆

OBF:输出缓存寄存器满信号,输出。用于通知外设接收数据。◆

INTR:中断请求信号,输出。用于向CPU发出请求,CPU根据此信号,可采用中断或查询方式将数据送入接口中。10.3.48255A的工作方式二、方式1(选通输入或输出方式)5.方式1工作模式下A口和B口的组合76A.A口方式1,输入

B.

A口方式1输出

B口方式1,输出

B口方式1输入10.3.48255A的工作方式二、方式1(选通输入或输出方式)

6.方式1工作方式下的状态字

C口寄存器为CPU与8255间采用查询方式工作提供了状态标志10.3.48255A的工作方式三、方式2(双向选通输入输出方式)

★只有A口具有此工作方式,在方式2下:输入、输出均锁存;★在方式2下:C口的PC3~PC7作为A口的联络控制信号端,

C口的寄存器作为状态寄存器使用。B口工作于其它方式1.方式2下的引脚定义INTE1(CD6)INTE2(CD4)外设输入读输出缓冲器输出应答信号输出缓存器满输出应答信号输入缓存寄存器满外设输入信号选通缓存寄存器2.方式2下的信号时序★

其时序是方式1下输入及输出时序的组合(1)输入:◆外设产生STB信号,将的数据装入8255A的输入缓冲器◆

8255A产生IBF信号,向CPU提示,同时产生中断请求INTR信号(2)输出:◆

CPU将数据装入8255A后,8255A产生OBF信号,通知外设◆外设接受OBF

后,产生ACK信号去读取输出缓冲器,同时产生中断请求INTR信号3.方式2下的状态字★是方式1下输入/输出状态字的组合★产生中断时,判别IBFA和OBFA,区别是输入或输出产生的中断8255A方式2下C口各位的功能10.3.48255A的应用举例1.8255A模拟交通灯实验原理★

以8255的C口为输出口,经74LS240驱动电路控制4个双色LED,

模拟十字路口交通信号灯的控制。★双色LED由一个红色LED管芯和一个绿色LED管芯封装在一起,阴极为共用端:⑴红色阳极加高电平时,红灯亮。绿色阳极加高电平时,绿灯亮。⑵红色、绿色阳极同时加高电平,显示黄灯10.3.48255A的应用举例交通灯的变化规律:◆状态0:东西红灯,南北红灯。全部禁行,然后转状态1;初始状态◆状态1:南北绿灯通行,东西红灯禁行。调用延时软件1

后转入状态2◆状态2:南北绿灯闪烁几次转亮黄灯,东西向仍为红灯。调用延时软件2

后转入状态3◆状态3:东西绿灯通行,南北红灯禁行。调用延时软件1后转入状态4◆状态4:东西绿灯闪烁几次转亮黄灯,此时南北向仍然红灯。调用延时软件2

后转入状态110.3.48255A的应用举例2.8255A模拟交通灯实验驱动电路图★C口对应各方向的状态:

PC0:红灯(北)

PC4:绿灯(北)

PC1:红灯(西)

PC5:绿灯(西)

PC2:红灯(东)

PC6:绿灯(东)

PC3:红灯(南)

PC7:绿灯(南)★设8255A的地址为:

200H~21FH★C口输出低电平时灯亮注:A或B口可以做为输入口C口状态红灯绿灯信号状态PC7南PC6东PC5西PC4北PC3南PC2东PC1西PC0北状态000001111东西红南北红状态110010110南北绿东西红状态2100010×011×0绿闪转黄东西红状态301101001东西绿南北红状态40101001×0×01绿闪转黄南北红3.C口输出状态表:

口输出低电平时灯亮★绿灯对应口线状态0、1交替变化,绿灯即闪烁4.模拟交通灯实验流程图设置8255各口为输出清LED四灯全红延时南北绿灯,东西红灯,延时绿灯闪三次南北红灯,东西绿灯,延时南北黄灯,延时绿灯闪三次东西黄灯,延时初始化返回DOS有键按下NY5.8255A模拟交通灯实验流程图文件名:EXP2.ASMD1EQU20H;延时时间常数1D2EQU200H;延时时间常数2DATASEGMENTPBDB?MESS2DB‘ENTERANYKEYCANEXITTODOS!’,0DH,0AH,’$’MESS1DB‘ENTERANYKEYTOBEGIN!’,0DH,0AH,’$’DATAENDSSTACKSEGMENTSTACKSTADW50DUP(?)

TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,,ES:DATA,SS:STACK续一START:MOVAX,DATAMOVDS,AX;装入数据断段基址

MOVAX,STACKMOVSS,AX;装入堆栈断段基址

MOVSP,TOP;装入堆栈指针

MOVDX,21BH

;送控制口地址

MOVAL,10000000B;设置为全输出

OUTDX,AL;送控制字

MOVDX,21AH;送C口地址

MOVAL,0FFH

OUTDX,AL;LED全灭

MOVAH,09HLEADX,MESS1;9号功能调用

INT21H;提示按任意键开始

MOVAH,08H;8号功能调用

INT21H;按任意键开始

MOVAH,09HLEADX,MESS2;9号功能调用

INT21H;提示按任意键退出续二START:MOVAX,DATAMOVDS,AX;装入数据断段基址

MOVAX,STACKMOVSS,AX;装入堆栈断段基址

MOVSP,TOP;装入堆栈指针

MOVDX,21BH

;送控制口地址

MOVAL,10000000B;设置为全输出

OUTDX,AL;送控制字

MOVDX,21AH;送C口地址

MOVDX,21AH

;送C口地址

MOVAL0F0HOUTDX,AL;输出全红

MOVBX,100H;送时间常数

CALLDLY;调延时子程序

BG:MOVAL,01101001B;南北绿,东西红

OUTDX,AL;输出

MOVBX,D2;送时间常数D2

CALLDLY;调延时子程序续三MOVCX,03HXH1:MOVAL,11111001B

OUTDX,AL;南北绿灭

MOVBX,D1;送时间常数D1

CALLDLY;调延时子程序

MOVAL,01101001B

OUTDX,AL;南北绿亮

MOVBX,D1;送时间常数D1

CALLDLY;调延时子程序

LOOPXH1;循环三次

MOVAL,01100000B

;南黄,东红状态字送ALOUTDX,AL;南北黄,东西红

MOVBX,D1

CALLDLY;调延时子程序

MOVBX,D1

CALLDLY;调延时子程序

MOVAL,10010110B;南红东绿状态字送ALOUTDX,AL;南北红,东西绿续四MOVBX,D2CALLDLY;调延时子程序

MOVCX,03XH2:MOVAL,11110110BOUTDX,AL;东西绿灭

MOVBX,D1;送时间常数D1CALLDLY;调延时子程序

M0VAL,06HOUTDX,AL;东西绿亮

MOVBX,D1;送时间常数D1CALLDLY;调延时子程序

LOOPXH2;循环三次

MOVAL,60HOUTDX,AL;南北红,东西黄

MOVBX,D1;送时间常数D1CALLDLY;调延时子程序

MOVBX,D1;送时间常数D1CALLDLY;调延时子程序续五PUSHDXMOVDL,0FFHMOVAH,06H;6号功能调用,如有字符输入,字符放入AL中

;ZF=0。如无字符输入,零标志位ZF=1INT21HJNZDSSPOPDXJMPBG;返回,循环DSS:MOVAH,4CHINT21H;退出

DLYPROCNEAR;子程序

PUSHCXDDD:MOVCX,0FFFFHCCC:LOOPCCCDECBXCMPBX,0JNEDDDPOPCXRTE

DLYENDPCODEENDSENDSTATR10.3定时与计数技术★

计算机系统中常需要外部时钟电路,用于实现定时、延时控制或对外部事件的计数。★常用下列方法:

1.软件定时:通用性、灵活性好,不需硬件;但在定时过程中,占用CPU时间资源。一般用在短时间的定时,毫秒~秒。

2.不可编程硬件定时:通用性、灵活性差,当其电路参数决定后,无法改变定时时间。

不占用CPU的时间资源,如:555定时电路。

3.可编程硬件定时:通用、灵活,可和CPU同步工作,通过输入控制字和时间常数,可以灵活修改其定时时间;可在计数或定时的不同方式下工作。可编程定时/计数器芯片8253是一种常用的定时、计数芯片。10.3.1可编程定时/计数器8253-5外部特性★8253—5是24脚双列直插式芯片,采用单一的+5V电源★芯片内部具有三个独立的16位减法计数器(计数通道)★每个计数器具有独力的:

CLK时钟输入端、OUT计数输出端、GATE门控信号端★内部计数器可用做计数或定时,故称定时/计数器,记作T/C★六种工作方式,可通过编程设置一、面向系统总线的信号线二、面向外设的接口线

CLK0

~CLK2

计数脉冲或时钟输入★OUT0

~OUT2

计数结束输出信号★GATE0

~GATE2

输入的计数门控信号★

D0~D7:双向数据信号线★

CS:片选信号线★

A0、A1:片内地址线★

RD、WR:读/写控制信号线三、8253—5读写操作功能表CSA1A0RDWR功能00010写0号计数器00110写1号计数器01010写2号计数器01110写方式控制字00001读0号计数器00101读1号计数器01001读2号计数器1××××禁止10.3.28253-5的内部结构

计数结束输出信号数据线读写线地址线片选计数或时钟输入GATE输入门控信号

双向三态八位内部结构计数器内部结构图★每个计数器都有自己独立的控制寄存器,共用一个控制端口★接收、存放控制字,定义其工作方式;只能写入、不能读出;控制寄存器

6CRHRDCELOLHOLL计数初值寄存器16WRA1A0CLKOUTGATED7~D0减一计数器16当前计数值锁存16LSBMSBLSBMSB锁存后可读出当前的值

初值保持不变CECR10.3.38253-5的编程命令及读操作

一、工作方式控制字设定计数器工作方式、计数初值的读写顺序、字节数、计数的数制SC1SC0RL1RL0M2M1M0BCD00:计数器001:计数器110:计数器211:无效计数器选择0:二进制计数

1:BCD计数00:计数器锁存

01:只读/写计数器低字节

10:只读/写计数器高字节

11:读/写计数器先低后高读/写格式000:方式0001:方式1

x10:方式2x11:方式3100:方式4101:方式5数制选择工作方式选择10.3.38253-5的编程命令及读操作二、定时初值的计算:定时初值(时间常数)=预计定时时间输入时钟脉冲的周期三、8253-5的初始化(编程)过程★

8253上电后各寄存器的值不定,其工作方式也是随机的。使用前必须对其进行初始化(编程)

1.写入控制字以确定工作方式、指定初值的装入顺序及计数数制

2.写入计数初值,按控制字的要求向选定的计数器写入计数初值10.3.38253-5

的编程命令及读操作◆

应用举例★初始化程序如下:

MOVAL,00110000B;工作方式控制字

OUT73H,AL;写入控制字

MOVAX,500OUT70H,AL;装计数初值低字节

MOVAL,AHOUT70H,AL;装计数初值高字节★若采用BCD码计数,应注意控制字和计数初值的写法!!!★8253的端口地址为:70~73H,选择计数器0,工作方式0,计数初值为500,采用二进制计数。10.3.48253-5

的工作方式

每个计数器有六种工作方式可选择,各工作方式有不同的特点:

1.OUT端输出波形的方式不同,电平方式或脉冲方式

2.GATE启动计数器开始计数的触发方式不同

3.计数过程中门控信号对计数操作的影响不同1.软件启动2.硬件启动GATE端为高电平置入计数初值后的第2个CLK脉冲的下降沿GATE端的上升沿后对应下一个CLK脉冲的下降沿装入初值启动..★

计数器的启动方式N+1OUT输出的信号★

软件启动:装入控制字后由CLK的下降沿进行计数★

GATK:变低停止计数,变高继续计数★计数过程中,重装计数初值,按新初值计数★

计数个数:N+1个CLK脉冲★

计数到零:OUT由低变高CLKOUTGATE54写入

53210WR停止计数一、方式0——

计数结束中断方式★

硬件启动:写入控制字,OUT变高;写入初值,定时器不启动★

GATK的上升沿后,由下一个CLK的下降沿将初值装入CE并开始计数,OUT开始变低,进入暂态★计数到零:OUT输出变高★计数过程中:GATE的上升沿将使计数器重新按初值开始计数★计数过程中:装入新的初值,对计数无影响CLKWROUTGATE写入44343210单稳时间二、方式1——

可编程单稳态

温馨提示

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

评论

0/150

提交评论