[信息与通信]第8章 可编程接口芯片及其应用.ppt

上传人:sccc 文档编号:5615540 上传时间:2023-08-02 格式:PPT 页数:100 大小:1.15MB
返回 下载 相关 举报
[信息与通信]第8章 可编程接口芯片及其应用.ppt_第1页
第1页 / 共100页
[信息与通信]第8章 可编程接口芯片及其应用.ppt_第2页
第2页 / 共100页
[信息与通信]第8章 可编程接口芯片及其应用.ppt_第3页
第3页 / 共100页
[信息与通信]第8章 可编程接口芯片及其应用.ppt_第4页
第4页 / 共100页
[信息与通信]第8章 可编程接口芯片及其应用.ppt_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《[信息与通信]第8章 可编程接口芯片及其应用.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]第8章 可编程接口芯片及其应用.ppt(100页珍藏版)》请在三一办公上搜索。

1、第八章可编程接口芯片及其应用,8.1 可编程接口芯片概述接口电路中的单元(1)输入输出数据锁存器和缓冲器,用以解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用;(2)控制命令和状态寄存器,以存放CPU对外设的控制命令,以及外设的状态信息;(3)地址译码器,用来选择接口电路中的不同端口(寄存器);(4)读写控制逻辑;(5)中断控制逻辑。,接口中的一些公用引脚作用及其连接方法 1.片选概念 CS 或CE 2.读/写概念 DB线,M/IO线,RD线,WR线,CE/CS线 3.可编程接口的概念 目前所用的接口芯片大部分是多通道、多功能的。所谓多通道就是指一个接口芯片一面与CPU连接,另一面

2、可接几个外设.所谓多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。,4.“联络”的概念 STB:选通信号;RDY:就绪信号(Ready)1)以输入接口为例:RDY=“H”表示接口芯片中输入 寄存器已 空,可接受外设信息以实现外设与接口的输入操作。STB=“L”表示接口选通,是外设向接口发出的,过程:1)外设把数据送上接口芯片端口后,用STB信号有效打人接口芯片输入寄存器;2)在STB的后沿,把RDY信号拉 为“L”,表明输入寄存器已有数据。RDY=“L”正是接口与外设的通信标志,外设 接收RDY=”L”后,暂不送数据;3)CPU发出读数指令,读人该数据,并使RDY置“H”。然

3、后,又开始新一轮的输入操作在输入接口中,RDY信号有时用IBF(输入缓冲器满)表示。,如是输出接口,则:RDY=“H”,表示接口寄存器已有数据,通知外设来取数;STB=“L”,表示端口数据已为外设接收,且已处理,CPU可送新数据到接口 寄存器,STB的后沿使RDY变为“L”。在输出接口中,RDY信号有时用OBF(输出 缓冲器满)表示,STB信号有时用ACK(响应)表示。,接口芯片的引脚,8.2 可编程并行接口芯片8255A,8.2.1 8255A的结构和引脚功能,1数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。2三个8位端口PA、PB和PC PA、PB和PC端口

4、都可由程序设定为各种不同的工作方式。端口A(PA口)有一个8位数据输入锁存器和一个8位数据输出锁存缓冲器;端口B(PB口)有一个8位数据输入缓冲器和一个8位数据输入输出、锁存缓冲器;端口C(PC口)有一个8位数据输入缓冲器和一个8位数据输出锁存缓冲器。通常PA口与PB口用作输入输出的数据端口,PC口用作控制或状态信息的端口。,一、8255A的内部结构,3A组和B组的控制电路 这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。A组控制部件用来控制PA口和PC口

5、的高4位(PC,PC4);B组控制部件用来控制PB口和PC口的低4位(PC,PCo)。4读写控制逻辑 用来管理数据信息、控制字和状态字的传送,它接收来自CPU地址总线的 A1、A0和控制总线的有关信号(RD、WR、RESET等),向8255A的A、B两组控制部件发送命令。,二、8255A的引脚功能,。CS 选片信号,低电平有效,由它启动CPU与8255A之间的通信(Communication)。RD 读信号,低电平有效。它控制8255A送出数据或状态信息至CPU。WR 写信号,低电平有效。它控制把CPU输出的数据或命令信号写到8255A。RESET复位信号,高电平有效,它清除控制寄存器并置所有

6、端口(A、B、C)为输入方式。A1,A0:片内寄存器选择信号(输入)A1A0=00:选中PA口;A1A0=01:选中PB口;A1A0=10:选中PC口;A1A0=11:选中控制端口;D7D0:与CPU侧连接的数据线(双向)PA7PA0:A口外设数据线(双向)PB7PB0:B口外设数据线(双向)PC7PC0:C口外设数据线(双向),表 81 8255A端口功能选择,8.2.2 8255A的工作方式,一、方式0基本输入输出 方式0下,每一个口都作为基本的输入输出口,C口的高4位和低4位以及A口、B口都可以独立地设置为输入口或输出口。8255A在方式0工作时,CPU可以采用无条件读写方式与8255A

7、交换数据;如果把C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU也可以通过对C口的读写,实现A口与B口的查询方式工作;方式0中,不允许采用中断方式工作。,二、方式1选通输入输出(应答式输入输出)方式1下将三个端口分成A、B两组,A、B两个口仍作为数据输入输出口,而C口分成两部分,分别作为A口和B口的联络信号。方式1的输入,(1)STB:输入的选通信号 低电平有效。由外设提供,为低电平时,就把输 入的数据信号(PA7-PA0或PB7-PB0)送入A端口(或B端口)的数据锁存器。(2)IBF:输入缓冲器满信号,高电平有效。由8255A输出,有效时,用以通 知外部设备输入的数据已写入

8、缓冲器。(3)INTR:中断请求信号,高电平有效。当外部设备要向CPU传送数据或请求服务时,8255A就用INTR端的高电平向CPU提出中断请求。当STB、IBF和 INTE都为高电平时,表明数据锁存器内已写入了数据使INTR成为高电平输 出。(4)INTE:中断允许信号。A端口用PC4位的置位复位控制,B端口用PC2位的置位复位控制。只有当PC4或Pc2置1时,才允许对应的端口送出中断请求。,方式1的输入过程如下(A口):1)当外设准备好数据,在送出数据的同时,送出一个选通信号STB。8255A的A口数据锁存器在STB下降沿控制下将数据锁存。2)8255A向外设送出高电平的IBF,表示锁存数

9、据已完成,暂时不要再送数据。如果PC41(1NTE1),这时就会使INTR变成高电平输出,向CPU发出中断请求。3)CPU响应中断,执行IN指令时,RD信号的下降沿清除中断请求,而RD结束时的上升沿则使IBF复位到零。外设在检测到IBF为零后,可以开始输入下一个字节。2方式1的输出 联络信号信号的作用如下:(1)OBF:输出缓冲器满信号;低电平有效。由8255A输出,当其有效时,表示CPU已经将数据输出到指定的端口,通知外设可以将数据取走。(2)ACK:响应信号,低电平有效。由外设送来,有效时表示8255A数据已经为外设所接收。,(3)INTR:中断请求信号高电平有效。当外设接收了由CPU送给

10、8255A的数据后,8255A就用INTR端向CPU发出中断请求,请求CPU再输出后面的数据。INTR是当ACK,OBF和INTE都为高电平时,才能被置成高电平。(4)INTE:中断允许信号。A口的INTE由PC6置复位,B口的INTE由PC2置复位。PC4、PC5位可以由控制字的D3,设置为输入或输出数据用。方式1的输出过程如下(A口):1)微处理器发WR信号,将数据送入端口的输出缓冲器,WR上升沿一方面清除INTR信号,另一方面使OBF有效,通知外设可以取数;2)外设取数后,发ACK信号,一方面使OBF无效(表示数已取走),另一方面使INTR有效,开始另一个新的输出过程。三、方式2双向选通

11、输入输出 通过8位数据线与外设进行双向通信的方式,既能发送,又能接收数据。工作时可以用中断方式,也可以用查询方式与CPU联系。,8.2.3 8255A 的初始化,一、方式控制字,二、C口按位置/复位,8.2.4 8255A的应用举例,例1:在一系统中,要求8255工作在方式0,A口为输入,B口、C口为输出。Mov al,90h Out 63h,al;送控制字到控制字寄存器。Call delay1 In al,60h;从A口输入数据 Call delay2 mov al,data1 Out 61h,al;从B口输出数据 Call delay3 mov al,data2 Out 62h,al;从C

12、口输出数据,例2:假定在一个系统中,要求8255工作在方式1,端口A为输出,端口B为输入,PC4PC5 为输入,禁止端口B中断。,Mov al,0afh;控制字Mov dx,xxxxxx11b;控制寄存器地址 Out dx,al;送入控制字寄存器Mov al,09h;A口的INTE(PC4)置1Out dx,al;送入控制字寄存器Mov al,04h;B口的INTE(PC2)置0Out dx,al;送入控制字寄存器,例3:假定在一个系统中,端口A工作在方式2,端口B工作在方式0且为输入,端口C的三位 PC0PC2 位输入。,Mov al,11xxx011b;控制字Mov dx,xxxxxx11

13、b;控制寄存器地址 Out dx,al;送入控制字寄存器,例4:若采用查询式实现8255A与打印机接口,用PB口传送内存DATA单元开始的100个字节数据,PC7用作STB信号、PC3作为BUSY信号,如图所示。试完成控制程序设计。,LEA DI,DATA MOV CX,100 MOV AL,81H;方式控制字 OUT 83H,AL NEXT:MOV AL,0FH;PC7=1 OUT 83H,ALTESBY:IN AL,82H TEST AL,08H JNZ TESBY MOV AL,DI OUT 81H,AL INC DI MOV AL,0EH;PC7发 选通打印机 OUT 83H,AL I

14、NC AL OUT 83H,AL LOOP NEXT RET,说明:当CPU通过接口要求打印机打印数据时,先查看BUSY信号,当BUSY=L时,才向打印机输出数据,在把数据送上DATA线后,先发STB选通打印机,打印机接到STB 后,发BUSY=H,接收数据,当数据接收号并存入内部打印缓冲区后,送出ACK信号,表示打印机已准备好接收新数据,并撤销BUSY(0),例5:利用工作方式1的8255A的PA口作D/A转换器的输出接口,利用下降沿启动D/A转换,转换结束的回答信号为“0”脉冲。8255A的端口地址为3E0H3E3H.1)试设计D/A转换器的接口电路2)采用条件传送方式,将存储器BUFFE

15、R缓冲区中的5000B的波形数送D/A转换器转换,编写程序段。MOV DX,3E3H INC DX MOV AL,10100000B;工作方式 MOV AL,00001100B;OUT DX,AL;已输出5000个波形数,PC60,关中断 MOV AL,00001101B;PC6=1 开中断 OUT DX,AL OUT DX,AL LEA SI,BUFFER MOV CX,5000LOP1:MOV DX,3E0H MOV AL,SI OUT DX,AL;输出数 INC SI MOV DX,3E2HLOP2:IN AL,DX;检查PC3 AND AL,08H JZ LOP2 LOOP LOP1,

16、例6:试用8255A工作方式1,以中断方式作为打印机接口。电路如下图。要求1)8255A的B口工作于方式1;2)设中断向量为2000:3000H在2CH、2DH、2EH、2FH中;3)端口地址设为E0H、E2H、E4H、E6H;4)编程完成控制过程。,START:MOV AL,10000100B OUT 0E6H,AL;工作方式控制字 MOV AL,00001011B OUT 0E6H,AL;PC5=1使选通无效 XOR AX,AX;设置0BH号中断的中断向量表 MOV DS,AX MOV AX,3000H MOV WORD PTR 002CH,AX MOV AX,2000H MOV WORD

17、 PTR 002EH,AX MOV DI,OFFSET BUFF;设置字符缓冲区指针 MOV AL,00000101B OUT 0E6H,AL;PC2=1,置INTE=1 STI,未用,ROUTINTR:MOV AL,DI;DI为打印机字符缓冲区指针,字符送A口 OUT 0E2H,AL MOV AL,00001010B;PC5=0,产生选通信号,即负脉冲 OUT 0E6H,AL INC AL;PC5=0,使选通无效 OUT 0E6H,AL IRET,一、键盘接口有两类键盘:编码键盘和非编码键盘键盘输入信息的过程可归纳为三步:(1)检查是否有按键按下;(2)查出按下的是哪一个按键;(3)将该键所

18、代表的信息翻译成计算机能够识别的代码,如ASC或其它预先约定的编码。如果第二、三步用硬件完成,则称为编码键盘如果第二、三步用软件完成,则称为非编码键盘,图8-13 非编码键盘接口,使用行扫描寻找按下键的编码(键号)的程序如下:,PORTAEQU0FFF8H;定义端口A的口地址PORTBEQU0FFFAH;定义端口B的口地址PORTCEQU0FFFCH;定义端口C的口地址PORTCNEQU0FFFEH;定义控制字端口的口地址MOVDX,PORTCN;置8255A端口A、B工作方式在方式0MOVAL,1000 0010B;控制字,端口A为输出,端口B为输入OUTDX,ALWAIK:MOVDX,PO

19、RTA;等待键闭合MOVAL,0;行码送全“0”OUTDX,ALMOVDX,PORTBINAL,DX;读列码CMPAL,0FFH;列码与0FFH比较,JZWAIK;如果没有键按下,返回MOVBL,0;扫描键盘矩阵,送键号初值MOVBH,1111 1110B;置初始扫描模式-行码送FEHMOVCX,8FNDROW:MOVAL,BH;送行码MOVDX,PORTAOUTDX,ALROLBH,1;修改行码MOVDX,PORTB;读列码INAL,DXCMPAL,0FFH;比较是否有键按下JNZFNDCOL;有则转FNDCOL,查列号ADDBL,8;无键按下,指向下一行LOOPFNDROW;8行扫描未完,

20、转回FNDROWJMPDONE;8行完成后,无键按下,转DONE,FNDCOL:RORAL,1;查哪一列有按键按下JNCRIGHT;查到按下的按键键号,转RIGHTINCBL;键号加1,查下一列JMPFNDCOL;无条件转回RIGHT:;按下键的编号在BL中:DONE:;无按键按下,结束,二、七段LED显示接口,七段(或八段)LED数码管简介,abcdefgDP,abcdefgDP,阴极,阳极,图8-14 七段(或八段)LED数码管,图8-15 8位LED显示器接口电路,设计要求:在8个数码管上动态扫描显示8位十六进制数(0-F)每显示一位后延时20ms周而复始地显示一个双字的十六进制数码,:

21、;数据段定义开始SSEGCODE:DB0C0H(0);定义16进制数字符的7段码DB0F9H(1)DB0A4H(2)DB0B0H(3)DB99H(4)DB92H(5)DB82H(6)DB0F8H(7)DB80H(8)DB98H(9)DB88H(A)DB83H(B)DB0C6H(C)DB0A1H(D)DB86H(E)DB8EH(F),FOURBYTE:EQU THIS BYTEDBLWORD:DD 2143H,6587H;定义双字常数量:MOVAL,1000 0000B(80H);A、B口方式0,输出MOVDX,0FFFFH;8255A控制字端口地址OUTDX,AL;置方式字:CLD;方向标志置

22、0(0DF)控制串操作递增AGAIN:MOVCX,4;置计数初值4MOVSI,OFFSET FOURBYTE;求偏移量MOVAH,11111110B;送常数FEH AHLOOPDISP:LODSB;P110,DS:SIAL,SI自动加1MOVDI,AX;暂存AX的值(AH 位选,AL7段码)ANDAL,0FH;屏蔽高4位,取低4位编码MOVBX,OFFSET SSEGCODE;求段码表首地址,XLAT SSEGCODE;查段码表MOVDX,0FFFAH;送端口B地址OUTDX,AL;输出显示数码值MOVAL,AH;送AHALMOVDX,0FFF8H;送端口A地址OUTDX,AL;输出数码的位选

23、码PUSHCX;CX压栈MOVCX,NDELAY;延时2ms,NDELAY-延时常数IDLE:NOPNOPLOOP IDLE:MOVAL,0FFH;送常数(AH)=FFHALOUTDX,AL;禁止显示MOVAX,DI;恢复(AH 位选,AL7段码),MOVCL,4SHRAL,CL;逻辑右移4位,取高4位编码MOVBX,OFFSET SSEGCODE;求段码表首地址XLAT SSEGCODE;查段码表MOVDX,0FFFAH;送端口B地址OUTDX,ALROLAH,1;循环左移1位,电亮下一个数码管MOVAL,AH;送AHALMOVDX,0FFF8H;送端口A地址OUTDX,AL;输出数码的位选

24、码MOVCX,NDELAY;延时2msIDLE2:NOPNOPLOOP IDEL2ROLAH,1;循环左移1位,电亮下一个数码管,MOVAL,0FFHOUTDX,AL;禁止显示POP;出栈LOOP LOOPDISP;8位未显示完,转LOOPDISPJMPAGAIN;8位显示完,转回AGAIN:,三、打印接口,1.并行接口标准(Centronics)P311 表8-4所示2.打印机的工作过程及接口电路 电路如P313 图8-17所示3.8255A的应用编程(1)8255A的初始化程序段(2)打印机中断服务程序,四、LED/开关接口,图8-18 8086CPU、8255A同开关7段LED的接口,8

25、255A,1,1,1,+5v,+5v,PA0,PA1,PA7,PB3,PB2,PB1,PB0,a,b,DP,8255A初始化PA口输出、PB口输入工作于方式0,从PB口读入信息,屏蔽高4位,取开关状态,查7段显示码表,从PA口输出7段显示码,延时,程序流程(工作原理),A1,A2,A0,A1,解题分析,(1)8255A的负载能力较小,所以输出口PA经驱动器同7段LED显示器连接;(2)8255A设置为方式0工作,PA口输出,PB口输入;(3)由于8255A的A0A1与CPU的A1A2相连接,A0可以为“1”或“0”,因此,每个端口有两个地址,如:PA口地址为0FF8H或0FF9H;(4)按题意

26、可写出控制程序如下:,ORG2000HMOVAL,82H(1000 0010B);8255A方式字MOVDX,0FFFEH;8255A控制字端口地址OUTDX,AL;送方式字RDPORTB:MOVDL,0FAH;送端口B地址INAL,DX;读端口B数据ANDAL,0FH;屏蔽高4位MOVBX,OFFSET SSEGCODE;求段码首地址XLAT;查表BX+ALALMOVDL,0F8H;设A口地址OUTDX,AL;段码输出到A口显示MOVAX,56CH;延时DELAY:DECAXJNZDELAY,JMPRDPORTB;返回再次读B口内容HLT;暂停ORG2500HSSEGCODEDB 0C0H,

27、0F9H,0A4H,0B0H,99H,DB 92H,82H,0F8H,80H,98H,88HDB 83H,0C6H,0A1H,86H,8EH;段码定义(共阴)例如:0C0H=1100 0000B;显示“0”PA0=a段=“0”点亮 PA1=b段=“0”点亮 PA2=c段=“0”点亮 PA3=d段=“0”点亮 PA4=e段=“0”点亮 PA5=f段=“0”点亮 PA6=g段=“1”灭 PA7=DP段=“1”灭,a,b,c,d,e,f,g,DP,(1)如果驱动改为反向器,则段码应修改为:SSEGCODEDB 3FH,06H,5BH,4FH,66H,DB 6DH,7DH,07H,7FH,67H,77

28、HDB 7CH,39H,5EH,79H,71H例如:3FH=0C0H=0011 1111B;显示“1”PA0=a段=“1”点亮 PA1=b段=“1”点亮 PA2=c段=“1”点亮 PA3=d段=“1”点亮 PA4=e段=“1”点亮 PA5=f段=“1”点亮 PA6=g段=“0”灭 PA7=DP段=“0”灭(2)如果要求7段LED循环显示0-F十六个数,每个显示5秒,显示20遍,则程序为:,ORG2000HMOVAL,80H(1000 0000B);8255A方式字MOVDX,0FFFEH;8255A控制字端口地址OUTDX,AL;送方式字MOVBX,20;循环次数20次DISFLOP:LEAD

29、I,SSEGCODE;求段码首地址MOVCX,16;显示字符个数LOP:MOVAL,DI;取显示字符送A口MOVDL,0F8H;设A口地址OUTDX,AL;段码输出到A口显示INCDI;修改显示指针CALLDELAY5S;延时5秒子程序LOOP LOP;循环16次DECBX;修改循环20次的计数值,JNZDISPLOP;返回再次读B口内容HLT;暂停ORG2100H DELAY5S:ORG2500HSSEGCODEDB 0C0H,0F9H,0A4H,0B0H,99H,DB 92H,82H,0F8H,80H,98H,88HDB 83H,0C6H,0A1H,86H,8EH;段码定义(共阴)例如:0

30、C0H=1100 0000B;显示“0”PA0=a段=“0”点亮 PA1=b段=“0”点亮 PA2=c段=“0”点亮 PA3=d段=“0”点亮 PA4=e段=“0”点亮 PA5=f段=“0”点亮 PA6=g段=“1”灭 PA7=DP段=“1”灭,习题解答,习题8.20 若输入设备输入的是ASC码,通过8255A端口B输入,采用中断方式,将数据送入INBUF为首地址的输入缓冲区中,连续输入直到遇到就结束输入。假设此中断类型码为52H,中断服务程序的入口地址为INTRP。8255A的端口地址为80H83H。(1)根据上述要求设计并画出硬件电路图。(2)写出8255A初始化程序(包括把入口地址写入中

31、断向量表);(3)写出完成输入数据,并存入输入缓冲区BUF1的中断服务程序;,(1)设计并画出硬件电路图,STBIBFINTR,(2)8255A、8259初始化程序,方式字:1XXX X11X;确定为1000 0110=86HC口按位置为位/复位控制字:0XXX 0101(PC2=“1”)确定为:0000 0101=05HA口地址:80H;B口地址:81H;C口地址:82H;控制口地址:83H;8255A、8259初始化程序MOV AL,86HMOV DX,83HOUT DX,ALMOV AL,05HOUT DX,AL,8259A初始化程序段(令端口地址为60H、61H)MOV AL,13H(

32、0001 0011);置ICW1,采用上升沿触发OUT 60H,ALMOV AL,50H;置ICW2,中断向量类型码高5位是01010BOUT 61H,ALMOV AL,0DH;置ICW4,采用缓冲方式OUT 61H,AL写中断向量表程序段MOV AX,0MOV DS,AXMOV DI,52H2MOV AX,SEG INTRPMOV DS:DI,AXMOV AX,OFFSET NTRPMOV DS:DI+2,AXSTI,(3)完成输入数据,并存入输入缓冲区BUF1的中断服务程序,INTRP:PUSH AXMOV DI,OFFSET BUF1MOV BX,SEG BUF1LOP:IN AL,81

33、HCMP AL,JZ ENDMOV BX:DI,ALINC DIJMP LOPEND:CLIIRET,8.3 可编程定时器/计数器8253,8.3.1可编程定时器/计数器的基本工作原理,GATE是控制输入端,它有多种控制作用,如允许禁止计数、启动停止计数等。控制寄存器是用来控制计数器定时器的工:作方式,就是控制CLK脉冲和CATE门控信号适当配合来产生OUT端的输出信号的形状。所以,计数定时器可以归纳为以下几种工作方式:(1)门脉冲控制时钟输入。此时,当门脉冲GATE到来时,时钟CLK有效,进行计数操作;当门脉冲结束时,时钟无效,计数停止。(2)用门脉冲重新启动计数器。(3)用门脉冲停止计数器

34、工作。(4)单次计数。此时仅要求GATE为高电平即可。(5)循环计数。此时,每当计数执行单元为零时,输出端OUT输出一个信号,同时又重新装入计数初值寄存器内容到计数执行单元,重复原来的计数过程,从而在OUT端上可输出周期性的脉冲信号。,8.3.2 8253的结构和功能,8253-PIT的主要功能有:(1)有3个独立的16位计数器。(2)每个计数器都可以按照二进制或BCD码进行计数。(3)每个计数器的计数速率可高达2MHz(8254-2计数频率可达到10MHz)。(4)每个计数器有6种工作方式,可由程序设置和改变。(5)所有的输入输出引脚电平都与TTL电平兼容。,8253的结构和引脚,三个计数器

35、中每一个都有三条信号线;计数输入CLK用于输入定时基准脉冲或计数脉冲;输出信号OUT以相应的电平指示计数的完成,或输出脉冲波形;选通输入(门控输入)GATE用于启动或禁止计数器的操作,以使计数器 和计测对象同步。每个计数器中有三个寄存器;控制寄存器初始化时,将控制字寄存器 中的内容写入该寄存器;计数初值寄存器初始化时写入该计数器的初始 值;减法计数寄存器计数初值由计数初值寄存器送人减法计数寄存器,当 计数输入端输入一个计数脉冲时,减法计数寄存器内容减1,当减到零时,输出 端输出相应信号表示计数结束。,8253 的控制字,在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字,

36、它规定了8253的工作方式。,8253 的工作方式,一、方式0计数结束中断方式在这种方式下,当控制字CW(Control Word)写入控制字寄存器,则使OUT输出端变低,此时计数器没有赋予初值,也没开始计数。要开始计数,GATE信号必须为高电平,并在写入计数初值后,通道开始计数,在计数过程中 OUT线一直维持为低,直到计数到“0”时。OUT输出变高。,(MODE 0)CLOCK,WRn#,OUTPUT(中断),4,3,2,1,0,n=4,WRm#,OUTPUT(中断),GATE,m=4,5,4,3,2,1,0,8253工作方式(6种)方式0:计数结束时发中断,方式1可编程序的单拍脉冲在这种方

37、式下,当CPU写控制字之后(的上升沿),输出将保持为高(若原为低,则由低变高)。当CPU写完计数值后,计数器并不开始计数,直到外部门控脉冲GATE启动之后的下一个输入CLK脉冲的下降沿开始计数,输出OUT变低。因整个计数过程中,OUT都维持为低,直到计数到0,输出变为高,因此,输出为一个单拍脉冲。若外部再次触发启动,则可以再产生一个单拍脉冲。,WRn#,GATE(TRIGGER),4,3,2,1,0,OUTPUT,3,4,2,1,0,(MODE 1)CLOCK,GATE(TRIGGER),OUTPUT,2,3,4,8253工作方式(6种)方式1:可编程单稳电路,方式2速率发生器在这种方式下,当

38、CPU输出控制字后,输出将为高。在写入计数值后,计数器将立即自动对输入时钟CLK计数。在计数过程中输出始终保持为高,直至计数器减到1时,输出将变低,经过一个CLK周期,输出恢复为高,且计数器开始重新计数。,WRn#,4,3,2,1,0(3),OUTPUT,GATE(RESET),OUTPUT,(MODE 2)CLOCK,n=4,n=3,0(4),3,2,1,2,1,0,0(3),3,2,1,0(3),2,1,0(3),2,1,方式2:可变频率脉冲发生器,0,方式3方波速率发生器方式3的输出都是周期性的,方式3在计数过程中输出有一半时间为高,另一半时间为低。,4,2,2,1,0(4),OUTPU

39、T n=4,GATE(RESET),OUTPUT n=4,n=4,n=3,0(4),2,1,0,3,2,1,0(4),2,1,3,3,1,(MODE 3)CLOCK,OUTPUT n=5,3,2,1,0(5),4,3,2,1,0(5),4,3,0(5),4,3,0,方式4软件触发选通在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为低则变为高)。当写入计数值后立即开始计数(相当于软件启动),当计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停止计数。这种方式计数也是一次性的,只有在输入新的计数值后,才能开始新的计数。,(MODE 4)CLOCK,WRn#,n=4,OU

40、TPUT,n=4,0,1,2,3,4,4,4,3,2,1,0,LOADn,GATE,OUTPUT,8253工作方式(6种)方式4:软件触发选通,方式5硬件触发选通在这种方式下,设置了控制字后,输出为高。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到0时,输出变低,经过一个CLK脉冲,输出恢复为高,停止计数。要等到下次门控脉冲的触发才能再计数。,(MODE 5)CLOCK,OUTPUT(n=4),0,1,2,3,4,4,3,2,1,0,GATE,GATE,OUTPUT,4,3,8253工作方式(6种)方式5:硬件触发选通,8.3.4 8253的初始化例:要求计

41、数器0工作于方式3,输出方波的重复频率为2KHz,计数脉冲输入为2.5MHz,采用BCD码计数,试写出初始化程序段。,计算计数初值:TC=2.5MHz/2KHz=1250方式字为:0011 0111B=37H(计数器0,写16位,方式3,BCD计数)设端口地址为:80H、81H、82H、83H。则初始化程序为:,MOV AL,37H;写入方式控制字OUT 83H,ALMOV AL,50H;写入计数初始值低8位OUT 80,ALMOV AL,12H;写入计数初始值高8位OUT 80H,AL,(3)读计数值,以普通对计数器端口读的方法取得当前计数值锁存计数器的当前值,8.3.5 8253-5的应用

42、举例一、用8253-5监视一个生产流水线1.硬件设计,图8-28 8253的应用计数和定时,设计要求及设计方案确定,使用8253-5监视一个生产流水线,每通过50个工件,扬声器响5秒钟,频率2000Hz。用8253-5的通道0设定为计数方式计数,计数满50后,由OUT0输出一个负脉冲,经反向后作为8259A的中断请求信号,在中断服务程序中,启动8253-5通道1工作,有通道1连续输出频率为2000Hz的方波信号,持续5秒后结束。通道0工作于方式2,通道1工作于方式3,通道1的门控信号GATE1由8255A的PA0控制。,2.控制字设置,通道0计数器工作于方式2,采用BCD计数,因计数初值为50

43、,采用RL1RL0=01(读/写计数器的低8位),则工作方式字为00010101=15H。通道1计数器工作于方式3,CLK1接2.5MHz时钟,要求产生1000Hz的方波,则计数初值应为2.5106/2000=1250,采用RL1RL0=11(先读计数器的低8位,再读计数器的高8位)。则工作方式字为01110111=77H。设通道0的地址为40H,通道1的地址为41H,控制口地址为43H,8255A的口地址为80-83H。,主程序:,MOV AL,15H;通道0初始化,方式2OUT 43H,ALMOV AL,50H;置计数初值OUT 40H,ALSTI;开中断LPO:HLT;等待中断JMP L

44、OP,中断服务程序为:MOV AL,01H;通道1的GATE1置1,启动计数OUT 80H,AL;认为8255已经初始化,向8255 端口送数,使PA0为“1”MOV AL,77H;通道1初始化,方式3OUT 43H,ALMOV AL,50H;置计数初值低8位OUT 41H,ALMOV AL,12H;置计数初值高8位OUT 41H,ALCALL DL5S;延时5秒,DL5S为5秒延时程序MOV AL,00H;通道1的GATE1置0,停止计数OUT 80H,AL;复位8255端口,使PA0为“0”IRET注:本例中,通道0工作于计数状态,通道1工作于计时状态。,二、8253在IBM-PX机中的应

45、用,图8-29 8253在IBM-PX机中的应用逻辑图,1.工作原理分析,系统分配给8253的端口地址为040H043H,三个计数器在IBM-PC机中的功能如下:(1)计数器0用来产生实时时钟信号,工作于方式3,计数初值为0,采用二进制计数,输出OUT0作为中断请求IRQ0,连接到中断优先权控制器8259A的IR0。此时OUT0端输出1193181.665536=18.2(Hz)的方波脉冲序列,方波的脉冲周期约为55ms(1/18.2(Hz)),也就是说,计数器0每隔55ms产生一次中断请求。在中断处理程序中使用一个16位的软件计数器(初值为0)进行加1计数,因此当该计数器由FFFFH变为00

46、00H时,表示已产生65536次中断请求,共经过65536 18.2(65536 55ms)=3600秒时间。,(2)计数器1用来产生动态存储器刷新操作的定时控制,它工作于方式2,计数初值为18,OUT1端输出一个负脉冲序列,其脉冲周期约为18 1.1931816MHz=15.08(s)。该输出将作为动态刷新控制器8237A中通道0的DMA请求信号DREQ0,控制DMA控制器完成每隔15.08(s)对系统中的动态存储芯片进行一次刷新操作,(3)计数器2用于为系统中的扬声器发声时提供一个约900Hz的方波信号。工作于方式3,计数初值为0533H,GATE2接入一个自系统板上8255A的PB0,作

47、为扬声器发声时间控制信号。显然,当GATE2为高电平时,OUT2端将输出频率为1193181.6 1331D(0533H)=896Hz的方波(1193181.6 900=1326D=052EH),该输出方波经功率放大器75477放大与滤波后驱动扬声器;当GATE2为地电平时,计数器2停止工作,在OUT2端无方波输出信号。,2.8253的初始化程序段,(1)对计数器0的初始化MOV AL,0011 0110B;写入计数器0的控制字,CW表示 选择计数器0,双字节写,方式3和二进制计数OUT 43H,ALMOC AL,0;计数初值为65536,先写入低8位字节 到CRL,再写入高8位字节到CRHO

48、UT 40H,ALOUT 40H,AL,(2)对计数器1的初始化程序,MOV AL,0101 0100B;写入计数器1的控制字,CW表示选择 计数器1的控制寄存器,只写入低位字 节,方式2和二进制计数OUT 43,ALMOV AL,18D;计数初值写入CRLOUT 41H,AL,(3)对计数器2的初始化程序,MOV AL,1011 0110B;写入计数器2的控制字,CW表示选择 计数器2的控制寄存器,双字节写、方式2和二进制计数OUT 43,ALMOV AX,0533H(052EH);计数初值0533H依次写入CRL、CRHOUT 42H,ALMOV AL,AHOUT 42H,ALIN AL,

49、61H;完成对8255A PB0=PB1=1的设置,扬 声器发声;PB口端口地址为061HMOV AH,ALOR AL,03HOUT 61H,AL,三、8253在实时控制系统中的应用,图8-30 用8253组成的采样周期发生器,1.采样周期发生器的设计原理,对于8253中的每个计数器来说,如果CLK脉冲信号为1.1931816MHz,计数初值为65536时,OUT输出脉冲的最大周期也只有55ms左右。因此,要产生符合采样周期要求的时间间隔,可采用两种方法,其一是仅用一个计数器来实现,但此时必须降低CLK频率才行,未了降低频率必须增加分频器之类的硬件电路,增加了硬件成本。另一种方法就是将8253

50、的两个计数器串联起来,使其中的一个计数器作为定时器,当分频器使用,将其OUT输出信号作为另一个计数器的CLK脉冲信号;而另一个计数器只起计数作用,其OUT输出端作为中断请求信号。显然后一种方法具有非常灵活的控制手段,只要通过软件修改两个计数器中任何一个的计数初值,就可以改变采样周期的时间间隔,因此能产生大范围的时间变化的采样周期信号,所以在实际的计算机控制系统中应用广泛。,设8253的端口地址为:230H233H8259的IR2作为采样周期的中断源的输入端中断类型码为:0AH中断服务程序的首地址存放在0028H002BH中断服务程序的名为:RTIME计数器0工作于方式2,计数初值为0,仅写低8

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号