微机原理---第九章-可编程接口芯片综述课件

上传人:沈*** 文档编号:241326503 上传时间:2024-06-18 格式:PPT 页数:85 大小:977KB
返回 下载 相关 举报
微机原理---第九章-可编程接口芯片综述课件_第1页
第1页 / 共85页
微机原理---第九章-可编程接口芯片综述课件_第2页
第2页 / 共85页
微机原理---第九章-可编程接口芯片综述课件_第3页
第3页 / 共85页
点击查看更多>>
资源描述
第九章第九章 常用可编程接口芯片常用可编程接口芯片可编程并行接口可编程并行接口82558255可编程计数器可编程计数器/定时器定时器82538253串行通讯接口串行通讯接口6/18/202419.6 可编程并行接口可编程并行接口825582551.并行接口的组成并行接口的组成输出缓冲寄存器输出缓冲寄存器输入缓冲寄存器输入缓冲寄存器控制寄存器控制寄存器状态寄存器状态寄存器CPU输输入入设设备备输输出出设设备备译译码码器器片选片选数据总线数据总线读信号读信号写信号写信号复位信号复位信号准备好准备好中断请求中断请求并行输出数据并行输出数据输出准备好输出准备好输出回答输出回答并行输入数据并行输入数据输入准备好输入准备好输入回答输入回答6/18/202429.6 可编程并行接口可编程并行接口825582551.并行接口的组成并行接口的组成输出缓冲寄存器输出缓冲寄存器输入缓冲寄存器输入缓冲寄存器控制寄存器控制寄存器状态寄存器状态寄存器CPU输输入入设设备备输输出出设设备备译译码码器器片选片选数据总线数据总线读信号读信号写信号写信号复位信号复位信号准备好准备好中断请求中断请求并行输出数据并行输出数据输出准备好输出准备好输出回答输出回答并行输入数据并行输入数据输入准备好输入准备好输入回答输入回答并行接口电路通常包括以下几部分并行接口电路通常包括以下几部分:l 具有缓冲能力的输入和输出数据寄存器l 可供CPU访问的控制及状态寄存器l 片选和内部控制逻辑电路l 与外设进行数据交换的控制与联络信号线l 用中断方式传送数据的相关中断控制电路6/18/202439.6 可编程并行接口可编程并行接口825582551.并行接口的组成并行接口的组成输出缓冲寄存器输出缓冲寄存器输入缓冲寄存器输入缓冲寄存器控制寄存器控制寄存器状态寄存器状态寄存器CPU输输入入设设备备输输出出设设备备译译码码器器片选片选数据总线数据总线读信号读信号写信号写信号复位信号复位信号准备好准备好中断请求中断请求并行输出数据并行输出数据输出准备好输出准备好输出回答输出回答并行输入数据并行输入数据输入准备好输入准备好输入回答输入回答并行接口电路通常包括以下几部分并行接口电路通常包括以下几部分:l 具有缓冲能力的输入和输出数据寄存器l 可供CPU访问的控制及状态寄存器l 片选和内部控制逻辑电路l 与外设进行数据交换的控制与联络信号线l 用中断方式传送数据的相关中断控制电路输入过程输入过程:l外设把数据传送给接口,并发出“输输入入准准备备好好”信号;l接口把数据接收到输入缓冲寄存器,然后使“输输入入回回答答”信号线成为高电平,作为对外设的响应,以阻止外设输入新的数据;l外设接收到此信号,便撤除数据和“输输入入准准备备好好”信号;l同时接口在状态寄存器中将“输输入入缓缓冲冲器器满满”状态位置“1”,并向 CPU发出中断请求信号;lCPU查询到接口的“输输入入缓缓冲冲器器满满”状态或响应接口的中断后,用IN指令读取接口中的数据;lCPU取走数据后,接口自动将“输入缓冲器满”状态位清“0”,同时将“输输入入回回答答”信号线成为低电平,通知外设可输入下一个数据,开始下一输入过程。输出过程输出过程l当外设从接口取走一个数据后,便向接口发一个“输出回答输出回答”信号;l“输输出出回回答答”信号将接口的状态寄存器中“输输出出缓缓冲冲器器空空”位置“1”,以供 CPU查询,或接口向CPU发中断请求信号;lCPU查询到“输输出出缓缓冲冲器器空空”有效或接收到中断请求后,便用OUT指令向接口输出一个数据;l数据进入接口的输出缓冲器中后,接口自动将“输输出出缓缓冲冲器器空空”位清“0”,同时向外设发“输输出出准准备备好好”信号,通知外设取数据;开始下一个数据输出过程。6/18/202442.8255A的组成与接口信号的组成与接口信号数据数据总线总线缓冲器缓冲器读读/写写控制控制逻辑逻辑A组组控制控制B组组控制控制D7 D0RDWRA1A0RESETCS与与CPU接口接口8位内部位内部数据总线数据总线A组组端口端口A(8)I/OPA7PA0A组组端口端口C上半部(上半部(4)I/OPC7PC4B组组端口端口C下半部(下半部(4)I/OPC3PC0B组组端口端口B(8)I/OPB7PB0内部逻辑内部逻辑外设接口外设接口结构主要分四大部分结构主要分四大部分6/18/202452.8255A的组成与接口信号的组成与接口信号数据数据总线总线缓冲器缓冲器读读/写写控制控制逻辑逻辑A组组控制控制B组组控制控制D7 D0RDWRA1A0RESETCS与与CPU接口接口8位内部位内部数据总线数据总线A组组端口端口A(8)I/OPA7PA0A组组端口端口C上半部(上半部(4)I/OPC7PC4B组组端口端口C下半部(下半部(4)I/OPC3PC0B组组端口端口B(8)I/OPB7PB0内部逻辑内部逻辑外设接口外设接口结构主要分四大部分结构主要分四大部分数据总线缓冲器数据总线缓冲器:双向三态8位缓冲器,可直接与系统数据总线相连读读/写控制逻辑写控制逻辑:完成内部端口选择和读写控制6/18/202462.8255A的组成与接口信号的组成与接口信号数据数据总线总线缓冲器缓冲器读读/写写控制控制逻辑逻辑A组组控制控制B组组控制控制D7 D0RDWRA1A0RESETCS与与CPU接口接口8位内部位内部数据总线数据总线A组组端口端口A(8)I/OPA7PA0A组组端口端口C上半部(上半部(4)I/OPC7PC4B组组端口端口C下半部(下半部(4)I/OPC3PC0B组组端口端口B(8)I/OPB7PB0内部逻辑内部逻辑外设接口外设接口结构主要分四大部分结构主要分四大部分I/OI/O端口端口:A口、B口、C口。它们都可编程设定为输入/输出,具有锁存功能。通常A、B口作为I/O数据端口;C口分成两个四位端口,分别与A、B配合,用作控制或状态信号A A组和组和B B组控制模块组控制模块:8255A有三个8位I/O端口,即A口,B口,C口,他们分成A、B两组进行控制。A A组控制模块组控制模块:管理A口和C口的高4位(PC7PC4)B B组控制模块组控制模块:管理B口和C口的低4位(PC3PC0)6/18/202478255A的外部引脚的外部引脚PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB28255A4039383736353433323130292827262524232221PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB312345678910111213141516171819201)1)面面向向I/OI/O设设备备的的信信号线号线PA7PA0:A口输入/输出数据线;PB7PB0:B口输入/输出数据线;PC7PC0:C口输入/输出数据线。6/18/202488255A的外部引脚的外部引脚PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB28255A4039383736353433323130292827262524232221PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB312345678910111213141516171819201)1)面面向向I/OI/O设设备备的的信信号线号线PA7PA0:A口输入/输出数据线;PB7PB0:B口输入/输出数据线;PC7PC0:C口输入/输出数据线。2)2)面向系统的信号线面向系统的信号线D7D0:双向数据线,与CPU交换信息(数据、命令)CS:片选信号,当CS=0,选中该8255AA1、A0 :端口选择信号RD :读信号,低电平有效WR :写信号,低电平有效RESET :复位信号,高电平有效 输入有效时,使内部寄存器清0,3个数据端口自动设为输入6/18/202498255A8255A端口编址与读写操作端口编址与读写操作端口编址与读写操作端口编址与读写操作A1A0RDWRCS操作操作00010从从A口读取数据口读取数据01010从从B口读取数据口读取数据10010从从C口读取数据口读取数据00100向向A口写入数据口写入数据01100向向B口写入数据口写入数据101 00向向C口写入数据口写入数据111 00向控制口写入命令字向控制口写入命令字11010非法条件非法条件110总线悬浮总线悬浮1总线悬浮总线悬浮8255A共有四个端口地址:A、B、C和控制口6/18/2024103.8255A的控制字的控制字1)方式选择控制字方式选择控制字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只能工作于方式06/18/2024112)2)C C口按位置口按位置0/0/置置1 1控制字控制字写入内容写入内容写入位编码写入位编码0D0D1D2D3D4D5D6D7D3D2D1C口口000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC71置置10置置0特征位特征位0有效有效6/18/2024122)2)C C口按位置口按位置0/0/置置1 1控制字控制字写入内容写入内容写入位编码写入位编码0D0D1D2D3D4D5D6D7D3D2D1C口口000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC71置置10置置0特征位特征位0有效有效端口C8位中的任一位,可用一条输出指令来置位或复位(其它位不变)。C端口的按位置位/复位控制字须跟在方式选择控制字之后,即使仅使用该功能,也应先选送一方式控制字。6/18/202413例例:要要求求设设定定8255A的的A口口为为方方式式1,输输入入,C口口高高 4位位 为为 输输 出出;B口口 指指 定定 为为 0方方 式式,输输 出出,C口口 低低 4位位 为为 输输 入入,写写 出出 初初 始始 化化 程程 序序 段段。(8255A的的 端端 口口 地地 址址 300H,301H,302H,303H)程序段:程序段:MOV DX,303H ;8255A的控制口地址MOV AL,0B1H ;工作方式控制字OUT DX,AL ;送到控制口6/18/202414例例:要求把要求把C口的口的PC2引脚置引脚置1(高电平高电平)。程序段为:程序段为:MOV DX,303H ;8255A控制口地址MOV AL ,05H ;使PC2=1控制字OUT DX,AL ;送控制口C口的按位置位按位置位/复位控制字复位控制字虽然是对C口进行操作,但控制字必须写入控制口。6/18/2024154.8255A的工作方式的工作方式1)方式方式0工作特点工作特点:l无条件输入/输出,端口与外设之间不需要联络信号,A口、B口和C口的高4位与低4位可分别设置成输入或输出;l不能提供中断信号;l方式0也可作为查询式输入或输出的接口电路,此时端口A和B可分别作为一个数据端口,而取C端口的某些位作为这两个数据端口的控制和状态信息。6/18/202416例例:为为某某系系统统配配置置一一并并行行打打印印机机接接口口,通通过过接接口口,CPU用用查查询询方方式式,把把存存放放在在200H单单元元开开始始的的256个个字字符(符(ASCII码)送去打印。码)送去打印。CPUPA07PC7PC2GNDDATA18STBBUSYGND8255A打印机打印机a.PA口输出,用作8位打印数据,工作于0方式;b.PC7输出,它产生一个负脉冲,作为数据选通信号STB,将数据打入打印机缓冲器;c.PC2输入,接收打印机的忙信号(BUSY)。工作过程:工作过程:a.CPU查询BUSY,若BUSY=1,表示打印机忙,则等待,当BUSY=0(空闲),CPU输出数据到接口;b.CPU发出数据选通信号STB,将数据送入打印机缓冲器;c.打印机接收到数据后,发出忙信号(BUSY=1),并处理数据,处理完毕后,撤销忙信号(BUSY=0)。6/18/202417驱动程序:驱动程序:MOV DX,303H ;8255A命令口地址MOV AL,10000001B ;工作方式字,0方式,;A口输出,C口高4位输出,C口低4位输入OUT DX,AL ;送入控制口MOV AL,00001111B ;PC7位为高,STB=1OUT DX,AL ;送入控制口MOV SI ,200H ;打印字符的内存首地址MOV CX,0FFH ;打印字符个数,FFH=2556/18/202418L:MOV DX,302H ;C口地址IN AL ,DX ;查BUSY=0?(PC2=0)AND AL ,04HJNZ L ;忙(PC2=1),等待MOV DX,300H ;A口地址MOV AL ,SI ;从内存取数OUT DX,AL ;从A口输出一个数据MOV DX,303H ;8255命令口MOV AL,00001110B ;置STB为低(PC7=0)6/18/202419OUT DX,ALNOP ;负脉冲宽度(延时)NOPMOV AL,00001111B ;置STB为高(PC7=1)OUT DX ,ALINC SI ;修改指针DEC CX ;修改计数JNZ L ;未传完,继续HLT ;已完,暂停6/18/2024202)方式方式方式方式1 1工作特点:工作特点:l选通型输入/输出,设置了联络信号线和中断请求信号;lA口、B口为数据口,由程序设定为输入或输出;C口作为联络口,PC3PC5或PC3、PC6、PC7与A为一组,PC0PC2与B为一组,其余两位由程序设定为输入或输出;l各联络信号之间有固定时序关系;l可用查询方式或中断方式传送数据。6/18/202421II.方式方式1输入输入引脚功能定义引脚功能定义端口端口A方式方式1端口端口A输入输入PC7,6I/O控制控制0 输出输出1 输入输入A组方式组方式1的控制字的控制字1/01101D0D1D2D3 D4D5D6D7INTRASTBA方式方式1输入输入(A口口)PC4PC5PC3(PC4)PA70PC7,6IBFAI/ORDINTEA26/18/202422II.方式方式1输入输入引脚功能定义引脚功能定义端口端口A方式方式1端口端口A输入输入PC7,6I/O控制控制0 输出输出1 输入输入A组方式组方式1的控制字的控制字1/01101D0D1D2D3 D4D5D6D7INTRASTBA方式方式1输入输入(A口口)PC4PC5PC3(PC4)PA70PC7,6IBFAI/ORDINTEA2A A组工作在方式组工作在方式1 1的输入:的输入:lPA7PA0:输入数据线;lPC4:输入,作选通信号线STBA;lPC5:输出,作输入缓冲器满信号IBFA;lPC3:输出,作中断请求信号线INTRA;lPC7,PC6:空闲,可定义为输入或输出。6/18/202423INTRBSTBB方式方式1输入输入(B口口)PC2PC1PC0(PC2)PB70IBFBRDINTEB端口端口B方式方式1端口端口B输入输入B组方式组方式1的控制字的控制字111D0D1D2D3 D4D5D6D7B B组工作在方式组工作在方式1 1的输入:的输入:lPB7PB0:输入数据线;lPC2:输入,作选通信号线STBB;lPC1:输出,作输入缓冲器满信号IBFB;lPC0:输出,作中断请求信号线INTRB;6/18/202424INTRBSTBB方式方式1输入输入(B口口)PC2PC1PC0(PC2)PB70IBFBRDINTEB端口端口B方式方式1端口端口B输入输入B组方式组方式1的控制字的控制字111D0D1D2D3 D4D5D6D7B B组工作在方式组工作在方式1 1的输入:的输入:lPB7PB0:输入数据线;lPC2:输入,作选通信号线STBB;lPC1:输出,作输入缓冲器满信号IBFB;lPC0:输出,作中断请求信号线INTRB;lSTB(Strobe):选通信号,低电平有效,输入。STB有效时将外设数据输入8255A的相应的输入缓冲器中锁存;lIBF(Input Buffer Full):输入缓冲器满信号,高电平有效,输出。IBF=1,通知外设暂缓输入下一数据。当CPU查询IBF=1时,才能从A口或B口读取输入的数据;lINTR(Interrupt Request):中断请求信号,高电平有效,输出,在中断允许(INTE=1)条件下,当8255A接收到一个端口数据(IBF=1)后,发出中断请求;lINTE(Interrupt Enable):中断允许。INTE=1,允许中断;INTE=0,禁止中断。INTE受C口复位/置位字控制:当PC4=1时,INTEA=1,A口允许中断;当PC2=1时,INTEB=1,B口允许中断。6/18/202425方式方式方式方式1 1输入的工作时序输入的工作时序输入的工作时序输入的工作时序tSTIBFRDINTR来自外设的来自外设的输入数据输入数据tSIBtSITtRIBtPHtRITSTBtPS6/18/202426方式方式方式方式1 1输入的工作时序输入的工作时序输入的工作时序输入的工作时序tSTIBFRDINTR来自外设的来自外设的输入数据输入数据tSIBtSITtRIBtPHtRITSTBtPSi.外设输入数据,并发出选通信号STB(低低电电平平),将数据送入输入缓冲器中锁存;ii.8255A接收数据,IBF变成高高电电平平,表示输入缓冲器满,禁止输入新的数据;iii.在STB的上上升升沿沿之后,若中断允许(INTE=1),INTR信号有效有效,向CPU发出中断请求;iv.CPU响应中断请求,用IN指令读入数据;若CPU采用查询方式,则查询INTR位或IBF位来控制读数据;v.CPU执行读操作,RD的下下降降沿沿使INTR复复位位,RD的上上升升沿沿使IBF变低变低,为输入下一个数据作准备。6/18/202427端口端口A方式方式1端口端口A输出输出PC5,4I/O控制控制0 输出输出1 输入输入A组方式组方式1的控制字的控制字1/00101D0D1D2D3 D4D5D6D7INTRAOBFA方式方式1输出输出(A口口)PC7PC6PC3(PC6)PA70PC5,4ACKAI/OWRINTEA2III.方式方式1的输出的输出引脚的定义引脚的定义A A组工作在方式组工作在方式1 1的输出:的输出:lPA7PA0:输出数据线;lPC7:输出,输出缓冲器满信号OBFA;lPC6:输入,外设应答信号ACKA;lPC3:输出,作中断请求信号线INTRA;lPC5,PC4:空闲,可定义为输入或输出。6/18/202428INTRBOBFB方式方式1输出输出(B口口)PC1PC2PC0(PC2)PB70ACKBWRINTEB端口端口B方式方式1端口端口B输出输出B组方式组方式1的控制字的控制字011D0D1D2D3 D4D5D6D7B B组工作在方式组工作在方式1 1的输出:的输出:lPB7PB0:输出数据线;lPC1:输出,输出缓冲器满信号OBFB;lPC2:输入,外设应答信号ACKB;lPC0:输出,作中断请求信号线INTRB。6/18/202429INTRBOBFB方式方式1输出输出(B口口)PC1PC2PC0(PC2)PB70ACKBWRINTEB端口端口B方式方式1端口端口B输出输出B组方式组方式1的控制字的控制字011D0D1D2D3 D4D5D6D7B B组工作在方式组工作在方式1 1的输出:的输出:lPB7PB0:输出数据线;lPC1:输出,输出缓冲器满信号OBFB;lPC2:输入,外设应答信号ACKB;lPC0:输出,作中断请求信号线INTRB。lOBF(Output Buffer Full)输出缓冲器满信号。输出,低电平有效,它有效表示输出缓冲内有数据,通知外设取走数据lACK(Acknowledge)外设应答信号。输入,低电平有效。当ACK有效时,表示数据已被外设取走,并清OBF,使之为高;lINTR 中断请求信号,当满足INTE=1,且OBF=1条件时,发中断请求;lINTE 中断允许位,受C口的置0/置1命令字控制;PC6=1时,INTEA=1,A口允许中断 PC2=1时,INTEB=1,B口允许中断6/18/202430方式方式1的输出时序的输出时序tAOBtWOBtWITtAITtAKtWB输出输出ACKINTROBFWRi.CPU向8255A写一个数据时,WR的上升沿上升沿使OBF有效,表示输出缓冲器满,告之外设可取数据。WR还使INTR变变低低,封锁中断请求;ii.外设取走数据后,用ACK回答8255A,表示数据已收到;iii.ACK的下下降降沿沿使OBF成为高高电电平平。在中断允许(INTE=1)条件下,ACK的上升沿上升沿使INTR成为高电平高电平,产生中断请求;iv.CPU响应中断,执行OUT指令,向8255A输出下一个数据。v.CPU也可查询INTR或OBF位来控制输出数据。6/18/202431IV.IV.方式方式1 1的状态字的状态字状态字的意义状态字的意义l8255A状态字为查询方式提供了状态标志位:IBF、OBF、INTR的状况。l8255A不能直接提供中断矢量,在采用中断方式时,CPU可通过读状态字来确定中断源。6/18/202432方式方式1状态字的格式状态字的格式B组状态组状态A组状态组状态INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD0D1D2D3D4D5D6D7a.方式方式1输入状态字输入状态字b.方式方式1输出状态字输出状态字B组状态组状态A组状态组状态INTRBOBFBINTEBINTRAI/OI/OINTEAOBFAD0D1D2D3D4D5D6D76/18/202433方式方式1状态字的格式状态字的格式B组状态组状态A组状态组状态INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD0D1D2D3D4D5D6D7a.方式方式1输入状态字输入状态字b.方式方式1输出状态字输出状态字B组状态组状态A组状态组状态INTRBOBFBINTEBINTRAI/OI/OINTEAOBFAD0D1D2D3D4D5D6D7 注意注意:l状态字通过读C口获得;l状态字的各位与其C口引脚定义不完全一样;l查询状态字时,一般查询 INTR是否置位,也可查询 IBF和OBF位。6/18/202434例例:双机并行接口设计双机并行接口设计要要求求:甲甲、乙乙两两机机之之间间传传送送1K1K字字节节数数据据,甲甲发发,乙乙收收,甲甲机机的的8255A8255A采采用用方方式式1 1工工作作,乙乙机机一一侧侧的的8255A8255A采采用用0 0方方式式工工作作,两机的两机的CPUCPU与接口之间都采用查询方式交换数据。与接口之间都采用查询方式交换数据。8255APA70PC7PC6PC3PC50PB708255A PA70PC4PC0PC75PC31PB70未未用用CPUCPU乙机乙机(接收接收)0方式方式甲机甲机(发送发送)1方式方式OBFACKl甲机8255A是方式1,A口口输输出出,作发送数据用;PC7和PC6固定作联络线OBF和ACK;l乙机的8255A为方式0接收,定义 A口口输输入入,接收数据;选PC4输输入入,接收OBF信号;PC0输输出出,用作发送ACK信号。6/18/202435编程编程 甲机发送程序甲机发送程序:MOV DX,303H ;8255A命令口命令口MOV AL,10100000B ;A口方式口方式1,输出,输出OUT DX,ALMOV AL,0000 1101B;置中断允许置中断允许 INTEA=1OUT DX,AL ;PC6=1MOV AX,030H ;发送数据内存首址;发送数据内存首址MOV ES,AXMOV BX,00HMOV CX,3FFH ;发送字节数;发送字节数1KMOV AL,ES:BX ;取第一个数;取第一个数 MOV DX,300H ;A口地址口地址OUT DX,AL ;向;向A口写一个数口写一个数6/18/202436INC BX ;修改指针,指向下一单元DEC CX ;字节数减1L:MOV DX,302H ;8255A的C口(状态口)IN AL,DX ;查发送请求INTRA=1?AND AL,08H ;PC3=1?JZ L ;若无中断请求,则等待MOV DX,300H ;A口地址MOV AL,ES:BX ;从内存取数OUT DX,AL ;从A口输出数据6/18/202437INC BX ;修改指针DEC CX ;计数器减1JNZ L ;未传送完,继续MOV AX,4C00H ;传送完,退出INT 21H ;返回DOS程序中,也可查询OBFA(PC7)的状态IN AL,DX ;查 OBFA=1?AND AL,80H ;PC7=1?JZ L ;若OBFA=0,则等待6/18/202438乙机接收程序乙机接收程序:MOV DX,303H ;命令口MOV AL,10011000B ;方式0,C口高4位输入OUT DX,AL ;C口低4位输出MOV AL,00000001B ;置ACK=1(PC0=1)OUT DX,ALMOV AX,040H ;接收数据内存区首址MOV ES,AXMOV BX,00H6/18/202439MOV CX,3FFH ;接收字节数L1:MOV DX,302H ;C口地址IN AL,DX ;查甲机的OBF=0?(PC4=0)AND AL,10H ;取PC4位值JNZ L1 ;无数据来,等待MOV DX,300H ;A口地址IN AL,DX ;从A口读入一个数MOV ES:BX,AL ;存入内存6/18/202440MOV DX,303H ;命令口;命令口MOV AL,0 ;产生;产生ACK信号,信号,OUT DX,AL ;发给甲机;发给甲机NOP ;延时,;延时,NOP ;形成一定宽度负脉冲;形成一定宽度负脉冲MOV AL,01H ;使;使PC0置置1,OUT DX,AL ;形成;形成ACK的上升沿的上升沿INC BXDEC CXJNZ L1 ;未接收完,继续;未接收完,继续MOV AX,4C00H ;完毕,返回;完毕,返回DOSINT 21H6/18/2024413)3)方式方式方式方式2 2 2 2特点:特点:方式2为双向选通输入/输出方式;只有A口可工作在方式2;一次初始化可指定PA口既作输出口又作输入口;在方式2下可采用中断方式和查询方式与CPU交换数据;A口在方式2时,B组(PB7PB0,PC2PC0)可选择为方式0和方式1工作。该工作方式,使外设可在单一的8位数据总线上 既能发送,又能接收数据(双向总线I/O)。6/18/202442II.引脚定义引脚定义B组方式组方式0 方式方式01 方式方式1A口双口双向方式向方式B口口I/O0输出输出1输入输入PC20 I/O0 输出输出1 输入输入1/01/01/011D0D1D2D3D4D5D6D7PC3PC7PC5PC4PC6INTE1(PC6)INTE2(PC4)PA70STBIBFINTROBFACKWRRD8PC2PC03I/Ol各引脚的意义与方式1相同,lA口方式2的I/O共用一个INTR信号,它由PC3提供,既为可作为输入中断请求,也可作输出中断请求;lINTE1:输出中断允许,由PC6设定,lINTE2:输入中断允许,由PC4设定。6/18/202443III.方式方式方式方式2 2的工作时序的工作时序的工作时序的工作时序数据从数据从CPU到到8255AtOBtWOBtSTtSIBtKDtADtPStPHtRIB数据从数据从8255A到到CPU数据从数据从8255A到外设到外设数据从外设到数据从外设到8255A外设数据线外设数据线WROBFINTRACKSTBIBFRDl输出过程输出过程:由CPU执行对A口的输出指令而引发。WR信号使INTR信号无效,WR的上升沿使OBF有效,通知外设取数据,外设取走数据后向8255A发应答信号ACK,ACK有效使OBF复位,可开始下一个数据的输出。由外设发选通信号STB引发,它将输入数据锁存到A口的输入锁存器中,IBF变为高电平。STB信号结束时,中断请求信号INTR变为高电平。CPU响应中断进行读操作,RD有效,将数据从A口读到CPU中,IBF和 INTR变为低电平,结束一次数据输入过程。6/18/202444IV.IV.方式方式方式方式2 2 2 2的状态字的状态字的状态字的状态字l方式2的状态字通过读C口得到,格式为:lD7D3属于A组,反映A口的工作状态;lD2D0属于B组,反映B口的工作状态。INTRAINTE2IBFAINTE1OBFAD0D1D2D3D4D5D6D76/18/202445V.应用举例应用举例应用举例应用举例中断方式的双机并行接口设计中断方式的双机并行接口设计中断方式的双机并行接口设计中断方式的双机并行接口设计要要求求:主主从从两两个个微微机机进进行行并并行行传传送送,共共传传送送256256个个字字节节。主主机机的的 8255A8255A采采用用方方式式2,2,并并且且用用中中断断方方式式传传送送数数据据。从从机机的的8255A8255A工工作作在在0 0方方式式,采用查询方式传送数据。采用查询方式传送数据。PA70PC3 PC7PC4PC6PC5PB70PC20PA70 PB70PC1PC7PC6PC5PC20IR0INTA IR2INT IR7OBFSTBACKIBF未未用用到从机到从机系统总线系统总线到到主主机机8259A 主机主机8255A 从机从机8255A8255A方式方式2的接口框图的接口框图INTR主机的主机的8255A,PA8255A,PA口作双向传送口作双向传送,它的它的INTRINTR接到接到8259A8259A的的IR2IR2上。上。从机的从机的8255A,PA8255A,PA口输出口输出,PB,PB口口输入输入6/18/202446软件设计软件设计:;8255A的初始化mov dx,303h ;8255A的控制口mov al ,c0h ;方式字,A口为方式2out dx,almov al ,09h ;置位PC4,设置INTE2=1out dx,al ;输入中断允许mov al ,0dh ;置位PC0,设置INTE1=1out dx,al ;输出中断允许mov si ,300h ;发送数据区首地址mov di ,410h ;接收数据区首地址6/18/202447mov cx,0ffh ;发送与接收的字节数 Again:sti ;开中断Hlt ;等待中断cli ;关中断dec cx ;字节数1jnz again ;未完,继续;中断服务程序中断服务程序t-r proc farmov dx,303h ;8255A的口地址mov al ,08h ;复位PC4,使INTE2=0,out dx,al ;禁止输入中断6/18/202448mov al ,0ch ;复位PC6,使INTE1=0,out dx,al ;禁止输出中断cli ;关中断mov dx,302h ;8255A的状态口in al ,dx ;查中断源,读状态字mov ah,al ;保存状态字and al ,20h ;检查状态位 IBF=1,是输入?jz outp ;不是,则跳到程序段outpinp:mov dx,300h ;是,则从A口读数据mov di,al ;存入内存区6/18/202449inc di ;内存地址1jmp return ;跳至returnoutp:mov dx,300h ;A口地址,向A口写数mov al ,si ;从内存取数out dx ,al ;输出inc si ;内存地址1return:mov dx,303h ;8255A的控制口地址mov al ,0dh ;允许输出中断out dx ,al6/18/202450mov al ,09h ;允许输入中断out dx ,almov al,62h ;向8259A发中断结束字OCW3out 20h,aliret ;中断返回t-p endp6/18/2024519.7 可编程定时器可编程定时器/计数器计数器 8253/8254实现定时或延时的三种主要方法:软件定时、不可编程的硬件定时、可编程的硬件定时器软件定时是让机器执行一个程序段,这个程序段本身没有具体的目的,通过挑选指令和安排循环次数可准确实现。该方法占用CPU的时间。不可编程的硬件定时可采用小规模集成电路器件(如:555),外接定时部件(电阻和电容)构成。定时值及定时范围不能由软件控制。可编程的硬件定时的定时值及定时范围不能由软件控制,能够满足不同的定时和计数要求。6/18/2024521.8254的内部结构与工作原理的内部结构与工作原理图82548254的内部的内部结构结构计数器0计数器1读/写逻辑控制字寄存器数据总线缓冲器计数器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内 部 总 线 6/18/2024531.8254的内部结构与工作原理的内部结构与工作原理图82548254的内部的内部结构结构计数器0计数器1读/写逻辑控制字寄存器数据总线缓冲器计数器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内 部 总 线 读/写逻辑 接受系统总线的输入信号,转换成8253内部操作的多种控制信号;选择读/写操作的计数器或控制寄存器;决定内部总线上数据传送方向;6/18/2024541.8254的内部结构与工作原理的内部结构与工作原理图82548254的内部的内部结构结构计数器0计数器1读/写逻辑控制字寄存器数据总线缓冲器计数器2CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内 部 总 线 数据总线缓冲器三态,双向8位寄存器,它有三个基本功能:CPU通过它向8253/8254写入工作命令字;向某一计数器写入初值;从某一计数器读取当前计数值;控制字寄存器由CPU写入控制字,决定计数器的工作方式,规定读/写方法。控制寄存器只能写入,不能读出。计数器8253/4有三个独立且结构一样的计数器,每个计数器对外有三个引脚:GATE:门控信号输入端CLK:计数脉冲输入端OUT:信号输出端6/18/202455GATEiCLKi内部总线计数初值寄存器16位减1计数器输出锁存器OUTi计数器结构示意图6/18/202456GATEiCLKi内部总线计数初值寄存器16位减1计数器输出锁存器OUTi计数器结构示意图计数器的工作原理计数器的工作原理计数器的工作原理计数器的工作原理1)程序员向初值寄存器写入计数值2)初值寄存器中的初值送入减1计数器3)减1计数器被启动开始减1计数,每一个CLKi脉冲使计数器减14)当计数值减到零时,OUTi端产生输出信号(脉冲或电平)5)GATEi信号可控制允许或禁止减1计数6)当前计数值被锁存至输出锁存器中,可被读出7)CLKi信号可以是周期性信号,也可以是随机脉冲信号8)计数初值N的计算公式:N=fCLKi/fOUTi6/18/202457D1D2D3D4D5D6D7数据线A0A1VccGNDCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT20号计数器1号计数器2号计数器控制线82538254的外部引脚图2 2 8253/48253/4的引脚功能的引脚功能D0D7D0:8位双向数据线,接CPU数据总线;CS为片选信号输入端;A1,A0 内部寄存器选择信号线,接CPU地址总线;RD 读命令输入端;WR 写命令输入端,接CPU的控制总线;GATE0GATE2,CLK0CLK2,OUT0OUT2是三个计数器的外部引脚。6/18/2024588253端口选择和读/写操作CSRDWRA1A0端口选择和操作01000写入计数器001001写入计数器101010写入计数器201011写方式控制字到控制字寄存器00100读计数器000101读计数器100110读计数器200111无操作,数据总线缓冲器三态011无操作,数据总线缓冲器三态1禁止,数据总线缓冲器三态6/18/2024593 82533 8253的工作方式的工作方式8253有6种工作方式,区别在于:l输出波形不同;l启动计数器的触发方式不同;lGATE信号对计数过程的影响不同6/18/202460方式方式方式方式0 0 0 0 计数计数结束输出正跃变信号(产生中断)结束输出正跃变信号(产生中断)结束输出正跃变信号(产生中断)结束输出正跃变信号(产生中断)工作特点工作特点:i.写入控制字后,OUT端输出低电平;i.写入初值后,OUT端保持低电平,计数器开始对CLK脉冲进行减1计数;当计数值减至0时,OUT端输出变为高电平,它可用作中断请求信号;方式0不具备“初值自动重装功能”;仅当写入新的初值才能触发计数;ii.在计数过程中,若写入新的计数初值,则初值写在计数过程中,若写入新的计数初值,则初值写入后将按新的初值重新开始减入后将按新的初值重新开始减1 1计数;计数;iii.GATE=1GATE=1时,允许计数;时,允许计数;GATE=0GATE=0时,停止计数。时,停止计数。6/18/202461CH=10HN=4CH=10HN=4N=5CLKGATEGATEGATEOUTOUTOUT方式0波形图4321-1-204322210-142354321-206/18/202462方式方式方式方式1 1 1 1 外触发的外触发的单稳脉冲发生器单稳脉冲发生器单稳脉冲发生器单稳脉冲发生器工作特点:I.写入控制字后,OUT输出高电平;写入初值后,OUT保持高电平;计数器由GATE的上升沿启动,开始对CLK脉冲进行减1计数,启动后,OUT变为低电平;当计数值减到0时,OUT输出高电平,从而在OUT端输出一个负脉冲,脉冲宽度计数初值CLK的脉冲周期;方式1无“初值自动重装”功能,仅GATE的上升沿能启动计数器计数。6/18/202463ii.只要只要GATEGATE信号出现了正脉冲,计数初值将重新装入信号出现了正脉冲,计数初值将重新装入计数器,并启动计数器按新的初值重新减计数器,并启动计数器按新的初值重新减1 1计数。计数。iii.在计数过程中装入了新的计数初值,计数过程不受在计数过程中装入了新的计数初值,计数过程不受影响,仅当影响,仅当GATEGATE再次出现再次出现0101的正跃变,该计数器的正跃变,该计数器才按新的计数初值做减才按新的计数初值做减1 1计数。计数。6/18/202464CH=12HN=3CH=12HN=2N=4CLKGATEGATEGATEOUTOUTOUT方式1波形图3210-1323213120201-1-2436/18/202465方式方式方式方式2 2 2 2 分频器(计数分频工作方式)分频器(计数分频工作方式)分频器(计数分频工作方式)分频器(计数分频工作方式)工作特点:i.写入控制字后,OUT输出高电平;写入初值后,计数器启动减1计数,当计数器减到1时,OUT输出低电平,维持一个CLK周期,OUT又变为高;计数初值自动重新装入,计数器开始重新计数,OUT输出周期负脉冲信号。脉冲周期 TOUt=初值 TCLK 脉冲宽度=1TCLK6/18/202466ii.在计数过程中,在计数过程中,GATEGATE变低,暂停计数,变低,暂停计数,GATEGATE的上的上升沿使计数器恢复初值,并从初值开始计数;升沿使计数器恢复初值,并从初值开始计数;iii.在计数过程中,当在计数过程中,当GATEGATE为高电平,若写入初值,为高电平,若写入初值,不影响计数;仅当计数器减到不影响计数;仅当计数器减到1 1后,计数器才装入后,计数器才装入新的初值,按新初值减新的初值,按新初值减1 1计数。计数。6/18/202467CH=14HN=3CH=14HN=4N=5CLKGATEGATEGATEOUTOUTOUT方式2波形图3213213213223213214231543216/18/202468方式方式3 3 方波发生器方波发生器方式3具有自动重新装入初值的功能。当初值为偶数时,从OUT输出1:1的方波,TOUT=NTCLK 脉冲宽度=N/2 TCLK当初值为奇数时,OUT输出周期脉冲波形,TOUT=NTCLK 正脉冲宽度=TCLK(N1)/2 负脉冲宽度=TCLK(N1)/2 6/18/202469CH=16HN=4CH=16HN=5CLKGATEGATEOUTOUT方式3波形图424242424204242406/18/202470方式方式4 4 软件触发的单脉冲发生器软件触发的单脉冲发生器工作特点:l写入控制字后,OUT输出高电平;l写入初值后,开始减1计数,减到0时,OUT变低;l方式4无初值自动重装功能,OUT输出一负脉冲,脉冲宽度=1TCLKlGATE=1,允许计数;GATE=0,停止计数;l计数过程钟,若改变初值,则按新的初值重新开始计数6/18/202471CH=18HN=3CH=18HN=3N=2CLKGATEGATEGATEOUTOUTOUT方式4波形图3210-1-2321-13122100-1-26/18/202472方式方式55硬件触发的单脉冲发生器硬件触发的单脉冲发生器工作特点:写入控制字后,OUT输出高电平;l写入初值后,仅当GATE端出现0到1的跃变时,启动计数减1计数;l当计数值减到0时,OUT输出一个CLK周期的负脉冲;l在计数过程中,若GATE端出现01的跃变,初值重新装入计数器,并重新减1计数;l在计数过程中,若改变计数初值,仅当GATE的上升沿触发,则立即按新的初值重新开始计数。6/18/202473CH=1AHN=3CH=1AHN=3N=5CLKGATEGATEGATEOUTOUTOUT方式5波形图321032312310254-1-20-1-16/18/202474 D7 D6 D5 D4 D3 D2 D1 D0SC1SC0RL1RL0M2M1M0BCD计数器选择 操作选择 工作方式选择 码制00=计数器0 00=锁存操作 000=方式0,001=方式1 0=二进制01=计数器1 01=读写低字节 010=方式2,011=方式3 1=BCD码10=计数器2 10=读写高字节 100=方式4,101=方式5 11=16位读/写4 82544 8254的控制字与编程的控制字与编程1)方式控制字8254的控制字6/18/202475 D7 D6 D5 D4 D3 D2 D1 D0SC1SC0RL1RL0M2M1M0BCD计数器选择 操作选择 工作方式选择 码制00=计数器0 00=锁存操作 000=方式0,001=方式1 0=二进制01=计数器1 01=读写低字节 010=方式2,011=方式3 1=BCD码10=计数器2 10=读写高字节 100=方式4,101=方式5 11=16位读/写4 82544 8254的控制字与编程的控制字与编程1)方式控制字8254的控制字D7D6(SC1SC0):计数器选择D7D6=00 选择0号计数器;D7D6=01 选择1号计数器;D7D6=10 选择2号计数器;D7D6=11 读出控制字标志之一D D5 5D D4 4(RL(RL1 1RLRL0 0)读出方式选择读出方式选择 D D5 5D D4 4=00=00 锁存计数器当前计数值,以便读出检查锁存计数器当前计数值,以便读出检查 D D5 5D D4 4=01 =01 只读只读/写低写低8 8位计数初值,高位计数初值,高8 8位置位置0 0 D D5 5D D4 4=10 =10 只读只读/写高写高8 8位计数初值,低位计数初值,低8 8位值位值0 0 D D5 5D D4 4=11 =11 先读先读/写低写低8 8位计数初值,后读位计数初值,后读/写高写高8 8位计数初值位计数初值6/18/202476 D7 D6 D5 D4 D3 D2 D1 D0SC1SC0RL1RL0M2M1M0BCD计数器选择 操作选择 工作方式选择 码制00=计数器0 00=锁存操作 000=方式0,001=方式1 0=二进制01=计数器1 01=读写低字节 010=方式2,011=方式3 1=BCD码10=计数器2 10=读写高字节 100=方式4,101=方式5 11=16位读/写4 82544 8254的控制字与编程的控制字与编程1)方式控制字8254的控制字lD3D2D1(M2M1M0)工作方式选择D3D2D1=000 方式0;D3D2D1=011 方式3D3D2D1=001 方式1;D3D2D1=100 方式4D3D2D1=010 方式2;D3D2D1=101 方式5lD0(BCD)数制选择D0=0 二进制计数 初值范围0000HFFFFH,0000H代表65536 D0=1 十进制计数 初值范围0000H9999H,0000H 代表100006/18/202477例如例如例如例如:选择选择选择选择2 2 2 2号计数器,工作在方式号计数器,工作在方式号计数器,工作在方式号计数器,工作在方式2 2 2 2,计数,计数,计数,计数 初值为初值为初值为初值为533H533H533H533H,二进制计数,程序段为:,二进制计数,程序段为:,二进制计数,程序段为:,二进制计数,程序段为:TIMER EQU 040H ;0号计数器端口地址MOV AL,10110100B ;2号计数器方式控制字OUT TIMER+3,AL ;写入控制字寄存器MOV AX,533H ;计数初值OUT TIMER+2,AL ;先送低位字节到2号计数器MOV AL,AH ;取高位字节OUT TIMER+2,AL ;再送高位字节到2号计数器6/18/2024782)读出控制字读出控制字当D7D6=11,是读回命令的特征标志;D0 为保留位,必须为0;D5=0锁存所选计数器的计数值,以便CPU读取;D4=0锁存所选计数器的状态;D3D2D1 计数器选择 具体定义见P4136/18/2024793)状态字状态字lD5D6:意义与方式控制字的对应位意义相同lD7:OUT引脚输出的电平状态 D7=1 OUT 引脚为高电平 D7=0 OUT引脚为低电平lD6=0 表示计数初值已装入计数器,可以读取计数值 其它位和含义见P4146/18/2024808253的编程举例的编程举例例:8254在IBMPC/AT中的应用。8254在系统中提供动态存储器的刷新定时、系统的时钟中断、发声音调控制等功能CLK0 OUT0CLK1CLK2GATE0 OUT1GATE1GATE2 OUT2PB0PB1IR0QD 刷新电路滤波fclk=1.193MHz+5V+5V825482558259A清“0”6/18/202481计数器工作方式计数方式初值控制字Toutfout0#3二进制036H55ms1#2二进制12H54H15.1s66.8kHz2#3二进制533HB6H约900Hz6/18/2024823个计数器的初始化程序如下:个计数器的初始化程序如下:计数器0用于定时(约55ms)中断:MOV AL,00110110B;方式3,二进制计数OUT 43H,ALMOV AL,0OUT 40H,AL ;先送低8位OUT 40H,AL ;后送高8位6/18/202483计数器计数器计数器计数器1 1 1 1用于动态存储器刷新定时(每隔用于动态存储器刷新定时(每隔用于动态存储器刷新定时(每隔用于动态存储器刷新定时(每隔15ms15ms15ms15ms进行一进行一进行一进行一次请求)次请求)次请求)次请求)MOV AL ,01010100B;方式2,;只写低8位,二进制计数OUT 43H,AL ;送
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!