微机原理与接口技术(第3版)课件 第9章 可编程定时计数器8253-part1_第1页
微机原理与接口技术(第3版)课件 第9章 可编程定时计数器8253-part1_第2页
微机原理与接口技术(第3版)课件 第9章 可编程定时计数器8253-part1_第3页
微机原理与接口技术(第3版)课件 第9章 可编程定时计数器8253-part1_第4页
微机原理与接口技术(第3版)课件 第9章 可编程定时计数器8253-part1_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术第9章可编程定时/计数器8253引子定时与计数2计算事件的发生次数计数车轮转过一圈,磁铁接近一次霍尔开关,就输出一个脉冲,对此脉冲计数。单位时间内的计数值n车轮转一圈的时间即脉冲的周期T车轮的半径r车轮的周长c车速V=cT工件计数、车流量统计

常见应用:引子定时与计数3设定好一个时间定时DRAM定时刷新定时过程可视为计算单位时间的个数。计算机系统中的应用:系统日历时钟定时更新定时中断、定时检测

=单位时间计数次数定时时间长度计数对象是频率固定的信号时,计数就具有定时功能。引子定时与计数4定时法软件定时硬件定时不可编程可编程:空循环预定周次,等待预定时间delay(unsignedinttime){unsignedintj=0;for(;time>0;time--)for(j=0;j<125;j++);}缺点:占用过多CPU机时一般用于CPU等待即延时。:定时器555缺点:易受干扰,定时值和定时范围不便由程序控制和改变:可编程定时/计数器8253优点:综合软/硬件定时的优点,定时时间可由软件来设置和改变,定时过程通过硬件实现。可以满足各种不同的定时和计数要求。目录9.18253的引脚功能和编程结构9.28253的编程9.38253的工作方式9.48253的应用举例9.18253的引脚功能和编程结构8253简介6

8253的主要功能3个独立的16位计数器每个计数器都可以按二进制或BCD码计数每个计数器的计数频率可达2MHz

每个计数器都具有6种不同的工作方式每个计数器的计数初值都可以通过编程设置

所有的输入输出都与TTL兼容

7主要内容8253的引脚功能8253内部寄存器的选择9.18253的引脚功能和编程结构8253的编程结构引脚分类介绍

数据线D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1OUT1GATE182539.18253的引脚功能和编程结构8253的引脚功能引脚分类介绍

与读写控制逻辑相关片选信号读信号写信号内部口地址选择,通常与系统总线低位相连。00—计数器0#01—计数器1#10—计数器2#11—控制字寄存器D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1OUT1GATE182539.18253的引脚功能和编程结构8253的引脚功能引脚分类介绍

D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1OUT1GATE18253与8088(8位数据总线)相连接8088高位地址线片选译码A1A0若8253的基地址为40H,则#0——01000000B(40H)#1——01000001B(41H)#2——01000010B(42H)控制字—01000011B(43H)9.18253的引脚功能和编程结构8253的引脚功能引脚分类介绍

D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1OUT1GATE18253一般与8086低8位数据总线连接8086高位地址线片选译码A2A1若8253的基地址为F0H,则#0——11110000B(F0H)#1——11110010B(F2H)#2——11110100B(F4H)控制字—11110110B(F6H)A08086D7D6D5D4D3D2D1D00A0必须为0,可以参与片选译码9.18253的引脚功能和编程结构8253的引脚功能引脚分类介绍

D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1OUT1GATE18253

与计数通道相关的引脚计数器的时钟输入CLK输入信号的频率最大为2MHz9.18253的引脚功能和编程结构8253的引脚功能引脚分类介绍

D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1OUT1GATE18253计数器的门控信号。为高时,计数器工作。计数器的输出9.18253的引脚功能和编程结构8253的引脚功能引脚分类介绍

电源线地线D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND123456789101112242322212019181716151413VCCWRRDCSA1A0CLK2OUT2GATE2CLK1OUT1GATE182539.18253的引脚功能和编程结构8253的引脚功能15主要内容8253的引脚功能8253内部寄存器的选择9.18253的引脚功能和编程结构8253的编程结构

8253的内部结构控制字寄存器读/写控制逻辑数据总线缓冲器计数器0号计数器1号计数器2号D7~D0RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线9.18253的引脚功能和编程结构8253的编程结构

8253的内部结构控制字寄存器读/写控制逻辑数据总线缓冲器计数器0号计数器1号计数器2号D7~D0RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线8位双向三态缓冲器,通过引脚D7~D0与系统数据总线相连接,传输CPU向8253写入的控制字,计数器的初值,以及CPU读出的8253的计数器当前值。9.18253的引脚功能和编程结构8253的编程结构

8253的内部结构控制字寄存器读/写控制逻辑数据总线缓冲器计数器0号计数器1号计数器2号D7~D0RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线在选中情况下(

CS=0),接收来自CPU的读写控制信号和地址信号。组合产生控制整个芯片工作的内部控制信号。9.18253的引脚功能和编程结构8253的编程结构

8253的内部结构控制字寄存器读/写控制逻辑数据总线缓冲器计数器0号计数器1号计数器2号D7~D0RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线A1A0=11控制寄存器被选中。用来保存初始化时CPU写入的控制字,并发出相应的控制信号,控制每个计数器的操作方式。

9.18253的引脚功能和编程结构8253的编程结构

8253的内部结构控制字寄存器读/写控制逻辑数据总线缓冲器计数器0号计数器1号计数器2号D7~D0RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线每个计数器通道对输入脉冲CLK按二进制或BCD码进行减1计数,减到0为止,在OUT输出端输出一个信号。在计数的开始和计数过程中,计数器还要受到门控信号GATE的控制,两者的关系取决于方式控制字。

9.18253的引脚功能和编程结构8253的编程结构计数器0#控制寄存器(8位)高8位初值寄存器(CR)低8位高8位低8位计数单元(CE)高8位低8位输出锁存器(OL)D7~D0计数器1#计数器2#RD

WR

CS

地址译码地址总线

A1A0GATE0

CLK0

OUT0

GATE1

CLK1

OUT1

GATE2

CLK2OUT2

VCC

GND+5V保存计数初值减一计数读当前计数值16位,也可以作为8位寄存器计数器内部结构9.18253的引脚功能和编程结构8253的编程结构计数器0#控制字寄存器(8位)高8位初值寄存器(CR)低8位高8位低8位计数单元(CE)高8位低8位输出锁存器(OL)D7~D0计数器1#计数器2#RD

WR

CS

地址译码地址总线

A1A0GATE0

CLK0

OUT0

GATE1

CLK1

OUT1

GATE2

CLK2OUT2

VCC

GND+5V为什么一个计数通道中有3个寄存器呢?计数器内部结构9.18253的引脚功能和编程结构8253的编程结构23主要内容8253的引脚功能8253内部寄存器的选择9.18253的引脚功能和编程结构8253的编程结构

假设8253采用6.2.3节I/O端口地址译码电路的IO2输出(04A0H~04AFH),用地址总线A2A1进行端口选择,则各端口地址如下:CSA1A0读(RD)写(WR)端口地址000

CNT0→数据总线数据总线→CNT004A0H001

CNT1→数据总线数据总线→CNT104A2H010

CNT2→数据总线数据总线→CNT204A4H011

数据总线→控制字寄存器04A6H1XX无效(D7~D0为高阻状态)从计数器读出当前计数值向计数器写入计数初值向控制字寄存器写入控制字9.18253的引脚功能和编程结构8253的内部寄存器的选择目录9.18253的引脚功能和编程结构9.28253的编程9.38253的工作方式9.48253的应用举例26主要内容8253的控制字8253的计数初值9.28253的编程8253的初始化编程

8253的计数器读操作278253的控制字9.28253的编程SC1SC0RW1RW0M2M1M0BCD计数器选择读/写方式选择工作方式选择数制选择00计数器001计数器110计数器211无效00锁存计数器的当前值,以便读出检查01只读/写低8位计数值10只读/写高8位计数值11先读/写低8位,后读/写高8位计数值000方式0011方式3001方式1100方式4010方式2101方式5写入数的范围最大值00二进制数0000H~FFFFH655361十进制数BCD码0000H~9999H10000控制字格式28BCD位计数数制写入数的范围最大值00二进制数0000H~FFFFH655361十进制数BCD码0000H~9999H10000注意

8253每一计数器都是16位

8253的计数器是先减1计数,后判是否回零(计数次数到)的0000H1=FFFFH(二进制)0000H1=9999H(BCD码)再到零表示计数次数到,所以初值为零时达最大计数次数8253的控制字9.28253的编程计数次数与计数初值的关系29主要内容8253的控制字8253的计数初值9.28253的编程8253的初始化编程

8253的计数器读操作308253的计数初值9.28253的编程计数初值计算的2种情况当输出信号为连续的周期波时:假设计数器输入信号CLK的频率为fCLK,要求OUT端输出信号的频率为fOUT,则计数初值N的计算公式为N=fCLK

÷fOUT

当计数器/定时器工作在定时方式时:如希望的定时时间为T,则计数初值N的计算公式为:N=fCLK

×T31

9.2-2若给8253的计数预置的初值N=400,则当计数器计到数值为“0”时,时间T=

,设8253的计数脉冲频率为0.5MHz。计数周期=1/0.5M=2s,所以计数400次的时间是4002=800s=0.8ms0.8ms9.2-18253可以实现定时功能,若计数脉冲为1kHz,则定时1s的计数初值应该为

。N=fCLK

T=1kHz1s=10001000fCLKT8253的计数初值9.28253的编程32主要内容8253的控制字8253的计数初值9.28253的编程8253的初始化编程

8253的计数器读操作33

8253的初始化步骤包括两方面的内容:

先向控制字寄存器写入控制字;

后向相应计数器写入计数初值。设置初始值时,要按控制字中RW1、RW0所约定的格式规定写入计数初值。注意SC1SC0RW1RW0M2M1M0BCD01只读/写低8位计数值10只读/写高8位计数值11先读/写低8位,后读/写高8位计数值8253的初始化编程9.28253的编程34

例9.2-1某系统用8235作为电话双音频信号发生电路。用计数器0和计数器1产生双音频所需的两个方波信号,经方波正弦波转换电路转换成两个音频信号并叠加得到双音频信号。用计数器2作为发号时间控制定时器。+5V1MHzINT方波到正弦波转换电路方波到正弦波转换电路发号时间到中断请求双音频信号输出8253CLK0CLK1CLK2GATE0GATE1GATE2OUT1OUT0OUT28253的初始化编程9.28253的编程35+5V1MHzINT方波到正弦波转换电路方波到正弦波转换电路发号时间到中断请求双音频信号输出8253CLK0CLK1CLK2GATE0GATE1GATE2OUT1OUT0OUT2电话双音频信号是两个音频信号的叠加,以数字8为例,两个音频信号的频率分别为852Hz和1336Hz。当按下一个电话号码时电话机将发出这一双音频信号,其发号时间为50ms~80ms,本例选50ms。根据原理电路我们使计数器0产生852Hz的方波,计数器1产生1336Hz的方波,计数器2产生50ms的定时,时间到产生中断请求信号。8253的初始化编程9.28253的编程36计算各计数器计数初值计数器0:fCLK0=1MHz,fOUT0=852HzN

=fCLK0/fOUT0=1MHz/852Hz=1174计数器1:fCLK1=1MHz,fOUT1=1336HzN

=fCLK1/fOUT1=1MHz/1336Hz=748计数器2:fCLK2=1MHz,T

=50msN

=fCLK2

×T=1MHz×50ms=50000=C350H8253的初始化编程9.28253的编程37确定各计数器控制字计数器0:读写高低8位方式3BCD码计数(1174H)计数器1:计数器2:读写高低8位方式3BCD码计数(748H)读写高低8位方式0二进制计数(C350H)SC1SC0RW1RW0M2M1M0BCD0011011137H0111011177H101100000B0H8253的初始化编程9.28253的编程38确定端口地址设8253的片选如9.1.3节,A2A1接8253的A1A0,则端口地址为:

0#—04A0H1#—04A2H2#—04A4H控制字寄存器—04A6H8253的初始化编程9.28253的编程A7A6A5A4A3A2A1A0A11A10A9A810100000010010100010010010100100010010100110010039初始化程序COUNTER0: MOV AL, 37H MOV DX,04A6H OUT DX,AL MOV AL, 74H MOV DX,04A2H

OUT DX,AL MOV AL, 11H

OUT DX,AL1174对应的BCD码为1174H先向控制字寄存器送控制字然后对计数器0按控制字设置的方式送计数初值8253的初始化编程9.28253的编程40初始化程序COUNTER1: MOV AL, 77H MOV DX,04A6H OUT DX,AL MOV AL, 48H MOV DX,04A4H OUT DX,AL MOV AL, 07H OUT DX,AL748对应的BCD码为0748H8253的初始化编程9.28253的编程41初始化程序COUNTER2: MOV AL, 0B0H

MOV DX,04A6H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论