欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    [信息与通信]第8章 可编程接口芯片及其应用.ppt

    • 资源ID:2001126       资源大小:1.15MB        全文页数:100页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [信息与通信]第8章 可编程接口芯片及其应用.ppt

    第八章可编程接口芯片及其应用,8.1 可编程接口芯片概述 接口电路中的单元 (1)输入输出数据锁存器和缓冲器,用以解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用; (2)控制命令和状态寄存器,以存放CPU对外设的控制命令,以及外设的状态信息; (3)地址译码器,用来选择接口电路中的不同端口(寄存器); (4)读写控制逻辑; (5)中断控制逻辑。,接口中的一些公用引脚作用及其连接方法 1.片选概念 CS 或CE 2. 读/写概念 DB线,M/IO线 ,RD线 ,WR线 ,CE/CS线 3.可编程接口的概念 目前所用的接口芯片大部分是多通道、多功能的。所谓多通道就是指一个接口芯片一面与CPU连接, 另一面可接几个外设. 所谓多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。,4. “联络”的概念 STB: 选通信号; RDY: 就绪信号(Ready) 1) 以输入接口为例: RDY=“H”表示接口芯片中输入 寄 存器已 空,可接受外设信息以实现外设 与接口的输入操作。 STB=“L”表示接口选通,是外设向 接口发出的, 过程:1)外设把数据送上接口芯片端口后,用STB信号有效打人接口芯片输入寄存器; 2)在STB的后沿,把RDY信号拉 为“L”,表明输入寄存器已有数据。RDY=“L”正是接口与外设的通信标志,外设 接收RDY=”L”后,暂不送数据; 3)CPU发出读数指令,读人该数据,并使RDY置 “H”。然后,又开始新一轮的输入操作在输入接口中, RDY信号有时用IBF(输入缓冲器满)表示。,如是输出接口,则: RDY=“H”,表示接口寄存器已有数据,通知外设来取数; STB=“L”,表示端口数据已为外设接收,且已处理,CPU可送新数据到接口 寄存器,STB的后沿使RDY变为“L”。在输出接口中,RDY信号有时用OBF(输出 缓冲器满)表示,STB信号有时用ACK(响应)表示。,接口芯片的引脚,8.2 可编程并行接口芯片8255A,8.2.1 8255A的结构和引脚功能,1数据总线缓冲器 这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。 2三个8位端口PA、PB和PC PA、PB和PC端口都可由程序设定为各种不同的工作方式。 端口A(PA口)有一个8位数据输入锁存器和一个8位数据输出锁存缓冲器; 端口B(PB口)有一个8位数据输入缓冲器和一个8位数据输入输出、锁存缓冲器; 端口C(PC口)有一个8位数据输入缓冲器和一个8位数据输出锁存缓冲器。 通常PA口与PB口用作输入输出的数据端口,PC口用作控制或状态信息的端口。,一、8255A的内部结构,3A组和B组的控制电路 这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的 “控制字”,并向与其相连的端口发出适当的控制信号。 A组控制部件用来控制PA口和PC口的高4位(PC,PC4); B组控制部件用来控制PB口和PC口的低4位(PC,PCo)。 。4读写控制逻辑 用来管理数据信息、控制字和状态字的传送,它接收来自CPU地址总线的 A1、A0和控制总线的有关信号(RD、WR、RESET等),向8255A的A、B两组控制部件发送命令。,二、8255A的引脚功能,。CS 选片信号,低电平有效,由它启动CPU与8255A之间的通信(Communication)。 RD 读信号,低电平有效。它控制8255A送出数据或状态信息至CPU。 WR 写信号,低电平有效。它控制把CPU输出的数据或命令信号写到8255A。 RESET复位信号,高电平有效,它清除控制寄存器并置所有端口(A、B、C)为输入方式。 A1,A0:片内寄存器选择信号(输入) A1A0=00: 选中PA口; A1A0=01: 选中PB口; A1A0=10: 选中PC口; A1A0=11: 选中控制端口; D7D0:与CPU侧连接的数据线(双向) PA7PA0:A口外设数据线(双向) PB7PB0:B口外设数据线(双向) PC7PC0:C口外设数据线(双向),表 81 8255A端口功能选择,8.2.2 8255A的工作方式,一、方式0基本输入输出 方式0下,每一个口都作为基本的输入输出口,C口的高4位和低4位以及A口、B口都可以独立地设置为输入口或输出口。 8255A在方式0工作时,CPU可以采用无条件读写方式与8255A交换数据; 如果把C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU也可以通过对C口的读写,实现A口与B口的查询方式工作; 方式0中,不允许采用中断方式工作。,二、方式1选通输入输出(应答式输入输出) 方式1下将三个端口分成A、B两组,A、B两个口仍作为数据输入输出口,而C口分成两部分,分别作为A口和B口的联络信号。 方式1的输入,(1)STB:输入的选通信号 低电平有效。由外设提供,为低电平时,就把输 入的数据信号(PA7-PA0或PB7-PB0)送入A端口(或B端口)的数据锁存器。 (2)IBF:输入缓冲器满信号, 高电平有效。由8255A输出,有效时,用以通 知外部设备输入的数据已写入缓冲器。 (3)INTR:中断请求信号,高电平有效。当外部设备要向CPU传送数据或请求服务时,8255A就用INTR端的高电平向CPU提出中断请求。当STB、IBF和 INTE都为高电平时,表明数据锁存器内已写入了数据使INTR成为高电平输 出。 (4)INTE:中断允许信号。A端口用PC4位的置位复位控制,B端口用PC2位的置位复位控制。只有当PC4或Pc2置“1“时,才允许对应的端口送出中断请求。,方式1的输入过程如下(A口): 1)当外设准备好数据,在送出数据的同时,送出一个选通信号STB。8255A的A口数据锁存器在STB下降沿控制下将数据锁存。 2)8255A向外设送出高电平的IBF,表示锁存数据已完成,暂时不要再送数据。如果PC41(1NTE1),这时就会使INTR变成高电平输出,向CPU发出中断请求。 3)CPU响应中断,执行IN指令时,RD信号的下降沿清除中断请求,而RD结束时的上升沿则使IBF复位到零。外设在检测到IBF为零后,可以开始输入下一个字节。 2方式1的输出 联络信号信号的作用如下: (1)OBF:输出缓冲器满信号;低电平有效。由8255A输出,当其有效时,表示CPU已经将数据输出到指定的端口,通知外设可以将数据取走。 (2)ACK:响应信号,低电平有效。由外设送来,有效时表示8255A数据已经为外设所接收。,(3) INTR:中断请求信号 高电平有效。当外设接收了由CPU送给8255A的数据后,8255A就用INTR端向CPU发出中断请求,请求CPU再输出后面的数据。INTR是当ACK,OBF和INTE都为高电平时,才能被置成高电平。 (4) INTE:中断允许信号。 A口的INTE由PC6置复位,B口的INTE由PC2置复位。 PC4、PC5位可以由控制字的D3,设置为输入或输出数据用。 方式1的输出过程如下(A口): 1)微处理器发WR信号,将数据送入端口的输出缓冲器,WR上升沿一方面清除INTR信号,另一方面使OBF有效,通知外设可以取数; 2)外设取数后,发ACK信号,一方面使OBF无效(表示数已取走),另一方面使INTR有效,开始另一个新的输出过程。 三、方式2双向选通输入输出 通过8位数据线与外设进行双向通信的方式,既能发送,又能接收数据。工作时可以用中断方式,也可以用查询方式与CPU联系。,8.2.3 8255A 的初始化,一、方式控制字,二、C口按位置/复位,8.2.4 8255A的应用举例,例1:在一系统中,要求8255工作在方式0,A口为输入,B口、C口为输出。 Mov al, 90h Out 63h, al ;送控制字到控制字寄存器。 Call delay1 In al, 60h ; 从A口输入数据 Call delay2 mov al, data1 Out 61h, al ; 从B口输出数据 Call delay3 mov al, data2 Out 62h, al ; 从C口输出数据,例2:假定在一个系统中,要求8255工作在方式1,端口A为输出,端口B为输入,PC4PC5 为输入,禁止端口B中断。,Mov al, 0afh ;控制字 Mov dx, xxxxxx11b ; 控制寄存器地址 Out dx, al ; 送入控制字寄存器 Mov al, 09h ; A口的INTE(PC4)置1 Out dx, al ; 送入控制字寄存器 Mov al, 04h ; B口的INTE(PC2)置0 Out dx, al ; 送入控制字寄存器,例3:假定在一个系统中,端口A工作在方式2,端口B工作在方式0且为输入,端口C的三位 PC0PC2 位输入。,Mov al, 11xxx011b ;控制字 Mov dx, xxxxxx11b ; 控制寄存器地址 Out dx, al ; 送入控制字寄存器,例4:若采用查询式实现8255A与打印机接口,用PB口传送内存DATA单元开始的100个字节数据,PC7用作STB信号、PC3作为BUSY信号,如图所示。试完成控制程序设计。,LEA DI , DATA MOV CX , 100 MOV AL,81H ; 方式控制字 OUT 83H,AL NEXT: MOV AL,0FH ; PC7=1 OUT 83H,AL TESBY:IN AL,82H TEST AL,08H JNZ TESBY MOV AL,DI OUT 81H,AL INC DI MOV AL,0EH ; PC7发 选通打印机 OUT 83H,AL INC AL OUT 83H,AL LOOP NEXT RET,说明:当CPU通过接口要求打印机打印数据时,先查看BUSY信号,当BUSY=L时,才向打印机输出数据,在把数据送上DATA线后,先发STB选通打印机,打印机接到STB 后,发BUSY=H,接收数据,当数据接收号并存入内部打印缓冲区后,送出ACK信号,表示打印机已准备好接收新数据,并撤销BUSY(0),例5:利用工作方式1的8255A的PA口作D/A转换器的输出接口,利用下降沿启动D/A转换,转换结束的回答信号为“0”脉冲。8255A的端口地址为3E0H3E3H. 1)试设计D/A转换器的接口电路 2)采用条件传送方式,将存储器BUFFER缓冲区中的5000B的波形数送D/A转换器转换,编写程序段。 MOV DX , 3E3H INC DX MOV AL , 10100000B;工作方式 MOV AL , 00001100B ; OUT DX , AL ; 已输出5000个波形数,PC60,关中断 MOV AL , 00001101B; PC6=1 开中断 OUT DX , AL OUT DX , AL LEA SI , BUFFER MOV CX , 5000 LOP1: MOV DX , 3E0H MOV AL , SI OUT DX , AL ;输出数 INC SI MOV DX , 3E2H LOP2: IN AL , DX ;检查PC3 AND AL , 08H JZ LOP2 LOOP LOP1,例6:试用8255A工作方式1,以中断方式作为打印机接口。电路如下图。要求1)8255A的B口工作于方式1;2)设中断向量为2000:3000H在2CH、2DH、2EH、2FH中;3)端口地址设为E0H、E2H、E4H、E6H;4)编程完成控制过程。,START : MOV AL,10000100B OUT 0E6H,AL ;工作方式控制字 MOV AL , 00001011B OUT 0E6H , AL ; PC5=1使选通无效 XOR AX , AX ;设置0BH号中断的中断向量表 MOV DS , AX MOV AX , 3000H MOV WORD PTR 002CH , AX MOV AX , 2000H MOV WORD PTR 002EH , AX MOV DI , OFFSET BUFF ;设置字符缓冲区指针 MOV AL , 00000101B OUT 0E6H , AL ; PC2=1,置INTE=1 STI ,未用,ROUTINTR: MOV AL , DI ; DI为打印机字符缓冲区指针,字符送A口 OUT 0E2H , AL MOV AL , 00001010B ; PC5=0,产生选通信号,即负脉冲 OUT 0E6H , AL INC AL ;PC5=0,使选通无效 OUT 0E6H , AL IRET,一、键盘接口 有两类键盘:编码键盘和非编码键盘 键盘输入信息的过程可归纳为三步: (1)检查是否有按键按下; (2)查出按下的是哪一个按键; (3)将该键所代表的信息翻译成计算机能够识别的代码,如ASC或其它预先约定的编码。 如果第二、三步用硬件完成,则称为编码键盘 如果第二、三步用软件完成,则称为非编码键盘,图8-13 非编码键盘接口,使用行扫描寻找按下键的编码(键号)的程序如下:,PORTA EQU 0FFF8H;定义端口A的口地址 PORTB EQU 0FFFAH ;定义端口B的口地址 PORTC EQU 0FFFCH ;定义端口C的口地址 PORTCN EQU 0FFFEH ;定义控制字端口的口地址 MOV DX,PORTCN;置8255A端口A、B工作方式在方式0 MOV AL,1000 0010B;控制字,端口A为输出,端口B为输入 OUT DX,AL WAIK: MOV DX,PORTA;等待键闭合 MOV AL,0 ;行码送全“0” OUT DX,AL MOV DX, PORTB IN AL,DX ;读列码 CMP AL,0FFH ;列码与0FFH比较,JZ WAIK ;如果没有键按下,返回 MOV BL,0 ;扫描键盘矩阵,送键号初值 MOV BH,1111 1110B;置初始扫描模式-行码送FEH MOV CX,8 FNDROW: MOV AL,BH ;送行码 MOV DX, PORTA OUT DX,AL ROL BH,1 ;修改行码 MOV DX, PORTB;读列码 IN AL,DX CMP AL,0FFH;比较是否有键按下 JNZ FNDCOL ;有则转FNDCOL,查列号 ADD BL,8 ;无键按下,指向下一行 LOOP FNDROW;8行扫描未完,转回FNDROW JMP DONE;8行完成后,无键按下,转DONE,FNDCOL: ROR AL,1 ;查哪一列有按键按下 JNC RIGHT;查到按下的按键键号,转RIGHT INC BL ;键号加1,查下一列 JMP FNDCOL;无条件转回 RIGHT: : ;按下键的编号在BL中 : DONE: : ;无按键按下,结束,二、七段LED显示接口,七段(或八段)LED数码管简介,a b c d e f g DP,a b c d e f g DP,阴极,阳极,图8-14 七段(或八段)LED数码管,图8-15 8位LED显示器接口电路,设计要求: 在8个数码管上动态扫描显示8位十六进制数(0-F) 每显示一位后延时20ms 周而复始地显示一个双字的十六进制数码,: ;数据段定义开始 SSEGCODE:DB 0C0H (0) ;定义16进制数字符的7段码 DB 0F9H(1) DB 0A4H(2) DB 0B0H(3) DB 99H(4) DB 92H(5) DB 82H (6) DB 0F8H (7) DB 80H (8) DB 98H (9) DB 88H (A) DB 83H (B) DB 0C6H (C) DB 0A1H (D) DB 86H (E) DB 8EH (F),FOURBYTE:EQU THIS BYTE DBLWORD:DD 2143H, 6587H ;定义双字常数量 : MOV AL,1000 0000B(80H);A、B口方式0,输出 MOV DX,0FFFFH ;8255A控制字端口地址 OUT DX,AL ;置方式字 : CLD ;方向标志置0(0DF)控制串操作递增 AGAIN: MOV CX,4 ;置计数初值4 MOV SI,OFFSET FOURBYTE;求偏移量 MOV AH,11111110B;送常数FEH AH LOOPDISP:LODSB ;P110,DS:SIAL,SI自动加1 MOV DI,AX ;暂存AX的值( AH 位选, AL7段码) AND AL,0FH;屏蔽高4位,取低4位编码 MOV BX, OFFSET SSEGCODE;求段码表首地址,XLAT SSEGCODE;查段码表 MOV DX,0FFFAH;送端口B地址 OUT DX,AL;输出显示数码值 MOV AL,AH;送AHAL MOV DX,0FFF8H ;送端口A地址 OUT DX,AL ;输出数码的位选码 PUSH CX ; CX压栈 MOV CX,NDELAY;延时2ms, NDELAY-延时常数 IDLE: NOP NOP LOOP IDLE : MOV AL,0FFH ;送常数(AH)=FFHAL OUT DX,AL ;禁止显示 MOV AX,DI;恢复( AH 位选, AL7段码),MOV CL,4 SHR AL,CL;逻辑右移4位,取高4位编码 MOV BX, OFFSET SSEGCODE ;求段码表首地址 XLAT SSEGCODE ;查段码表 MOV DX,0FFFAH ;送端口B地址 OUT DX,AL ROL AH,1 ;循环左移1位,电亮下一个数码管 MOV AL,AH ;送AHAL MOV DX,0FFF8H ;送端口A地址 OUT DX,AL ;输出数码的位选码 MOV CX,NDELAY ;延时2ms IDLE2: NOP NOP LOOP IDEL2 ROL AH,1 ;循环左移1位,电亮下一个数码管,MOV AL,0FFH OUT DX,AL ;禁止显示 POP ;出栈 LOOP LOOPDISP ;8位未显示完,转LOOPDISP JMP AGAIN ;8位显示完,转回AGAIN : :,三、打印接口,1.并行接口标准(Centronics) P311 表8-4所示 2.打印机的工作过程及接口电路 电路如P313 图8-17所示 3.8255A的应用编程 (1)8255A的初始化程序段 (2)打印机中断服务程序,四、LED/开关接口,图8-18 8086CPU、8255A同开关7段LED的接口,8255A,1,1,1,+5v,+5v,PA0,PA1,PA7,PB3,PB2,PB1,PB0,a,b,DP,8255A初始化 PA口输出、PB口输入 工作于方式0,从PB口读入信息,屏蔽高4位,取开关状态,查7段显示码表,从PA口输出7段显示码,延时,程序流程(工作原理),A1,A2,A0,A1,解题分析,(1)8255A的负载能力较小,所以输出口PA经驱动器同7段LED显示器连接; (2) 8255A设置为方式0工作,PA口输出,PB口输入; (3)由于8255A的A0A1与CPU的A1A2相连接,A0可以为“1”或“0”,因此,每个端口有两个地址,如: PA口地址为0FF8H或0FF9H; (4)按题意可写出控制程序如下:,ORG 2000H MOV AL,82H(1000 0010B);8255A方式字 MOV DX,0FFFEH ;8255A控制字端口地址 OUT DX,AL ;送方式字 RDPORTB: MOV DL,0FAH ;送端口B地址 IN AL,DX ;读端口B数据 AND AL,0FH ;屏蔽高4位 MOV BX,OFFSET SSEGCODE;求段码首地址 XLAT ;查表BX+ALAL MOV DL,0F8H ;设A口地址 OUT DX,AL ;段码输出到A口显示 MOV AX,56CH ;延时 DELAY: DEC AX JNZ DELAY,JMP RDPORTB ;返回再次读B口内容 HLT ;暂停 ORG 2500H SSEGCODE DB 0C0H,0F9H,0A4H,0B0H,99H, DB 92H,82H,0F8H,80H,98H,88H DB 83H,0C6H,0A1H,86H,8EH ;段码定义(共阴) 例如:0C0H=1100 0000B;显示“0” PA0=a段=“0”点亮 PA1=b段=“0”点亮 PA2=c段=“0”点亮 PA3=d段=“0”点亮 PA4=e段=“0”点亮 PA5=f段=“0”点亮 PA6=g段=“1”灭 PA7=DP段=“1”灭,a,b,c,d,e,f,g,DP,(1)如果驱动改为反向器,则段码应修改为: SSEGCODE DB 3FH,06H,5BH,4FH,66H, DB 6DH,7DH,07H,7FH,67H,77H DB 7CH,39H,5EH,79H,71H 例如:3FH= 0C0H =0011 1111B;显示“1” PA0=a段=“1”点亮 PA1=b段=“1”点亮 PA2=c段=“1”点亮 PA3=d段=“1”点亮 PA4=e段=“1”点亮 PA5=f段=“1”点亮 PA6=g段=“0”灭 PA7=DP段=“0”灭 (2)如果要求7段LED循环显示0-F十六个数,每个显示5秒,显示20遍,则程序为:,ORG 2000H MOV AL,80H(1000 0000B);8255A方式字 MOV DX,0FFFEH ;8255A控制字端口地址 OUT DX,AL ;送方式字 MOV BX,20 ;循环次数20次 DISFLOP: LEA DI, SSEGCODE ;求段码首地址 MOV CX,16 ;显示字符个数 LOP: MOV AL,DI ;取显示字符送A口 MOV DL,0F8H ;设A口地址 OUT DX,AL ;段码输出到A口显示 INC DI ;修改显示指针 CALL DELAY5S ;延时5秒子程序 LOOP LOP ;循环16次 DEC BX ;修改循环20次的计数值,JNZ DISPLOP ;返回再次读B口内容 HLT ;暂停 ORG 2100H DELAY5S: : : ORG 2500H SSEGCODE DB 0C0H,0F9H,0A4H,0B0H,99H, DB 92H,82H,0F8H,80H,98H,88H DB 83H,0C6H,0A1H,86H,8EH ;段码定义(共阴) 例如:0C0H=1100 0000B;显示“0” PA0=a段=“0”点亮 PA1=b段=“0”点亮 PA2=c段=“0”点亮 PA3=d段=“0”点亮 PA4=e段=“0”点亮 PA5=f段=“0”点亮 PA6=g段=“1”灭 PA7=DP段=“1”灭,习题解答,习题8.20 若输入设备输入的是ASC码,通过8255A端口B输入,采用中断方式,将数据送入INBUF为首地址的输入缓冲区中,连续输入直到遇到就结束输入。假设此中断类型码为52H,中断服务程序的入口地址为INTRP。 8255A的端口地址为80H83H。 (1)根据上述要求设计并画出硬件电路图。 (2)写出8255A初始化程序(包括把入口地址写入中断向量表); (3)写出完成输入数据,并存入输入缓冲区BUF1的中断服务程序;,(1)设计并画出硬件电路图,STB IBF INTR,(2) 8255A、8259初始化程序,方式字:1XXX X11X;确定为1000 0110=86H C口按位置为位/复位控制字:0XXX 0101(PC2=“1”) 确定为:0000 0101=05H A口地址:80H; B口地址:81H; C口地址:82H; 控制口地址:83H; 8255A、8259初始化程序 MOV AL,86H MOV DX,83H OUT DX,AL MOV AL,05H OUT DX,AL,8259A初始化程序段(令端口地址为60H、61H) MOV AL,13H(0001 0011);置ICW1,采用上升沿触发 OUT 60H,AL MOV AL,50H;置ICW2,中断向量类型码高5位是01010B OUT 61H,AL MOV AL,0DH;置ICW4,采用缓冲方式 OUT 61H,AL 写中断向量表程序段 MOV AX,0 MOV DS,AX MOV DI,52H×2 MOV AX,SEG INTRP MOV DS:DI,AX MOV AX, OFFSET NTRP MOV DS:DI+2,AX STI,(3)完成输入数据,并存入输入缓冲区BUF1的中断服务程序,INTRP: PUSH AX MOV DI,OFFSET BUF1 MOV BX,SEG BUF1 LOP: IN AL,81H CMP AL, JZ END MOV BX:DI,AL INC DI JMP LOP END:CLI IRET,8.3 可编程定时器/计数器8253,8.3.1可编程定时器/计数器的基本工作原理,GATE是控制输入端,它有多种控制作用,如允许禁止计数、启动停止计数等。控制寄存器是用来控制计数器定时器的工:作方式,就是控制CLK脉冲和CATE门控信号适当配合来产生OUT端的输出信号的形状。所以,计数定时器可以 归纳为以下几种工作方式: (1)门脉冲控制时钟输入。此时,当门脉冲GATE到来时,时钟CLK有效,进行计数操作;当门脉冲结束时,时钟无效,计数停止。 (2)用门脉冲重新启动计数器。 (3)用门脉冲停止计数器工作。 (4)单次计数。此时仅要求GATE为高电平即可。 (5)循环计数。此时,每当计数执行单元为零时,输出端OUT输出一个信号,同时又重新装入计数初值寄存器内容到计数执行单元,重复原来的计数过 程,从而在OUT端上可输出周期性的脉冲信号。,8.3.2 8253的结构和功能,8253-PIT的主要功能有: (1)有3个独立的16位计数器。 (2)每个计数器都可以按照二进制或BCD码进行计数。 (3)每个计数器的计数速率可高达2MHz(8254-2计数频率可达到10MHz)。 (4)每个计数器有6种工作方式,可由程序设置和改变。 (5)所有的输入输出引脚电平都与TTL电平兼容。,8253的结构和引脚,三个计数器中每一个都有三条信号线; 计数输入CLK用于输入定时基准脉冲或计数脉冲; 输出信号OUT以相应的电平指示计数的完成,或输出脉冲波形; · 选通输入(门控输入)GATE用于启动或禁止计数器的操作,以使计数器 和计测对象同步。 每个计数器中有三个寄存器; 控制寄存器初始化时,将控制字寄存器 中的内容写入该寄存器; 计数初值寄存器初始化时写入该计数器的初始 值; 减法计数寄存器计数初值由计数初值寄存器送人减法计数寄存器,当 计数输入端输入一个计数脉冲时,减法计数寄存器内容减1,当减到零时,输出 端输出相应信号表示计数结束。,8253 的控制字,在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字,它规定了8253的工作方式。,8253 的工作方式,一、方式0计数结束中断方式 在这种方式下,当控制字CW(Control Word)写入控制字寄存器,则使OUT输出端变低,此时计数器没有赋予初值,也没开始计数。 要开始计数,GATE信号必须为高电平,并在写入计数初值后,通道开始计数,在计数过程中 OUT线一直维持为低,直到计数到“0”时。OUT输出变高。,(MODE 0) CLOCK,WRn#,OUTPUT(中断),4,3,2,1,0,n=4,WRm#,OUTPUT(中断),GATE,m=4,5,4,3,2,1,0,8253工作方式 (6种) 方式0:计数结束时发中断,方式1可编程序的单拍脉冲 在这种方式下,当CPU写控制字之后(的上升沿),输出将保持为高(若原为低,则由低变高)。当CPU写完计数值后,计数器并不开始计数,直到外部门控脉冲GATE启动之后的下一个输入CLK脉冲的下降沿开始计数,输出OUT变低。因整个计数过程中,OUT都维持为低,直到计数到0,输出变为高,因此,输出为一个单拍脉冲。若外部再次触发启动,则可以再产生一个单拍脉冲。,WRn#,GATE(TRIGGER),4,3,2,1,0,OUTPUT,3,4,2,1,0,(MODE 1) CLOCK,GATE(TRIGGER),OUTPUT,2,3,4,8253工作方式 (6种) 方式1:可编程单稳电路,方式2速率发生器 在这种方式下,当CPU输出控制字后,输出将为高。在写入计数值后,计数器将立即自动对输入时钟CLK计数。在计数过程中输出始终保持为高,直至计数器减到1时,输出将变低,经过一个CLK周期,输出恢复为高,且计数器开始重新计数。,WRn#,4,3,2,1,0(3),OUTPUT,GATE (RESET),OUTPUT,(MODE 2) CLOCK,n=4,n=3,0(4),3,2,1,2,1,0,0(3),3,2,1,0(3),2,1,0(3),2,1,方式2:可变频率脉冲发生器,0,方式3方波速率发生器 方式3的输出都是周期性的,方式3在计数过程中输出有一半时间为高,另一半时间为低。,4,2,2,1,0(4),OUTPUT n=4,GATE (RESET),OUTPUT n=4,n=4,n=3,0(4),2,1,0,3,2,1,0(4),2,1,3,3,1,(MODE 3) CLOCK,OUTPUT n=5,3,2,1,0(5),4,3,2,1,0(5),4,3,0(5),4,3,0,方式4软件触发选通 在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为低则变为高)。当写入计数值后立即开始计数(相当于软件启动),当计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停止计数。这种方式计数也是一次性的,只有在输入新的计数值后,才能开始新的计数。,(MODE 4) CLOCK,WRn#,n=4,OUTPUT,n=4,0,1,2,3,4,4,4,3,2,1,0,LOADn,GATE,OUTPUT,8253工作方式 (6种) 方式4:软件触发选通,方式5硬件触发选通 在这种方式下,设置了控制字后,输出为高。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到0时,输出变低,经过一个CLK脉冲,输出恢复为高,停止计数。要等到下次门控脉冲的触发才能再计数。,(MODE 5) CLOCK,OUTPUT(n=4),0,1,2,3,4,4,3,2,1,0,GATE,GATE,OUTPUT,4,3,8253工作方式 (6种) 方式5:硬件触发选通,8.3.4 8253的初始化 例:要求计数器0工作于方式3,输出方波的重复频率为2KHz,计数脉冲输入为2.5MHz,采用BCD码计数,试写出初始化程序段。,计算计数初值: TC= 2.5MHz/ 2KHz=1250 方式字为:0011 0111B=37H (计数器0,写16位,方式3,BCD计数) 设端口地址为:80H、81H、82H、83H。 则初始化程序为:,MOV AL,37H;写入方式控制字 OUT 83H,AL MOV AL,50H;写入计数初始值低8位 OUT 80,AL MOV AL,12H ;写入计数初始值高8位 OUT 80H,AL,(3)读计数值,以普通对计数器端口读的方法取得当前计数值 锁存计数器的当前值,8.3.5 8253-5的应用举例 一、用8253-5监视一个生产流水线 1.硬件设计,图8-28 8253的应用计数和定时,设计要求及设计方案确定,使用8253-5监视一个生产流水线,每通过50个工件,扬声器响5秒钟,频率2000Hz。 用8253-5的通道0设定为计数方式计数,计数满50后,由OUT0输出一个负脉冲,经反向后作为8259A的中断请求信号,在中断服务程序中,启动8253-5通道1工作,有通道1连续输出频率为2000Hz的方波信号,持续5秒后结束。 通道0工作于方式2,通道1工作于方式3,通道1的门控信号GATE1由8255A的PA0控制。,2.控制字设置,通道0计数器工作于方式2,采用BCD计数,因计数初值为50,采用RL1RL0=01(读/写计数器的低8位),则工作方式字为00010101=15H。 通道1计数器工作于方式3,CLK1接2.5MHz时钟,要求产生1000Hz的方波,则计数初值应为2.5×106/2000=1250,采用RL1RL0=11 (先读计数器的低8位,再读计数器的高8位)。

    注意事项

    本文([信息与通信]第8章 可编程接口芯片及其应用.ppt)为本站会员(音乐台)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开