8.4 8253可编程定时计数器.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

第一章 微型计算机系统概述 1.1 计算机的发展与应用 微型计算机的发展与分类 微型计算机的应用
微型计算机原理及应用.
第一部分 中考基础复习 第一章 声现象.
第5章 多级结构的存储系统 5.1 三级结构存储系统概述 主存储器 虚拟存储器 CPU 高速缓存 三级结构的存储系统.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
微型计算机技术 教 学 指 导(七) 太原广播电视大学 郭建勇.
第10章 DOS功能调用与BIOS中断调用.
第十二章 DMA控制器 12.1 概述 A DMA控制器 A的应用.
半导体存储器 第四章 半导体存储器.
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
第5章 输入输出与接口技术.
第五章 总线 及其形成 本节课之前,大家学习了:
第七章 单片机存储器的扩展.
第五章 微处理器总线操作与时序 三、总线时序 一、 8086/8088引脚 二、最小模式和最大模式.
输入/输出及接口 输入/输出的传送方式 中断技术 80x86/Pentium中断系统 8259A可编程中断控制器 中断程序设计
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
第7章 常用数字接口电路.
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第7章 中断与异常.
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
第5章 存储系统.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
微型机系统与接口技术复习.
第七章 MCS-51系统扩展 一、程序存储器扩展
第5章 输入输出与接口技术.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第十章 D/A、A/D转换接口(6学时) 现代计算机接口技术  知 识 概 述  第一节 D/A转换(2学时)
第七章 MCS-51并行口的扩展 MCS51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS3734和74LS245)和可编程的并行口芯片(8255)。 7.1 不可编程并行口芯片的扩展 7.2 可编程并行口芯片的扩展.
微机原理及应用 主讲:郑海春.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
微机原理与接口技术 第9章 计时/计数接口.
第8章 PCH中的常规接口.
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第7章 微型机接口技术 可编程定时/计数器 可编程并行接口 串行接口与串行通信(概念) DMA控制器接口(不做要求) 模拟量输入/输出接口.
微型机系统与接口技术自学部分 只作扩展知识用 本电子课件包含2011版第3, 6, 7, 8章自学部分 东南大学计算机科学与工程学院.
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
1.3 微型计算机的结构和工作原理.
第 13 章 中断系统.
第二章 模拟量输出通道 本章要点 1.模拟量输出通道的结构组成与模板通用性; 2.8位D/A转换器DAC0832的原理组成及其接口电路
條件處理.
第 12 章 8237A DMA控制器及其应用 中国科学技术大学 何克东.
第6章作业 3、 需要128块芯片 片内译码地址线:10条 片选择地址线:至少4条
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇.
第五章 输入/输出系统 本章讨论: 接口的基本概念 总线的基本概念 中断方式及其接口组成 中断方式及其接口组成 DMA方式及其接口组成
2. MCS-51单片机的组成及结构分析 2.1 MCS-51单片机的内部结构及结构特点
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
第二章 8086系统结构 /8086的存储器组织 的系统配置及引脚功能 CPU时序
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
Presentation transcript:

8.4 8253可编程定时计数器

概述 实现定时和计数有两种方法:硬件定时和软件定时。 软件定时是利用CPU每执行一条指令都需要几个固定的指令周期的原理,运用软件编程的方式进行定时。 硬件定时,是利用专门的定时电路实现精确定时。这种定时方式又可分为简单硬件定时和利用可编程接口芯片实现定时。

1. 8253的组成与功能 8 CS 8253内部结构框图 CLK GATE OUT 数据总线 计数器 D -D 缓冲器 号 内 A RD GATE OUT 1 2 数据总线 计数器 D 7 -D 8 缓冲器 号 内 A 1 RD WR 部 读 / 写 数 计数器 逻辑 1 号 据 CS 总 控制字寄 计数器 线 存器 2 号 8253内部结构框图

结构特点 减法计数器 16位初值寄存器 16位计数寄存器 计数器 控制寄存器 控制逻辑 存放控制命令字

D 8 D 7 1 9 CLK D 6 计数器 2 11 GATE D 5 3 10 OUT 号 数据线 D 4 4 D 3 5 D 2 6 CLK 15 1 计数器 D 1 7 GATE 14 1 RD 22 OU T 1 号 13 1 WR 23 A 控制线 19 A CLK 1 2 18 2 计数器 CS 21 GATE 16 2 Vcc T 2 号 24 OU 17 2 地 电源线 12 8253的引脚配置

连接系统端的主要引线: D0----D7 CS RD WR A0,A1 A1 A0 0 0 CNT0 0 1 CNT1 1 0 CNT2 1 1 控制寄存器

连接外设端的主要引线: CLK ----------- 时钟脉冲输入 GATE ---------- 门控信号输入 OUT ------------ 定时输出

8253计数器内部逻辑 三个独立的16位计数器 控制字寄存器 读/写逻辑

8253端口地址及操作功能 由控制字格式中SC1,SC0位决定属于哪个计数器 选中控制寄存器 1 读输出锁存器OL当前值 对计数器寄存器CR送初值 选中计数器2# 选中计数器1# 选中计数器0# 功 能 A0 A1 CS WR RD

2. 8253的控制字、写/读操作及初始化编程 8253的控制字格式 D 读写操作 00= 锁定当前计数值 01= 读 / 写计数器低 8 7 6 5 4 3 2 1 读写操作 00= 锁定当前计数值 01= 读 / 写计数器低 8 位 10= 读写计数器高 11= 先读 再 写计数器高 0= 二进制 1= 二—十进制 工作方式选择 000= 方式 001= 1 010= 2 011= 3 100= 4 101= 5 通道控制字寻址 00= 通道 控制寄存器 01= 1 10= 2 11= 不用

8253的写/读操作及初始化编程-8253的写操作 写入计数器的控制字,规定其工作方式及相应功能; 写入计数初值。 例如,选择0#计数器,工作于方式3,计数初值为1234H,BCD计数方式;2#计数器,工作方式2,计数初值为61H,采用二进制计数方式,设8253的端口地址为40~43H。其初始化编程如下: MOV AL,00110111B ;对0#计数器送工作方式字 OUT 43H,AL MOV AX,1234H ;送计数初值 OUT 40H,AL ;先送低8位 MOV AL,AH ;再送高8位 OUT 40H, AL MOV AL,10010100B ;对2#计数器送工作方式字 OUT 42H,AL MOV AL,61H ;送计数初值

8253的写/读操作及初始化编程-8253的读操作 直接读操作 锁存后读计数值 例如,要求读出并检查2#计数器的计数值是否为“55AAH”若非“55AAH”则等待再读,当为“55AAH”后程序可继续执行,则程序片断如下: COUNT EQV 040H ;设0#计数器的符号地址为040H ┆ LPCN:MOV AL,10000100B ;对2#计数器送锁存命令,仅使RL1,RL0=00 OUT COUNT+3,AL IN AL,COUNT+2 ;读2#计数器当前计数值 MOV AH,AL ;低8位暂存AH中 IN AL,COUNT+2 ;读高8位 XCHG AH,AL ;16位计数值存AX中 CMP AX,55AAH ;计数值写55AAH相比较 JNE LPCN ;若不相等则继续等待

计数启动方式 软件启动 硬件启动 GATE端为高电平 置入计数初值后的第2个CLK脉冲的下降沿 GATE端有一个上升沿

3. 8253的工作方式和时序 方式0——计数结束产生中断方式 8253方式0的波形 CLK GATE (允许计数高电平) 写 CW 写计数值 WR 3 2 1 OUT GATE OUT 3 2 2 2 1 (设计数初值为 3 ) 8253方式0的波形

软件启动,不自动重复计数。 装入初值后输出端变低电平, 计数结束输出高电平

例:设8253计数器通道0工作于方式0,用8位二进制计数,其计数值为50,二—十进制,则它的初始化程序段如下: MOV AL,11H ;设置控制字 OUT 43H,AL ;写入控制字寄存器 MOV AL,50 ;设置计数初值 OUT 40H,AL ;写入计数初值寄存器

3. 8253的工作方式和时序 方式1——外触发的单稳脉冲方式 CLK WR GATE OUT 开始计数 3 2 1 重新开始计数 不停计数 重新开始计数 不停计数 CW LSB 方式1的波形

硬件启动,不自动重复计数 装入初值后输出端变高电平, 计数开始输出低电平,结束后又变高

例:设计数器通道1工作于方式1,按二进制计数,计数初值为40H,它的初始化程序段为: MOV AL,62H ;工作方式控制字 OUT 43H,AL MOV AL,40H ;送计数初值 OUT 41H,AL

3. 8253的工作方式和时序 方式2——计数分频工作方式 方式2的工作波形 CLK GATE OUT WR CW LSB 高电平 1 3 自动重复计数 禁止计数 3 3 2 1 重新开始计数 方式2的工作波形

软、硬件启动,自动重复计数。 装入初值后输出端变高电平, 计数到最后一个脉冲时输出低电平

例:设8253计数器0工作于方式2,按二进制计数,计数初值为0304H。 MOV AL,00110100B ;设控制字,通道0,先读/写高8位 ;再读写低8位,方式2,二进制。 OUT 43H,AL MOV AL,04H ;送计数值低字节 OUT 40H,AL MOV AL,03H OUT 40H,AL ;送计数值高字节

3. 8253的工作方式和时序 方式3——方波发生器工作方式 方式3的工作波形 CLK WR GATE OUT (N= 奇数 ) 偶数 CW LSB 高电平 1 5 4 3 2 1 5 4 3 自动重复计数 4 3 2 1 4 3 2 1 方式3的工作波形

软、硬件启动,自动重复计数 装入初值后输出端变高电平, 输出对称方波

例:设8253计数器2工作在方式3,按二—十进制计数,计数初值为4,则它的初始化程序段如下: MOV AL,10010111B ;计数器2,只读/写低8位,工作方式3,二~十进制 OUT 43H,AL ;控制字送控制字寄存器 MOV AL,4 ;送计数初值 OUT 42H,AL

3. 8253的工作方式和时序 方式4——软件触发选通方式 方式4的工作波形 CLK GATE OUT WR 高电平 1 CW LSB 3 CLK 禁止计数 重新开始计数 方式4的工作波形

软件启动,不自动重复计数。 装入初值后输出端变高电平, 计数结束输出一个CLK宽度的低电平

例:设8253计数器1工作于方式4,按二进制计数,计数初值为3,则初始化程序段为: MOV AL,058H ;设置控制字寄存器 OUT 43H,AL ;送控制字 MOV AL,3 ;置计数初值 OUT 41H,AL ;送计数初值

3. 8253的工作方式和时序 方式5——硬件触发选通方式 方式5的工作波形 CLK GATE OUT WR 3 2 1 重新开始计数 CW 重新开始计数 CW LSB 开始计数 不停计数 方式5的工作波形

硬件启动,不自动重复计数 波形与方式4相同

例:设8253的通道1工作于方式5,按二进制计数,计数初值为4000H,则它的初始化程序段为: MOV AL,01101010B ;通道1,只读写高字节,方式5,二进制计数。 OUT 43H,AL MOV AL,40H OUT 41H,AL ;送计数初值

— 开始计数 5 允许计数 禁止计数 4 (1)禁止计数 (2)输出立即为高电平 3 2 (1)开始计数 (2)下一个时钟后,输出为低电平 1 高电平 上升沿 低电平或高电平变为低电平 GATE信号状态及影响 工作方式

4. 8254与8253的区别 允许计数脉冲(CLK)频率范围不同 内部结构有所不同 8254提供了同时锁存三个计数器的当前计数值和状态信息的操作

5. 8253的应用 与系统的连接 芯片初始化 置计数初值 编程

与系统的连接示意 外设 8253 DB D0~D7 IOW WR CLK IOR GATE RD OUT A1 A1 A0 A0 高位地址 译码器 CS

初始化程序流程 写入顺序: 可以计数器为单位,也可先写所有计数器控制字,再写入初值 写控制字 写计数值低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 确定控制字: CNT0:方式2,16位计数值 CNT1:方式3,低8位计数值 CNT2:方式0, 16位计数值

8253应用例 +5V 8253 GATE0 DB D0~D7 GATE1 2MHz GATE2 IOW WR CLK0 IOR RD OUT0 OUT1 译码器 CS OUT2

8253应用例 初始化程序 CNT0: MOV AL,AH MOV DX,0123H OUT DX,AL MOV AL,34H 8253应用例 初始化程序 CNT0: MOV DX,0123H MOV AL,34H OUT DX,AL MOV DX,0120H MOV AX,20000 MOV AL,AH OUT DX,AL CNT1: …… CNT2:

在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,00110110B ;选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完成存储器一行的刷新。系统上电时,BIOS对1#计数器产生15μs DMA请求信号的初始化程序为: MOV AL,01010100B ;选1#计数器,方式2,写低字节,二进制 OUT 43H,AL ;写控制字 MOV AL,18 ;预置计数初值=18=12H OUT 41H,AL ;写低字节

3.2#计数器 2#计数器端口地址为42H,该计数器用于控制发声。其输出OUT2通过与门和与非驱动器连接到扬声器。扬声器主要用于提示诊断机器错误和用户操作失误。但由于8253的可编程性以及发声的可控制性,利用这些特性可以编程控制PC扬声器唱出美妙的音乐。 发声系统受8255A的端口B的PB1和PB0控制,PB0控制2#计数器GATE端,高电平允许减1计数工作,PB1与OUT2共同接到与门的输入端,与门输出接到与非驱动器控制驱动扬声器,这样就可以用PB1、PB0(即端口61H的D1、D0)控制发声系统。现利用2#计数器产生1kHz方波,并驱动扬声器发声,程序编制如下:

BEEP: PROC NEAR MOV AL,10110110B ;2#计数器、方式3、16位二进制计数; OUT 43,AL MOV AX,1190 ;产生1kHz方波的初值; OUT 42H,AL ;写入低位字节 MOV AL,AH OUT 42H,AL ;写入高位字节 IN AL,61H ;从8255的B口(地址号=61H)读数据 MOV AH,AL ;暂存AH中 OR AL,00000011B ;使B口中PB0、PB1置1,其余位不变,打开GATE2和与门控制端输出,使扬声器发声 OUT 61H,AL SUB CX,CX ;CX初值清0,作为最大延时循环程序的次数,(10000H=65536)

LP1: LOOP LP1 ;延时程序 DEC BL ;BL中内容为发声持续时间的多少 JNZ LP1 ;BL=1发短音(约0.5s),BL=6发长音(约3s) MOV AL,AH ;取回8255状态 OUT 61H,AL ;恢复8255的B口值,停止发音(关扬声器) RET ;过程结束,返回

6. 8253的读操作 (1)读之前先停止计数 (2)读之前先送计数值锁存命令

7. PC/XT机中8253的应用 (1)计数器0:用于产生实时时钟信号 (2)计数器1:用于产生动态存储器刷新的地址更新信号 (3)计数器2:产生扬生器的发音驱动信号