- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章输入输出方法及常用的接口电路精要.ppt
— 开始计数 5 允许计数 — 禁止计数 4 允许计数 (1)禁止计数 (2)输出立即为高电平 3 允许计数 (1)禁止计数 (2)输出立即为高电平 2 — (1)开始计数 (2)下一个时钟后,输出为低电平 — 1 允许计数 — 禁止计数 0 高电平 上升沿 低电平或高电平变为低电平 GATE信号状态及影响 工作方式 — — — 4. 8254与8253的区别 允许计数脉冲(CLK)频率范围不同 内部结构有所不同,8254增加了一个状态寄存器 8254提供了同时锁存三个计数器的当前计数值和状态信息的操作 5. 8253的应用 与系统的连接 芯片初始化 置计数初值 编程 与系统的连接示意 CLK GATE OUT D0~D7 WR RD A1 A0 CS DB IOW IOR A1 A0 译码器 高位地址 外设 8253 初始化程序流程 写控制字 写计数值低8位 写计数值高8位 写入顺序: 可以计数器为单位,也可先写所有计数器控制字,再写入初值 8253应用例 采用8253作定时/计数器,其接口地址为0120H~0123H。 要求计数器0每10ms输出一个CLK脉冲宽的负脉冲;用计数器1产生10KHz的连续方波信号,计数器2在定时5ms后产生输出高电平。输入8253的时钟频率为2MH。 画线路连接图,并编写初始化程序。 8253应用例 计算计数初值: CNT0:10ms/0.5us=20000 CNT1:2 MHz/10KHz=200 CNT2: 5ms/0.5us=10000 确定控制字: CNT0:方式2,16位计数值 CNT1:方式3,低8位计数值 CNT2:方式0, 16位计数值 8253应用例 CLK0 GATE0 OUT1 D0~D7 WR RD A1 A0 CS DB IOW IOR A1 A0 译码器 8253 CLK2 GATE1 GATE2 +5V CLK1 2MHz OUT0 OUT2 8253应用例 初始化程序 CNT0: MOV DX,0123H MOV AL,34H OUT DX,AL MOV DX,0120H MOV AX,20000 OUT DX,AL MOV AL,AH OUT DX,AL CNT1: …… CNT2: …… 6. 8253的读操作 (1)读之前先停止计数 (2)读之前先送计数值锁存命令 7. PC/XT机中8253的应用 (1)计数器0:用于产生实时时钟信号 (2)计数器1:用于产生动态存储器刷新的地址更新信号 (3)计数器2:产生扬生器的发音驱动信号 在IMB PC/XT机中采用8088CPU,系统板上使用了一片8253计数/定时器。8253的片选信号是由系统板上I/O译码电路LS74138中产生,与片内地址线A1,A0相配合。8253四个端口的地址范围为040H~05FH。编程时采用40H~43H作为四个端口(0#、1#、2#计数器及控制寄存器)的地址。其中1#计数器(CNT1)用于DRAM的定时刷新之用,不能再作它用。0#计数器用于为系统的电子钟提供时间基准,它的输出端作为中断源,接至8259的IR0中断申请端。2#计数器(CNT2)主要用来作为机内扬声器的音频信号源,可输出不同频率的方波信号。三个计数器的输入时钟脉冲频率均为1.19MHz。下面介绍三个计数器与系统的关系及其初始化程序。 1.0#计数器(CNT0) 用作系统时钟,端口地址40H GATE0端接+5V,处于常启状态。该计数器向系统日时钟提供定时中断。计数初值预置为0,以方式3工作。这样一来,OUT0以1.1931815MHz/65536=18.2Hz的频率输出一方波序列。它直接连到系统的中断控制器8259A的中断请求端IRQ0。换言之,0级中断每次间隔55ms或每秒中断18.2次,此中断请求用于维护系统的日历时钟。 系统上电时,BIOS中对0#计数器产生55ms方波定时中断的初始化程序如下: MOV AL ;选0#计数器,方式3,写高低字节二进制计数 OUT 43H,AL MOV AL,0 ;预置计数初值=65536 OUT 40H,AL ;写低字节 OUT 40H,AL ;写高字节 2.1#计数器 用于对动态RAM的刷新控制,端口地址为41H。 GATE1端始终接+5V,处于常启状态。该计数器向DMA控制器定时提出动态存储器刷新请求。它选用方式2工作。计数初值预置为18。这样,OUT1以(1.1931816MHz/18=66.2878kHz)的频率输出一负脉冲序列,即OUT1每隔15.0857μs向DMA提出一次DMA请求DRQ0,由DMA的通道0完
文档评论(0)