您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 08常用可编程并行接口芯片及应用
۞主要内容8.1可编程接口芯片的概念8.2计数器/定时器82538.3可编程并行接口8255A8.4可编程DMA控制器8237A۞学习要求1.掌握8253的编程应用2.掌握8255A的编程应用第八章可编程接口芯片及应用8.1可编程接口芯片的基本概念(1)CPU与I/O外设交换信息的方式有两种:①并行通信:数据各位同时向外传送。优点:传输速率快;缺点:传输多少位至少要多少根传输线,工程造价高。②串行通信:数据一位一位传送,通信双方沿单根线或双根线实现二进制序列传输称串行通信。优点:一根或两根线,线路简单,成本低,适用于远距离传输。缺点:传输速率慢。(2)可编程接口芯片①不可编程接口芯片,接口功能单一,用户不可改变。如74LS244、74LS273②可编程接口芯片,大多是多功能、多通道的。一个通道用户可定义为输入端口,也可以规定为输出端口。选择的方法是在芯片正式工作之前,编写一段程序写入该该芯片的控制寄存器中,用来选择不同的通道和不同的电路功能,使之按照人们所希望的方式工作,这个过程称为“初始化编程”。8.1可编程接口芯片的基本概念(3)多通道、多功能多通道:是指一个接口芯片一方面可与CPU相连,另一方面可连接多个外设。多功能:是指一个接口芯片能够实现多种接口功能,使接口芯片具有不同的电路工作状态。8.2计数器/定时器8253/8254定时及计数技术在计算机中具有很重要的作用。比如:定时采样、定时中断、定时启动电机等,这都需要一类定时及计数电路,因此微机系统都必须有定时技术。为获得稳定准确的定时,必须有准确稳定的时间基准(简称时基)。定时:本质是计数,把时间片加起来就获得一段时间。定时方式:软件或硬件件。软件定时:利用CPU执行指令需要若干指令周期的原理,运用软件编程,然后循环一段程序而产生延时,再配合简单接口可以向外发送定时控制信号。优点:不需增加硬件电路只需编制相应的延时子程序即可;缺点:占用CPU的工作时间,浪费CPU资源。硬件定时:硬件定时有专用的多谐振荡器件或单稳态触发器。缺点:改变定时要改变硬件。可编程通用定时器/计数器芯片:使用灵活,定时时间长,改变定时时间或工作方式只要改变编程控制参数即可。初始化编程后,就按设定的方式工作,不再占用CPU的时间。8.2.18253功能概述计数器0CNT0计数器1CNT1计数器2CNT2D7~D0RDWR0ACS0CLK0GATE0OUT1CLK1GATE1OUT2CLK2GATE2OUT主要功能特点:8253是可编程的计数定时器每个8253有三个独立的16位计数器通道,有六种工作方式可供选择。每个计数器可按二-十进制计数。每来一个脉冲计数器减1,当计数器减到0时,输出端OUT产生一个跳变。每个计数器可用作定时器,也可用作计数器。二者的本质都是基于计数器减1工作方式。所有输入/输出都与TTL电平兼容。8.2.2计数/定时的内部结构及工作原理控制寄存器初始值寄存器减1计数器计数输出寄存器状态寄存器CLKGATEOUT组成:控制寄存器——决定工作模式状态寄存器——反应工作状态初值寄存器——计数的初值计数输出寄存器——CPU从中读当前计数值计数器——执行计数操作,CPU不能访问每个计数器有三个引脚与外设相连:CLK——外脉冲输入端GATE——门控输入端OUT——计数器回零/时间到的信号输出端8.2.3计数/定时的工作原理工作原理:对CLK信号进行减1计数首先,CPU把控制字写入控制寄存器,计数初始值写入初值寄存器计数从初值开始,每当CLK信号出现一次,计数值减1当计数值减到0,从OUT端输出规定的信号CLK信号出现时,计数器是否减1,由门控信号GATE控制8.2.3计数/定时的工作原理CLK是计数输入信号,计数器对CLK端出现的脉冲个数进行计数•CLK端可以输入外部事件•CLK端可以接入固定频率的时钟信号,从而实现计时OUT信号在计数结束时发生变化•可将OUT作为外部设备的控制信号•可将OUT作为向CPU申请中断的信号CPU可以从计数输出寄存器读出当前计数值。读前,应向控制寄存器发送锁存命令8.2.48253的编程结构1片8253内部有三个计数器,结构完全相同8253的引脚如下图所示。DIP24,+5V电源。其内部结构和寻址方式见:P.388一片8253占用四个连续的端口地址,分别对应三个计数器CNT0、CNT1、CNT2和控制寄存器。每个计数器内部都有一个8位控制寄存器,三个控制寄存器共用一个端口,在编程结构图中画为一个。8253内部寄存器与地址码A1、A0的关系A1A000选中CNT0计数器进行读写01选中CNT1计数器进行读写10选中CNT2计数器进行读写11选中控制寄存器进行写8.2.48253的编程结构8.2.48253的编程结构8253控制字的格式每个计数器的初值寄存器(CR)、输出锁存器(OL)都是16位的,但它们对应相同的一个8位端口地址,所以16位的CR、OL作为两个8位寄存器读写,由控制寄存器控制读写高8位/低8位SC1SC0RW1RW0M2M1M0BCDD7D6D5D4D3D2D1D0:非法112数器:选101:010选择计数器:00择计选择计数器再读写高字节先读写低字节只读写高字节只读写低字节计数值锁存:11:10:01:005:1014:1003:112:101:0010:000方式方式方式方式方式方式码计数二进制计数BCD:1:08.2.58253的编程命令初始化①写入控制字②按控制字要求写入计数初值计数器初值计算:N=fCLK/fOUT=TOUT/TCLK例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器0,工作模式2,CR/OL仅使用低8位,初值为100,计数值使用二进制MOVAL,14HOUT73H,ALMOVAL,100OUT70H,AL8.2.58253的编程命令例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器2,工作模式1,CR/OL使用16位,初值为1234,计数值使用BCDMOVAL,B3HOUT73H,ALMOVAX,1234HOUT72H,ALMOVAL,AHOUT72H,AL8.2.58253的编程命令读出命令1)发出锁存命令,使当前计数值锁存在OL中2)读OL,获得当前计数值例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制寄存器端口地址73H。读出计数器0的当前计数值,放在BX中MOVAL,0HOUT73H,ALINAL,70HMOVBL,ALINAL,70HMOVBH,AL8.2.68253的工作模式工作模式决定以下内容:1)门控信号的影响高电平允许,当GATE=0,即使出现CLK,也不计数——模式0,2,3,4上升沿允许(上升沿触发)——模式1,52)OUT信号的状态写入控制字后,OUT的状态计数过程中,OUT的状态计数终了,OUT的状态3)计数操作可否重复不可重复——模式0,4自动重复——模式2,3条件重复——模式1,58.2.68253的工作模式六种工作模式详见P.230各种工作模式相同之处:控制字写入计数器,所有的控制逻辑电路立即复位,输出端OUT进入初始状态计数初始值写入(GATE上升沿)之后,要经过一个时钟周期,计数执行部件才可以开始进行计数操作。因为第一个下降沿将计数寄存器的内容送减1计数器在每个时钟脉冲CLK的上升沿,采样门控信号GATE在时钟脉冲的下降沿,计数器作减1计数注意区分的几点:不同的工作方式启动计数器工作的方式不同OUT输出波形不同GATE信号的作用不同本次计数过程中,GATE信号的改变对计数的影响本次计数过程中,写入计数初值对计数的影响8.2.68253的工作模式8.2.68253的工作模式方式0:计数初值写入CR后,OUT由0到1跳变出现在n+1个时钟脉冲之后延迟时间TD=(n+1)TCLK方式1:单脉冲宽度T=nTCLK方式2:对输入端n个时钟脉冲,在输出端仅出现一个时钟脉冲(负脉冲)——N分频计数器8.2.68253的工作模式方式(方波发生器)例:计数器工作模式3,计数器初值15,时钟脉冲频率为2MHz,确定OUT端输出方波的特性。解:TCLK=1/2MHz=500ns计数器初值15为奇数,输出分频波高电平宽度TCLK(N+1)/2=4s输出分频波低电平宽度TCLK(N-1)/2=3.5s方式4、5:触发后n+1个时钟脉冲之后输出端产生选通脉冲信号计数的启动方式0、2、3、4都是在写入计数初值之后,就开始计数的而方式1和方式5需要GATE端来外部触发脉冲(条件),才开始计数输出波形方式2、4、5的输出波形相似方式2、3的波形连续,方式3为方波方式1输出的是宽度为为N个CLK脉冲周期的低电平有效脉冲方式0在计数数过程中输出为低电平,计数结束时变为高电平8.2.78253计数器小结(1)8253工作方式小结门控信号GATE可以控制计数过程方式0、2、3、4是电平起作用,允许/禁止计数方式1、2、3、5是上升沿起作用,启动计数对方式2、3来说,GATE信号的电平、上升沿都可以起作用8.2.78253计数器小结8253的编程初始化编程①写入控制字②写入计数初值③计数初值=CLK脉冲频率/输出脉冲频率=定时时间(输出脉冲周期)/CLK周期操作编程①写入计数初值(新)②读取计数器的计数值③向计数器发锁存命令④读取计数器锁存的计数值8.2.78253计数器小结(2)8253的编程小结8253的工作模式举例例:计数器0工作模式4,初始化计数器,使装入计数器10s后产生选通信号(设时钟频率2MHz,8253端口地址为50H~53H)。解:n+1=T/TCLK=10/0.5=20n=19=13HMOVAL,18HOUT53H,ALMOVAL,13HOUT50H,AL8.2.88253的应用1.PC机中8253的应用计数器0:向系统日历时钟提供定时中断模式3,控制字36H,计数器初始值0计数器1:动态RAM刷新模式2,控制字54H,计数器初始值18(12H)计数器2:控制扬声器发声模式3,控制字B6H,计数器初始值1331(533H)PC机中,8253的端口地址为40H~43H8.2.88253的应用2.扬声器控制设计一个程序,使扬声器发出600Hz频率的声音,按下任意键声音停止PC机的发声系统以计数器2为核心。CLK2的输入频率1.19MHz,改变计数器初值可以由OUT2得到不同频率的方波输出对于600Hz,计数初值1.19MHz/600Hz=1938发声系统受8255芯片B口的两个输出端线PB0、PB1的控制PB0为1,使GATE2为1,计数器2能正常计数PB1为1,打开输出控制门8.2.88253的应用2.扬声器控制CODESEGMENTASSUMECS:CODESTART:INAL,61HORAL,03HOUT61H,ALMOVAX,1983OUT42H,ALMOVAL,AHOUT42,ALMOVAH,01HINT21HINAl,61HANDAL,0FCHOUT61H,ALMOVAH,4CHINT21HCODEENDSENDSTART8.2.88253的应用3.以2MHz输入8253,实现每5秒定时中断(设8253端口地址40H~43H)分析:8253最大初值65536,CLK=2MHz可实现最大时间间隔65536/(2106)=32.769ms所以需要两个计数器串联,一个计数器的输出作为另一个计数器的输入8.2.88253的应用计数器1:模式2,OUT1每5ms输出一个脉冲初值(2106)/(1/0.005)=10000计数器0:模式2,OUT0每5s输出一个脉冲初值(1/0.005)/(1/5)=1000OUT0GATE0CLK0OUT1GATE1CLK1+5V+5V2MHz每5秒产生一个脉冲程序:MOVAL,74HOUT43H,ALMOVAX,10000OUT41H,
本文标题:08常用可编程并行接口芯片及应用
链接地址:https://www.777doc.com/doc-3222460 .html