




已阅读5页,还剩104页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8.1可编程接口芯片概述8.2可编程并行接口芯片8255A8.3可编程定时器/8253,第八章可编程接口芯片及其应用,教学内容(4学时)可编程接口芯片概述8255A芯片的原理8255A芯片的应用实例教学目标理解常用可编程通信接口芯片的作用了解8255A芯片的原理掌握8255A初始化方法掌握8255A作为LED显示器、开关、打印机等接口时的硬件连接方法和控制程序设计教学重点及难点常用可编程通信接口芯片的作用8255A方式1的工作原理及时序(难点)8255A作为接口时控制程序设计方法(重点),8.1可编程接口芯片概述接口电路中的单元(1)输入输出数据锁存器和缓冲器,用以解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用;(2)控制命令和状态寄存器,以存放CPU对外设的控制命令,以及外设的状态信息;(3)地址译码器,用来选择接口电路中的不同端口(寄存器);(4)读写控制逻辑;(5)中断控制逻辑。,接口中的一些公用引脚作用及其连接方法1.片选概念CS或CE2.读/写概念DB线,M/IO线,RD线,WR线,CE/CS线3.可编程接口的概念目前所用的接口芯片大部分是多通道、多功能的。所谓多通道就是指一个接口芯片一面与CPU连接,另一面可接几个外设.所谓多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。,4.“联络”的概念STB:选通信号;RDY:就绪信号(Ready)1)以输入接口为例:RDY=“H”表示接口芯片中输入寄存器已空,可接受外设信息以实现外设与接口的输入操作。STB=“L”表示接口选通,是外设向接口发出的,过程:1)外设把数据送上接口芯片端口后,用STB信号有效打人接口芯片输入寄存器;2)在STB的后沿,把RDY信号拉为“L”,表明输入寄存器已有数据。RDY=“L”正是接口与外设的通信标志,外设接收RDY=”L”后,暂不送数据;3)CPU发出读数指令,读人该数据,并使RDY置“H”。然后,又开始新一轮的输入操作在输入接口中,RDY信号有时用IBF(输入缓冲器满)表示。,如是输出接口,则:RDY=“H”,表示接口寄存器已有数据,通知外设来取数;STB=“L”,表示端口数据已为外设接收,且已处理,CPU可送新数据到接口寄存器,STB的后沿使RDY变为“L”。在输出接口中,RDY信号有时用OBF(输出缓冲器满)表示,STB信号有时用ACK(响应)表示。,接口芯片的引脚,8.2可编程并行接口芯片8255A,8.2.18255A的结构和引脚功能,1数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。2三个8位端口PA、PB和PCPA、PB和PC端口都可由程序设定为各种不同的工作方式。端口A(PA口)有一个8位数据输入锁存器和一个8位数据输出锁存缓冲器;端口B(PB口)有一个8位数据输入缓冲器和一个8位数据输入输出、锁存缓冲器;端口C(PC口)有一个8位数据输入缓冲器和一个8位数据输出锁存缓冲器。通常PA口与PB口用作输入输出的数据端口,PC口用作控制或状态信息的端口。,一、8255A的内部结构,3A组和B组的控制电路这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。A组控制部件用来控制PA口和PC口的高4位(PC7PC4);B组控制部件用来控制PB口和PC口的低4位(PC3PC0)。4读写控制逻辑用来管理数据信息、控制字和状态字的传送,它接收来自CPU地址总线的A1、A0和控制总线的有关信号(RD、WR、RESET等),向8255A的A、B两组控制部件发送命令。,二、8255A的引脚功能,。CS选片信号,低电平有效,由它启动CPU与8255A之间的通信(Communication)。RD读信号,低电平有效。它控制8255A送出数据或状态信息至CPU。WR写信号,低电平有效。它控制把CPU输出的数据或命令信号写到8255A。RESET复位信号,高电平有效,它清除控制寄存器并置所有端口(A、B、C)为输入方式。A1,A0:片内寄存器选择信号(输入)A1A0=00:选中PA口;A1A0=01:选中PB口;A1A0=10:选中PC口;A1A0=11:选中控制端口;D7D0:与CPU侧连接的数据线(双向)PA7PA0:A口外设数据线(双向)PB7PB0:B口外设数据线(双向)PC7PC0:C口外设数据线(双向),表818255A端口功能选择,8.2.28255A的工作方式,一、方式0基本输入输出方式0下,每一个口都作为基本的输入输出口8255A在方式0工作时1.CPU可以采用无条件读写方式与8255A交换数据;2.把C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU可以通过对C口的读写,实现A口与B口的查询方式工作;3.方式0中,不允许采用中断方式工作。,二、方式1选通输入输出(应答式输入输出)方式1下将三个端口分成A、B两组,A、B两个口仍作为数据输入输出口,而C口分成两部分,分别作为A口和B口的联络信号。方式1的输入,(1)STB:输入的选通信号低电平有效。由外设提供,为低电平时,就把输入的数据信号(PA7-PA0或PB7-PB0)送入A端口(或B端口)的数据锁存器。(2)IBF:输入缓冲器满信号,高电平有效。由8255A输出,有效时,用以通知外部设备输入的数据已写入缓冲器。(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,表示锁存数据已完成,暂时不要再送数据。如果PC41(INTE1),这时就会使INTR变成高电平输出,向CPU发出中断请求。3)CPU响应中断,执行IN指令时,RD信号的下降沿清除中断请求,而RD结束时的上升沿则使IBF复位到零。外设在检测到IBF为零后,可以开始输入下一个字节。2方式1的输出联络信号信号的作用如下:(1)OBF:输出缓冲器满信号;低电平有效。由8255A输出,当其有效时,表示CPU已经将数据输出到指定的端口,通知外设可以将数据取走。(2)ACK:响应信号,低电平有效。由外设送来,有效时表示8255A数据已经为外设所接收。,(3)INTR:中断请求信号高电平有效。当外设接收了由CPU送给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双向选通输入输出通过8位数据线与外设进行双向通信的方式,既能发送,又能接收数据。工作时可以用中断方式,也可以用查询方式与CPU联系。,8.2.38255A的初始化,一、方式控制字,二、C口按位置/复位,8.2.48255A的应用举例,例1:在一系统中,要求8255A工作在方式0。现要求将从A口读取的数据1)求反后从B口输出;2)将其绝对值从C口输出,Moval,90hOut63h,al;送控制字到控制字寄存器。Calldelay1Inal,60h;从A口输入数据Calldelay2NOTALOut61h,al;从B口输出数据Calldelay3CMPAL,0JGEPLDNEGALPLD:Out62h,al;从C口输出数据,例2:假定在一个系统中,要求8255工作在方式1,端口A为输出,端口B为输入,PC4PC5为输出,禁止端口B中断.要求:1)对8255A初始化;2)在PC4引脚上输出负脉冲信号。,1)Moval,10100111bMovdx,43h;控制寄存器地址Outdx,al;送入控制字寄存器Moval,0dh;A口的INTE(PC6)置1Outdx,al;送入控制字寄存器Moval,04h;B口的INTE(PC2)置0Outdx,al;送入控制字寄存器,40H43H,MOVAL,00001000BOUT43H,ALCALLDELAYMOVAL,00001001BOUT43H,ALCALLDELAYMOVAL,00001000BOUT43H,AL,例3:假定在一个系统中,端口A工作在方式2,端口B工作在方式0且为输入,端口C的三位PC0PC2位输入。,Moval,11xxx011b;控制字Movdx,xxxxxx11b;控制寄存器地址Outdx,al;送入控制字寄存器,一、键盘接口有两类键盘:编码键盘和非编码键盘键盘输入信息的过程可归纳为三步:(1)检查是否有按键按下;(2)查出按下的是哪一个按键;(3)将该键所代表的信息翻译成计算机能够识别的代码,如ASC或其它预先约定的编码。如果第二、三步用硬件完成,则称为编码键盘如果第二、三步用软件完成,则称为非编码键盘,图8-13非编码键盘接口,使用行扫描寻找按下键的编码(键号)的程序如下:,PORTAEQU0FFF8H;定义端口A的口地址PORTBEQU0FFFAH;定义端口B的口地址PORTCEQU0FFFCH;定义端口C的口地址PORTCNEQU0FFFEH;定义控制字端口的口地址MOVDX,PORTCN;置8255A端口A、B工作方式在方式0MOVAL,10000010B;控制字,端口A为输出,端口B为输入OUTDX,ALWAIK:MOVDX,PORTA;等待键闭合MOVAL,0;行码送全“0”OUTDX,ALMOVDX,PORTBINAL,DX;读列码CMPAL,0FFH;列码与0FFH比较JZWAIK;如果没有键按下返回,MOVBL,0;扫描键盘矩阵,送键号初值MOVBH,11111110B;置初始扫描模式-行码送FEHMOVCX,8FNDROW:MOVAL,BH;送行码MOVDX,PORTAOUTDX,ALROLBH,1;修改行码MOVDX,PORTB;读列码INAL,DXCMPAL,0FFH;比较是否有键按下JNZFNDCOL;有则转FNDCOL,查列号ADDBL,8;无键按下,指向下一行LOOPFNDROW;8行扫描未完,转回FNDROWJMPDONE;8行完成后,无键按下,转DONEFNDCOL:RORAL,1;查哪一列有按键按下JNCRIGHT;查到按下的按键键号,转RIGHTINCBL;键号加1,查下一列JMPFNDCOL;无条件转回RIGHT:;按下键的编号在BL中:DONE:;无按键按下,结束,二、七段LED显示接口,七段(或八段)LED数码管简介,abcdefgDP,abcdefgDP,阴极,阳极,图8-14七段(或八段)LED数码管,图8-158位LED显示器接口电路,LED0,共阳极,反向器,1-发光,0-显示,同向器,例:如图8-15所示1)编写在LED0上显示指定字符的程序段2)编写在8个LED上显示同一字符的程序段设8255A的端口地址:A口:FFF8H、B口:FFFAH、C口:FFFCH、控制口:FFFEH,MOVAL,10000000B(80H);A、B口方式0,输出MOVDX,0FFFEH;8255A控制字端口地址OUTDX,ALMOVAL,KEYMOVBX,OFFSETSSEGCODE;取段码表首地址XLATMOVDX,0FFFAH;送端口B地址OUTDX,AL;输出段码MOVAL,0FEHMOVDX,0FFF8H;送端口A地址OUTDX,AL;输出位码,MOVAL,00H,KEY:DB?;0FSSEGCODE: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),设计要求:在8个数码管上动态扫描显示8位十六进制数(0-F)每显示一位后延时20ms周而复始地显示一个双字的十六进制数码,:;数据段定义开始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:EQUTHISBYTEDBLWORD:DD2143H,6587H;定义双字常数量:MOVAL,10000000B(80H);A、B口方式0,输出MOVDX,0FFFEH;8255A控制字端口地址OUTDX,AL;置方式字CLD;方向标志置0(0DF)控制串操作递增AGAIN:MOVCX,4;置计数初值4MOVSI,OFFSETFOURBYTE;求偏移量MOVAH,11111110B;送位码初值FEHAHLOOPDISP:LODSB;P110,DS:SIAL,SI自动加1MOVDI,AX;暂存AX的值(AH位码,AL7段码)ANDAL,0FH;屏蔽高4位,取低4位编码MOVBX,OFFSETSSEGCODE;取段码表首地址XLATSSEGCODE;查段码表MOVDX,0FFFAH;送端口B地址OUTDX,AL;输出段码MOVAL,AH;送AHALMOVDX,0FFF8H;送端口A地址OUTDX,AL;输出位码PUSHCX;CX压栈,MOVCX,NDELAY;延时2ms,NDELAY-延时常数IDLE:NOPNOPLOOPIDLEMOVAL,0FFH;送位码FFHALOUTDX,AL;禁止显示MOVAX,DI;恢复(AH位选,AL7段码)MOVCL,4SHRAL,CL;逻辑右移4位,取高4位编码MOVBX,OFFSETSSEGCODE;求段码表首地址XLATSSEGCODE;查段码表MOVDX,0FFFAH;送端口B地址OUTDX,AL;输出段码ROLAH,1;循环左移1位,电亮下一个数码管MOVAL,AHMOVDX,0FFF8H;送端口A地址OUTDX,AL;输出位码MOVCX,NDELAY;延时2msIDLE2:NOPNOPLOOPIDEL2,ROLAH,1;循环左移1位,电亮下一个数码管MOVAL,0FFHOUTDX,AL;禁止显示POPCX;出栈LOOPLOOPDISP;8位未显示完,转LOOPDISPJMPAGAIN;8位显示完,转回AGAIN:,三、打印接口,1.并行接口标准(Centronics)P311表8-4所示2.打印机的工作过程及接口电路电路如P313图8-17所示3.8255A的应用编程(1)8255A的初始化程序段(2)打印机中断服务程序,条件查询,例2:利用工作于方式1的8255A的PA口作D/A转换器的输出接口,利用下降沿启动D/A转换,转换结束的回答信号为“0”脉冲。8255A的端口地址为3E0H3E3H.1)试设计D/A转换器的接口电路2)采用条件传送方式,将存储器BUFFER缓冲区中的5000B的波形数送D/A转换器转换,编写程序段。,MOVDX,3E3HMOVAL,10100000B;工作方式OUTDX,ALMOVAL,00001101B;PC6=1开中断OUTDX,ALLEASI,BUFFERMOVCX,5000LOP1:MOVDX,3E0HMOVAL,SIOUTDX,AL;输出数据INCSIMOVDX,3E2HLOP2:INAL,DX;检查PC3?ANDAL,08HJZLOP2LOOPLOP1INCDXMOVAL,00001100B;OUTDX,AL;已输出5000个波形数PC60关中断,条件查询,例3:试用8255A工作方式1、以中断方式作为打印机接口。电路如下图。8255A的端口地址设为E0H、E2H、E4H、E6H;设中断服务程序入口地址为2000:3000H在2CH、2DH、2EH、2FH中;要求1)对8255A初始化;2)完成中断向量表的初始化;3)编程完成控制过程。,START:MOVAL,10000100BOUT0E6H,AL;工作方式控制字MOVAL,00001011BOUT0E6H,AL;PC5=1使选通无效XORAX,AX;设置0BH号中断的中断向量表MOVDS,AXMOVAX,3000HMOVWORDPTR002CH,AXMOVAX,2000HMOVWORDPTR002EH,AXMOVDI,OFFSETBUFF;设置字符缓冲区指针MOVAL,00000101BOUT0E6H,AL;PC2=1,置INTE=1,开中断STI,2CH/4=0BH,ROUTINTR:MOVAL,DI;DI为打印机字符缓冲区指针,待打印字符送B口OUT0E2H,ALMOVAL,00001010B;PC5=0,产生选通信号,OUT0E6H,ALCALLDELAYINCAL;PC5=1,OUT0E6H,ALIRET,四、LED/开关接口,图8-188086CPU、8255A同开关7段LED的接口,LED,8255A,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)按题意可写出控制程序如下:,ORG2000HMOVAL,82H(10000010B);8255A方式字MOVDX,0FFFEH;8255A控制字端口地址OUTDX,AL;送方式字RDPORTB:MOVDL,0FAH;送端口B地址INAL,DX;读端口B数据ANDAL,0FH;屏蔽高4位MOVBX,OFFSETSSEGCODE;求段码首地址XLAT;查表BX+ALALMOVDL,0F8H;设A口地址OUTDX,AL;段码输出到A口显示MOVAX,56CH;延时DELAY:DECAXJNZDELAYJMPRDPORTB;返回再次读B口内容HLT;暂停,ORG2500HSSEGCODEDB0C0H,0F9H,0A4H,0B0H,99H,DB92H,82H,0F8H,80H,98H,88HDB83H,0C6H,0A1H,86H,8EH;段码定义(共阴)例如:0C0H=11000000B;显示“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)如果驱动改为反向器,则段码应修改为:SSEGCODEDB3FH,06H,5BH,4FH,66H,DB6DH,7DH,07H,7FH,67H,77HDB7CH,39H,5EH,79H,71H例如:3FH=0C0H=00111111B;显示“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(10000000B);8255A方式字MOVDX,0FFFEH;8255A控制字端口地址OUTDX,AL;送方式字MOVBX,20;循环次数20次DISFLOP:LEADI,SSEGCODE;求段码首地址MOVCX,16;显示字符个数LOP:MOVAL,DI;取显示字符送A口MOVDL,0F8H;设A口地址OUTDX,AL;段码输出到A口显示INCDI;修改显示指针CALLDELAY5S;延时5秒子程序LOOPLOP;循环16次DECBX;修改循环20次的计数值,JNZDISPLOP;返回再次读B口内容HLT;暂停ORG2100HDELAY5S:ORG2500HSSEGCODEDB0C0H,0F9H,0A4H,0B0H,99H,DB92H,82H,0F8H,80H,98H,88HDB83H,0C6H,0A1H,86H,8EH;段码定义(共阴)例如:0C0H=11000000B;显示“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初始化程序(包括把入口地址写入中断向量表);(3)写出完成输入数据,并存入输入缓冲区BUF1的中断服务程序;,(1)设计并画出硬件电路图,STBIBFINTR,A7A6A5A4A3A2A1A0100000*80H83H,(2)8255A、8259A初始化程序,方式字:1XXXX11X;确定为10000110=86HC口按位置为位/复位控制字:0XXX0101(PC2=“1”)确定为:00000101=05H开中断A口地址:80H;B口地址:81H;C口地址:82H;控制口地址:83H;8255A、8259A初始化程序MOVAL,86HMOVDX,83HOUTDX,ALMOVAL,05HOUTDX,AL,8259A初始化程序段(令端口地址为60H、61H)MOVAL,13H(00010011);置ICW1,采用上升沿触发OUT60H,ALMOVAL,50H;置ICW2,中断向量类型码高5位是01010BOUT61H,ALMOVAL,0DH;置ICW4,采用缓冲方式OUT61H,AL初始化内存MOVDI,OFFSETBUFMOVBX,SEGBUF1写中断向量表程序段MOVAX,0MOVDS,AXMOVDI,52H4;IR2中断MOVAX,SEGINTRPMOVDS:DI,AXMOVAX,OFFSETNTRPMOVDS:DI+2,AXSTI,(3)完成输入数据,并存入输入缓冲区BUF1的中断服务程序,INTRP:PUSHAXLOP:INAL,81HCMPAL,JZEDMOVBX:DI,ALINCDISTIJMPEDDED:CLIEDD:POPAXIRET,例:8255A组成交通灯的控制。编写程序实现下列功能:K0、K1、K2全部闭合时,红灯亮;K0、K1、K2全部打开时,绿灯亮;其他情况黄灯亮。,分析:K0、K1、K2全部闭合,PA2PA1PA0:000(00H),红灯亮:PB2PB1PB0:100(04H);K0、K1、K2全部闭合,PA2PA1PA0:111(07H),绿灯亮:PB2PB1PB0:010(02H);其他情况黄灯亮:PB2PB1PB0:001(01H);。,根据电路图可知:8255工作于方式0,A口作输入口,B口作输出口。方式控制字为:10010000.端口A的地址为:340H,端口B的地址为341H,控制字寄存器地址为343H。程序如下:,MOVDX,343H;控制字端口地址MOVAL,90H;方式控制字OUTDX,AL;初始化8255AGAIN:MOVDX,340H;送端口A地址INAL,DX;读端口AANDAL,00000111B;取A口的低3位CMPAL,00000111B;判断是否全部打开JEGREENCMPAL,00000000B;判断是否全部闭合JEREDMOVAL,1;黄灯亮JMPOUTPUTRED:MOVAL,4;红灯亮JMPOUTPUTGREEN:MOVAL,2;绿灯亮OUTPUT:MOVDX,341H;B口端口地址OUTDX,ALJMPAGAINHLT,教学内容(4学时)8253芯片的原理8253芯片的应用实例教学目标理解常用可编程通信接口芯片的作用了解8253芯片的原理掌握8253初始化方法掌握8253作为LED显示器、开关、打印机等接口时的硬件连接方法和控制程序设计教学重点及难点常用可编程通信接口芯片的作用8253方式1的工作原理及时序(难点)8253作为接口时控制程序设计方法(重点),8.3可编程定时器/计数器8253,8.3.1可编程定时器/计数器的基本工作原理,GATE是控制输入端它有多种控制作用,如允许禁止计数、启动停止计数等。控制寄存器是用来控制计数器定时器的工作方式,就是控制CLK脉冲和CATE门控信号适当配合来产生OUT端的输出信号的形状。归纳为以下几种工作方式(1)门脉冲控制时钟输入。此时,当门脉冲GATE到来时,时钟CLK有效,进行计数操作;当门脉冲结束时,时钟无效,计数停止。(2)用门脉冲重新启动计数器。(3)用门脉冲停止计数器工作。(4)单次计数。此时仅要求GATE为高电平即可。(5)循环计数。此时,每当计数执行单元为零时,输出端OUT输出一个信号,同时又重新装入计数初值寄存器内容到计数执行单元,重复原来的计数过程,从而在OUT端上可输出周期性的脉冲信号。,8.3.28253的结构和功能,8253-PIT的主要功能(1)有3个独立的16位计数器。(2)每个计数器都可以按照二进制或BCD码进行计数。(3)每个计数器的计数速率可高达2MHz(8254-2计数频率可达到10MHz)。(4)每个计数器有6种工作方式,可由程序设置和改变。(5)所有的输入输出引脚电平都与TTL电平兼容。,8253的结构和引脚,三个计数器中每一个都有三条信号线计数输入CLK用于输入定时基准脉冲或计数脉冲;输出信号OUT以相应的电平指示计数的完成,或输出脉冲波形;选通输入(门控输入)GATE用于启动或禁止计数器的操作,以使计数器和计测对象同步。每个计数器中有三个寄存器控制寄存器初始化时,将控制字寄存器中的内容写入该寄存器;计数初值寄存器初始化时写入该计数器的初始值;减法计数寄存器计数初值由计数初值寄存器送人减法计数寄存器,当计数输入端输入一个计数脉冲时,减法计数寄存器内容减1,当减到零时,输出端输出相应信号表示计数结束。,8253的控制字,在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字,它规定了8253的工作方式。,8253-5端口功能选择表,表8-10选通信号GATE的功能,8253的工作方式,一、方式0计数结束中断方式工作原理1)在这种方式下,当控制字CW(ControlWord)写入控制字寄存器,则使OUT输出端变低,此时计数器没有赋予初值,也没开始计数。2)要开始计数,GATE信号必须为高电平,并在写入计数初值后,通道开始计数,在计数过程中OUT线一直维持为低,直到计数到“0”时。OUT输出变高。特点:1)软件启动(写入计数初值时刻启动)2)GATE作用:开放、禁止计数3)OUT端输出一个负脉冲作用:作中断请求信号,方式0的时序波形,图8-22方式0的时序图,方式1可编程序的单拍脉冲工作原理在这种方式下,当CPU写控制字之后(的上升沿),输出将保持为高(若原为低,则由低变高)。当CPU写完计数值后,计数器并不开始计数,直到外部门控脉冲GATE启动之后的下一个输入CLK脉冲的下降沿开始计数,输出OUT变低。因整个计数过程中,OUT都维持为低,直到计数到0,输出变为高,因此,输出为一个单拍脉冲。若外部再次触发启动,则可以再产生一个单拍脉冲。特点:1)门控脉冲的上升沿启动计数;2)OUT输出一个单稳态负脉冲作用:常作监视时钟,方式1的时序波形,CLK,GATE,OUT,GATE,OUT,图8-23方式1的时序图,方式2速率发生器工作原理:在这种方式下,当CPU输出控制字后,输出将为高。在写入计数值后,计数器将立即自动对输入时钟CLK计数。在计数过程中输出始终保持为高,直至计数器减到1时,输出将变低,经过一个CLK周期,输出恢复为高,且计数器开始重新计数。特点:1)CR自动重载入CE,OUT输出周期性分频信号;2)软件、硬件均可启动;3)OUT正脉冲宽度(n1)个CLK宽度,负脉冲宽度为1个CLK宽度作用:分频器和时基信号,2.方式2的时序波形,图8-24方式2的时序图,方式3方波速率发生器,原理:1)方式3和方式2的输出都是周期性的2)区别是:方式3在计数过程中输出有一半时间为高,另一半时间为低作用:方波发生器、波特率发生器,方式4软件触发选通(启动计数原理类似于方式0)工作原理在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为低则变为高)。当写入计数值后立即开始计数(相当于软件启动),当计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停止计数。这种方式计数也是一次性的,只有在输入新的计数值后,才能开始新的计数。区别:方式0输出高电平(n+1CLK宽度)方式4输出一个CLK宽度的负脉冲,方式4的时序波形,图8-26方式4的时序图,方式5硬件触发选通启动计数原理类似于方式1工作原理在这种方式下,设置了控制字后,输出为高。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到0时,输出变低,经过一个CLK脉冲,输出恢复为高,停止计数。要等到下次门控脉冲的触发才能再计数。区别:方式1OUT输出负脉冲宽度n个CLK宽度;方式5OUT输出负脉冲宽度1个CLK宽度,方式5的时序波形,图8-27方式5时序图,8.3.48253-5的初始化,要使用8253必须首先进行初始化编程,初始化编程的内容为:必须先写入每一个计数器的控制字,然后写入计数器的计数值。在有些方式下,写入计数值后此计数器就开始工作了,而有的方式需要外界门控信号的触发启动。在初始化编程时,某一计数器的控制字和计数值,是通过两个不同的端口地址写入的。任一计数器的控制字都是写入至控制字寄存器(地址总线低两位A1A0=11),由控制字中的D7D6来确定是哪一个计数器的控制字;而计数值是由各个计数器的端口地址写入的。,初始化编程的步骤为:,(1)写入计数器控制字,规定计数器的工作方式。(2)写入计数值。若规定只写低8位,则写入的为计数值的低8位,高8位自动置0。若规定只写高8位,则写入的为计数值的高8位,低8位自动置0。若是16位计数值,则分两次写入,先写入低8位,再写入高8位。,例:要求计数器0工作于方式3,输出方波的重复频率为2KHz,计数脉冲输入为2.5MHz,采用BCD码计数,试写出初始化程序段。,计算计数初值:TC=2.5MHz/2KHz=1250方式字为:00110111B=37H(计数器0,写16位,方式3,BCD计数)设端口地址为:80H、81H、82H、83H。则初始化程序为:,MOVAL,37H;写入方式控制字OUT83H,ALMOVAL,50H;写入计数初始值低8位OUT80,ALMOVAL,12H;写入计数初始值高8位OUT80H,AL,(3)读计数值,以普通对计数器端口读的方法取得当前计数值锁存计数器的当前值(RL1RL0=00),8.3.58253-5的应用举例一、用8253-5监视一个生产流水线1.硬件设计,图8-288253的应用计数和定时,设计要求及设计方案确定,使用8253-5监视一个生产流水线,每通过50个工件,扬声器响5秒钟,频率2000Hz。工作原理:1)用8253-5的通道0设定为计数方式计数,计数满50后,由OUT0输出一个负脉冲,经反向后作为8259A的中断请求信号,在中断服务程序中,启动8253-5通道1工作,有通道1连续输出频率为2000Hz的方波信号,持续5秒后结束。2)通道0工作于方式2,通道1工作于方式3,通道1的门控信号GATE1由8255A的PA0控制。,2.控制字设置,通道0计数器工作于方式2,采用BCD计数,因计数初值为50,采用RL1RL0=01(读/写计数器的低8位),则工作方式字为00010101=15H。通道1计数器工作于方式3,CLK1接2.5MHz时钟,要求产生2000Hz的方波,则计数初值应为2.5106/2000=1250,采用RL1RL0=11(先读计数器的低8位,再读计数器的高8位)。则工作方式字为01110111=77H。设通道0的地址为40H,通道1的地址为41H,控制口地址为43H,8255A的口地址为80-83H。,主程序:,MOVAL,15H;通道0初始化,方式2OUT43H,ALMOVAL,50H;置计数初值OUT40H,ALSTI;开中断LPO:HLT;等待中断JMPLOP,中断服务程序为:MOVAL,01H;通道1的GATE1置1,启动计数OUT80H,AL;认为8255已经初始化,向8255端口送数,使PA0为“1”MOVAL,77H;通道1初始化,方式3OUT43H,ALMOVAL,50H;置计数初值低8位OUT41H,ALMOVAL,12H;置计数初值高8位OUT41H,ALCALLDL5S;延时5秒,DL5S为5秒延时程序MOVAL,00H;通道1的GATE1置0,停止计数OUT80H,AL;复位8255端口,使PA0为“0”IRET注:本例中,通道0工作于计数状态,通道1工作于计时状态。,二、8253在IBM-PC/XT机中的应用,图8-298253在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变为0000H时,表示已产生65536次中断请求,共经过6553618.2(6553655ms)=3600秒时间。,(2)计数器1用来产生动态存储器刷新操作的定时控制,它工作于方式2,计数初值为18,OUT1端输出一个负脉冲序列,其脉冲周期约为181.1931816MHz=15.08(s)。该输出将作为动态刷新控制器8237A中通道0的DMA请求信号DREQ0,控制DMA控制器完成每隔15.08(s)对系统中的动态存储芯片进行一次刷新操作。,(3)计数器2用于为系统中的扬声器发声时提供一个约900Hz的方波信号。工作于方式3,计数初值为0533H,GATE2接入一个自系统板上8255A的PB0,作为扬声器发声时间控制信号。显然,当GATE2为高电平时,OUT2端将输出频率为1193181.61331D(0533H)=896Hz的方波(1193181.6900=1326D=052EH),该输出方波经功率放大器75477放大与滤波后驱动扬声器;当GATE2为地电平时,计数器2停止工作,在OUT2端无方波输出信号。,2.8253的初始化程序段,(1)对计数器0的初始化MOVAL,00110110B;写入计数器0的控制字,CW表示选择计数器0,双字节写,方式3和二进制计数OUT43H,ALMOCAL,0;计数初值为65536,先写入低8位字节到CRL,再写入高8位字节到CRHOUT40H,ALOUT40H,AL,(2)对计数器1的初始化程序,MOVAL,01010100B;写入计数器1的控制字,CW表示选择计数器1的控制寄存器,只写入低位字节,方式2和二进制计数OUT43,ALMOVAL,18D;计数初值写入CRLOUT41H,AL,(3)对计数器2的初始化程序,MOVAL,10110110B;写入计数器2的控制字,CW表示选择计数器2的控制寄存器,双字节写、方式2和二进制计数OUT43,ALMOVAX,0533H(052EH);计数初值0533H依次写入CRL、CRHOUT42H,ALMOVAL,AHOUT42H,ALINAL,61H;PB口端口地址061HMOVAH,ALORAL,03H;完成对8255APB0=PB1=1的设置,扬声器发声OUT61H,AL。MOVAL,AHOUT61H,AL;恢复8255PB口,三、8253在实时控制系统中的应用,图8-30用8253组成的采样周期发生器,1.采样周期发生器的设计原理,对于8253中的每个计数器来说,如果CLK脉冲信号为1.1931816MHz,计数初值为65536时,OUT输出脉冲的最大周期也只有55ms左右。因此,要产生符合采样周期要求的时间间隔,可采用两种方法,其一是仅用一个计数器来实现,但此时必须降低CLK频率才行,未了降低频率必须增加分频器之类的硬件电路,增加了硬件成本。另一种方法就是将8253的两个计数器串联起来,使其中的一个计数器作为定时器,当分频器使用,将其OUT输出信号作为另一个计数器的CLK脉冲信号;而另一个计数器只起计数作用,其OUT输出端作为中断请求信号。显然后一种方法具有非常灵活的控制手段,只要通过软件修改两个计数器中任何一个的计数初值,就可以改变采样周期的时间间隔,因此能产生大范围的时间变化的采样周期信号,所以在实际的计算机控制系统中应用广泛。,设8253的端口地址为:230H233H8259的IR2作为采样周期的中断源的输入端中断类型码为:0AH中断服务程序的首地址存放在0028H002BH中断服务程序的名为:RTIME计数器0工作于方式2,计数初值为0,仅写低8位字节,采用二进制计数.计数器0控制字为:00010100=54H计数器1工作于方式3,计数初值采用来自采样周期变量TIME,按先写高8位,再写低8位次序将16位计数初值写入CR,采用二进制计数.计数器1控制字为:01110110=76H,2.8253的初始化及及中断处理程序首地址的程序段,MOVDX,233H;写入计数器0的控制字MOVAL,00010100B(54H)OUTDX,ALMOVDX,230H;计数初值写入CRL,并启动计数器0MOVAL,00HOUTDX,ALMOVDX,233H;写入计数器1的控制字MOVAL,01110110B(76H)OUTDX,ALMOVDX,231H;计数初值写入CRL,并启动计数器1MOVAL,BYTEPTRTIME;PRT重新指定变量类型,OUTDX,ALMOVAL,BYTEPTRTIME+1OUTDX,ALMOVDI,28H;存中断处理程序首地址偏移量到中断向量表MOVAX,OFFSETRTIMECLD;设方向标志为0(递增加1)STOSW;写中断服务程序首地址偏移量MOVAX,SEGRTIME;存中断处理程序首地址的段地址到中断向量表STOSW;写中断服务程序首地址偏移量STI,四、三个计数通道组合应用,图8-318253的应用三个计数通道组合应用,通道0:方式2,计数初值为1000通道1:方式1,计数初值为500通道2:方式3,计数初值为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》考前冲刺试卷附答案详解【轻巧夺冠】
- 2025年肿瘤精准医疗临床实践案例集锦与效果对比报告
- 2025年学历类自考国民经济统计概论-学前教育学参考题库含答案解析(5卷)
- 2025年学历类自考刑法学-当代中国政治制度参考题库含答案解析(5卷)
- 2025年学历类自考刑法学-中国古代文学作品选(一)参考题库含答案解析(5卷)
- 教师招聘之《小学教师招聘》练习题库带答案详解(预热题)
- 2025年学历类自考内科护理学(一)-马克思主义基本原理参考题库含答案解析(5卷)
- 2025年学历类自考公共政策学-管理系统中计算机应用参考题库含答案解析(5卷)
- 2025年学历类自考儿科护理学(二)-政府经济管理概论参考题库含答案解析(5卷)
- 2025年学历类自考传播学概论-心理学参考题库含答案解析(5卷)
- 2025年全国企业员工全面质量管理知识竞赛题库及答案(共90题)
- 2025年天津市专业人员继续教育试题及答案3
- 主要诊断及主要手术的选择原则
- 2024年急危重症患者鼻空肠营养管管理专家共识
- 医学教材 《中国高尿酸血症相关疾病诊疗多学科专家共识(2023年版)》解读课件
- 公转私借款合同书模板
- 2024版债务处理咨询服务协议
- 《我们走在大路上》 课件 2024-2025学年湘教版初中美术七年级上册
- 2024年八年级物理上册必背考点113条背记手册
- 供应链安全风险评估
- 移动公司个人求职简历模板
评论
0/150
提交评论