《微型计算机第05章接口芯片课件》由会员分享,可在线阅读,更多相关《微型计算机第05章接口芯片课件(92页珍藏版)》请在金锄头文库上搜索。
1、第5章 可编程接口芯片5.1可编程并行接口可编程并行接口8255A5.2可编程定时器可编程定时器/计数器计数器82545.3串行通信的基本概念串行通信的基本概念5.4可编程串行通信接口可编程串行通信接口165505.5可编程串行通信接口可编程串行通信接口8251A1微型计算机第05章接口芯片5.1 可编程并行接口8255A5.1.1 8255A的内部结构与外部引脚的内部结构与外部引脚2微型计算机第05章接口芯片1.三个数据端口三个数据端口A、B、C三个三个8位的输入输出端口,可用指令将它们分别设置成输入或位的输入输出端口,可用指令将它们分别设置成输入或输出端口。输出端口。2.A组控制、组控制、
2、B组控制组控制8255A将端口将端口A、B、C分为两组:端口分为两组:端口A和端口和端口C的高的高4位构位构成成A组,端口组,端口B和端口和端口C的低的低4位构成位构成B组。组。3.数据总线缓冲器数据总线缓冲器双向三态的双向三态的8位缓冲器,与系统数据总线连接,是位缓冲器,与系统数据总线连接,是8255A与与CPU之间信息传输的必经之路。之间信息传输的必经之路。4.读读/写控制逻辑写控制逻辑管理管理8255A的数据传输过程。的数据传输过程。3微型计算机第05章接口芯片图图5-25.8255A的引脚的引脚4微型计算机第05章接口芯片8255的引脚信号:的引脚信号:(1). 与与CPU连接的信号线
3、连接的信号线pD7D0:8255A的双向三态数据线。的双向三态数据线。pA1、A0: 端口地址选择信号。端口地址选择信号。pCS#:片选信号。片选信号。pRD#:读信号,低电平有效。读信号,低电平有效。pWR#:写信号,低电平有效。写信号,低电平有效。pRESET:复位信号。复位信号。pVCC、GND:电源和地线。电源和地线。5微型计算机第05章接口芯片(2). 与外部设备相连的信号线与外部设备相连的信号线pPA7PA0:A口与外部设备连接的数据线。口与外部设备连接的数据线。pPB7PB0:B口与外部设备连接的数据线。口与外部设备连接的数据线。pPC7PC0:C口输入输出数据线。口输入输出数据
4、线。6微型计算机第05章接口芯片5.1.2 8255A的控制字的控制字 1. 1. 方式选择控制字方式选择控制字 p8255A有三种基本工作方式:有三种基本工作方式:方式方式0:基本的输入:基本的输入/输出方式。输出方式。方式方式1:选通输入:选通输入/输出方式。输出方式。方式方式2:双向传输方式。:双向传输方式。p8255A各各数数据据端端口口的的工工作作方方式式由由方方式式选选择择控控制制字字进进行行设设置。置。7微型计算机第05章接口芯片图图5-38255A方式选择控制字方式选择控制字8微型计算机第05章接口芯片pD7位是方式选择控制字的标志位,它必须是位是方式选择控制字的标志位,它必须
5、是1;pD6D5位用于选择位用于选择A口的工作方式;口的工作方式;pD4、D3用于选择用于选择A口、口、C口高四位输入输出功能设置。口高四位输入输出功能设置。pD2位用于选择位用于选择B口的工作方式。口的工作方式。p端端口口A可可工工作作在在3种种工工作作方方式式中中的的任任何何一一种种,端端口口B只只能能工工作作在在方式方式0或方式或方式1,端口,端口C则常常配合端口则常常配合端口A和端口和端口B工作。工作。p只有端口只有端口A可工作在方式可工作在方式2。9微型计算机第05章接口芯片2. 端口端口C按位置位按位置位/复位控制字复位控制字 p端端口口C有有一一种种特特殊殊的的控控制制方方式式,
6、可可以以将将端端口口C的的某某一一位位置置1或或清清0,而而不影响端口不影响端口C的其他位的状态。的其他位的状态。10微型计算机第05章接口芯片5.1.3 8255A的工作方式的工作方式1 1方式方式0 0 基本输入基本输入/ /输出方式输出方式(1)方式)方式0的工作特点:的工作特点:A口和口和B口作为两个口作为两个8位端口位端口C口的高口的高4位和低位和低4位可以用作两个位可以用作两个4位端口位端口(2)方式方式0的使用场合:的使用场合:无条件传送无条件传送查询式传送查询式传送11微型计算机第05章接口芯片2方式方式1 选通输入选通输入/输出方式输出方式(1 1)方式)方式1 1工作特点工
7、作特点p带有选通的输入带有选通的输入/输出方式。输出方式。p端口端口A、端口端口B和端口和端口C被分为两个组。被分为两个组。p端端口口A和和端端口口B用用作作8位位数数据据的的输输入入/输输出出,端端口口C的的一一些些引引脚脚被被规规定定为端口为端口A、B的联络信号。的联络信号。12微型计算机第05章接口芯片(2)方式)方式1联络信号联络信号pIBFA、IBFB:输入缓冲区满信号,高电平有效。输入缓冲区满信号,高电平有效。pSTBa#、STBb#:选通信号输入,负脉冲。选通信号输入,负脉冲。pOBFA # 、OBFB # :输出缓冲区满信号,低电平有效。输出缓冲区满信号,低电平有效。pACKA
8、 # 、ACKB # :外外设设接接收收到到输输出出数数据据后后给给8255A的的应应答答信信号号,下降沿下降沿/负脉冲有效负脉冲有效。pINTEA和和INTEB:端口端口A和端口和端口B的中断允许信号。的中断允许信号。pINTR:中断请求信号,中断请求信号,8255A输出给输出给CPU。(3)方式)方式1的使用的使用p查询方式查询方式p中断方式中断方式13微型计算机第05章接口芯片端口端口/工作工作方式方式联络线联络线输入输入输出输出A口方式1PC7OBFA #PC6ACKA# / INTEAPC5IBFAPC4STBA # / INTEAPC3INTRAINTRAB口方式1PC2STBB
9、# / INTEBACKB# / INTEBPC1IBFBOBFB #PC0INTRBINTRB8255A芯片方式芯片方式1的联络信号的联络信号14微型计算机第05章接口芯片3方式方式2 双向输入双向输入/输出方式输出方式(1)方式)方式2工作特点工作特点p方式方式2只适用于端口只适用于端口A,是双向的输入是双向的输入/输出传输方式。输出传输方式。p方式方式2下各信号含义见表下各信号含义见表5-3,其中:,其中: INTE1:输出中断允许信号。输出中断允许信号。 INTE2:输入中断允许信号输入中断允许信号。(2)方式)方式2的使用场合的使用场合15微型计算机第05章接口芯片联络线联络线联络信
10、号联络信号信号含义信号含义PC7OBFA #A口输出缓冲器满PC6ACKA# / INTE1A口收到外设应答信号输出中断允许PC5IBFAA口输入缓冲器满PC4STBA # / INTE2A口外设数入选通信号输入中断允许PC3INTRA中断请求信号PC2I/O数据线或B组联络线PC1I/O数据线或B组联络线PC0I/O数据线或B组联络线8255芯片方式芯片方式2的联络信号的联络信号16微型计算机第05章接口芯片5.1.4 8255A的应用1. 8255A与与CPU的连接的连接 p数据线和控制线一般直接和系统总线的相应信号相连数据线和控制线一般直接和系统总线的相应信号相连p片选信号和地址译码器的
11、输出相连片选信号和地址译码器的输出相连p三个端口的数据线和外设的数据线直接相连三个端口的数据线和外设的数据线直接相连p8255A的端口选择信号的端口选择信号A1和和A0,8088CPU与与8086CPU在连接在连接上有所不同上有所不同17微型计算机第05章接口芯片图图5-518微型计算机第05章接口芯片2. 8255A基本输入输出应用基本输入输出应用p作为键盘接口作为键盘接口: 19微型计算机第05章接口芯片“反转法反转法”进行键盘扫描:进行键盘扫描:p设设8255A为方式为方式0,A口输出,口输出,B口输入;口输入;p向向A口输出口输出00H,从从B口读入键盘列线值:口读入键盘列线值:低低4
12、位值为位值为0FH:无键按下无键按下否则,就有键按下否则,就有键按下p有键按下时,将有键按下时,将8255A反向设置为反向设置为A口输入,口输入,B口输出口输出将将B口原读入值从口原读入值从B口输出口输出从从A口输入,得到该键的口输入,得到该键的“行列码行列码”20微型计算机第05章接口芯片“反转法反转法”键盘扫描程序:键盘扫描程序:KEYSCANPROC NEARBEGIN:MOV DX,20EH;置置8255A控制口地址控制口地址MOV AL,82H;8255A方式控制字方式控制字 ;A口工作在方式口工作在方式0输出,输出,B口工作在方式口工作在方式0输入输入OUTDX,AL;输出输出82
13、55A方式控制字方式控制字LOOP1:MOVDX,208H;A口地址送口地址送DXMOV AL,00HOUTDX,AL;A口输出口输出00H扫描键盘扫描键盘MOV DX,20AH;B口地址送口地址送DX中中INAL,DX;读入键盘列值读入键盘列值ANDAL,0FH;保留低保留低4位位CMP AL,0FHJELOOP1;无键按下,重新扫描无键按下,重新扫描21微型计算机第05章接口芯片CALL DELAY;有键按下,延时去抖动有键按下,延时去抖动INAL,DX ;再次读再次读B口,检查有无键按下口,检查有无键按下ANDAL,0FH;保留低保留低4位位CMP AL, 0FHJELOOP1;无键按下
14、,重新扫描无键按下,重新扫描MOV KEY,AL;有键按下,列值保存在有键按下,列值保存在KEY单元单元MOV DX,20EH;置置8255A控制口地址控制口地址MOV AL,90H;8255A方式控制字方式控制字; B口方式口方式0输出,输出,A口方式口方式0输入输入OUTDX,AL;输出输出8255A方式控制字方式控制字MOV DX,20AH;B口地址送口地址送DX中中MOV AL,KEY;从从KEY单元取出列值单元取出列值OUTDX,AL;向向B口输出列值,反向扫描口输出列值,反向扫描22微型计算机第05章接口芯片MOV DX,208H;A口地址送口地址送DXINAL,DX;从从A口读入
15、行值口读入行值ANDAL,1FH;保留低保留低5位位CMP AL, 1FHJEBEGIN;无键按下,重新扫描无键按下,重新扫描CALL KEYVALUE;转键值处理程序:查表获得按键编码,保存转键值处理程序:查表获得按键编码,保存23微型计算机第05章接口芯片MOV DX,20AH;B口地址送口地址送DX中中MOV AL, 0OUTDX,AL;向向B口输出列值,反向扫描口输出列值,反向扫描MOV DX,208H;A口地址送口地址送DXWAIT2:INAL,DX;从从A口读入行值口读入行值ANDAL,1FH;保留低保留低5位位CMP AL, 1FHJNEWAIT2;未释放,等待未释放,等待RET
16、KEYSCANENDP24微型计算机第05章接口芯片82558255方式方式0 0应用应用-用作打印机接口用作打印机接口25微型计算机第05章接口芯片程序设计:设程序设计:设PA、PB、PC口地址分别为口地址分别为0D0H、0D2H、0D4H控制口地址:控制口地址:0D6HMOVAL,81H;OUT0D6H,ALMOVAL,0DH;PC6置置1,0DH=0000,1101OUT0D6H,ALLPST:INAL,0D4H;读;读PC口口ANDAL,04D;打印机忙否(打印机忙否(PC2=BUSY=?)?)JNZLPST;PC2=1,打印机忙,等待,打印机忙,等待MOVAL,CLOUT0D0H,A
17、L;CL中的字符送中的字符送PA口口MOVAL,0CHOUT0D6H,AL;置置PC6=0,即,即=0;00001100=0CHINCALOUT0D6H,AL;置;置PC6=1,即,即=1,00001101=0DH 26微型计算机第05章接口芯片3. 8255A中断方式应用中断方式应用p8255A的的A口口工工作作在在方方式式1输输出出方方式式,用用以以传传送送打打印印字符。字符。PC6自动作为自动作为ACK#信号输入端信号输入端PC0用来发送选通脉冲用来发送选通脉冲PC3(INTR)连连到到中中断断控控制制器器 8259A的的IR3,对对应应中中断断类类型型码码为为0BHp8255A的端口地
18、址为的端口地址为0C0H0C6H。p中断方式实现中断方式实现26个英文字母的输出。个英文字母的输出。27微型计算机第05章接口芯片图图5-728微型计算机第05章接口芯片.dataBUFFER DB “abcdefghijklmnopqrstuvwxyz”,0dh,0ahOUT_POINTERDW?;缓冲区输出指针缓冲区输出指针DONEDB?;完成标志,完成标志, =1表示已输出完成表示已输出完成.codeSTART:MOVAX,SEG LPRINTMOVDS,AXLEADX,LPRINTMOVAX,250BHINT21H;设置设置0BH中断向量中断向量MOVAX,dataMOVDS,AX;装
19、载装载DSLEABX,BUFFER29微型计算机第05章接口芯片MOVOUT_POINTER, BX;设置输出缓冲区指针设置输出缓冲区指针MOVDONE, 0;设置未完成标志设置未完成标志MOV AL,0A0HOUT0C6H,AL;8255A的方式选择字,的方式选择字,A口工作在方式口工作在方式1,输出,输出MOVAL,1OUT0C6H,AL;PC0置为置为1,使选通无效,使选通无效MOVAL, 0DHOUT0C6H,AL;使使PC6为为1,允许,允许8255A的打印机中断的打印机中断INAL, 21HANDAL,11110111BOUT21H,AL;清清8259的的IR3屏蔽,允许打印机中断
20、屏蔽,允许打印机中断30微型计算机第05章接口芯片STI;开中断开中断INT0BH;调用调用0BH中断服务程序输出第一个字符中断服务程序输出第一个字符WAIT1:CMPDON E,0JEWAIT1 ;未完成,循环等待未完成,循环等待MOVAX, 4C00HINT21H ;打印完成,返回操作系统打印完成,返回操作系统31微型计算机第05章接口芯片;以下为中断服务子程序:以下为中断服务子程序:LPTINTPROCFARPUSHDS;保护现场保护现场PUSHAXPUSHDISTI;开放中断开放中断MOVAX,SEGBUFFER;装载输出缓冲区指针装载输出缓冲区指针MOVDS,AX MOVDI,OUT
21、_POINTERMOVAL,DI OUT0C0H,AL;字符送字符送A口口32微型计算机第05章接口芯片MOVAL,0;使使PC0为为0,产生选通信号,产生选通信号OUT0C6H,ALCALLDelay;适当延时适当延时INCAL;使使PC0为为1,撤消选通信号,撤消选通信号OUT0C6H,ALINCOUT_POINTER;修改地址指针修改地址指针CMPBYTE PTRDI, 0AH JNENEXTMOVDONE, 1;已完成,置完成标志已完成,置完成标志MOVAL, 0CHOUT0C6H,AL;使使PC6为为0,关闭,关闭8255A的打印机中断的打印机中断33微型计算机第05章接口芯片INA
22、L,21H ORAL,00001000BOUT21H,AL;重新屏蔽重新屏蔽8259的的IR3 ,关闭关闭8259A的打印机中断的打印机中断NEXT: CLI;中断结束处理,关闭中断中断结束处理,关闭中断MOVAL,20HOUT20H,AL;向向8259A发发EOI命令命令POPDI;恢复现场恢复现场POPAXPOPDS IRETLPRINTENDPENDSTART 34微型计算机第05章接口芯片4. 8255A在在PC机中的应用机中的应用p早早期期的的PC/XT微微机机系系统统(8088CPU)使使用用一一片片8255A,系系统分配的端口地址为统分配的端口地址为60H63H,工作在基本输入工
23、作在基本输入/输出方式。输出方式。1)A口用作键盘接口电路,接收串并转换后的键盘扫描码。口用作键盘接口电路,接收串并转换后的键盘扫描码。2)B口口的的PB7和和PB6用用于于控控制制键键盘盘接接口口电电路路,PB1和和PB0用用于于控控制制发发声系统。声系统。C口连接口连接“系统配置开关系统配置开关”。p80286以以上上的的微微机机系系统统中中,8255A的的对对应应电电路路被被集集成成到到多多功功能芯片内部,保留了能芯片内部,保留了8255A的端口地址和它的相应功能。的端口地址和它的相应功能。35微型计算机第05章接口芯片5.2 可编程定时器/计数器8254p计算机系统中经常要用到定时信号
24、,如定时检测、定时计算机系统中经常要用到定时信号,如定时检测、定时扫描和时钟定时等,定时方法通常有以下三种:扫描和时钟定时等,定时方法通常有以下三种: (1)软件定时)软件定时 (2)不可编程的硬件定时不可编程的硬件定时 (3)可编程的硬件定时可编程的硬件定时p许多场合还需要对脉冲信号进行计数。许多场合还需要对脉冲信号进行计数。p本节介绍本节介绍Intel 8254定时计数器芯片,它是一种的定时计数器芯片,它是一种的可编程的定时器件。可编程的定时器件。36微型计算机第05章接口芯片Intel 8254主要特性:主要特性:(1)3个独立的个独立的16位定时位定时/计数通道。计数通道。(2)每个通
25、道有)每个通道有6种工作方式。种工作方式。(3)最高计数频率为)最高计数频率为10MHz。(4)可以按二进制或可以按二进制或BCD码两种方式计数。码两种方式计数。(5)定定时时时时间间长长短短可可用用软软件件设设置置,可可由由软软件件或或硬硬件件控控制制开开始始计数或停止计数。计数或停止计数。(6)可可以以同同时时锁锁存存13个个计计数数器器的的计计数数值值和和状状态态值值,供供CPU读取。读取。37微型计算机第05章接口芯片5.2.1 8254的内部结构与外部引脚的内部结构与外部引脚38微型计算机第05章接口芯片1.数据总线缓冲器数据总线缓冲器8254与系统数据总线相连的接口电路。与系统数据
26、总线相连的接口电路。 通过数据总线缓冲器,通过数据总线缓冲器,CPU用指令对用指令对8254进行读进行读/写:写: (1)8254初始化编程时,写入控制字。初始化编程时,写入控制字。 (2)CPU向某一计数器写入计数初值。向某一计数器写入计数初值。 (3)CPU读出计数器的当前计数值。读出计数器的当前计数值。39微型计算机第05章接口芯片2. 读读/写控制逻辑写控制逻辑接收来自接收来自CPU的控制信号:的控制信号: 读信号读信号RD# 写信号写信号WR# 片选信号片选信号CS# 芯片内部寄存器寻址信号芯片内部寄存器寻址信号A1A040微型计算机第05章接口芯片3计数器计数器028254有有3个
27、结构完全相同的定时器个结构完全相同的定时器/计数器通道计数器通道: 0,1,2p每个通道包含每个通道包含:一个一个8 8位的控制字寄存器位的控制字寄存器三个三个1616位的初值寄存器、减位的初值寄存器、减1 1计数器和结果输出锁存器。计数器和结果输出锁存器。p每个通道有每个通道有3根专用的信号线:根专用的信号线:CLK:计数计数/定时脉冲输入端,每输入一个脉冲,减定时脉冲输入端,每输入一个脉冲,减1操作操作OUT:计数值减到零时,由输出端计数值减到零时,由输出端OUT输出结束信号输出结束信号GATE:门控信号,允许或停止计数门控信号,允许或停止计数41微型计算机第05章接口芯片图图5-942微
28、型计算机第05章接口芯片CLK脉冲脉冲:p8254作作外外部部事事件件计计数数器器时时,CLK引引脚脚上上的的计计数数脉脉冲冲从从外外部部输输入,这些脉冲的间隔可以不相等。入,这些脉冲的间隔可以不相等。p8254用作定时器时,用作定时器时,CLK引脚的输入信号是精确的时钟脉冲。引脚的输入信号是精确的时钟脉冲。p8254的定时时间的定时时间T时钟脉冲周期时钟脉冲周期tc计数初值计数初值n43微型计算机第05章接口芯片4. 控制寄存器控制寄存器 p控控制制寄寄存存器器是是一一个个只只能能写写入入的的寄寄存存器器,它它接接收收从从CPU来来的的控控制制字字,并并由由控控制制字字的的D7、D6位位的的
29、编编码码决决定定控控制制字字写写入哪个计数器的控制寄存器。入哪个计数器的控制寄存器。p在在对对8254进进行行编编程程时时,CPU用用输输出出指指令令向向它它写写入入控控制制字字,由由此此确确定定各各计计数数器器通通道道的的工工作作方方式式、读读写写格格式式和和计计数数的的数数制。制。44微型计算机第05章接口芯片5. Intel 8254的引脚的引脚(1)CS#: 片选信号,接片选信号,接IO端口译码电路的输出端口译码电路的输出(2)RD#, WR#: 读写控制信号读写控制信号(3)D7D0: 数据线,与系统数据总线相连数据线,与系统数据总线相连(4)A1A0 接地址总线低接地址总线低2位,
30、用于片内端口的选择。位,用于片内端口的选择。A1A0=00,选择通道,选择通道0;A1A0=01,选择通道选择通道1;A1A0=10,选择通选择通道道2;A1A0=11,选择控制端口。选择控制端口。(5)每个通道有三根对外的信号线:每个通道有三根对外的信号线:CLK,OUT 和和 GATE。45微型计算机第05章接口芯片图图5-1046微型计算机第05章接口芯片5.2.2 8254的工作方式的工作方式每个通道有六种可选择的工作方式每个通道有六种可选择的工作方式: 1. 方式方式0 计数器方式计数器方式 p写写入入方方式式0控控制制字字后后,输输出出OUT立立即即变变为为低低电电平平,且且在在计
31、计数数过过程程中中一一直维持低电平。直维持低电平。p赋初值后赋初值后,在每个在每个CLK时钟下降沿,计数器进行减时钟下降沿,计数器进行减1计数。计数。p计计数数值值减减到到零零时时,OUT输输出出变变为为高高电电平平,并并且且一一直直保保持持到到该该通通道道重重新装入计数初值或重新设置工作方式为止。新装入计数初值或重新设置工作方式为止。pGATE用用于于控控制制计计数数过过程程。GATE为为高高电电平平,允允许许计计数数;GATE为为低低电平,暂停计数。电平,暂停计数。47微型计算机第05章接口芯片图图5-11方式方式048微型计算机第05章接口芯片2. 方式方式1可重触发的单稳态触发器可重触
32、发的单稳态触发器 p门门控控信信号号GATE上上升升沿沿触触发发后后,输输出出一一个个负负脉脉冲冲信信号号,脉脉冲冲宽宽度度由由计计数初值数初值N决定决定p写入控制字后,写入控制字后,OUT输出高电平;输出高电平;pGATE上上升升沿沿到到达达后后,OUT输输出出低低电电平平,并并在在CLK脉脉冲冲下下降降沿沿进进行行减减1计数;计数;p计数值减到计数值减到0时,输出时,输出OUT恢复为高电平。恢复为高电平。n计计数数结结束束后后,若若再再来来一一个个GATE信信号号上上升升沿沿,则则下下一一个个时时钟钟周周期期的下降沿又以上次写入的初值开始计数,不需要重新写入初值。的下降沿又以上次写入的初值
33、开始计数,不需要重新写入初值。n在在计计数数过过程程中中可可以以写写入入新新的的初初值值,它它不不会会影影响响正正在在进进行行的的计计数数过过程。在下一个门控信号到来后,按新值开始计数。程。在下一个门控信号到来后,按新值开始计数。49微型计算机第05章接口芯片图图5-12方式方式150微型计算机第05章接口芯片3. 方式方式2分频器分频器 p写入控制字后,写入控制字后,OUT变成高电平。变成高电平。p写入计数初值后,计数器开始减写入计数初值后,计数器开始减1计数计数(GATE=1) 。p减减到到1时时,输输出出端端OUT变变为为低低电电平平,维维持持一一个个CLK周周期期,然然后后输出输出OU
34、T又变成高电平,同时从初值开始新的计数过程。又变成高电平,同时从初值开始新的计数过程。p这这种种方方式式工工作作时时,计计数数初初值值自自动动重重装装,计计数数器器能能连连续续工工作作,输输出固定频率的脉冲,因此称为分频器。出固定频率的脉冲,因此称为分频器。n方方式式2中中,GATE信信号号为为低低电电平平时时终终止止计计数数。GATE的的上上升升沿沿使使计计数器恢复初值,并从初值开始计数。数器恢复初值,并从初值开始计数。51微型计算机第05章接口芯片图图5-13方式方式252微型计算机第05章接口芯片4. 方式方式3方波发生器方波发生器(1)计数初值为偶数)计数初值为偶数p写入控制字后,输出
35、端写入控制字后,输出端OUT变成高电平变成高电平p写入计数初值后计数器开始进行减写入计数初值后计数器开始进行减2计数计数p减到减到0时,输出端时,输出端OUT改变输出极性,从初值开始新的计数过程。改变输出极性,从初值开始新的计数过程。(2)计数初值为奇数)计数初值为奇数p写入控制字后输出端写入控制字后输出端OUT变成高电平变成高电平p写入计数初值后开始减写入计数初值后开始减1计数计数p减到(减到(N+1)/2以后,输出端以后,输出端OUT变为低电平变为低电平p减到减到0时,时,OUT又变成高电平,从初值开始新的计数过程。又变成高电平,从初值开始新的计数过程。nGATE=1,允允许许计计数数,G
36、ATE=0,禁禁止止计计数数。GATE信信号号能能使使计数过程重新开始。计数过程重新开始。53微型计算机第05章接口芯片图图5-14方式方式354微型计算机第05章接口芯片5. 方式方式4软件触发选通软件触发选通p写入方式控制字后,写入方式控制字后,OUT输出高电平。输出高电平。p写写入入初初值值,经经过过一一个个CLK脉脉冲冲开开始始减减1计计数数,计计到到0时时OUT输输出为低电平,持续一个出为低电平,持续一个CLK脉冲周期后再恢复到高电平。脉冲周期后再恢复到高电平。nGATE=1时时,允允许许计计数数;GATE=0,禁禁止止计计数数,并并把把输输出出维维持持在当时的电平。在当时的电平。n
37、如如果果GATE=1时时在在计计数数过过程程中中改改变变计计数数值值,则则在在写写入入新新值值后后的的下下一个时钟下降沿计数器立即按新的初值开始计数。一个时钟下降沿计数器立即按新的初值开始计数。55微型计算机第05章接口芯片图图5-15方式方式456微型计算机第05章接口芯片6. 方式方式5硬件触发选通硬件触发选通 p写入写入8254方式字后,方式字后,OUT输出高电平。输出高电平。p写写入入计计数数初初值值后后,计计数数器器并并不不立立即即开开始始计计数数,在在GATE端端输输入入上升沿触发信号后,计数开始。上升沿触发信号后,计数开始。p计计数数器器减减到到0时时,输输出出一一个个持持续续时
38、时间间为为一一个个时时钟钟周周期期的的负负脉脉冲冲,然然后后输输出出恢恢复复为为高高电电平平,并并自自动动装装入入初初值值,等等待待下下一一个个GATE触发信号。触发信号。57微型计算机第05章接口芯片图图5-16方式方式558微型计算机第05章接口芯片7.8254的的6种工作方式的比较种工作方式的比较方方式式功功能能输出波形输出波形0计数器计数器写入初值后经写入初值后经N+1个时钟周期个时钟周期OUT变高变高1可重触发的单可重触发的单稳态触发器稳态触发器输出宽度为输出宽度为N个时钟周期的负脉冲个时钟周期的负脉冲2分频器分频器每隔每隔N-1个时钟周期,输出个时钟周期,输出1个时钟周期的负个时钟
39、周期的负脉冲脉冲3方波信号发生方波信号发生器器输出占空比为输出占空比为1/2或(或(N+1)/(2N)的连续的连续方波方波4软件触发选通软件触发选通写入初值后经写入初值后经N个时钟周期,输出个时钟周期,输出1个时钟周个时钟周期的负脉冲期的负脉冲5硬件触发选通硬件触发选通门控信号触发后经门控信号触发后经N个时钟周期,输出个时钟周期,输出1个时个时钟周期的负脉冲钟周期的负脉冲59微型计算机第05章接口芯片5.2.3 8254的控制字与初始化的控制字与初始化p8254是可编程接口芯片,使用前必须先对它进行初始是可编程接口芯片,使用前必须先对它进行初始化编程。化编程。p8254的初始化编程有以下两个步
40、骤:的初始化编程有以下两个步骤:(1)向)向8254写入控制字,用于确定所选通道的工作方式和计写入控制字,用于确定所选通道的工作方式和计数格式。数格式。(2)向)向8254的通道写入计数初值。每个通道在写入控制字和的通道写入计数初值。每个通道在写入控制字和计数初值之后开始工作。计数初值之后开始工作。60微型计算机第05章接口芯片1.8254的方式控制字的方式控制字0二进制二进制1BCDD D0 0 D D7 7 D D6 6 D D5 5 D D4 4 D D3 3 D D2 2 D D1 1 读读/写格式写格式00:数据锁存命令数据锁存命令01:只读只读/写低字节写低字节10:只读只读/写高
41、字节写高字节11:先先读读/写写低低字字节节,后读后读/写高字节写高字节方式选择方式选择000:方式方式0001:方式方式1X X10:方式方式2X11:方式方式3100:方式方式4101:方式方式5计数器选择计数器选择00:选择计数器选择计数器001:选择计数器选择计数器110:选择计数器选择计数器211:读出控制字读出控制字61微型计算机第05章接口芯片(1)D7、D6:通道选择位:通道选择位D7D6两位为两位为00,01,10分别选择三个计数通道,分别选择三个计数通道,为为11选择控制寄存器,用于读出控制寄存器内容。选择控制寄存器,用于读出控制寄存器内容。(2)D5、D4:读:读/写方式
42、选择位写方式选择位D5D4=00,锁存计数器的当前计数值,以便读出。锁存计数器的当前计数值,以便读出。D5D4=01,写入时,只写入计数初值低写入时,只写入计数初值低8位,高位,高8位置位置0;读出时,只读出低读出时,只读出低8位的当前计数值。位的当前计数值。D5D4=10,写入时,只写入计数初值高写入时,只写入计数初值高8位,低位,低8位置位置0;读出时,只读出高读出时,只读出高8位的当前计数值。位的当前计数值。D5D4=11,计数初值为计数初值为16位,分两次读位,分两次读/写入计数初值写入计数初值寄存器,先读寄存器,先读/写低写低8位,后读位,后读/写高写高8位。位。62微型计算机第05
43、章接口芯片(3)D3D2D1: 工作方式选择位工作方式选择位D3D2D1取值取值000到到101分别代表方式分别代表方式0到方式到方式5。(4)D0:计数格式选择位:计数格式选择位D0=0,按二进制格式计数;按二进制格式计数;D0=1,按按BCD码格式计数。码格式计数。63微型计算机第05章接口芯片2. 8254的读出控制字的读出控制字p读读出出控控制制字字D7D6必必须须为为11,D0必必须须为为0,这这三三位位合合起起来来构构成成8254的读出控制字的标志。的读出控制字的标志。pD5=0锁存计数值,以便锁存计数值,以便CPU读取;读取;pD4=0将状态信息锁存进状态寄存器;将状态信息锁存进
44、状态寄存器;11D5D4D3D2D10标志标志0=锁锁 存存 计计数值数值0=锁锁存存状状态态1=选选 中中 计计数器数器21=选选 中中 计计数器数器11=选选 中中 计计数器数器064微型计算机第05章接口芯片3. 8254的状态字的状态字pD7 =1表表示示OUT端端当当前前输输出出高高电电平平,D7=0表表示示OUT端端当当前前输出低电平输出低电平pD6=0,代表已装入初值,读取的计数值有效。代表已装入初值,读取的计数值有效。pD5 D0各各位位是是由由方方式式控控制制字字确确定定的的,与与方方式式控控制制字字的的对对应应位位相同。相同。65微型计算机第05章接口芯片图图5-19825
45、4的状态字的状态字D7D6D5D4D3D2D1D0OUTPUTNULLCOUNTRW1RW0M2M1M0BCD1=本本 计计 数数 器器OUT引脚为引脚为10=本本 计计 数数 器器OUT引脚为引脚为01=无效计数无效计数0=计数值有效计数值有效由控制字设定的计数器工作方式由控制字设定的计数器工作方式66微型计算机第05章接口芯片4. 8254初始化编程初始化分为两步:初始化分为两步:p向向控控制制寄寄存存器器写写入入方方式式控控制制字字,确确定定所所要要使使用用的的计计数数器器的的工作方式;工作方式;p向使用的计数器写入计数初值。向使用的计数器写入计数初值。67微型计算机第05章接口芯片例例
46、5-15-1: 某某微微机机系系统统中中8254的的端端口口地地址址为为40H43H,要要求求计计数数器器0工工作作在在方方式式0,计计数数初初值值为为0DEH,按按二二进进制制计计数数;计计数数器器1工工作作在在方方式式2,计计数数初初值值为为1000D,按按BCD码码计计数数。试试写写出出初始化程序段。初始化程序段。按要求计数器按要求计数器0的控制字为:的控制字为:68微型计算机第05章接口芯片计数器计数器1的控制字为:的控制字为:69微型计算机第05章接口芯片初始化程序如下:初始化程序如下:MOVAL,10H;写通道写通道0控制字控制字OUT43H,ALMOVAL,0DEH ;写通道写通
47、道0计数初值计数初值OUT40H,ALMOVAL,65H;写通道写通道1控制字控制字OUT43H,ALMOVAL,10H;写通道写通道1计数初值计数初值OUT41H,AL70微型计算机第05章接口芯片例例5-2: 设设8254端端口口地地址址为为3FF0H3FF3H,要要求求计计数数器器2工工作作在在方式方式5,二进制计数,初值为,二进制计数,初值为2F30H。71微型计算机第05章接口芯片初始化程序如下:初始化程序如下:MOVDX,3FF3H;DX指向控制端口指向控制端口MOVAL,0BAH;控制字控制字OUTDX,ALMOVDX,3FF2H;DX指向通道指向通道2MOVAL,30H;写初值
48、低写初值低8位位OUTDX,ALMOVAL,2FH;写初值高写初值高8位位OUTDX,AL72微型计算机第05章接口芯片5.2.4 8254 的应用的应用1. 8254控制扬声器控制扬声器两种方法使扬声器发声:两种方法使扬声器发声:(1)将将PB0置置为为0,关关闭闭Timer2,将将PB1交交替替置置为为1/0,使扬声器发声;使扬声器发声;(2)将将PB0、PB1均均置置为为1,使使“Timer2”工工作作,产产生生固固定频率的信号使扬声器发声。定频率的信号使扬声器发声。73微型计算机第05章接口芯片SOUNDPROCPUSHAX;保护现场保护现场PUSHCXMOVAL,10110110BO
49、UT43H,AL;设置设置Timer2为工作方式为工作方式3MOVAL,DL;设置设置Timer2时间常数,时间常数, ;控制;控制OUT2输出频率输出频率OUT42H,ALMOVAL,DHOUT42H,ALINAL,61H;读读61H端口端口“当前值当前值”ORAL,00000011B ;使使PB0=1, ,PB1=1, ,开启扬声器开启扬声器OUT61H,AL74微型计算机第05章接口芯片TRIG:MOVCX,0LOOP $DECBXJNZTRIG;延时,控制发声时间延时,控制发声时间INAL,61HANDAL,11111100B;使使GATE2=0, ; 停停Timer2,停止发声停止发
50、声OUT61H,ALPOPCX;恢复现场恢复现场POPAXRETSOUNDENDP75微型计算机第05章接口芯片2. PWM脉宽调制脉宽调制p在在工工业业生生产产和和仪仪器器、仪仪表表中中,经经常常需需要要对对交交、直直流流电电机机进进行行转转速速的调节。的调节。pPWM(脉冲宽度调节)实现调速容易,调速准确。脉冲宽度调节)实现调速容易,调速准确。p可可以以用用8254来来定定时时,输输出出周周期期固固定定、占占空空比比可可变变的的PWM脉脉冲冲信号。信号。如图如图5-21:计数器计数器0工作在方式工作在方式2,产生固定宽度的脉冲信号。,产生固定宽度的脉冲信号。计计数数器器1工工作作在在方方式
51、式1,把把OUT0用用作作GATE1。OUT1用用作作PWM脉冲。脉冲。PWM脉冲周期由计数器脉冲周期由计数器0决定,宽度由计数器决定,宽度由计数器1决定。决定。76微型计算机第05章接口芯片图图5-2177微型计算机第05章接口芯片PWM波形设计:波形设计:p8254工作时钟频率工作时钟频率2MHz(时钟周期时钟周期0.5s)pPWM周期周期T=5ms:周期信号由计数器周期信号由计数器0控制输出:方式控制输出:方式2,计数初值,计数初值5ms/0.5s =10000。p PWM脉冲宽度由计数器脉冲宽度由计数器1控制产生:控制产生:方式方式1,计数值为,计数值为N时(时(010000),低电平
52、时间为),低电平时间为0.5sN,输出有效电压为最大值的(输出有效电压为最大值的(10000-N)/10000。78微型计算机第05章接口芯片PWM程序:程序:MOV DX,0243H;8254控制口地址送控制口地址送DXMOV AL,34H;计数器计数器0,方式,方式2,写,写16位位OUT DX,AL ;控制字写入计数器控制字写入计数器0控制寄存器控制寄存器MOV AL,72H;计数器计数器1,方式,方式1,写,写16位位OUT DX,AL ;控制字写入计数器控制字写入计数器1控制寄存器控制寄存器MOV DX,0240H;8254计数器计数器0地址送地址送DXMOV AX,10000;计数
53、器计数器0的计数初值的计数初值OUT DX,AL;写入初值低写入初值低8位位MOVAL,AH;计数器计数器0的计数初值高的计数初值高8位位OUT DX,AL;写入初值高写入初值高8位位MOVDX,0241H;8254计数器计数器1口地址送口地址送DXMOVAX,N ;计数器计数器1的计数初值的计数初值OUT DX,AL;写入初值低写入初值低8位位MOVAL,AH;计数器计数器1的计数初值高的计数初值高8位位OUT DX,AL;写入初值高写入初值高8位位79微型计算机第05章接口芯片3. 电机转速测量电机转速测量p在电机轴安装一个转盘,上面有在电机轴安装一个转盘,上面有8个均匀分布的小孔。个均匀
54、分布的小孔。p转转盘盘上上的的小小孔孔转转到到发发光光源源位位置置时时,光光透透过过小小孔孔使使光光电电二二极极管导通,产生一个正脉冲。管导通,产生一个正脉冲。p记录单位时间内脉冲的个数,可以得到电机的转速。记录单位时间内脉冲的个数,可以得到电机的转速。80微型计算机第05章接口芯片使用8254进行电机转速测量的电路:图图5-2281微型计算机第05章接口芯片测速方法:测速方法:通道通道0对脉冲进行计数,以方式对脉冲进行计数,以方式0工作工作通道通道1产生定时信号,工作在方式产生定时信号,工作在方式3基准时钟频率基准时钟频率250KHz,每定时每定时0.1秒钟产生一次秒钟产生一次中断,则计数初
55、值为中断,则计数初值为25000。设设0.1秒钟内计数脉冲数为秒钟内计数脉冲数为COUNT,转速:转速:N=COUNT10608=COUNT75(转转/分分)82微型计算机第05章接口芯片测速程序:测速程序:DATASEGMENTCOUNTDW?SPEED DW?DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOVDS,AX;设置计数器;设置计数器0、1的工作方式的工作方式 MOV DX,0243H;8254控制口地址送控制口地址送DX MOV AL,30H ;计数器计数器0:方式方式0,16位读写位读写 OUT DX,A
56、L;写计数器写计数器0控制字控制字 83微型计算机第05章接口芯片MOVAL,74H;计数器计数器1,方式,方式2,OUTDX,AL;控制字写入计数器控制字写入计数器1控制寄存器控制寄存器;设置计数器;设置计数器0、1的初值的初值MOVDX,0240H;计数器计数器0端口地址送端口地址送DXMOVAL,00H;计数器计数器0的计数初值的计数初值MOVDX,AL;写入初值低写入初值低8位位MOVDX,AL;写入初值高写入初值高8位位MOVDX,0241H;计数器计数器1端口地址送端口地址送DXMOVAX,25000 ;定时定时0.1秒,计数初值为秒,计数初值为25000 OUTDX,AL;写入初
57、值低写入初值低8位位MOVAL,AHOUTDX,AL;写入初值高写入初值高8位位MOVSIGNAL,0;标志单元清标志单元清084微型计算机第05章接口芯片;装载中断向量装载中断向量, 清屏蔽位清屏蔽位, 开放中断开放中断, ;计算转速;计算转速MOV AX,COUNT;取计数脉冲值取计数脉冲值NEGAXMOVBX,75 MULBX;计算转速计算转速MOV SPEED,AX ;保存转速保存转速;输出;输出/显示电机转速显示电机转速85微型计算机第05章接口芯片;定时中断程序;定时中断程序TIME_INTPROC FARPUSHDSPUSH AXPUSH DXSTI;开放中断开放中断 MOVAX
58、,DATAMOVDS,AXMOVAL,00H ;锁存计数器锁存计数器0计数值控制字计数值控制字MOVDX,0243H;控制寄存器地址送控制寄存器地址送DXOUTDX,ALMOVDX,0240H;计数器计数器0的端口地址送的端口地址送DXMOVAL,DX;读取低读取低8位数据位数据XCHGAL,AH 86微型计算机第05章接口芯片INAL,DX;读取高读取高8位数据位数据XCHGAH, ALMOVCOUNT,AX;计数脉冲数送计数脉冲数送COUNT;重新设置计数器重新设置计数器0 MOVDX,0243H;8254控制口地址送控制口地址送DXMOVAL,30H;计数器计数器0,方式,方式0,16位
59、位OUTDX,AL;写计数器写计数器0控制字控制字MOVDX,0240H;8254计数器计数器0地址送地址送DXMOVAX,0;计数器计数器0的计数初值的计数初值OUTDX,AL;写入初值低写入初值低8位位OUTDX,AL;写入初值高写入初值高8位位 87微型计算机第05章接口芯片;中断结束处理中断结束处理CLI;关闭中断关闭中断MOVAL, 20HOUT20H,AL;中断结束命令中断结束命令POPDXPOPAXPOPDSIRETTIME_INT ENDP CODEENDSENDSTART88微型计算机第05章接口芯片1. 8255A的方式选择控制字和的方式选择控制字和C口按位控制字的端口地址
60、是否一样,口按位控制字的端口地址是否一样,8255A怎样区分这两种控制字?写出怎样区分这两种控制字?写出A端口作为基本输入,端口作为基本输入,B端口作端口作为基本输出的初始化程序。为基本输出的初始化程序。2. 用用8255A的的A端口接端口接8位二进制输入,位二进制输入,B端口和端口和C端口各接端口各接8只发光只发光二极管显示二进制数。编写一段程序,把二极管显示二进制数。编写一段程序,把A端口的读入数据送端口的读入数据送B端口端口显示,而显示,而C端口的各位则采用置端口的各位则采用置0/置置1的方式显示的方式显示A端口的值。端口的值。3. 用用8255A用作两台计算机并行通信的接口电路,请画出
61、采用查询式用作两台计算机并行通信的接口电路,请画出采用查询式输入输入/输出方式工作的接口电路,并写出采用查询式输入输出方式工作的接口电路,并写出采用查询式输入/输出方式的输出方式的程序。程序。习题589微型计算机第05章接口芯片82558255用作两台计算机并行通讯接口用作两台计算机并行通讯接口90微型计算机第05章接口芯片4. 设设计计一一个个用用8255A作作为为8个个七七段段显显示示器器的的接接口口电电路路,并并设设计计一一个个把把内内存存地地址址为为ADDRA的的8个个数数字字在在这这8个个七七段段显显示示器器上上显显示的程序。示的程序。5. 8254的的定定时时/计计数数器器的的定定
62、时时与与计计数数方方式式有有什什么么区区别别?8254在在方方式式0工工作作时时,各各通通道道的的CLK、GATE信信号号有有什什么么作作用用?各各通通道的控制字地址都相同,道的控制字地址都相同,8254是怎样区分的?是怎样区分的?6. 设设8254的的端端口口地地址址为为0240H0243H,通通道道0的的输输入入CLK频频率率为为1MHz,为为使使通通道道0输输出出1KHz的的方方波波,编编写写初初始始化化程程序序。如如果果让让通通道道0与与通通道道1级级联联(即即OUT0接接CLK1)实实现现1秒秒钟定时,则初始化程序如何编制。钟定时,则初始化程序如何编制。7. 编编制制一一个个使使PC
63、机机的的8254产产生生600Hz方方波波的的程程序序,并并使使该该方方波波送至扬声器发声。送至扬声器发声。91微型计算机第05章接口芯片8. 在在RS-232C接接口口标标准准中中,引引脚脚TxD、RxD、RTS#、CTS#、DTR#、DSR#的功能各是什么?的功能各是什么?9. 16550的的通通信信控控制制寄寄存存器器中中的的寻寻址址位位有有什什么么作作用用?在在初初始始化化编编程时,应该怎样设置?程时,应该怎样设置?10. 编编写写PC机机中中16550采采用用查查询询方方式式输输入入50个个字字符符的的异异步步通通信信程程序序,设设16550的的端端口口地地址址为为3F8H3FFH,数数据据格格式式为为:8位位数数据据位位、1位位偶偶校校验验位位、2位位停停止止位位,通通信信速速率率为为19.2Kbps。92微型计算机第05章接口芯片