newch7 可编程定时计数器8253.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
newch7 可编程定时计数器8253

zxczcxz 第七章 可编程定时/计数器8253 §7.1 概述 §7.2 可编程计数器/定时器的工作原理 §7.3 8253的具体结构与工作方式 §7.4 8253的编程实例 用8253产生A / D转换器的启动控制信号。 8253在IBM PC系列机中的应用举例 各计数器的输入时钟脉冲频率均为1.19318MHz。 计数器0和计数器1的门控信号输入端接至高电平,因此永远开启。计数器2的门控信号输入端则由8255A的PB口的第0位控制。 系统将计数器1设置为方式2,计数值为18,因此每15μs向DMA发一次请求信号,使DMA进行存储器刷新。此计数器绝对不可修改,否则将危及存储器的安全。 可以通过将8255A的PB口的第1位交替置位和复位产生一个方波信号,推动扬声器发出声音。PB口交替置位和复位的频率就是方波的频率,也就是所产生的声音的频率。 用8253实现初始化编程步骤: 1.初始化每一个通道的控制字; 2.控制字写入8253的控制字端口地址; 3.初始化通道的计数初值; 4.计数初值写入8253的通道端口地址。 §7.4 8253的编程实例 例7-1.用8253实现初始化编程,要求: 使用通道0,工作在方式1,按二—十进制计数,计数值为5080H,其中端口地址给定范围0F8~0FBH. 分析: (1)确定通道控制字。 如图示 0 1 1 0 0 1 1 0 D7 D6 D5 D4 D3 D2 D1 D0 通道0 先写低8位 再写高8位 工作方式1 BCD 计数 用8253实现初始化编程步骤: 1.初始化每一个通道的控制字; 2.控制字写入8253的控制字端口地址; 3.初始化通道的计数初值; 4.计数初值写入8253的通道端口地址。 §7.4 8253的编程实例 分析: (2)选择控制字端口地址:A1A0组合11为控制字端口地址的低二位,故选择0FBH。 (3)计数值的低8位为80H. (4)计数值的高8位为50H. (5)选择写入计数值的端口地址:计数值写入通道0,故A1A0组合为00,选择0F8H。 用8253实现初始化编程步骤: 1.初始化每一个通道的控制字; 2.控制字写入8253的控制字端口地址; 3.初始化通道的计数初值; 4.计数初值写入8253的通道端口地址。 §7.4 8253的编程实例 初始化程序如下: MOV AL ,33H OUT 0FBH,AL ;写入方式控制字到端口地址中 MOV AL ,80H OUT 0F8H,AL ;写入计数初值低8位到端口地址中 MOV AL ,50H OUT 0F8H,AL ;写入计数初值高8位到端口地址中 例7-2.用8253实现控制A/D转换器进行数据采样,即A/D转换器的采样信号由8253提供: 计数器2:工作在方式3(方波发生器),GATE=1计数 计数器1:工作在方式1(可触发单稳态触发器)上升沿触发 计数器0:工作在方式2(分频器)GATE=1计数 计数器2的初值为N 计数器1的初值为M(BCD码) 计数器0的初值为L §7.4 8253的编程实例 8253 OUT0 GATE0 CLK0 OUT1 GATE1 CLK1 OUT2 GATE2 CLK2 启动转换 时钟源 频率 F +5V 计数值 M N L 当系统开始工作,设初始时钟频率为F 计数器0和计数器2的时钟CLK都为F;计数器2的输出频率作为计数器1的时钟CLK,计数器1的时钟频率为F/N,所以计数器1的输出频率为F/MN,脉冲周期为MN/F,触发一次的采样时间为MN/F。 假设8253的地址为0070H~0076H 控制寄存器的地址:0076H 计数器0的地址:0070H 计数器1的地址:0072H 计数器2的地址:0074H §7.4 8253的编程实例 ;L、M、N分别用标号LCNT、MCNT、NCNT表示 ;将计数器0设置为方式2,初值设为L (二进制) MOV AL,14H OUT 76H,AL MOV AL,LCNT OUT 70H,AL 0 0 0 1 0 1 0 0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD §7.4 8253的编程实例 ;将计数器1设置为方式1,初值设为M(BCD码) MOV AL,73H OUT 76H,AL MOV AX,MCNT OUT 72H,AL MOV AL,AH OUT 72H,AL 0 1 1 1 0 0 1 1 SC1 SC0 RW1 RW0 M2 M1 M0 BCD §7.4 8253的编程实例 ;将计数器2设置为方式3,初值设为N(二进制) MOV AL,96H OUT 76H,AL

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档