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

    第11章 可编程定时计数器.ppt

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

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

    第11章 可编程定时计数器.ppt

    2021年10月9日星期六,1,第11章 可编程定时计数器,11.1 可编程定时计数器82C54的特点 11.2 82C54的工作方式 11.3 定时计数器的应用,2021年10月9日星期六,2,11.1 可编程定时计数器82C54的特点,11.1.0 定时与计数的基本概念 11.1.1 82C54的组成和工作原理 11.1.3 计数初值 11.1.2 82C54的控制字和状态字,2021年10月9日星期六,3,11.1.0 定时与计数的基本概念,定时 日常生活:日时钟、实时钟。 微机系统:系统时钟、DRAM刷新定时、周期性控制信号。 定时与计数的关系 相同点 由数字电路中的计数电路构成; 定时就是采用时间单位进行计数。 不同点 定时是对固定频率的脉冲信号进行计数; 计数是对随机性的脉冲信号进行计数。,2021年10月9日星期六,4,微机系统中的定时,内部定时: CPU(主机)本身工作的控制时序,如时钟周期; 由硬件结构确定,微机中所有操作都要严格按照此节拍来完成,是固定的,无法更改的。 一般为ns(纳秒)级; 外部定时: 外设工作时,所需要的时序关系; 实时监控系统的定时中断、定时监测、定时扫描等; 对I/O设备运行速度和工作频率的调整和控制; 一般定时为ms(毫秒)级;,2021年10月9日星期六,5,外部定时方法(1/2),软件定时: 定时方法: 通过CPU执行一段循环程序,而产生等待延时; 需要按延时的时间来计算时间常数。 优点: 节省硬件成本; 缺点: 占用CPU的时间,降低了CPU的工作效率; 软件延时的时间随主机频率不同而发生变化,通用性差。 适用于短时间或不频繁发生延时的简单系统。,2021年10月9日星期六,6,延时程序: MOV DX , 0FFFFH AGAIN: MOV CX , DX WAIT : NOP LOOP WAIT DEC DX JNZ AGAIN ,也可单独作为一延时程序,延时时间较短,延时常数决定于: 需要的延时时间、系统主频、指令的执行时间,延时常数,2021年10月9日星期六,7,外部定时方法(2/2),硬件定时: 方法: 采用可编程定时/计数器或单稳延时电路产生定时或延时。 特点: 不占用CPU时间,提高了CPU的利用率; 可以产生精确的时间时隔,形成各种脉冲序列,灵活性强; 定时不受主机频率影响,定时程序通用性强。 可用于各种定时计数场合。,2021年10月9日星期六,8,11.1.1 82C54的组成和工作原理,82C54A芯片的工作特点 82C54A芯片的外部引脚特性 82C54A的内部结构,2021年10月9日星期六,9,一、82C54A芯片的工作特点,每片82C54A上都有3个独立的16位的计数通道; 最大可计数值为216=65536; 每个通道计数均可编程设置为二进制或BCD码计数; BCD码计数即十进制计数; 每个计数通道都有6种工作方式,可以编程选择; 每种工作方式的输出波形、触发方式等不同; 计数通道都是减法计数器; 计数/定时启动之前需要设置计数初值/定时常数;,2021年10月9日星期六,10,二、82C54A芯片的外部引脚特性,数据总线,片选及读写控制信号,片内端口选通信号,计数通道0的输入、输出信号,计数通道1的输入、输出信号,计数通道2的输入、输出信号,2021年10月9日星期六,11,计数通道的外部信号,时钟输入信号CLK 定时计数时,每经过一个脉冲,计数值减1; 门控输入信号GATE 用于控制计数的启停; 可有开关作用和触发作用; 计数器输出信号OUT 各种波形输出端; 可供CPU检测状态,也可用于提供请求信号。,2021年10月9日星期六,12,定时/计数器的读写操作类型,2021年10月9日星期六,13,三、82C54A的内部逻辑结构,数据总线缓冲器: 三态双向8位寄存器; 82C54A与CPU之间数据交换的部件;,读/写控制逻辑: 接收CPU有关控制信号,决定操作对象及类型。,控制字寄存器: 接收CPU发出的控制字,决定各计数器的工作方式; 三个计数通道共用一个命令端口,区分该芯片内部的端口类型!,计数通道为数据端口,每个计数通道分别占用一个端口地址; (计数通道0 304H、计数通道1305H、计数通道2 306H) 控制字寄存器为命令端口,占用一个端口地址(307H ); 无状态端口。,2021年10月9日星期六,14,计数通道的内部结构,存放CPU发出的计数初值,在计数过程中不发生变化;用于自动重装计数初值。,锁存当前的计数值,以供CPU读取。,装入计数初值,每个计数脉冲到来时执行减1操作。,时钟脉冲输入端,控制输入端,对计数操作起开关作用或触发作用,输出端,其输出波形由操作方式决定,注意CPU对计数器内部部件的可访问性!,16位当前计数值锁存器只读 16位减1计数器不可访问 16位计数初值寄存器可读写,2021年10月9日星期六,15,11.1.3 计数初值,82C54芯片的初始化步骤: 按照命令字格式写出满足当前操作的命令字,使用I/O指令将其写入命令端口; 写入命令字后,计数初值寄存器清零; 确定计数初值(定时常数),使用I/O指令将初始值装入指定计数通道的初值寄存器。 计数初值会通过初值寄存器送入减1计数器; 当计数条件满足时,减1计数器即开始定时/计数。,2021年10月9日星期六,16,计数初值的确定,按定时时间计算: t定时时间、 TCLK 时钟周期 则计算公式为: n = t / TCLK 按脉冲序列频率计算: fCLK输入时钟频率;fOUT输出波形频率 则计算公式为: n = fCLK / fOUT 计数初值的范围: 二进制:000000FFFFH 十进制(BCD码):000009999 其中,最大值为0,因为计数器计数时先减1后判断。,n计数初值(定时常数),2021年10月9日星期六,17,计数初值/定时常数计算例子,假定输入时钟频率fCLK=2MHz 要求1:定时20ms n = t / TCLK = t fCLK = 2010-32106 = 40000 要求2:产生1KHz的方波 n = fCLK / fOUT = 2106 / 1103 = 2000,2021年10月9日星期六,18,11.1.2 82C54A的控制字和状态字,工作方式控制字 初始化时使用,用于选择计数通道及其工作方式; 也可作为计数值锁存命令使用; 读回命令控制字 在82C54芯片使用过程中,由CPU发给82C54的命令; 用于锁存某个计数通道中的当前计数值、或状态信息; 状态字 表示某计数通道当前的工作状态;,2021年10月9日星期六,19,1、工作方式命令字,2021年10月9日星期六,20,工作方式命令字的应用举例(1/4),例1. 选择计数通道2 ,工作在方式3下,计数初值为533H,采用二进制计数,试写出其初始化程序段。 工作方式命令字 初始化程序段,写入命令字:,写入计数初值 (先写低字节,再写高字节):,MOV DX,306H,MOV AL,05H,MOV DX,307H,MOV AL,0B6H,OUT DX,AL,OUT DX,AL,MOV AL,33H,OUT DX,AL,1 0,1 1,0 1 1,0,2021年10月9日星期六,21,初始化程序段 MOV DX,307H MOV AL,0B6H OUT DX,AL MOV DX,306H MOV AL,33H OUT DX,AL MOV AL,05H OUT DX,AL,初始化程序执行过程,1011 0110,0011 0011,0000 0101,0000 0101 0011 0011,0000 0000,0000 0000,2021年10月9日星期六,22,工作方式命令字的应用举例(2/4),例2. 计数通道1工作于方式0,用二进制计数,计数初值为128。 工作方式命令字 初始化程序段 MOV DX,307H MOV AL,50H OUT DX,AL MOV DX,305H MOV AL,128 OUT DX,AL,0 1,0 1,0 0 0,0,2021年10月9日星期六,23,工作方式命令字的应用举例(3/4),例3. 计数通道0工作于方式1,按BCD码计数,计数值为3000。 工作方式命令字 初始化程序段 MOV DX,307H MOV AL,33H OUT DX,AL MOV DX,304H MOV AX,3000,0 0,1 1,0 0 1,1,OUT DX,AL MOV AL,AH OUT DX,AL,H,2021年10月9日星期六,24,工作方式命令字的应用举例(4/4),例4. 读取1号计数器的当前计数值,并判断是否为全1。 读当前计数值的操作: 先发锁存命令,锁存当前计数值; 再用输入指令从计数器的当前计数值锁存器中读取数据。 命令字: 程序段 发锁存命令 MOV DX,307H MOV AL,40H OUT DX,AL,0 1,0 0,0 0 0 0,读计数值,判断处理,MOV DX,305H,IN AL,DX,CMP AX,0FFFFH,JE YES ,IN AL,DX,MOV AH , AL,XCHG AL,AH,假定初始化的工作方式命令字的RL位为11。,2021年10月9日星期六,25,2、读回命令控制字,2021年10月9日星期六,26,读回命令控制字举例,例5. 将1号计数器的当前计数值读入AX寄存器。 读回命令控制字 控制程序段,0,0,1,0,1,发锁存命令 MOV DX,307H MOV AL,0D4H OUT DX,AL,读计数值 MOV DX,305H IN AL , DX MOV AH , AL IN AL , DX XCHG AL , AH,2021年10月9日星期六,27,3、状态字,每个通道内部都有一个状态寄存器,通过对该通道端口的读取获得。,2021年10月9日星期六,28,读取82C54状态字举例,例6. 试判断计数通道1是否正在计数。 处理步骤 发送读回命令 读取状态字信息并判断 控制程序段,1,0,1,0,0,发锁存命令 MOV DX,307H MOV AL,0E4H OUT DX,AL,读计数值 MOV DX,305H IN AL , DX,判断当前的计数状态 TEST AL , 40H JNZ NULL,2021年10月9日星期六,29,82C54对计数通道的访问类型,写计数通道 写计数通道的初值寄存器; 读计数通道 读计数通道的初值寄存器 直接读取 读计数通道的当前计数值 先使用工作方式命令字或读回命令字发锁存命令,再读取; 读计数通道的状态字 先使用读回命令字发锁存命令,再读取;,2021年10月9日星期六,30,11.2 82C54的工作方式,82C54共有6种工作方式,三个计数通道都可以工作在这6种工作方式下。 学习这6种工作方式的要点: 输出波形; 计数的触发方式; 软件触发、硬件触发、软硬触发; 计数过程中,门控信号GATE的变化对计数的影响; 不影响、停止计数、暂停计数、重新计数; 重装计数初值后,对计数过程的影响; 不影响、立刻生效、下次计数生效;,2021年10月9日星期六,31,1. 方式0计数结束产生正脉冲,每次用命令字设置计数器为方式0或写入计数初值后,输出端OUT的起始电平为低电平; 写入计数初值后,经过一个时钟周期,将计数初值送入减1计数器开始计数,OUT输出维持低电平; 直至计数值变为0,OUT输出端变为高电平,并维持到下次使用计数器。,CW,n=3,3,2,1,0,CLK,WR#,OUT,2021年10月9日星期六,32,门控信号GATE对计数起开关作用。 即当GATE=1时,允许计数;当GATE0时,禁止计数。 计数过程中,GATE变为低电平,暂停计数;当GATE再次变为高电平时,从中止计数处继续开始计数。 GATE的变化并不影响OUT端的输出状态。,0,门控信号的作用,n=3,3,2,2,CLK,WR#,OUT,GATE,1,2021年10月9日星期六,33,计数过程中,若计数初值发生变化,则计数器会在下一时钟周期将新的计数值写入减1计数器,并重新开始计数; 方式0是软件触发(写计数初值的OUT指令)的计数方式。 方式0的计数初值只一次有效; 若要再次计数,即使计数值不变,也需重新写入计数初值。,n=4,n=3,3,2,4,CLK,WR#,OUT,GATE,3,2,1,改变计数初值的影响,2021年10月9日星期六,34,3,n=3,WR#,CW,2. 方式1硬件可重复触发的单脉冲发生器,当命令字设定方式1后,输出端OUT以高电平为起始电平; 写入计数初值后,经过一个时钟周期,将计数初值送入减1计数器,但并不开始计数; 当门控信号GATE出现上升沿,则开始计数,计数开始的同时,OUT输出端变为低电平,作为单脉冲的开始; 直到计数值为0,OUT输出变回高电平,计数结束,即单脉冲结束。,2,0,CLK,OUT,GATE,1,2021年10月9日星期六,35,GATE信号对计数过程起触发作用。 GATE的上升沿会使计数过程重新开始;但其高、低电平及下降沿不影响计数。 实质上,GATE的上升沿使计数初值寄存器将当前的计数初值再次装入减1计数器中; GATE变化不影响OUT的输出状态,但会影响输出单脉冲的宽度。,n=3,3,2,0,CLK,WR#,OUT,GATE,3,2,1,门控信号的作用,2021年10月9日星期六,36,n=4,n=3,计数初值多次有效,即该方式下计数过程可以重复被触发。 计数过程中,若计数初值发生变化,则当GATE再次出现上升沿时,立即以新的计数初值开始计数;否则,计数初值的改变不会影响当前的计数过程。,3,2,CLK,WR#,OUT,GATE,1,4,3,2,1,改变计数初值的影响,2021年10月9日星期六,37,方式0与方式1的比较,输出波形大致相同; 在一次计数过程中输出单次负脉冲; 触发方式不同; 方式0软件触发;方式1硬件触发; 方式0主要使用计数结束的上升沿脉冲作为请求信号使用;方式1主要用作定时器使用。 方式1是由硬件触发计数的,因此方式1输出的负脉冲宽度是可以由计数初值精确计算的,而方式0不可。,2021年10月9日星期六,38,1,1,n=3,CW,WR#,3. 方式2分频器,当命令字设置方式2后,OUT输出端的初始状态为高电平; 装入计数初值后,开始计数,输出端仍维持高电平; 直到计数值为1时,OUT输出一个时钟周期的低电平,一次计数结束,输出恢复高电平; 然后自动重装计数初值,再次进行同样的计数,从而产生连续的脉冲序列。,3,2,0,CLK,OUT,3,2,0,2021年10月9日星期六,39,n=3,门控信号GATE对计数过程有开关作用,也有触发作用。 当GATE1时,允许计数;当GATE0时,禁止计数; 当GATE出现上升沿时,可以触发计数重新开始。,0,CLK,WR#,OUT,GATE,3,2,1,3,2,2,计数过程中,仅计数初值发生变化 若没有GATE上升沿,则不影响本次的计数过程;只是在当前计数归0,自动装入新的计数初值开始新的计数; 若出现GATE上升沿,则在下个时钟周期立刻装入新的计数初值开始计数;,门控信号的作用,2021年10月9日星期六,40,4,n=4,CW,4. 方式3方波发生器,当命令字设置方式3后,OUT输出端的初始状态为高电平; 装入计数初值后,开始计数,输出端仍维持高电平; 当计数到一半时,OUT输出变为低电平,直到计数值为0,恢复高电平的输出; 然后自动重装计数初值,再次进行同样的计数,从而产生连续的方波序列。,输出方波或基本对称的矩形波,常作为某些慢速外设的时钟输入信号,3,2,0,CLK,WR#,OUT,1,4,3,2021年10月9日星期六,41,计数初值的一半: 当计数初值为偶数时,计数到n/2,输出端OUT发生负跳变,得到占空比为1:1的方波; 当计数初值为奇数时,计数到(n+1)/2,输出端OUT发生负跳变,得到占空比为(n+1)/2 : (n-1)/2的矩形波。 门控信号GATE对计数过程起开关作用和触发作用,同方式2。 计数过程中写入新的计数初值,则会在半周期结束或门控脉冲触发时,重新装入新值,开始计数。,关于门控信号和计数初值,2021年10月9日星期六,42,方式2和方式3的比较,方式2主要用于产生周期性负脉冲;方式3主要用于产生方波或矩形波; 方式2和方式3的计数触发方式均为软硬件触发。 软件触发方法重新写入计数初值; 在一个完整的计数周期(方式2)或半周期(方式3)输出完成后,按照新的计数初值开始计数; 硬件触发方法门控信号出现上升沿; 立即(下个时钟周期)触发新的计数过程,即输出脉冲序列的频率随GATE信号的变化而随时发生改变。,2021年10月9日星期六,43,n=3,5. 方式4软件触发选通的单脉冲发生器,当用命令字设置方式4后,OUT输出端的初始状态为高电平; 装入计数初值后,即开始计数; 在计数过程中,输出端始终维持高电平; 当计数为0 ,OUT输出一个时钟周期的负脉冲,结束计数。,CW,3,2,1,0,CLK,WR#,OUT,2021年10月9日星期六,44,n=3,CW,6. 方式5硬件触发选通的单脉冲发生器,当命令字设置方式5后,OUT输出端的初始状态为高电平; 装入计数初值后,并不立即开始计数; 当GATE出现上升沿时,开始减1计数,OUT维持高电平; 当计数为0时,OUT输出一个时钟周期的负脉冲,结束计数。,3,2,0,CLK,WR#,OUT,GATE,1,2021年10月9日星期六,45,方式4和方式5的比较,输出波形完全相同; 一次计数得到单次单拍负脉冲; 计数的触发方式不同; 方式4软件触发; 触发方式、GATE和计数初值改变时,对计数的影响同方式0; 方式5硬件触发; 触发方式、GATE和计数初值改变时,对计数的影响同方式1;,2021年10月9日星期六,46,各种工作方式的功能,2021年10月9日星期六,47,计数器启动和重复计数的条件,2021年10月9日星期六,48,门控信号GATE的作用,2021年10月9日星期六,49,计数过程中改变计数初值的结果,2021年10月9日星期六,50,11.3 定时计数器的应用,11.3.1 微机系统中的应用 11.3.2 两级计数例子 11.3.3 波特率时钟发生器例子,2021年10月9日星期六,51,11.3.1 微机系统中的应用,通道0系统时钟更新中断信号 工作于方式3,计数初值为0; 通道1动态存储器的定时刷新信号 工作于方式2,计数初值为18; 通道2发声系统音频信号 工作于方式3,计数初值为533H;,2021年10月9日星期六,52,PC系列机中定时系统结构框图,端口地址为 40H43H,作为系统时钟 更新中断信号,2021年10月9日星期六,53,1、系统时钟更新中断信号(通道0),工作于方式3,计数初值为0; GATE0接+5,CLK0输入时钟频率为1.1931816MHz; OUT0输出频率为18.2Hz的方波; 输出脉冲周期=1/18.255ms; OUT0连接8259A的IRQ0上,约55ms产生1次中断,用于更新系统的日时钟计数。 系统直接调用固化在BIOS中的中断类型号为08H的中断服务程序。,初始化程序如下: MOV AL,00110110B OUT 43H,AL MOV AL,0 OUT 40H,AL OUT 40H,AL,2021年10月9日星期六,54,2、动态存储器的定时刷新信号(通道1),工作于方式2,计数初值为18; GATE1接+5,CLK1输入时钟频率为1.1931816MHz; OUT1每隔15.08s输出一个负脉冲; OUT1连接到8237的DREQ0上; 8237通道0用于控制DRAM的刷新; 82C54A的通道1定时产生DRAM的刷新请求信号,每个周期刷新存储器一行。,初始化程序如下: MOV AL,01010100B OUT 43H,AL MOV AL,18 OUT 41H,AL,2021年10月9日星期六,55,3、发声系统音频信号(通道2),工作于方式3,计数初值为533H; GATE2由8255A的PB0位控制,CLK2输入时钟频率为1.1931816MHz; OUT2输出频率约为900Hz的方波; 输出信号与8255的PB1位(控制发声)共同经过滤波,作为系统扬声器发声的音频信号,进行提示和故障报警。,初始化程序如下: MOV AL,10110110B OUT 43H,AL MOV AX,533H OUT 42H,AL MOV AL , AH OUT 42H , AL,2021年10月9日星期六,56,BIOS中对计数通道2的初始化编程,BEEP PROC FAR IN AL,61H MOV AH,AL PUSH AX MOV AL,10110110B OUT 43H,AL MOV AX,0533H OUT 42H,AL MOV AL,AH OUT 42H,AL POP AX,OR AL,03H OUT 61H,AL NOP L1:LOOP L1 AND AL,0FDH OUT 61H,AL MOV AL,AH OUT 61H,AL RET BEEP ENDP,读8255 PB口保存,方式3,写16位计数初值,OUT2输出频率为1.1931816M/1331 =896Hz的方波,置PB0、PB1为1,打开扬声器,由CX决定延时长短,置PB0、PB1为0,封锁OUT2输出,恢复原PB端口值,2021年10月9日星期六,57,使用入口参数指定扬声器的发声频率和发声持续时间,BIOS中对应程序 ;功能:按照指定的时间间隔发指定频率的声音 ;入口参数:CX=指定频率,BX=指定时间 ;返回:无 SOUND PROC FAR MOV AL,10110110B OUT 43H,AL MOV AX,CX OUT 42H,AL MOV AL,AH OUT 42H,AL,IN AL,61H MOV AH,AL OR AL,03H OUT 61H,AL L1:MOV CX,5000H L2:LOOP L2 DEC BX JNZ L1 MOV AL, AH OUT 61H, AL RET SOUND ENDP,2021年10月9日星期六,58,11.3.2 两级计数例子利用82C54A设计一个定时器,每5秒钟输出一个负脉冲,设外部时钟频率为2.5MHz。,计数初值为n=5/TCLK=5fCLK =5 2.5106 =12.5106 故 采用两级计数器; 使用82C54A的计数通道0和计数通道1 计数通道0:方式3,产生频率低于外部时钟频率的方波; 计数通道1:方式2,产生最终的负脉冲序列; 82C54A的硬件连接 通道0的OUT输出端作为通道1的CLK时钟输入; 两个通道的GATE端均接高电平;, 65536,2021年10月9日星期六,59,两个通道的计数初值和命令字,总的计数初值n为12.5106 ; 采用两级计数时,通道0、1的计数初值n0、n1 n=n0n1 假定选择计数值为 n0:62500;n1:200 设置命令字: 计数通道0 计数通道1,0 0,1 1,0 1 1,0,0 1,0 1,0 1 0,0,2021年10月9日星期六,60,硬件连接图,输入2.5MHz的时钟,工作于方式2和方式3下,使GATE始终为高电平,1,1,输出40Hz的方波,作为计数器1的输入,输出每5秒一个负脉冲的脉冲序列,计数器0输出脉冲序列的频率 OUT0 = CLK0 / n0 = 2.5MHz / 62500 = 40Hz,82C54A,OUT0,GATE0,CLK1,GATE1,CLK0,OUT1,2021年10月9日星期六,61,初始化程序段,计数器0的初始化程序段: MOV DX,307H MOV AL,36H OUT DX,AL ;设置命令字 MOV DX,304H MOV AX,62500 OUT DX,AL MOV AL,AH OUT DX,AL ;设置计数初值,计数器1的初始化程序段: MOV DX,307H MOV AL,54H OUT DX,AL ;设置命令字 MOV DX,305H MOV AL,200 OUT DX,AL ;8位计数初值,2021年10月9日星期六,62,答: 其输出波形的负脉冲宽度会有不同。 单通道计数输出负脉冲宽度为1个时钟周期; 双通道计数输出负脉冲宽度由第一级计数的输出决定。,思 考:本题中输出波形是否会因为采用的是两级计数或单通道计数而有所不同?有何不同?,2021年10月9日星期六,63,11.3.3 波特率时钟发生器的例子,要求:设计一个波特率分为8档的波特率发生器, 采用人机对话方式选择波特率,按Esc键退出。 已知:输入时钟为1.19318MHz,波特率因子为16, 所需的8档输出波特率分别为110b/s、 150b/s、 300b/s、 600b/s、 1200b/s、 2400b/s、 4800b/s、9600b/s。,2021年10月9日星期六,64,定时常数的计算,利用82C54A方式3产生指定波特率的方波,用于串行数据传送。 定时常数:TcCLK频率 / (Baud Factor) 波特率110b/s,Tc1.19318106/(11016)678 波特率150b/s, Tc1.19318106/(15016)497 波特率300b/s, Tc1.19318106/(30016)249 波特率600b/s, Tc1.19318106/(60016)124 ,2A6H 1F1H 0F9H 07CH,2021年10月9日星期六,65,波特率时钟发生器的设计,硬件设计 82C54A的计数通道产生所需的时钟; CLK接输入时钟,OUT得到输出时钟; GATE接8255A的PC6,控制82C54A的工作; 软件设计 定时常数事先设定,存于数据区; 根据指定的波特率,查表选择定时常数,送入计数通道;,TC_TABLE,110b/s,150b/s,300b/s,9600b/s, , ,2021年10月9日星期六,66,程序流程图,开 始,芯片等初始化,输出提示信息,判断并处理键值,查表,找到对应的定时常数, 并装入计数通道,允许计数开始,有键按下?,时钟发生停止?,禁止计数,结 束,Y,Y,N,N,请选择波特率: 0110b/s;1 150b/s;2300b/s; 3 600b/s;4 1200b/s;5 2400b/s;64800b/s;79600b/s,2021年10月9日星期六,67,程序清单(1/2),;写82C54A工作方式命令字 MOV DX , 307H MOV AL , 10 11 011 0 B OUT DX , AL ;写8255A的工作方式命令字 MOV AL , 1 000 0000 B OUT 63H , AL ;使PC6=0,禁止计数 MOV AL , 0000 1100 B OUT 63H , AL ;输出字符串的DOS功能调用 LEA DX , INPUT_MESS MOV AH , 09H INT 21H,;等待键盘输入 INPUT: MOV AH , 08H INT 21H ;判断按键是否合法 CMP AL , 0 JB INPUT CMP AL , 7 JA INPUT ;按键值查表,获取定时常数 SUB AL , 30H MOV AH , 0 SHL AX , 1 LEA SI , TC_TABLE ADD SI , AX MOV AX , SI,2021年10月9日星期六,68,程序清单(2/2),;将定时常数写入计数通道 MOV DX , 306H OUT DX , AL MOV AL , AH OUT DX , AL ;允许计数 MOV AL , 0000 1101 B OUT 63H , AL ;检测按键 LOP:MOV AH , 0BH INT 21H CMP AL , 0 JZ LOP,;有按键,则判断 MOV AH , 08H INT 21H CMP AL , 1BH JE QUIT JMP LOP ;退出本次计数 QUIT: MOV AL , 0000 110 0 B OUT 63H , AL JMP INPUT,2021年10月9日星期六,69,本章小结,了解定时和计数的联系和区别、内部定时和外部定时、软件定时和硬件定时; 熟悉82C54芯片计数通道的内部结构及外部引脚; 掌握82C54计数初值的计算方法; 掌握82C54工作方式命令字的应用; 对芯片的初始化、读取当前计数值; 熟悉82C54方式03的基本情况,并能根据情况灵活应用不同的工作方式,能够写出芯片的初始化程序。,2021年10月9日星期六,70,本章作业,P246 1、2、3、4、5、9、10(写在课本上) 补充作业 82C54A有哪几种计数触发方式?请说明其具体的触发过程。 要求82C54A的三个计数通道完成以下功能,试写出初始化程序段,已知输入时钟脉冲的频率为1MHz; 通道0输出频率为2KHz的方波; 通道1输出宽度为480s的单脉冲; 通道2由硬件触发,输出一个时钟周期的单脉冲,时间常数为26。 请使用82C54A产生周期为2s,占空比为3:2的矩形波。假定输入时钟频率为5MHz。,

    注意事项

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

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




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

    三一文库
    收起
    展开