《可编程接口芯》ppt课件_第1页
《可编程接口芯》ppt课件_第2页
《可编程接口芯》ppt课件_第3页
《可编程接口芯》ppt课件_第4页
《可编程接口芯》ppt课件_第5页
已阅读5页,还剩86页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第5章章 可编程接口芯片可编程接口芯片5.1 可编程并行接口可编程并行接口8255A 5.2 可编程定时器可编程定时器/计数器计数器82545.3 串行通讯的根本概念串行通讯的根本概念5.4 可编程串行通讯接口可编程串行通讯接口165505.5 可编程串行通讯接口可编程串行通讯接口8251A5.1 可编程并行接口可编程并行接口8255A5.1.1 8255A的内部构造与外部引脚的内部构造与外部引脚三个数据端口三个数据端口A、B、C 三个三个8位的输入输出端口,可用指令将它们分别位的输入输出端口,可用指令将它们分别设置成输入或输出端口。设置成输入或输出端口。2. A组控制、组控制、B组控制组控

2、制 8255A将端口将端口A、B、C分为两组:端口分为两组:端口A和端口和端口C的高的高4位构成位构成A组,端口组,端口B和端口和端口C的低的低4位构成位构成B组。组。3. 数据总线缓冲器数据总线缓冲器 双向三态的双向三态的8位缓冲器,与系统数据总线衔接,位缓冲器,与系统数据总线衔接,是是8255A与与CPU之间信息传输的必经之路。之间信息传输的必经之路。 4. 读读/写控制逻辑写控制逻辑 管理管理8255A的数据传输过程。的数据传输过程。图图5-25. 8255A的引脚的引脚8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1P

3、B2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB5PB6PB4PB314020218255的引脚信号:的引脚信号:(1). 与与CPU衔接的信号线衔接的信号线D7D0:8255A的双向三态数据线。的双向三态数据线。A1、A0: 端口地址选择信号。端口地址选择信号。CS#:片选信号。:片选信号。RD#:读信号,低电平有效。:读信号,低电平有效。WR#:写信号,低电平有效。:写信号,低电平有效。RESET:复位信号。:复位信号。VCC、GND:电源和地线。:电源和地线。(2). 与外部设备相连的信号线与外部设备相连的信号线PA7PA0:A口与外部设备衔接的

4、数据线。口与外部设备衔接的数据线。PB7PB0:B口与外部设备衔接的数据线。口与外部设备衔接的数据线。PC7PC0:C口输入输出数据线。口输入输出数据线。5.1.2 8255A的控制字的控制字 1. 方式选择控制字方式选择控制字 8255A有三种根本任务方式:有三种根本任务方式:方式方式0:根本的输入:根本的输入/输出方式。输出方式。方式方式1:选通输入:选通输入/输出方式。输出方式。方式方式2:双向传输方式。:双向传输方式。8255A各数据端口的任务方式由方式选择控各数据端口的任务方式由方式选择控制字进展设置。制字进展设置。图图5-38255A方式选择控制字方式选择控制字D7位是方式选择控制

5、字的标志位,它必需是位是方式选择控制字的标志位,它必需是1;D6D5位用于选择位用于选择A口的任务方式;口的任务方式;D4、D3用于选择用于选择A口、口、C口高四位输入输出功能设置。口高四位输入输出功能设置。D2位用于选择位用于选择B口的任务方式。口的任务方式。端口端口A可任务在可任务在3种任务方式中的任何一种,端口种任务方式中的任何一种,端口B只只能任务在方式能任务在方式0或方式或方式1,端口,端口C那么经常配合端口那么经常配合端口A和端口和端口B任务。任务。只需端口只需端口A可任务在方式可任务在方式2。2. 端口端口C按位置位按位置位/复位控制字复位控制字 端口端口C有一种特殊的控制方式,

6、可以将端口有一种特殊的控制方式,可以将端口C的某一位置的某一位置1或清或清0,而不影响端口,而不影响端口C的其他的其他位的形状。位的形状。5.1.3 8255A的任务方式的任务方式1方式方式0 根本输入根本输入/输出方式输出方式1方式方式0的任务特点:的任务特点:A口和口和B口作为两个口作为两个8位端口位端口C口的高口的高4位和低位和低4位可以用作两个位可以用作两个4位端口位端口2方式方式0的运用场所:的运用场所:无条件传送无条件传送查询式传送查询式传送2方式方式1 选通输入选通输入/输出方式输出方式1方式方式1任务特点任务特点带有选通的输入带有选通的输入/输出方式。输出方式。端口端口A、端口

7、、端口B和端口和端口C被分为两个组。被分为两个组。端口端口A和端口和端口B用作用作8位数据的输入位数据的输入/输出,端口输出,端口C的一些引脚被规定为端口的一些引脚被规定为端口A、B的联络信号。的联络信号。2方式方式1联络信号联络信号IBFA、IBFB:输入缓冲区满信号,高电平有效。:输入缓冲区满信号,高电平有效。STBa#、STBb#:选通讯号输入,负脉冲。:选通讯号输入,负脉冲。OBFA # 、OBFB # :输出缓冲区满信号,低电平:输出缓冲区满信号,低电平有效。有效。ACKA # 、ACKB # :外设接纳到输出数据后给:外设接纳到输出数据后给8255A的应对信号,下降沿的应对信号,下

8、降沿/负脉冲有效。负脉冲有效。INTEA和和INTEB:端口:端口A和端口和端口B的中断允许信的中断允许信号。号。INTR:中断恳求信号,:中断恳求信号,8255A输出给输出给CPU。3方式方式1的运用的运用查询方式查询方式中断方式中断方式端口端口/工作工作方式方式联络线联络线输入输入输出输出A口方式1PC7OBFA #PC6ACKA# / INTEAPC5IBFAPC4STBA # / INTEAPC3INTRAINTRAB口方式1PC2STBB # / INTEBACKB# / INTEBPC1IBFBOBFB #PC0INTRBINTRB8255A芯片方式芯片方式1的联络信号的联络信号3

9、方式方式2 双向输入双向输入/输出方式输出方式1方式方式2任务特点任务特点方式方式2只适用于端口只适用于端口A,是双向的输入,是双向的输入/输出传输输出传输方式。方式。方式方式2下各信号含义见表下各信号含义见表5-3,其中:,其中: INTE1:输出中断允许信号。:输出中断允许信号。 INTE2:输入中断允许信号。:输入中断允许信号。2方式方式2的运用场所的运用场所联络线联络线联络信号联络信号信号含义信号含义PC7OBFA #A口输出缓冲器满PC6ACKA# / INTE1A口收到外设应答信号输出中断允许PC5IBFAA口输入缓冲器满PC4STBA # / INTE2A口外设数入选通信号输入中

10、断允许PC3INTRA中断请求信号PC2I/O数据线或B组联络线PC1I/O数据线或B组联络线PC0I/O数据线或B组联络线8255芯片方式芯片方式2的联络信号的联络信号5.1.4 8255A的运用的运用1. 8255A与与CPU的衔接的衔接 数据线和控制线普通直接和系统总线的数据线和控制线普通直接和系统总线的相应信号相连相应信号相连片选信号和地址译码器的输出相连片选信号和地址译码器的输出相连三个端口的数据线和外设的数据线直接三个端口的数据线和外设的数据线直接相连相连8255A的端口选择信号的端口选择信号A1和和A0,8088CPU与与8086CPU在衔接上有所不在衔接上有所不同同图图5-52

11、. 8255A根本输入输出运用根本输入输出运用作为键盘接口:作为键盘接口: “反转法进展键盘扫描:反转法进展键盘扫描:设设8255A8255A为方式为方式0 0,A A口输出,口输出,B B口输入;口输入;向向A A口输出口输出00H00H,从,从B B口读入键盘列线值:口读入键盘列线值:低低4 4位值为位值为0FH0FH:无键按下:无键按下否那么,就有键按下否那么,就有键按下有键按下时,将有键按下时,将8255A8255A反向设置为反向设置为A A口输入,口输入,B B口输出口输出将将B B口原读入值从口原读入值从B B口输出口输出从从A A口输入,得到该键的口输入,得到该键的“行列码行列码

12、“反转法键盘扫描程序:反转法键盘扫描程序:KEYSCAN PROC NEARBEGIN:MOVDX,20EH ;置;置8255A控制口地控制口地址址MOV AL,82H;8255A方式控制字方式控制字 ;A口任务在方式口任务在方式0输出,输出,B口任务在方口任务在方式式0输入输入OUT DX,AL;输出;输出8255A方式控制字方式控制字LOOP1:MOVDX,208H ;A口地址送口地址送DXMOV AL,00HOUT DX,AL;A口输出口输出00H扫描键盘扫描键盘MOV DX,20AH;B口地址送口地址送DX中中INAL,DX;读入键盘列值;读入键盘列值AND AL,0FH;保管低;保管

13、低4位位CMP AL,0FHJELOOP1;无键按下,重新扫描;无键按下,重新扫描CALL DELAY;有键按下,延时去抖动;有键按下,延时去抖动INAL,DX ;再次读;再次读B口,检查有无键按下口,检查有无键按下ANDAL,0FH;保管低;保管低4位位CMP AL, 0FHJELOOP1;无键按下,重新扫描;无键按下,重新扫描MOV KEY,AL;有键按下,列值保管在;有键按下,列值保管在KEY单元单元MOV DX,20EH;置;置8255A控制口地址控制口地址MOV AL,90H;8255A方式控制字方式控制字; B口方式口方式0输出,输出,A口方式口方式0输入输入OUTDX,AL;输出

14、;输出8255A方式控制字方式控制字MOV DX,20AH;B口地址送口地址送DX中中MOV AL,KEY;从;从KEY单元取出列值单元取出列值OUTDX,AL;向;向B口输出列值,反向扫描口输出列值,反向扫描MOV DX,208H;A口地址送口地址送DXINAL,DX;从;从A口读入行值口读入行值ANDAL,1FH;保管低;保管低5位位CMP AL, 1FHJEBEGIN;无键按下,重新扫描;无键按下,重新扫描CALL KEYVALUE;转键值处置程序:查表获得按键编码,保管;转键值处置程序:查表获得按键编码,保管MOV DX,20AH;B口地址送口地址送DX中中MOV AL, 0OUTDX

15、,AL;向;向B口输出列值,反向扫描口输出列值,反向扫描MOV DX,208H;A口地址送口地址送DXWAIT2:INAL,DX;从;从A口读入行值口读入行值ANDAL,1FH;保管低;保管低5位位CMP AL, 1FHJNEWAIT2;未释放,等待;未释放,等待RETKEYSCANENDP82558255方式方式0 0运用运用-用作打印机接口用作打印机接口8086微处理器D0D7PA0PA78255APC0PC4STBBUSY打印机D0D73. 8255A中断方式运用中断方式运用8255A的的A口任务在方式口任务在方式1输出方式,用输出方式,用以传送打印字符。以传送打印字符。PC6自动作为自

16、动作为ACK#信号输入端信号输入端PC0用来发送选通脉冲用来发送选通脉冲PC3INTR连到中断控制器连到中断控制器 8259A的的IR3,对应中断类型码为,对应中断类型码为0BH8255A的端口地址为的端口地址为0C0H0C6H。中断方式实现中断方式实现26个英文字母的输出。个英文字母的输出。图图5-7.dataBUFFER DB “abcdefghijklmnopqrstuvwxyz,0dh,0ahOUT_POINTERDW?;缓冲区输出指针;缓冲区输出指针DONEDB?;完成标志,;完成标志, =1表示已输出完成表示已输出完成.codeSTART:MOV AX,SEG LPRINTMOV

17、DS,AXLEADX,LPRINTMOV AX,250BHINT21H;设置;设置0BH中断向量中断向量MOV AX,dataMOV DS,AX;装载;装载DSLEABX,BUFFERMOVOUT_POINTER, BX;设置输出缓冲区指针;设置输出缓冲区指针MOVDONE, 0;设置未完成标志;设置未完成标志MOV AL,0A0HOUT0C6H,AL;8255A的方式选择字,的方式选择字,A口任务在方式口任务在方式1,输出,输出MOVAL,1OUT0C6H,AL;PC0置为置为1,使选通无效,使选通无效MOVAL, 0DHOUT0C6H,AL;使;使PC6为为1,允许,允许8255A的打印机

18、中断的打印机中断INAL, 21HANDAL,11110111BOUT21H,AL;清;清8259的的IR3屏蔽,允许打印机中断屏蔽,允许打印机中断STI;开中断;开中断INT0BH;调用;调用0BH中断效力程序输出第一个字符中断效力程序输出第一个字符WAIT1:CMPDON E,0JEWAIT1;未完成,循环等待;未完成,循环等待MOVAX, 4C00HINT21H ;打印完成,前往操作系统;打印完成,前往操作系统;以下为中断效力子程序:以下为中断效力子程序:LPTINTPROCFARPUSHDS;维护现场;维护现场PUSHAXPUSHDISTI;开放中断;开放中断MOVAX,SEGBUFF

19、ER;装载输出缓冲区指针;装载输出缓冲区指针MOVDS,AX MOVDI,OUT_POINTERMOVAL, DI OUT0C0H,AL;字符送;字符送A口口MOVAL,0;使;使PC0为为0,产生选通讯号,产生选通讯号OUT0C6H,ALCALLDelay;适当延时;适当延时INCAL;使;使PC0为为1,吊销选通讯号,吊销选通讯号OUT0C6H,ALINCOUT_POINTER;修正地址指针;修正地址指针CMPBYTE PTRDI, 0AH JNENEXTMOVDONE, 1;已完成,置完成标志;已完成,置完成标志MOVAL, 0CHOUT0C6H,AL;使;使PC6为为0,封锁,封锁82

20、55A的打印机中断的打印机中断INAL,21H ORAL,00001000BOUT21H,AL;重新屏蔽;重新屏蔽8259的的IR3 ,封锁,封锁8259A的打印机中断的打印机中断NEXT:CLI;中断终了处置,封锁中断;中断终了处置,封锁中断MOVAL,20HOUT20H,AL;向;向8259A发发EOI命令命令POPDI;恢复现场;恢复现场POPAXPOPDS IRETLPRINTENDPENDSTART 4. 8255A在在PC机中的运用机中的运用早期的早期的PC/XT微机系统微机系统8088CPU运运用一片用一片8255A,系统分配的端口地址,系统分配的端口地址为为60H63H,任务在

21、根本输入,任务在根本输入/输出方输出方式。式。A口用作键盘接口电路,接纳串并转换后口用作键盘接口电路,接纳串并转换后的键盘扫描码。的键盘扫描码。B口的口的PB7和和PB6用于控制键盘接口电路,用于控制键盘接口电路,PB1和和PB0用于控制发声系统。用于控制发声系统。C口衔口衔接接“系统配置开关。系统配置开关。80286以上的微机系统中,以上的微机系统中,8255A的对应的对应电路被集成到多功能芯片内部,保管电路被集成到多功能芯片内部,保管了了8255A的端口地址和它的相应功能。的端口地址和它的相应功能。5.2 可编程定时器可编程定时器/计数器计数器8254 计算机系统中经常要用到定时信号,如定

22、时检测、计算机系统中经常要用到定时信号,如定时检测、定时扫描和时钟定时等,定时方法通常有以下三定时扫描和时钟定时等,定时方法通常有以下三种:种: 1软件定时软件定时 2不可编程的硬件定时不可编程的硬件定时 3可编程的硬件定时可编程的硬件定时 许多场所还需求对脉冲信号进展计数。许多场所还需求对脉冲信号进展计数。 本节引见本节引见Intel 8254定时计数器芯片,它是一定时计数器芯片,它是一种的可编程的定时器件。种的可编程的定时器件。Intel 8254主要特性:主要特性:13个独立的个独立的16位定时位定时/计数通道。计数通道。2每个通道有每个通道有6种任务方式。种任务方式。3最高计数频率为最

23、高计数频率为10MHz。4可以按二进制或可以按二进制或BCD码两种方式计数。码两种方式计数。5定时时间长短可用软件设置,可由软件定时时间长短可用软件设置,可由软件或硬件控制开场计数或停顿计数。或硬件控制开场计数或停顿计数。6可以同时锁存可以同时锁存13个计数器的计数值和形个计数器的计数值和形状值,供状值,供CPU读取。读取。5.2.1 8254的内部构造与外部引脚的内部构造与外部引脚计数器0#计数器1#计数器2#CLK0GATE0OUT0数据总线缓冲器读/写逻辑控制寄存器WRRDA1A0CSGNDVCCD0D7CLK1GATE1OUT1CLK2GATE2OUT2数据总线缓冲器数据总线缓冲器82

24、54与系统数据总线相连的接口电路。与系统数据总线相连的接口电路。 经过数据总线缓冲器,经过数据总线缓冲器,CPU用指令对用指令对8254进展读进展读/写:写: 18254初始化编程时,写入控制字。初始化编程时,写入控制字。 2CPU向某一计数器写入计数初值。向某一计数器写入计数初值。 3CPU读出计数器的当前计数值。读出计数器的当前计数值。2. 读读/写控制逻辑写控制逻辑接纳来自接纳来自CPU的控制信号:的控制信号: 读信号读信号RD# 写信号写信号WR# 片选信号片选信号CS# 芯片内部存放器寻址信号芯片内部存放器寻址信号A1A03计数器计数器028254有有3个构造完全一样的定时器个构造完

25、全一样的定时器/计数器通道计数器通道: 0,1,2每个通道包含每个通道包含:一个一个8位的控制字存放器位的控制字存放器三个三个16位的初值存放器、减位的初值存放器、减1计数器和结果输计数器和结果输出锁存器。出锁存器。每个通道有每个通道有3根公用的信号线:根公用的信号线:CLK:计数:计数/定时脉冲输入端,每输入一个脉定时脉冲输入端,每输入一个脉冲,减冲,减1操作操作OUT:计数值减到零时,由输出端:计数值减到零时,由输出端OUT输出输出终了信号终了信号GATE:门控信号,允许或停顿计数:门控信号,允许或停顿计数图图5-9CLK脉冲:脉冲:8254作外部事件计数器时,作外部事件计数器时,CLK引

26、脚上的计数脉冲引脚上的计数脉冲从外部输入,这些脉冲的间隔可以不相等。从外部输入,这些脉冲的间隔可以不相等。8254用作定时器时,用作定时器时,CLK引脚的输入信号是准确的引脚的输入信号是准确的时钟脉冲。时钟脉冲。8254的定时时间的定时时间T时钟脉冲周期时钟脉冲周期tc计数初值计数初值n4. 控制存放器控制存放器 控制存放器是一个只能写入的存放器,它接纳控制存放器是一个只能写入的存放器,它接纳从从CPU来的控制字,并由控制字的来的控制字,并由控制字的D7、D6位的编码决议控制字写入哪个计数器的控位的编码决议控制字写入哪个计数器的控制存放器。制存放器。在对在对8254进展编程时,进展编程时,CP

27、U用输出指令向它写用输出指令向它写入控制字,由此确定各计数器通道的任务入控制字,由此确定各计数器通道的任务方式、读写格式和计数的数制。方式、读写格式和计数的数制。5. Intel 8254的引脚的引脚1CS#: 片选信号,接片选信号,接IO端口译码端口译码电路的输出电路的输出2RD#, WR#: 读写控制信号读写控制信号3D7D0: 数据线,与系统数据总线数据线,与系统数据总线相连相连4A1A0 接地址总线低接地址总线低2位,用于片内位,用于片内端口的选择。端口的选择。A1A0=00,选择通道,选择通道0;A1A0=01,选择通道,选择通道1;A1A0=10,选,选择通道择通道2;A1A0=1

28、1,选择控制端口。,选择控制端口。5每个通道有三根对外的信号线:每个通道有三根对外的信号线:CLK,OUT 和和 GATE。图图5-105.2.2 8254的任务方式的任务方式每个通道有六种可选择的任务方式:每个通道有六种可选择的任务方式: 1. 方式方式0 计数器方式计数器方式 写入方式写入方式0控制字后,输出控制字后,输出OUT立刻变为立刻变为低电平,且在计数过程中不断维持低低电平,且在计数过程中不断维持低电平。电平。赋初值后,在每个赋初值后,在每个CLK时钟下降沿,计时钟下降沿,计数器进展减数器进展减1计数。计数。计数值减到零时,计数值减到零时,OUT输出变为高电平,输出变为高电平,并且

29、不断坚持到该通道重新装入计数并且不断坚持到该通道重新装入计数初值或重新设置任务方式为止。初值或重新设置任务方式为止。GATE用于控制计数过程。用于控制计数过程。GATE为高电为高电平,允许计数;平,允许计数;GATE为低电平,暂为低电平,暂停计数。停计数。图图5-11 方式方式02. 方式方式1可重触发的单稳态触发器可重触发的单稳态触发器 门控信号门控信号GATE上升沿触发后,输出一个负脉上升沿触发后,输出一个负脉冲信号,脉冲宽度由计数初值冲信号,脉冲宽度由计数初值N决议决议写入控制字后,写入控制字后,OUT输出高电平;输出高电平;GATE上升沿到达后,上升沿到达后,OUT输出低电平,并在输出

30、低电平,并在CLK脉冲下降沿进展减脉冲下降沿进展减1计数;计数;计数值减到计数值减到0时,输出时,输出OUT恢复为高电平。恢复为高电平。计数终了后,假设再来一个计数终了后,假设再来一个GATE信号上升沿,信号上升沿,那么下一个时钟周期的下降沿又以上次写那么下一个时钟周期的下降沿又以上次写入的初值开场计数,不需求重新写入初值。入的初值开场计数,不需求重新写入初值。在计数过程中可以写入新的初值,它不会影响在计数过程中可以写入新的初值,它不会影响正在进展的计数过程。在下一个门控信号正在进展的计数过程。在下一个门控信号到来后,按新值开场计数。到来后,按新值开场计数。图图5-12方式方式13. 方式方式

31、2分频器分频器 写入控制字后,写入控制字后,OUT变成高电平。变成高电平。写 入 计 数 初 值 后 , 计 数 器 开 场 减写 入 计 数 初 值 后 , 计 数 器 开 场 减 1 计 数计 数(GATE=1) 。减到减到1时,输出端时,输出端OUT变为低电平,维持一个变为低电平,维持一个CLK周期,然后输出周期,然后输出OUT又变成高电平,又变成高电平,同时从初值开场新的计数过程。同时从初值开场新的计数过程。这种方式任务时,计数初值自动重装,计数器这种方式任务时,计数初值自动重装,计数器能延续任务,输出固定频率的脉冲,因此能延续任务,输出固定频率的脉冲,因此称为分频器。称为分频器。方式

32、方式2中,中,GATE信号为低电平常终止计数。信号为低电平常终止计数。GATE的上升沿使计数器恢复初值,并从初的上升沿使计数器恢复初值,并从初值开场计数。值开场计数。图图5-13 方式方式24. 方式方式3方波发生器方波发生器1计数初值为偶数计数初值为偶数写入控制字后,输出端写入控制字后,输出端OUT变成高电平变成高电平写入计数初值后计数器开场进展减写入计数初值后计数器开场进展减2计数计数减到减到0时,输出端时,输出端OUT改动输出极性,从初改动输出极性,从初值开场新的计数过程。值开场新的计数过程。2计数初值为奇数计数初值为奇数写入控制字后输出端写入控制字后输出端OUT变成高电平变成高电平写入

33、计数初值后开场减写入计数初值后开场减1计数计数减到减到N+1/2以后,输出端以后,输出端OUT变为低电变为低电平平减到减到0时,时,OUT又变成高电平,从初值开场又变成高电平,从初值开场新的计数过程。新的计数过程。GATE=1,允许计数,允许计数,GATE=0,制止计数。,制止计数。GATE信号能使计数过程重新开场。信号能使计数过程重新开场。图图5-14 方式方式35. 方式方式4软件触发选通软件触发选通写入方式控制字后,写入方式控制字后,OUT输出高电平。输出高电平。写入初值,经过一个写入初值,经过一个CLK脉冲开场减脉冲开场减1计数,计数,计到计到0时时OUT输出为低电平,继续一个输出为低

34、电平,继续一个CLK脉冲周期后再恢复到高电平。脉冲周期后再恢复到高电平。GATE=1时,允许计数;时,允许计数;GATE=0,制止计数,制止计数,并把输出维持在当时的电平。并把输出维持在当时的电平。假设假设GATE=1时在计数过程中改动计数值,那时在计数过程中改动计数值,那么在写入新值后的下一个时钟下降沿计数么在写入新值后的下一个时钟下降沿计数器立刻按新的初值开场计数。器立刻按新的初值开场计数。图图5-15 方式方式46. 方式方式5硬件触发选通硬件触发选通 写入写入8254方式字后,方式字后,OUT输出高电平。输出高电平。写入计数初值后,计数器并不立刻开场计数,写入计数初值后,计数器并不立刻

35、开场计数,在在GATE端输入上升沿触发信号后,计数开端输入上升沿触发信号后,计数开场。场。计数器减到计数器减到0时,输出一个继续时间为一个时时,输出一个继续时间为一个时钟周期的负脉冲,然后输出恢复为高电平,钟周期的负脉冲,然后输出恢复为高电平,并自动装入初值,等待下一个并自动装入初值,等待下一个GATE触发信触发信号。号。图图5-16 方式方式57. 8254的的6种任务方式的比较种任务方式的比较方方式式功功 能能输出波形输出波形0计数器计数器写入初值后经写入初值后经N+1N+1个时钟周期个时钟周期OUTOUT变高变高1可重触发的单可重触发的单稳态触发器稳态触发器输出宽度为输出宽度为N N个时

36、钟周期的负脉冲个时钟周期的负脉冲2分频器分频器每隔每隔N-1N-1个时钟周期,输出个时钟周期,输出1 1个时钟周期的负个时钟周期的负脉冲脉冲3方波信号发生方波信号发生器器输出占空比为输出占空比为1/21/2或或N+1N+1/ /2N2N的延续的延续方波方波4软件触发选通软件触发选通写入初值后经写入初值后经N N个时钟周期,输出个时钟周期,输出1 1个时钟周个时钟周期的负脉冲期的负脉冲5硬件触发选通硬件触发选通门控信号触发后经门控信号触发后经N N个时钟周期,输出个时钟周期,输出1 1个时个时钟周期的负脉冲钟周期的负脉冲5.2.3 8254的控制字与初始化的控制字与初始化8254是可编程接口芯片

37、,运用前必需先对它进是可编程接口芯片,运用前必需先对它进展初始化编程。展初始化编程。8254的初始化编程有以下两个步骤:的初始化编程有以下两个步骤:1向向8254写入控制字,用于确定所选通道的写入控制字,用于确定所选通道的任务方式和计数格式。任务方式和计数格式。2向向8254的通道写入计数初值。每个通道在的通道写入计数初值。每个通道在写入控制字和计数初值之后开场任务。写入控制字和计数初值之后开场任务。8254的方式控制字的方式控制字0 二 进二 进制制1 BCDD0 D0 D7 D7 D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 读读/写格式写格式00:数据锁存命数据

38、锁存命令令01:只读只读/写低字写低字节节10:只读只读/写高字写高字节节11:先读先读/写低字写低字节节 , 后读后读/写高字写高字节节方式选择方式选择000:方式方式0001:方式方式1X10:方式方式2X11:方式方式3100:方式方式4101:方式方式5计数器选择计数器选择00:选择计数器选择计数器001:选择计数器选择计数器110:选择计数器选择计数器211:读出控制字读出控制字1D7、D6:通道选择位:通道选择位D7D6两位为两位为00,01,10分别选择三个计数通道,分别选择三个计数通道, 为为11选择控制存放器,用于读出控制存放器内选择控制存放器,用于读出控制存放器内容。容。2

39、D5、D4:读:读/写方式选择位写方式选择位D5D4 =00,锁存计数器的当前计数值,以便读出。,锁存计数器的当前计数值,以便读出。D5D4=01,写入时,只写入计数初值低,写入时,只写入计数初值低8位,高位,高8位位置置0; 读出时,只读出低读出时,只读出低8位的当前计数值。位的当前计数值。D5D4=10,写入时,只写入计数初值高,写入时,只写入计数初值高8位,低位,低8位位置置0; 读出时,只读出高读出时,只读出高8位的当前计数值。位的当前计数值。D5D4=11,计数初值为,计数初值为16位,分两次读位,分两次读/写入计数初写入计数初值值 存放器,先读存放器,先读/写低写低8位,后读位,后

40、读/写高写高8位。位。3D3D2D1: 任务方式选择位任务方式选择位D3D2D1取值取值000到到101分别代表方式分别代表方式0到方式到方式5。4D0:计数格式选择位:计数格式选择位D0=0,按二进制格式计数;,按二进制格式计数;D0=1,按,按BCD码格式计数。码格式计数。2. 8254的读出控制字的读出控制字读出控制字读出控制字D7D6必需为必需为11,D0必需为必需为0,这三位合起来构成这三位合起来构成8254的读出控制字的的读出控制字的标志。标志。D5=0锁存计数值,以便锁存计数值,以便CPU读取;读取;D4=0将形状信息锁存进形状存放器;将形状信息锁存进形状存放器;11D5D4D3

41、D2D10标志标志0=锁存计锁存计数值数值0 = 锁 存锁 存形状形状1=选中计选中计数器数器21=选中计选中计数器数器11=选中计选中计数器数器0 3. 8254的形状字的形状字D7 =1表示表示OUT端当前输出高电平,端当前输出高电平,D7=0表示表示OUT端当前输出低电平端当前输出低电平D6=0,代表已装入初值,读取的计数值有,代表已装入初值,读取的计数值有效。效。D5 D0各位是由方式控制字确定的,与方各位是由方式控制字确定的,与方式控制字的对应位一样。式控制字的对应位一样。图图5-19 8254的形状字的形状字D7D6D5D4D3D2D1D0OUTPUTNULL COUNTRW1RW

42、0M2M1M0BCD1 = 本 计 数 器本 计 数 器OUT引脚为引脚为10 = 本 计 数 器本 计 数 器OUT引脚为引脚为01=无效计数无效计数0=计数值有效计数值有效由控制字设定的计数器任务方式由控制字设定的计数器任务方式4. 8254初始化编程初始化编程初始化分为两步:初始化分为两步:向控制存放器写入方式控制字,确定所要运用的向控制存放器写入方式控制字,确定所要运用的计数器的任务方式;计数器的任务方式;向运用的计数器写入计数初值。向运用的计数器写入计数初值。例例5-1: 5-1: 某微机系统中某微机系统中82548254的端口地址为的端口地址为40H40H43H43H,要求计数器要

43、求计数器0 0任务在方式任务在方式0 0,计数初值为,计数初值为0DEH0DEH,按二进制计数;计数器,按二进制计数;计数器1 1任务在方式任务在方式2 2,计数初值为,计数初值为1000D1000D,按,按BCDBCD码计数。试写码计数。试写出初始化程序段。出初始化程序段。按要求计数器按要求计数器0 0的控制字为:的控制字为:计数器计数器1的控制字为:的控制字为:D7=0 D6=1D5=1 D4=0D3=0 D2=1 D1=0D0=1计数器1只写高8位选工作方式2BCD计数初始化程序如下:初始化程序如下:MOV AL,10H;写通道;写通道0控制字控制字OUT43H,ALMOV AL,0DE

44、H ;写通道;写通道0计数计数初值初值OUT40H,ALMOV AL,65H;写通道;写通道1控制字控制字OUT43H,ALMOV AL,10H;写通道;写通道1计数初值计数初值OUT41H,AL例例5-2: 设设8254端口地址为端口地址为3FF0H3FF3H,要求计数器,要求计数器2任务在方式任务在方式5,二进制计数,初值为,二进制计数,初值为2F30H。初始化程序如下:初始化程序如下:MOVDX,3FF3H;DX指向控制端指向控制端口口MOVAL,0BAH;控制字;控制字OUTDX,ALMOVDX,3FF2H;DX指向通道指向通道2MOVAL,30H;写初值低;写初值低8位位OUTDX,

45、ALMOVAL,2FH;写初值高;写初值高8位位OUTDX,AL5.2.4 8254 的运用的运用1. 8254控制扬声器控制扬声器 两种方法使扬声器发声:两种方法使扬声器发声: 1 将将PB0置为置为0,封锁,封锁Timer2,将,将PB1交替置为交替置为1/0,使扬声器发声;使扬声器发声; 2将将PB0、PB1均置为均置为1,使,使“Timer2任务,产生固任务,产生固定频率的信号使扬声器发声。定频率的信号使扬声器发声。SOUNDPROCPUSHAX; 维护现场维护现场PUSHCXMOVAL, 10110110BOUT43H, AL; 设置设置Timer2为任务方式为任务方式3MOVAL,

46、 DL; 设置设置Timer2时间常数,时间常数, ;控制;控制OUT2输出频率输出频率OUT42H, ALMOVAL, DHOUT42H, ALINAL, 61H; 读读61H端口端口“当前值当前值ORAL, 00000011B ; 使使PB0=1,PB1=1,开启扬声器开启扬声器OUT61H, ALTRIG:MOVCX, 0LOOP $ DECBXJNZTRIG; 延时,控制发声时间延时,控制发声时间INAL, 61HANDAL, 11111100B; 使使GATE2=0, ; 停停Timer2,停顿发声,停顿发声OUT61H, ALPOPCX; 恢复现场恢复现场POPAXRETSOUND

47、ENDP2. PWM脉宽调制脉宽调制在工业消费和仪器、仪表中,经常需求对交、直流电机进在工业消费和仪器、仪表中,经常需求对交、直流电机进展转速的调理。展转速的调理。PWM脉冲宽度调理实现调速容易,调速准确。脉冲宽度调理实现调速容易,调速准确。可以用可以用8254来定时,输出周期固定、占空比可变的来定时,输出周期固定、占空比可变的PWM脉冲信号。脉冲信号。如图如图5-21:计数器计数器0任务在方式任务在方式2,产生固定宽度的脉冲信号。,产生固定宽度的脉冲信号。计数器计数器1任务在方式任务在方式1,把,把OUT0用作用作GATE1。OUT1用作用作PWM脉冲。脉冲。PWM脉冲周期由计数器脉冲周期由

48、计数器0决议,宽度由计数器决议,宽度由计数器1决议。决议。图图5-21PWM波形设计:波形设计:8254任务时钟频率任务时钟频率2MHz时钟周期时钟周期0.5sPWM周期周期T=5ms:周期信号由计数器周期信号由计数器0控制输出:方式控制输出:方式2,计,计数初值数初值5ms/0.5s =10000。 PWM脉冲宽度由计数器脉冲宽度由计数器1控制产生:控制产生:方式方式1,计数值为,计数值为N时时010000,低电平,低电平常间为常间为0.5sN,输出有效电压为最大值的,输出有效电压为最大值的10000-N/10000。PWM程序:程序:MOV DX,0243H;8254控制口地址送控制口地址

49、送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;计数器;计数器0的计数初值的计数初值OUT DX,AL;写入初值低;写入初值低8位位MOVAL,AH;计数器;计数器0的计数初值高的计数初值高8位位OUT DX,AL;写入初值高;写入初值高8位位MOVDX,02

50、41H;8254计数器计数器1口地址口地址送送DXMOVAX,N;计数器;计数器1的计数初值的计数初值OUT DX,AL;写入初值低;写入初值低8位位MOVAL,AH;计数器;计数器1的计数初值高的计数初值高8位位OUT DX,AL;写入初值高;写入初值高8位位3. 电机转速丈量电机转速丈量在电机轴安装一个转盘,上面有在电机轴安装一个转盘,上面有8个均匀分布个均匀分布的小孔。的小孔。转盘上的小孔转到发光源位置时,光透过小孔转盘上的小孔转到发光源位置时,光透过小孔使光电二极管导通,产生一个正脉冲。使光电二极管导通,产生一个正脉冲。记录单位时间内脉冲的个数,可以得到电机的记录单位时间内脉冲的个数,

51、可以得到电机的转速。转速。运用运用8254进展电机转速丈量的电路:进展电机转速丈量的电路:图图5-22测速方法:测速方法:通道通道0对脉冲进展计数,以方式对脉冲进展计数,以方式0任务任务通道通道1产生定时信号,任务在方式产生定时信号,任务在方式3基准时钟频率基准时钟频率250KHz,每定时,每定时0.1秒钟产生秒钟产生一次中断,那么计数初值为一次中断,那么计数初值为25000。设设0.1秒钟内计数脉冲数为秒钟内计数脉冲数为COUNT,转速:,转速: N=COUNT 10 608= COUNT75 (转转/分分)测速程序:测速程序:DATASEGMENTCOUNTDW?SPEEDDW?DATAE

52、NDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOVDS,AX;设置计数器;设置计数器0、1的任务方式的任务方式 MOVDX,0243H;8254控制口地控制口地址送址送DX MOVAL,30H ;计数器;计数器0:方式方式0,16位读写位读写 OUTDX,AL;写计数器;写计数器0控制字控制字 MOVAL,74H;计数器;计数器1,方式,方式2,OUTDX,AL;控制字写入计数器;控制字写入计数器1控制存放器控制存放器;设置计数器;设置计数器0、1的初值的初值MOVDX,0240H ;计数器;计数器0端口地址送端口地址送DXMOV

53、AL,00H;计数器;计数器0的计数初值的计数初值MOVDX,AL;写入初值低;写入初值低8位位MOVDX,AL;写入初值高;写入初值高8位位MOVDX,0241H ;计数器;计数器1端口地址送端口地址送DXMOVAX,25000 ;定时;定时0.1秒,计数初值为秒,计数初值为25000 OUTDX,AL;写入初值低;写入初值低8位位MOVAL,AHOUTDX,AL;写入初值高;写入初值高8位位MOVSIGNAL,0 ;标志单元清;标志单元清0;装载中断向量装载中断向量, 清屏蔽位清屏蔽位, 开放中断开放中断, ;计算转速;计算转速MOV AX,COUNT;取计数脉冲值;取计数脉冲值NEGAX

54、MOVBX,75 MULBX;计算转速;计算转速MOV SPEED,AX;保管转速;保管转速;输出;输出/显示电机转速显示电机转速;定时中断程序;定时中断程序TIME_INT PROC FARPUSHDSPUSH AXPUSH DXSTI;开放中断;开放中断 MOVAX,DATAMOVDS,AXMOVAL,00H ;锁存计数器;锁存计数器0计数值控制计数值控制字字MOVDX,0243H;控制存放器地址送;控制存放器地址送DXOUTDX,ALMOVDX,0240H;计数器;计数器0的端口地址的端口地址送送DXMOVAL,DX;读取低;读取低8位数据位数据XCHG AL,AH INAL,DX;读取高;读取高8位数据位数据XCHGAH, ALMOVCOUNT,AX;计数脉冲数送;计数脉冲数送CO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论