![微机原理-第九章-可编程接口芯片综述课件_第1页](http://file4.renrendoc.com/view/98ea238c4ad43b041201d4e539d34510/98ea238c4ad43b041201d4e539d345101.gif)
![微机原理-第九章-可编程接口芯片综述课件_第2页](http://file4.renrendoc.com/view/98ea238c4ad43b041201d4e539d34510/98ea238c4ad43b041201d4e539d345102.gif)
![微机原理-第九章-可编程接口芯片综述课件_第3页](http://file4.renrendoc.com/view/98ea238c4ad43b041201d4e539d34510/98ea238c4ad43b041201d4e539d345103.gif)
![微机原理-第九章-可编程接口芯片综述课件_第4页](http://file4.renrendoc.com/view/98ea238c4ad43b041201d4e539d34510/98ea238c4ad43b041201d4e539d345104.gif)
![微机原理-第九章-可编程接口芯片综述课件_第5页](http://file4.renrendoc.com/view/98ea238c4ad43b041201d4e539d34510/98ea238c4ad43b041201d4e539d345105.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章常用可编程接口芯片可编程并行接口8255可编程计数器/定时器8253串行通讯接口19.6可编程并行接口82551.并行接口的组成输出缓冲寄存器输入缓冲寄存器控制寄存器状态寄存器CPU输入设备输出设备译码器片选数据总线读信号写信号复位信号准备好中断请求并行输出数据输出准备好输出回答并行输入数据输入准备好输入回答29.6可编程并行接口82551.并行接口的组成输出缓冲寄存器输入缓冲寄存器控制寄存器状态寄存器CPU输入设备输出设备译码器片选数据总线读信号写信号复位信号准备好中断请求并行输出数据输出准备好输出回答并行输入数据输入准备好输入回答并行接口电路通常包括以下几部分:具有缓冲能力的输入和输出数据寄存器可供CPU访问的控制及状态寄存器片选和内部控制逻辑电路与外设进行数据交换的控制与联络信号线用中断方式传送数据的相关中断控制电路39.6可编程并行接口82551.并行接口的组成输出缓冲寄存器输入缓冲寄存器控制寄存器状态寄存器CPU输入设备输出设备译码器片选数据总线读信号写信号复位信号准备好中断请求并行输出数据输出准备好输出回答并行输入数据输入准备好输入回答并行接口电路通常包括以下几部分:具有缓冲能力的输入和输出数据寄存器可供CPU访问的控制及状态寄存器片选和内部控制逻辑电路与外设进行数据交换的控制与联络信号线用中断方式传送数据的相关中断控制电路输入过程:外设把数据传送给接口,并发出“输入准备好”信号;接口把数据接收到输入缓冲寄存器,然后使“输入回答”信号线成为高电平,作为对外设的响应,以阻止外设输入新的数据;外设接收到此信号,便撤除数据和“输入准备好”信号;同时接口在状态寄存器中将“输入缓冲器满”状态位置“1”,并向CPU发出中断请求信号;CPU查询到接口的“输入缓冲器满”状态或响应接口的中断后,用IN指令读取接口中的数据;CPU取走数据后,接口自动将“输入缓冲器满”状态位清“0”,同时将“输入回答”信号线成为低电平,通知外设可输入下一个数据,开始下一输入过程。输出过程当外设从接口取走一个数据后,便向接口发一个“输出回答”信号;“输出回答”信号将接口的状态寄存器中“输出缓冲器空”位置“1”,以供CPU查询,或接口向CPU发中断请求信号;CPU查询到“输出缓冲器空”有效或接收到中断请求后,便用OUT指令向接口输出一个数据;数据进入接口的输出缓冲器中后,接口自动将“输出缓冲器空”位清“0”,同时向外设发“输出准备好”信号,通知外设取数据;开始下一个数据输出过程。42.8255A的组成与接口信号数据总线缓冲器读/写控制逻辑A组控制B组控制D7~D0RDWRA1A0RESETCS与CPU接口8位内部数据总线A组端口A(8)I/OPA7~PA0A组端口C上半部(4)I/OPC7~PC4B组端口C下半部(4)I/OPC3~PC0B组端口B(8)I/OPB7~PB0内部逻辑外设接口结构主要分四大部分52.8255A的组成与接口信号数据总线缓冲器读/写控制逻辑A组控制B组控制D7~D0RDWRA1A0RESETCS与CPU接口8位内部数据总线A组端口A(8)I/OPA7~PA0A组端口C上半部(4)I/OPC7~PC4B组端口C下半部(4)I/OPC3~PC0B组端口B(8)I/OPB7~PB0内部逻辑外设接口结构主要分四大部分数据总线缓冲器:双向三态8位缓冲器,可直接与系统数据总线相连读/写控制逻辑:完成内部端口选择和读写控制62.8255A的组成与接口信号数据总线缓冲器读/写控制逻辑A组控制B组控制D7~D0RDWRA1A0RESETCS与CPU接口8位内部数据总线A组端口A(8)I/OPA7~PA0A组端口C上半部(4)I/OPC7~PC4B组端口C下半部(4)I/OPC3~PC0B组端口B(8)I/OPB7~PB0内部逻辑外设接口结构主要分四大部分I/O端口:A口、B口、C口。它们都可编程设定为输入/输出,具有锁存功能。通常A、B口作为I/O数据端口;C口分成两个四位端口,分别与A、B配合,用作控制或状态信号A组和B组控制模块:8255A有三个8位I/O端口,即A口,B口,C口,他们分成A、B两组进行控制。A组控制模块:管理A口和C口的高4位(PC7~PC4)B组控制模块:管理B口和C口的低4位(PC3~PC0)78255A的外部引脚PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB28255A4039383736353433323130292827262524232221PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB31234567891011121314151617181920面向I/O设备的信号线PA7~PA0
:A口输入/输出数据线;PB7~PB0:B口输入/输出数据线;PC7~PC0:C口输入/输出数据线。88255A的外部引脚PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB28255A4039383736353433323130292827262524232221PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB31234567891011121314151617181920面向I/O设备的信号线PA7~PA0
:A口输入/输出数据线;PB7~PB0:B口输入/输出数据线;PC7~PC0:C口输入/输出数据线。面向系统的信号线D7~D0
:双向数据线,与CPU交换信息(数据、命令)CS:
片选信号,当CS=0,选中该8255AA1、A0
:端口选择信号RD:读信号,低电平有效WR:写信号,低电平有效RESET:复位信号,高电平有效输入有效时,使内部寄存器清0,3个数据端口自动设为输入98255A端口编址与读写操作A1A0RDWRCS操作00010从A口读取数据01010从B口读取数据10010从C口读取数据00100向A口写入数据01100向B口写入数据10100向C口写入数据11100向控制口写入命令字11010非法条件××110总线悬浮××××1总线悬浮8255A共有四个端口地址:A、B、C和控制口103.8255A的控制字方式选择控制字C口I/O(下半部)1-输入0-输出00-方式001-方式11×-方式21-有效B口I/OB组工作方式C口I/O(上半部)A口I/OA组工作方式特征D0D1D2D3D4D5D6D70-方式01-方式11-输入0-输出有三种工作方式:方式0-基本输入输出方式1-选通输入输出方式2-双向传送端口A有方式0、1、2三种端口B有方式0和1端口C只能工作于方式011C口按位置0/置1控制字写入内容写入位编码×××0D0D1D2D3D4D5D6D7D3D2D1C口000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC71-置10-置0特征位0有效12C口按位置0/置1控制字写入内容写入位编码×××0D0D1D2D3D4D5D6D7D3D2D1C口000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC71-置10-置0特征位0有效端口C8位中的任一位,可用一条输出指令来置位或复位(其它位不变)。C端口的按位置位/复位控制字须跟在方式选择控制字之后,即使仅使用该功能,也应先选送一方式控制字。13例:要求设定8255A的A口为方式1,输入,C口高4位为输出;B口指定为0方式,输出,
C口低4位为输入,写出初始化程序段。
(8255A的端口地址300H,301H,302H,303H)
程序段:MOVDX,303H;8255A的控制口地址MOVAL,0B1H;工作方式控制字OUTDX,AL;送到控制口14例:要求把C口的PC2引脚置‘1’(高电平)。
程序段为:MOVDX,303H;8255A控制口地址MOVAL,05H;使PC2=1控制字OUTDX,AL;送控制口C口的按位置位/复位控制字虽然是对C口进行操作,但控制字必须写入控制口。154.8255A的工作方式方式0工作特点:无条件输入/输出,端口与外设之间不需要联络信号,A口、B口和C口的高4位与低4位可分别设置成输入或输出;不能提供中断信号;方式0也可作为查询式输入或输出的接口电路,此时端口A和B可分别作为一个数据端口,而取C端口的某些位作为这两个数据端口的控制和状态信息。16例:为某系统配置一并行打印机接口,通过接口,CPU用查询方式,把存放在200H单元开始的256个字符(ASCII码)送去打印。CPUPA0~7PC7PC2GNDDATA1~8STBBUSYGND8255A打印机PA口输出,用作8位打印数据,工作于0方式;PC7输出,它产生一个负脉冲,作为数据选通信号STB,将数据打入打印机缓冲器;PC2输入,接收打印机的忙信号(BUSY)。工作过程:CPU查询BUSY,若BUSY=1,表示打印机忙,则等待,当BUSY=0(空闲),CPU输出数据到接口;CPU发出数据选通信号STB,将数据送入打印机缓冲器;打印机接收到数据后,发出忙信号(BUSY=1),并处理数据,处理完毕后,撤销忙信号(BUSY=0)。17驱动程序:MOVDX,303H;8255A命令口地址MOVAL,10000001B;工作方式字,0方式,;A口输出,C口高4位输出,C口低4位输入OUTDX,AL;
送入控制口MOVAL,00001111B;PC7位为高,STB=1OUTDX,AL;送入控制口MOVSI,200H;打印字符的内存首地址MOVCX,0FFH;打印字符个数,FFH=25518L:MOVDX,302H;C口地址INAL,DX;查BUSY=0?(PC2=0)ANDAL,04HJNZL;忙(PC2=1),等待MOVDX,300H;A口地址MOVAL,[SI];从内存取数OUTDX,AL;从A口输出一个数据MOVDX,303H;8255命令口MOVAL,00001110B;置STB为低(PC7=0)19OUTDX,ALNOP;负脉冲宽度(延时)NOPMOVAL,00001111B;置STB为高(PC7=1)OUTDX,ALINCSI;修改指针DECCX;修改计数JNZL;未传完,继续HLT;已完,暂停20方式1工作特点:选通型输入/输出,设置了联络信号线和中断请求信号;A口、B口为数据口,由程序设定为输入或输出;C口作为联络口,PC3~PC5或PC3、PC6、PC7与A为一组,PC0~PC2与B为一组,其余两位由程序设定为输入或输出;各联络信号之间有固定时序关系;可用查询方式或中断方式传送数据。21方式1输入引脚功能定义端口A方式1端口A输入PC7,6I/O控制0输出1输入A组方式1的控制字×××1/01101D0D1D2D3D4D5D6D7INTRASTBA方式1输入(A口)PC4PC5PC3(PC4)PA7~0PC7,6IBFAI/ORDINTEA222方式1输入引脚功能定义端口A方式1端口A输入PC7,6I/O控制0输出1输入A组方式1的控制字×××1/01101D0D1D2D3D4D5D6D7INTRASTBA方式1输入(A口)PC4PC5PC3(PC4)PA7~0PC7,6IBFAI/ORDINTEA2A组工作在方式1的输入:PA7~PA0:输入数据线;PC4:输入,作选通信号线STBA;PC5:输出,作输入缓冲器满信号IBFA;PC3:输出,作中断请求信号线INTRA;PC7,PC6:空闲,可定义为输入或输出。23INTRBSTBB方式1输入(B口)PC2PC1PC0(PC2)PB7~0IBFBRDINTEB端口B方式1端口B输入B组方式1的控制字×11××××1D0D1D2D3D4D5D6D7B组工作在方式1的输入:PB7~PB0:输入数据线;PC2:输入,作选通信号线STBB;PC1:输出,作输入缓冲器满信号IBFB;PC0:输出,作中断请求信号线INTRB;24INTRBSTBB方式1输入(B口)PC2PC1PC0(PC2)PB7~0IBFBRDINTEB端口B方式1端口B输入B组方式1的控制字×11××××1D0D1D2D3D4D5D6D7B组工作在方式1的输入:PB7~PB0:输入数据线;PC2:输入,作选通信号线STBB;PC1:输出,作输入缓冲器满信号IBFB;PC0:输出,作中断请求信号线INTRB;STB(Strobe):选通信号,低电平有效,输入。STB有效时将外设数据输入8255A的相应的输入缓冲器中锁存;IBF(InputBufferFull):输入缓冲器满信号,高电平有效,输出。IBF=1,通知外设暂缓输入下一数据。当CPU查询IBF=1时,才能从A口或B口读取输入的数据;INTR(InterruptRequest):中断请求信号,高电平有效,输出,在中断允许(INTE=1)条件下,当8255A接收到一个端口数据(IBF=1)后,发出中断请求;INTE(InterruptEnable):中断允许。INTE=1,允许中断;INTE=0,禁止中断。INTE受C口复位/置位字控制:当PC4=1时,INTEA=1,A口允许中断;当PC2=1时,INTEB=1,B口允许中断。25方式1输入的工作时序tSTIBFRDINTR来自外设的输入数据tSIBtSITtRIBtPHtRITSTBtPS26方式1输入的工作时序tSTIBFRDINTR来自外设的输入数据tSIBtSITtRIBtPHtRITSTBtPS外设输入数据,并发出选通信号STB(低电平),将数据送入输入缓冲器中锁存;8255A接收数据,IBF变成高电平,表示输入缓冲器满,禁止输入新的数据;在STB的上升沿之后,若中断允许(INTE=1),INTR信号有效,向CPU发出中断请求;CPU响应中断请求,用IN指令读入数据;若CPU采用查询方式,则查询INTR位或IBF位来控制读数据;CPU执行读操作,RD的下降沿使INTR复位,RD的上升沿使IBF变低,为输入下一个数据作准备。27端口A方式1端口A输出PC5,4I/O控制0输出1输入A组方式1的控制字×××1/00101D0D1D2D3D4D5D6D7INTRAOBFA方式1输出(A口)PC7PC6PC3(PC6)PA7~0PC5,4ACKAI/OWRINTEA2方式1的输出引脚的定义A组工作在方式1的输出:PA7~PA0:输出数据线;PC7:输出,输出缓冲器满信号OBFA;PC6:输入,外设应答信号ACKA;PC3:输出,作中断请求信号线INTRA;PC5,PC4:空闲,可定义为输入或输出。28INTRBOBFB方式1输出(B口)PC1PC2PC0(PC2)PB7~0ACKBWRINTEB端口B方式1端口B输出B组方式1的控制字×01××××1D0D1D2D3D4D5D6D7B组工作在方式1的输出:PB7~PB0:输出数据线;PC1:输出,输出缓冲器满信号OBFB;PC2:输入,外设应答信号ACKB;PC0:输出,作中断请求信号线INTRB。29INTRBOBFB方式1输出(B口)PC1PC2PC0(PC2)PB7~0ACKBWRINTEB端口B方式1端口B输出B组方式1的控制字×01××××1D0D1D2D3D4D5D6D7B组工作在方式1的输出:PB7~PB0:输出数据线;PC1:输出,输出缓冲器满信号OBFB;PC2:输入,外设应答信号ACKB;PC0:输出,作中断请求信号线INTRB。OBF(OutputBufferFull)输出缓冲器满信号。输出,低电平有效,它有效表示输出缓冲内有数据,通知外设取走数据ACK(Acknowledge)外设应答信号。输入,低电平有效。当ACK有效时,表示数据已被外设取走,并清OBF,使之为高;INTR中断请求信号,当满足INTE=1,且OBF=1条件时,发中断请求;INTE中断允许位,受C口的置0/置1命令字控制;PC6=1时,INTEA=1,A口允许中断PC2=1时,INTEB=1,B口允许中断30方式1的输出时序tAOBtWOBtWITtAITtAKtWB输出ACKINTROBFWRCPU向8255A写一个数据时,WR的上升沿使OBF有效,表示输出缓冲器满,告之外设可取数据。WR还使INTR变低,封锁中断请求;外设取走数据后,用ACK回答8255A,表示数据已收到;ACK的下降沿使OBF成为高电平。在中断允许(INTE=1)条件下,ACK的上升沿使INTR成为高电平,产生中断请求;CPU响应中断,执行OUT指令,向8255A输出下一个数据。CPU也可查询INTR或OBF位来控制输出数据。31方式1的状态字状态字的意义8255A状态字为查询方式提供了状态标志位:IBF、OBF、INTR的状况。8255A不能直接提供中断矢量,在采用中断方式时,CPU可通过读状态字来确定中断源。32方式1状态字的格式B组状态A组状态INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD0D1D2D3D4D5D6D7方式1输入状态字方式1输出状态字B组状态A组状态INTRBOBFBINTEBINTRAI/OI/OINTEAOBFAD0D1D2D3D4D5D6D733方式1状态字的格式B组状态A组状态INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD0D1D2D3D4D5D6D7方式1输入状态字方式1输出状态字B组状态A组状态INTRBOBFBINTEBINTRAI/OI/OINTEAOBFAD0D1D2D3D4D5D6D7注意:状态字通过读C口获得;状态字的各位与其C口引脚定义不完全一样;查询状态字时,一般查询INTR是否置位,也可查询IBF和OBF位。34例:双机并行接口设计要求:甲、乙两机之间传送1K字节数据,甲发,乙收,甲机的8255A采用方式1工作,乙机一侧的8255A采用0方式工作,两机的CPU与接口之间都采用查询方式交换数据。8255APA7~0PC7PC6PC3PC5~0PB7~08255APA7~0PC4PC0PC7~5PC3~1PB7~0未用CPUCPU乙机(接收)0方式甲机(发送)1方式OBFACK甲机8255A是方式1,A口输出,作发送数据用;PC7和PC6固定作联络线OBF和ACK;乙机的8255A为方式0接收,定义A口输入,接收数据;选PC4输入,接收OBF信号;PC0输出,用作发送ACK信号。35编程甲机发送程序: MOVDX,303H;8255A命令口 MOVAL,10100000B;A口方式1,输出 OUTDX,ALMOVAL,00001101B;置中断允许INTEA=1OUTDX,AL;PC6=1MOVAX,030H;发送数据内存首址MOVES,AXMOVBX,00HMOVCX,3FFH;发送字节数1KMOVAL,ES:[BX]
;取第一个数
MOVDX,300H
;A口地址OUTDX,AL
;向A口写一个数36INCBX;修改指针,指向下一单元DECCX;字节数减1L:MOVDX,302H;8255A的C口(状态口)INAL,DX;查发送请求INTRA=1?ANDAL,08H
;PC3=1?JZL;若无中断请求,则等待MOVDX,300H;A口地址MOVAL,ES:[BX];从内存取数OUTDX,AL;从A口输出数据37INCBX;修改指针DECCX;计数器减1JNZL;未传送完,继续MOVAX,4C00H;传送完,退出INT21H;返回DOS程序中,也可查询OBFA(PC7)的状态INAL,DX
;查OBFA=1?ANDAL,80H
;PC7=1?JZL
;若OBFA=0,则等待38乙机接收程序:MOVDX,303H;命令口MOVAL,10011000B;方式0,C口高4位输入OUTDX,AL;C口低4位输出MOVAL,00000001B;置ACK=1(PC0=1)OUTDX,ALMOVAX,040H;接收数据内存区首址MOVES,AXMOVBX,00H39MOVCX,3FFH;接收字节数L1:MOVDX,302H;C口地址INAL,DX;查甲机的OBF=0?(PC4=0)ANDAL,10H;取PC4位值JNZL1;无数据来,等待MOVDX,300H;A口地址INAL,DX;从A口读入一个数MOVES:[BX],AL;存入内存40MOVDX,303H;命令口MOVAL,0;产生ACK信号,OUTDX,AL;发给甲机NOP;延时,NOP;形成一定宽度负脉冲MOVAL,01H;使PC0置1,OUTDX,AL;形成ACK的上升沿INCBXDECCXJNZL1;未接收完,继续MOVAX,4C00H;完毕,返回DOSINT21H41方式2特点:方式2为双向选通输入/输出方式;只有A口可工作在方式2;一次初始化可指定PA口既作输出口又作输入口;在方式2下可采用中断方式和查询方式与CPU交换数据;A口在方式2时,B组(PB7~PB0,PC2~PC0)可选择为方式0和方式1工作。该工作方式,使外设可在单一的8位数据总线上既能发送,又能接收数据(双向总线I/O)。42引脚定义B组方式0-方式01-方式1A口双向方式B口I/O0-输出1-输入PC2~0I/O0-输出1-输入1/01/01/0×××11D0D1D2D3D4D5D6D7PC3PC7PC5PC4PC6INTE1(PC6)INTE2(PC4)PA7~0STBIBFINTROBFACKWRRD8PC2~PC03I/O各引脚的意义与方式1相同,A口方式2的I/O共用一个INTR信号,它由PC3提供,既为可作为输入中断请求,也可作输出中断请求;INTE1:输出中断允许,由PC6设定,INTE2:输入中断允许,由PC4设定。43方式2的工作时序数据从CPU到8255AtOBtWOBtSTtSIBtKDtADtPStPHtRIB数据从8255A到CPU数据从8255A到外设数据从外设到8255A外设数据线WROBFINTRACKSTBIBFRD输出过程:由CPU执行对A口的输出指令而引发。WR信号使INTR信号无效,WR的上升沿使OBF有效,通知外设取数据,外设取走数据后向8255A发应答信号ACK,ACK有效使OBF复位,可开始下一个数据的输出。由外设发选通信号STB引发,它将输入数据锁存到A口的输入锁存器中,IBF变为高电平。STB信号结束时,中断请求信号INTR变为高电平。CPU响应中断进行读操作,RD有效,将数据从A口读到CPU中,IBF和INTR变为低电平,结束一次数据输入过程。44方式2的状态字方式2的状态字通过读C口得到,格式为:D7~D3属于A组,反映A口的工作状态;D2~D0属于B组,反映B口的工作状态。INTRAINTE2IBFAINTE1OBFAD0D1D2D3D4D5D6D745应用举例-中断方式的双机并行接口设计要求:主从两个微机进行并行传送,共传送256个字节。主机的8255A采用方式2,并且用中断方式传送数据。从机的8255A工作在0方式,采用查询方式传送数据。PA7~0PC3
PC7PC4PC6PC5PB7~0PC2~0PA7~0
PB7~0PC1PC7PC6PC5PC2~0IR0INTAIR2INTIR7OBFSTBACKIBF未用到从机系统总线到主机8259A
主机8255A
从机8255A方式2的接口框图INTR主机的8255A,PA口作双向传送,它的INTR接到8259A的IR2上。从机的8255A,PA口输出,PB口输入46软件设计:;8255A的初始化movdx,303h;8255A的控制口moval,c0h;方式字,A口为方式2outdx,almoval,09h;置位PC4,设置INTE2=1outdx,al;输入中断允许moval,0dh;置位PC0,设置INTE1=1outdx,al;输出中断允许movsi,300h;发送数据区首地址movdi,410h;接收数据区首地址47movcx,0ffh;发送与接收的字节数Again:sti;开中断Hlt;等待中断cli;关中断deccx;字节数-1jnzagain;未完,继续;中断服务程序t-rprocfarmovdx,303h;8255A的口地址moval,08h;复位PC4,使INTE2=0,outdx,al;禁止输入中断48moval,0ch;复位PC6,使INTE1=0,
outdx,al;禁止输出中断cli;关中断movdx,302h;8255A的状态口inal,dx;查中断源,读状态字movah,al;保存状态字andal,20h;检查状态位IBF=1,是输入?jzoutp;不是,则跳到程序段outpinp:movdx,300h;是,则从A口读数据mov[di],al;存入内存区49incdi;内存地址+1jmpreturn;跳至returnoutp:movdx,300h;A口地址,向A口写数moval,[si];从内存取数outdx,al;输出incsi;内存地址+1return:movdx,303h;8255A的控制口地址moval,0dh;允许输出中断outdx,al50moval,09h;允许输入中断outdx,almoval,62h;向8259A发中断结束字OCW3out20h,aliret;中断返回t-pendp519.7可编程定时器/计数器8253/8254实现定时或延时的三种主要方法:软件定时、不可编程的硬件定时、可编程的硬件定时器 软件定时是让机器执行一个程序段,这个程序段本身没有具体的目的,通过挑选指令和安排循环次数可准确实现。该方法占用CPU的时间。 不可编程的硬件定时可采用小规模集成电路器件(如:555),外接定时部件(电阻和电容)构成。定时值及定时范围不能由软件控制。 可编程的硬件定时的定时值及定时范围不能由软件控制,能够满足不同的定时和计数要求。521.8254的内部结构与工作原理图8254的内部结构计数器0计数器1读/写逻辑控制字寄存器数据总线缓冲器计数器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线531.8254的内部结构与工作原理图8254的内部结构计数器0计数器1读/写逻辑控制字寄存器数据总线缓冲器计数器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线读/写逻辑接受系统总线的输入信号,转换成8253内部操作的多种控制信号;选择读/写操作的计数器或控制寄存器;决定内部总线上数据传送方向;541.8254的内部结构与工作原理图8254的内部结构计数器0计数器1读/写逻辑控制字寄存器数据总线缓冲器计数器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线数据总线缓冲器三态,双向8位寄存器,它有三个基本功能:CPU通过它向8253/8254写入工作命令字;向某一计数器写入初值;从某一计数器读取当前计数值;控制字寄存器 由CPU写入控制字,决定计数器的工作方式,规定读/写方法。控制寄存器只能写入,不能读出。计数器8253/4有三个独立且结构一样的计数器,每个计数器对外有三个引脚:GATE:门控信号输入端CLK:计数脉冲输入端OUT:信号输出端55GATEiCLKi内部总线计数初值寄存器16位减1计数器输出锁存器OUTi计数器结构示意图56GATEiCLKi内部总线计数初值寄存器16位减1计数器输出锁存器OUTi计数器结构示意图计数器的工作原理程序员向初值寄存器写入计数值初值寄存器中的初值送入减1计数器减1计数器被启动开始减1计数,每一个CLKi脉冲使计数器减1当计数值减到零时,OUTi端产生输出信号(脉冲或电平)GATEi信号可控制允许或禁止减1计数当前计数值被锁存至输出锁存器中,可被读出CLKi信号可以是周期性信号,也可以是随机脉冲信号计数初值N的计算公式:N=fCLKi/fOUTi57D1D2D3D4D5D6D7数据线A0A1VccGNDCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT20号计数器1号计数器2号计数器控制线82538254的外部引脚图28253/4的引脚功能D0D7~D0:8位双向数据线,接CPU数据总线;CS为片选信号输入端;A1,A0内部寄存器选择信号线,接CPU地址总线;RD读命令输入端;WR写命令输入端,接CPU的控制总线;GATE0~GATE2,CLK0~CLK2,OUT0~OUT2是三个计数器的外部引脚。588253端口选择和读/写操作CSRDWRA1A0端口选择和操作01000写入计数器001001写入计数器101010写入计数器201011写方式控制字到控制字寄存器00100读计数器000101读计数器100110读计数器200111无操作,数据总线缓冲器三态011××无操作,数据总线缓冲器三态1××××禁止,数据总线缓冲器三态5938253的工作方式8253有6种工作方式,区别在于:输出波形不同;启动计数器的触发方式不同;GATE信号对计数过程的影响不同60方式0——计数结束输出正跃变信号(产生中断)工作特点:写入控制字后,OUT端输出低电平;写入初值后,OUT端保持低电平,计数器开始对CLK脉冲进行减1计数;当计数值减至0时,OUT端输出变为高电平,它可用作中断请求信号;方式0不具备“初值自动重装功能”;仅当写入新的初值才能触发计数;在计数过程中,若写入新的计数初值,则初值写入后将按新的初值重新开始减1计数;GATE=1时,允许计数;GATE=0时,停止计数。61CH=10HN=4CH=10HN=4N=5CLKGATEGATEGATEOUTOUTOUT方式0波形图4321-1-204322210-142354321-2062方式1——外触发的单稳脉冲发生器工作特点:写入控制字后,OUT输出高电平;写入初值后,OUT保持高电平;计数器由GATE的上升沿启动,开始对CLK脉冲进行减1计数,启动后,OUT变为低电平;当计数值减到0时,OUT输出高电平,从而在OUT端输出一个负脉冲,脉冲宽度=计数初值×CLK的脉冲周期;方式1无“初值自动重装”功能,仅GATE的上升沿能启动计数器计数。63只要GATE信号出现了正脉冲,计数初值将重新装入计数器,并启动计数器按新的初值重新减1计数。在计数过程中装入了新的计数初值,计数过程不受影响,仅当GATE再次出现0—1的正跃变,该计数器才按新的计数初值做减1计数。64CH=12HN=3CH=12HN=2N=4CLKGATEGATEGATEOUTOUTOUT方式1波形图3210-1323213120201-1-24365方式2——分频器(计数分频工作方式)工作特点:写入控制字后,OUT输出高电平;写入初值后,计数器启动减1计数,当计数器减到1时,OUT输出低电平,维持一个CLK周期,OUT又变为高;计数初值自动重新装入,计数器开始重新计数,OUT输出周期负脉冲信号。脉冲周期TOUt=初值×TCLK脉冲宽度=1×TCLK66在计数过程中,GATE变低,暂停计数,GATE的上升沿使计数器恢复初值,并从初值开始计数;在计数过程中,当GATE为高电平,若写入初值,不影响计数;仅当计数器减到1后,计数器才装入新的初值,按新初值减1计数。7/20/202367CH=14HN=3CH=14HN=4N=5CLKGATEGATEGATEOUTOUTOUT方式2波形图32132132132232132142315432168方式3——方波发生器方式3具有自动重新装入初值的功能。当初值为偶数时,从OUT输出1:1的方波,TOUT=N×TCLK
脉冲宽度=N/2×TCLK当初值为奇数时,OUT输出周期脉冲波形,TOUT=N×TCLK正脉冲宽度=TCLK×(N+1)/2负脉冲宽度=TCLK×(N-1)/269CH=16HN=4CH=16HN=5CLKGATEGATEOUTOUT方式3波形图4242424242042424070方式4——软件触发的单脉冲发生器工作特点:写入控制字后,OUT输出高电平;写入初值后,开始减1计数,减到0时,OUT变低;方式4无初值自动重装功能,OUT输出一负脉冲,脉冲宽度=1×TCLKGATE=1,允许计数;GATE=0,停止计数;计数过程钟,若改变初值,则按新的初值重新开始计数71CH=18HN=3CH=18HN=3N=2CLKGATEGATEGATEOUTOUTOUT方式4波形图3210-1-2321-13122100-1-272方式5——硬件触发的单脉冲发生器工作特点:写入控制字后,OUT输出高电平;写入初值后,仅当GATE端出现0到1的跃变时,启动计数减1计数;当计数值减到0时,OUT输出一个CLK周期的负脉冲;在计数过程中,若GATE端出现0—1的跃变,初值重新装入计数器,并重新减1计数;在计数过程中,若改变计数初值,仅当GATE的上升沿触发,则立即按新的初值重新开始计数。73CH=1AHN=3CH=1AHN=3N=5CLKGATEGATEGATEOUTOUTOUT方式5波形图321032312310254-1-20-1-174
D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCD计数器选择操作选择工作方式选择码制00=计数器000=锁存操作000=方式0,001=方式10=二进制01=计数器101=读写低字节010=方式2,011=方式31=BCD码10=计数器210=读写高字节100=方式4,101=方式511=16位读/写48254的控制字与编程方式控制字8254的控制字75
D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCD计数器选择操作选择工作方式选择码制00=计数器000=锁存操作000=方式0,001=方式10=二进制01=计数器101=读写低字节010=方式2,011=方式31=BCD码10=计数器210=读写高字节100=方式4,101=方式511=16位读/写48254的控制字与编程方式控制字8254的控制字D7D6(SC1SC0):计数器选择D7D6=00选择0号计数器;D7D6=01选择1号计数器;D7D6=10选择2号计数器;D7D6=11读出控制字标志之一D5D4(RL1RL0)读出方式选择D5D4=00锁存计数器当前计数值,以便读出检查D5D4=01只读/写低8位计数初值,高8位置0D5D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《技术的含义及作用》课件
- 康复评定期末考试练习测试卷
- 车身选择上复习测试有答案
- 《拉深件各个计算》课件
- 《音乐教师心理整容》课件
- 《积极的工作心态》课件
- 《金融机构极其体系》课件
- 小学语文群文阅读教学实践研究
- 《静脉输液并发症》课件
- 《新兴工业区》课件
- 萧条中的生存智慧:越是不景气越要成为引擎般的存在
- 海南矿业股份有限公司选矿实验中心建设项目 环评报告
- htcc制备工艺书籍
- 建立高效的员工沟通与反馈机制
- 促进学习的课堂评价:做得对
- 中国电信互联网+酒店解决方案
- 《信息科技》学科新课标《义务教育信息科技课程标准(2022年版)》
- 《语用学之指示语》课件
- 《对折剪纸》课件
- 小学数学人教版六年级上册分数混合运算练习题
- 培训学校 组织架构及部门岗位职责
评论
0/150
提交评论