常用可编程接口芯片课件_第1页
常用可编程接口芯片课件_第2页
常用可编程接口芯片课件_第3页
常用可编程接口芯片课件_第4页
常用可编程接口芯片课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

常用可编程接口芯片8.1可编程定时/计数器8253定时/计数的用途:定时中断、定时检测、定时扫描、实时控制中的采样、DRAM定时刷新等定时和计数本质上是一样的计数的信号随机,定时的信号具有周期性定时方法软件定时:利用一段循环程序实现延时缺点:CPU占用率?延时精度?兼容?硬件定时:定时/计数器电路不可编程定时:采用中小规模IC构成,定时值不可改变可编程定时:采用可编程计数器完成,软件可改变计数值

8253是一种可编程定时/计数器芯片8.1.18253的内部结构及功能一、内部结构

A1A0选择00计数通道001计数通道110计数通道211控制寄存器二、计数器的通道结构控制逻辑CRHCRLOLHOLLCECLKGATEOUT读/写格式:只读/写低8位,高8位自动清零只读/写高8位,低8位自动清零先读/写低8位,后读/写高8位读出当前计数值的方法直接读:用GATE信号使计数器停止,再规定读写格式,然后读出。锁存读:利用锁存指令,先锁存当前计数值,再用输入指令将16位计数值读出。三、定时/计数的工作过程1.设置8253的工作方式

2.设置计数初值到初值寄存器

3.第一个CLK信号使初值寄存器的内容置入计数器

4.以后每来一个CLK信号,计数器减15.减到0时,OUT端输出一特殊波形的信号注:以上计数过程中还受到GATE信号的控制四、计数启动方式软件启动过程硬件启动过程GATE端保持为高电平写入计数初值后的第2个CLK脉冲的下降沿开始计数GATE端有一个上升沿对应CLK脉冲的下降沿开始计数程序指令启动————软件启动外部电路信号启动——硬件启动8.1.28253的工作方式一、方式0(软件启动,不自动重复计数)①控制字写入后OUT即变为低电平;②计数初值写入后在下一个CLK下降沿才送入计数器,当计数器为0时,输出OUT变为高电平;③当GATE变为低电平时计数停止,再变为高电平时计数继续进行;④若想再次OUT输出,必须重写计数值。二、方式1(硬件启动,可重复触发)主要特点:写入CW后OUT变为高电平,然后写入计数初值,当GATE上升沿触发后,OUT变为低电平并开始计数,归零时OUT变为高电平;门控信号GATE端的跳变触发计数,可重复触发;若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为两次计数过程之和;计数过程中写入新初值不影响本次计数

三、方式2(分频器)

主要特点:软、硬件启动,自动重复计数。装入初值后OUT端变高电平,计数过程中OUT端为高电平,计数到1时OUT输出负脉冲,并连续重复此过程(周期性负脉冲)。四、方式3(方波发生器)主要特点:方式3的OUT输出是周期性的方波。(若计数值n是偶数,则输出OUT是对称方波;若计数值n是奇数,则输出OUT在(n+1)/2计数期间保持为高电平,而在(n-1)/2计数期间保持为低电平。)五、方式4(软件触发选通)主要特点:

*计数过程中,GATE端应保持高电平。

*每写入一次初值,计数一个周期,然后停止计数。

*方式4的OUT输出是一次性负脉冲。

*若想再次OUT输出,须再次写入计数值。六、方式5(硬件触发选通)主要特点:

*方式5的OUT输出是一次性负脉冲。

*若想再次OUT输出,只须再次启动GATE脉冲。8253工作方式小结:写入CW后,方式0输出即变低,其余5种方式输出均变高。方式0:用来实现定时或对外部事件进行计数。方式1:用来产生单脉冲。方式2:产生序列负脉冲,每个负脉冲的宽度与CLK的周期相同方式3:产生连续的方波。方式2和方式3都实现对CLK的n分频方式4和方式5的波形相同,都是计数器归0后的1个负脉冲,宽度为1个CLK。方式2、4、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲。但方式2是连续的,方式4是由软件(设置初值)触发启动,而方式5由硬件(门控脉冲)触发启动。方式1、5触发计数方式相同,但输出波形不同。方式1为输出n个CLK脉冲周期的负脉冲(计数过程中输出为低),而方式5输出的是宽度为1个CLK脉冲周期的负脉冲(计数过程输出为高)8.1.38253的控制字M2M1M0:计数器工作方式选择

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

016位二进制计数器

1BCD码计数器SC1SC0:计数器通道选择

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

00计数器锁存

01只读写低8位

10只读写高8位

11先读写低8位,再读写高8位用于确定各计数器的工作方式。每个计数器都必须初始化一次。CPU通过OUT指令把控制字写入控制寄存器。8.1.48253的应用一、与系统的连接CLKGATEOUTD0~D7WRRDA1A0CSDBIOWIORA1A0译码器高位地址A15-A28253占用4个接口地址:

计数器0

计数器1

计数器2

控制寄存器共三组二、8253的编程

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

赋计数初值(写入相应计数器地址)读计数器内容(从相应计数器地址读出)初始化写控制字写计数值低8位写计数值高8位非必须写入顺序:

可按计数器分别写入控制字和初值。

也可先写所有计数器控制字,再写入它们的初值包括1、对计数器赋计数初值控制字写完后,接着赋计数初值。计数初值写入计数器的格式必须按照控制字的RL1、RL0的读写指示来写。另外,当D0=0时,即选择二进制计数,计数初值可在0~FFFFH之间选择。当D0=1时,即选择BCD码计数,计数初值可在0~9999之间选择。若想扩大计数范围,可以将两个或三个计数器级连使用。即将一计数器的OUT信号与另一计数器的CLK信号相连接。8253OUT1GATE1CLK1OUT0GATE0CLK0+5V+5V1MHz1KHz1Hz例1

若要使计数器1工作在方式0,仅用8位二进制计数,计数值为128,试对其进行初始化编程。假设3个计数器和控制寄存器的端口地址为:70H~73H

MOVAL,50H;写控制字01010000OUT73H,ALMOVAL,80H;写计数初值,只写低八位

OUT71H,AL

例2

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

MOVAL,23H;00100011OUT73H,ALMOVAL,30H;计数初值只写高八位

OUT70H,AL

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

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

MOVAL,0B4HOUT73H,ALMOVAL,10HOUT72H,ALMOVAL,11HOUT72H,ALMOVBH,20H;让8253工作一段时间,在读它的

W:DECBH;计数值

JNZW

MOVAL,80H;对计数器2进行锁存,它的某个计

OUT73H,AL;数值就锁存到它的锁存寄存器里

INAL,72HMOVCL,AL;先读低8位

INAL,72H;再读高8位

MOVAH,ALMOVAL,CL

例4系统中有一片8253芯片,利用其通道1完成对外部事件计数,计满250次向CPU发出中断申请;利用2通道输出频率为1kHz的方波,试编写8253的初始化程序,硬件电路如图。三、8253的应用A7A6A5A4A3A2

MOVAL,71H;通道1控制字01110001OUT1FH,AL

MOVAL,0A7H;通道2控制字10100111OUT1FH,AL

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

OUT1DH,AL

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

OUT1DH,AL

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

OUT1EH,AL端口地址分析:1CH、1DH、1EH、1FHN1=250,N2=Tout/Tclk=fclk/fout=2000例58253通道2接有一发光二极管,要使发光二极管以点亮2s,熄灭2s的间隔工作,8253各通道端口地址分别为FFE9H~FFEFH。其电路硬件图如图。试编程完成以上工作。N=Tout/Tclk=4×106=N1×N2=4000×1000MOVDX,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例6有如下接口原理图。要求发光二极管L0亮5秒后就熄灭;L1在K1启动后亮6秒后就熄灭;L2亮4秒灭4秒交替进行。写出初始化程序片段。

IORIOWA0A1A2Y5分析:由译码电路分析可知,8253芯片计数器1、计数器2、计数器3及控制端口的地址分别为94H,95H,96H,97H。根据接口图及题目要求,8253的计数器0应该工作在方式0,计数初值N0=5000;计数器1应工作在方式1,N1=6000;计数器2应工作在方式3,N2=8000。

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

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

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

8.2可编程并行输入/输出接口芯片82558.2.18255的内部结构A组控制B组控制端口C上半部端口C下半部端口BOOO数据总线缓冲器读/写控制逻辑端口A数据总线D0~D7RDWRA0A1RESETCSPA0~PA7PC4~PC7PC0~PC3PB0~PB7CPU接口外设接口内部逻辑8.2.28255的引脚分配

一、与外设联系的引脚

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

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

CSA1A0

端口

000A口地址

001B口地址

010C口地址

011控制端口地址四、8255与系统的连接D0~D7WRRDA1A0CSDBIOWIORA1A0译码器8255A口B口C口D0~D7外设A15~A2系统总线8.2.38255的工作方式及编程

一、8255的工作方式

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

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

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

A口:方式0、方式1、方式2B口:方式0、方式1C口:方式0无条件传送方式条件传送方式条件传送方式中断传送方式二、8255的控制字

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.2.48255各工作方式的功能及应用一、8255工作在方式0特点(无条件传送方式和条件传送方式)

8255工作在方式0时,各个端口(包括2个8位端口A、B及2个4位端口C)的输入、输出可以有16种不同的组合。在这种方式下,任一个端口都由CPU用简单的输入/输出指令进行读/写。不用提供“联络”信号,适用于各种同步传送情况。

另外,方式0也可用于程序查询方式来进行数据传送。此时,通常以A口和B口作为数据口,而用C口的某些位作为输入输出“联络”信号。注意,输入“联络”信号和输出“联络”信号不在同一4位C口中。方式0应用举例(同步情况):例18255的A口和B口工作在方式0,A口为输入端口,接有4个开关;B口为输出端口,接有1个7段发光二极管,其硬件连接电路如图所示。试编一程序要求7段发光二极管显示开关所拨通的数字。A0A1A2Y4IORIOW分析:

1、端口地址

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

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

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

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

OUTDX,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

数据接口将数据传送到打印机的数据端口,利用一个负脉冲STROBE打入锁存。这时打印机可发回答信号ACK,然后由打印机处理。同时打印机送出高电平信号BUSY,表示打印机忙于打印。一旦BUSY变为低电平,表示打印结束,即可接收下一数据。例2异步查询情况:利用8255实现打印机接口,将从DATA单元开始的10个字节的数据进行打印输出。请利用8255工作方式0实现上述打印控制根据连线分析得知4个端口地址依次为:0FBC0H,0FBC1H,0FBC2H,0FBC3H程序如下:MOVAL,10000001BMOVDX,0FBC3HOUTDX,

AL;8255初始化

MOVAL,0DH;00001101PC6置1OUTDX,ALMOVSI,OFFSETDATAMOVCX,10X1:MOVDX,0FBC2HINAL,DX;读PC1TESTAL,02HJNZX1;BUSY=1等待

MOVAL,[SI]MOVDX,0FBC0HOUTDX,AL;数据输出

INCSIMOVAL,0CH;PC6置低电平

MOVDX,0FBC3HOUTDX,ALMOVAL,0DH;PC6恢复高电平

OUTDX,ALLOOPX1二、8255工作在方式1特点:

8255工作在方式1时,数据输入/输出操作要在选通信号控制下完成。A口和B口可作为输入或输出口,而C口的某些位作为“联络”信息。和方式0相比,最重要的差别在于C口的这些位与联络信号有着固定的一一对应关系。A口的联络信息由C口的PC3

~PC7提供,B口的联络信息由C口的PC0~PC2提供。另外,8255在方式1下具有中断能力,可以发出中断请求信号,为CPU工作在中断方式提供了条件。由于输入接口和输出接口所需的选通控制不同,下面分别予以介绍。1、选通输入方式A口:PC4、PC5、PC3,B口:PC2、PC1、PC0STB:选通输入信号,低电平有效,它将外设数据送入8255的输入锁存器,指定为PC4和PC2

。IBF:输入锁存器满信号,和外设相连,高电平有效,通知外设不能送下一个数据,指定为PC5和PC1

。当CPU读走数据后,IBF变为低电平。INTR:中断请求信号,高电平有效,指定为PC3和PC0。

当STB、IBF、INTE均为1时,8255自动发出INTR。INTE:中断允许触发器,高电平有效,INTEA由PC4控制,INTEB由PC2控制,可由C口置/复位控制字将INTE置1或复位方式1输入时“联络”信号时序图2、选通输出方式A口:PC7、PC6、PC3,B口:PC1、PC2、PC0OBF:输出缓冲区满信号,低电平有效,指定为PC7和PC1

,通知外设取走数据ACK:外设响应信号,指定为PC6和PC2,表示已从数据端口取走数据,并准备好接收下一个数据,此信号使OBF变高。INTR:中断请求信号,指定为PC3和PC0。

OBF、ACK、INTE均为1时,8255A自动发出INTR。INTE:中断允许触发器,高电平有效,INTEA由PC6控制,INTEB由PC2控制,可由C口置/复位控制字将INTE置1或复位。方式1输出时“联络”信号时序图方式1应用举例(中断情况):例系统中接有一个打印机,8255A作为输出接口,工作在选通方式,试编一程序将缓冲区B

温馨提示

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

评论

0/150

提交评论