




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章 可编程计数器/定时器8253及应用,8-1 8253工作原理 一、8253的内部结构与引脚信号 二、8253的初始化编程 三、8253的工作方式 四、8253与系统的连接 8-2 8253的应用举例 一、8253定时功能举例 二、8253计数功能举例,教材第八章内容,8-1 8253工作原理,计算机中,经常用到定时功能,如:动态ram刷新、系统时间、日历、定时检测参数等都需要定时信号。 实现定时功能主要有三种方法: 1、软件定时 2、不可编程的硬件定时 3、可编程的硬件定时,软件定时(也称软件延时) 定时时间由软件编程(循环执行某段程序)来控制。方法简单、费用低;但cpu的利用率低。 不可编程的硬件定时 定时时间由不可编程器件和外围电路控制,通过改变电路参数,可在一定的范围内改变定时时间,定时精度不高。如:555芯片。 可编程的硬件定时 定时时间和范围是通过软件对可编程器件进行编程控制,由cpu的时钟信号提供时间基准,定时精确。与cpu并行工作,应用比较广泛,如8253,8254。,三种定时方法,intel 8253是一种可编程的计数器/定时器芯片。 8253内部具有3个独立的16位计数器通道,通过对它进行编程,每个计数器通道均有6种工作方式,并且都可以按2进制或10进制2种格式进行计数,最高计数频率能达到2mhz。 8253还可用作可编程方波频率产生器、分频器、程控单脉冲发生器等。,8253综述,一、8253的内部结构与引脚信号,1、数据总线缓冲器 一个8位双向的三态缓冲器,作为8253和系统数据总线之间的接口;实现cpu与8253之间数据的传送; 传送信息包括: 进行初始化编程时的控制字 向某一计数器通道写入的计数初值 从某一计数器通道读出的当前计数值,各部分功能简介,2、读/写控制逻辑 接收系统送来的地址和读写信号,组合后形成控制信号对各部分操作进行控制。,各部分功能简介,3、计数器02 8253内部包含3个完全相同且独立的计数器通道 每个通道的内部构成: 一个8位的控制字寄存器 一个16位的计数初值寄存器(cr) 一个16位计数器执行部件(ce) 16位的输出锁存器(ol) 每个通道的外部引脚:clk、gate、out 工作原理:设置工作方式、预置初值、减1计数 两种功能:计数、定时,各部分功能简介,4、控制字寄存器 cpu用输出指令向它写入控制字,设置8253工作环境 控制字格式:,各部分功能简介,0 0 0 方式0 0 0 1 方式1 x 1 0 方式2 x 1 1 方式3 1 0 0 方式4 1 0 1 方式5,选择计数器 00 选择计数器0的控制寄存器 01 选择计数器1的控制寄存器 10 选择计数器2的控制寄存器 11 非法值,00 将计数器中ce的数据锁存到输出锁存器ol中 01 选计数器的低8位字节读/写 10 选计数器的高8位字节读/写 11 计数器两次操作(先低位,后高位),读出,写入计数器,8253的初始化编程按顺序分两步完成: 写入控制字;写入计数初值 1、写入控制字 由out指令向控制字寄存器写入,用来选定计数器通道、规定该计数器的工作方式和计数方式。 写入控制字还起到复位作用,使输出端out变为规定的初始状态,并使计数器清0。,二、8253的初始化编程,2、写入计数初值 由out指令向某计数器送一个计数初值,可以是8/16位数据。 若是8位数,一条out指令即可完成初值的设置;若是16位数,必须用两条out指令来完成,且先送低8位数据,后送高8位数据。 【注意】 若计数初值为0时,要分成两次写入。0在在二进制计数方式时,表示65536,bcd计数方式时,表示10000。 三个计数器初始化没有先后顺序。,【例】 某微机系统中,8253的3个计数器端口地址分别为3f0h、3f2h和3f4h,控制端口地址为3f6h,若要求8253的通道0工作于方式3,计数初值n0=1234,bcd方式计数,编写初始化程序。,初始化编程举例,初始化程序段如下: mov al,00110111b mov dx,3f6h out dx,al mov al,34h mov dx,3f0h out dx,al mov al,12h out dx,al,1、方式0计数结束中断方式 时序图,三、8253的工作方式,8253方式0,cw=10h,clk,gate,out,lsb=6,6,5,4,3,2,1,0,crce,cr=6,工作过程 写入控制字,out立即变为低; 写初值到计数寄存器(cr),若gate为高电平,下一个时钟脉冲的下降沿将初值装入计数执行部件(ce),才开始减1计数; 计数期间,out一直为低;当计数结束(计数值为0),out变为高,并一直保持到重新装入初值或设置新的工作方式。 用途:方式0常用来对外部事件计数,利用out由低到高的变化中断请求信号。,8253方式0,两种特殊情况:,8253方式0,cw=10h,clk,gate,out 1 0,lsb=4,4,3,2,2,2,1,0,crce,cr=4,gate门控信号的改变,两种特殊情况:,8253方式0,cr=3,cw=10h,clk,gate,out,lsb=3,3,2,1,3,2,1,0,crce,cr=3,中途改变计数初值,2、方式1可编程单稳态输出方式 时序图,8253方式1,1,2,cw=12h,clk,gate,out,lsb=3,3,0,cr=3,工作过程 写入控制字,out立即变为高,并保持不变。 写计数初值n,只有当gate形成一个上升沿时,才在下一个时钟脉冲的下降沿,将n装入实际计数器,同时out由高变为低,开始减1计数(再来一个脉冲)。 计数期间,out一直为低;当计数结束(计数值为0),out变为高。 用途:输出稳态负脉冲 out端输出负脉冲的宽度=时钟脉冲宽度计数值n。,8253方式1,注意: 在计数过程中,gate为高、低和下降沿,均不影响计数;但若又来一上升沿,则将计数初值重新装入实际计数器,重新开始计数,使out端的负脉冲变长;,8253方式1,3、方式2比率发生器 时序图,8253方式2,crce,crce,cw=14h,clk,gate,out,lsb=3,3,2,1,0 3,2,1,0 3,crce,cr=3,2,1,工作过程 写控制字,out为高。 写计数初值,若gate为高电平,则在下一个时钟脉冲下降沿,将计数初值装入ce,开始减1计数。 当计数值减为1时,out由高变低,减为0时,out又变为高,即out输出一个时钟周期的负脉冲;同时,自动将计数初值装入计数执行部件,开始新一轮的计数过程。 用途:分频器 若计数器的初值为n,则out引脚产生的波形频率为时钟脉冲频率的n分之一。,8253方式2,注意: (1)任何时候重新写入新的计数初值,当原计数值减为0时,才按新写入的计数值进行计数;(2)计数过程中,当gate再产生上升沿时,在下一个时钟脉冲下降沿,重新将计数初值装入实际计数器,开始减1计数。,8253方式2,4、方式3方波发生器 时序图,8253方式3,crce,cw=16h,clk,gate,out,lsb=4,4,2,4,2,4,2,4,crce,cr=4,2,4,计数初值为偶数时的波形,crce,crce,crce,8253方式3,2,crce,cw=16h,clk,gate,out,lsb=5,5,4,2,5,5,4,cr=5,2,5,计数初值为奇数时的波形,crce,crce,crce,5、方式4软件触发选通 时序图,8253方式4,cr=2,crce,cw=18h,clk,gate,out,lsb=2,2,1,0,2,1,0,0,crce,cr=2,lsb=2,6、方式5硬件触发选通 时序图,8253方式5,1,2,cw=1ah,clk,gate,out,lsb=3,3,0 3,3,3,2,cr=3,7、各种工作方式特点小结 方式0:写入控制字后,out即变低,计数结束后,out由低变高;方式1 5:写入控制字后,out均变高。 方式0、1和4:计数初值装进计数器后,仅计数一次;方式2、3和5:计数值为0后,自动将计数初值装进实际计数器。 启动方式:方式0、4为软件启动;方式1、5为硬件启动;方式2、3为软件、硬件均可启动,门控信号gate的控制功能,四、8253与系统的连接,应用步骤: 与系统连接 设置工作方式 置计数初值 两种功能: 定时功能应用 计数功能应用,8-2 8253的应用举例,软件程序设计,硬件电路设计,【例1】用8253产生各种定时波形。 在某个以8086为cpu的系统中使用了一块8253芯片,通道的基地址为310h,所用的时钟脉冲频率为1mhz。要求3个计数通道分别完成以下功能: (1)通道0工作于方式3,输出频率为2khz的方波; (2)通道1产生宽度为480us的单脉冲; (3)通道2用硬件方式触发,输出单脉冲,时间常数为26。,一、8253定时功能举例,分析: 8253端口地址 因8253基地址为310h,所以通道03、控制端口地址分别为310h,312h,314,316h。 各地址线电平要求如下:,硬件电路设计,工作方式选择及初值计算 通道0工作于方式3,计数初值为n0=1mhz/2khz=500。 通道1工作在方式1,计数初值为n1=480s/1s=480。 通道2工作在方式5,计数初值为n2=26。,1)通道0初始化程序 mov dx,316h ;控制口地址 mov al,00110111b ;通道0控制字 out dx,al mov dx,310h ;通道0地址 mov al,00h ;先写低字节 out dx,al mov al,05h ;后写高字节 out dx,al,初始化程序,2)通道1初始化程序 mov dx,316h ;控制口地址 mov al,01110011b ;通道1控制字 out dx,al mov dx,312h ;通道1口地址 mov al,80h ;先写低字节 out dx,al mov al,04h ;后写高字节 out dx,al,初始化程序,3)通道2初始化程序 mov dx,316h mov al,10011011b ;通道2控制字 out dx,al mov dx,314h ;通道2地址 mov al,26h ;只写入低字节 out dx,al,初始化程序,【例2】利用8253控制led的点亮或熄灭。 要求:循环点亮10秒钟后再让它熄灭10秒钟(周期为20秒),设计接口电路并编程实现。这里8253的各端口地址为81h,83h,85h和87h,时钟信号频率为2mhz。 分析: 总体思路 对8253编程,输出周期为20秒的方波信号,就能使led交替亮灭。,时间常数计算 输出频率:(1/20)hz 时间常数:2m/(1/20)=40m 一个通道的计数初值最多为65536,所以采用多通道级联的方法实现。让通道0和通道1都工作在方式3,通道1的clk端接通道0的out。只要满足两个计数初值的乘积为n0*n1=40m即可,所以通道0的计数初值若为:5000;则通道1的则为:8000。,硬件电路设计 这种设计加上适当的驱动电路后,便可以用在交通红绿灯控制和灯塔等场合 。,8253的初始化程序 mov al,00110111b ;通道0 方式3 bcd计数 out 87h,al mov al,00h out 81h,al mov al,50h out 81h,al mov al,01110111b ;通道1 方式3 bcd计数 out 87h,al mov al,00h out 83h,al mov al,80h out 83h,al,【例3】利用8253设计接口电路,对某工程生产线上的产品的数量进行统计。 硬件电路设计,二、8253计数功能举例,光电晶体管,工作原理 无工件通过时,光电晶体管导通,集电极为低电平,经74ls14整形后送到clk1端; 有工件通过时,光电晶体管截止,集电极为高,整形后送到clk1端,工件通过后又变为低。 每通过一个工件clk1端得到一个正脉冲信号,利用8253对脉冲进行计数,即可得到工件的个数。 这种计数方案也可以用于其他场合,如:统计在高速公路上行驶的车辆数,进入工厂的人数。,编程思路 选择计数器1工作在方式0,二进制计数。若选取计数初值n499,则经过500个脉冲out1端输出一个正跳变。向cpu发出一次中断请求(或作为cpu查询的状态信号),表示计满500个,在程序中使工件总数加上500。同时由程序将计数初值499再装入计数器1,继续进行计数。,8253的初始化程序 设8253的4个端口地址:f0h,f2h,f4h和f6h,则初始化程序为: mov al,01110000b out 0f6h,al mov ax,499 out 0f2h,al mov al,ah out 0f2h,al,8253计数值的读取 利用指令读取8253的当前计数值,但由于读取计数值时计数过程还在进行,其数值不稳定,导致读取的数据错误的。为防止这种情况发生,可采取下面两种方法: 计数器停止计数。关闭clk脉冲或使gate信号变为低,用in指令读出计数值。缺点是正常的计数过程被干扰。 飞读。在计数的过程中读取数据。先对8253写入一个控制字(rl1、rl0为00),将当前计数值锁存到输出锁存器,再用in指令读取输出锁存器的值。,上例中若求已计工件件数,可执行下面的程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司执行董事管理制度
- 企业物流闭环管理方案(3篇)
- 冶炼行业存货管理制度
- 车间承包方案(3篇)
- 农村防雷方案(3篇)
- 合同检查提升管理制度
- DB62T 4472-2021 农村互助老人幸福院运行管理规范
- DB62T 4446-2021 糖用甜菜品种 LS1216
- DB62T 4326-2021 肉鸡饲养技术规程
- 草籽运输保管方案(3篇)
- 架空输电线路环境影响评估与治理
- 桥台桩基础设计计算书
- 免拆底模钢筋桁架楼承板图集
- 桡动脉闭塞的护理查房
- 特种设备“日管控、周排查、月调度”表格
- 《神笔马良》课本剧剧本
- 高三最后一课课件
- 智能交通道路监控设备建设招投标书范本
- 苏教版小学科学四年级下册各单元测试卷附答案
- 售楼处装修工程施工进度表7.31
- 劳动合同书 简易版 劳动合同书 电子版
评论
0/150
提交评论