null第9章 定时计数控制接口第9章 定时计数控制接口教学重点
8253的引脚和6种工作方式
8253的编程
定时器和计数器定时器和计数器定时控制在微机系统中极为重要
定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔
计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器定时功能的实现方法定时功能的实现方法软件延时——利用微处理器执行一个延时程序段实现
不可编程的硬件定时——采用分频器、单稳电路或简易定时电路控制定时时间
可编程的硬件定时——软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路9.1 8253/8254定时计数器9.1 8253/8254定时计数器3个独立的16位计数器通道
每个计数器有6种工作方式
按二进制或十进制(BCD码)计数8254是8253的改进型9.1.1 8253/8254的内部结构和引脚9.1.1 8253/8254的内部结构和引脚计数器结构示意图计数器结构示意图计数初值存于预置寄存器;
在计数过程中,
减法计数器的值不断递减,
而预置寄存器中的预置不变。
输出锁存器用于写入锁存命令时,
锁定当前计数值计数器的3个引脚计数器的3个引脚CLK时钟输入信号——在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1
GATE门控输入信号——控制计数器工作,可分成电平控制和上升沿控制两种类型
OUT计数器输出信号——当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号2. 与处理器接口2. 与处理器接口D0 ~ D7数据线 A0 ~ A1地址线
RD*读信号 WR*写信号
CS*片选信号9.1.2 8253/8254的工作方式9.1.2 8253/8254的工作方式8253有6种工作方式,由方式控制字确定
熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式
每种工作方式的过程类似:
⑴ 设定工作方式
⑵ 设定计数初值
〔 ⑶ 硬件启动 〕
⑷ 计数初值进入减1计数器
⑸ 每输入一个时钟计数器减1的计数过程
⑹ 计数过程结束方式0 计数结束中断方式0 计数结束中断①
设
定
工
作
方
式②
设
定
计
数
初
值④
计
数
值
送
入
计
数
器⑤
计
数
过
程⑥
计
数
结
束方式1 可编程单稳脉冲方式1 可编程单稳脉冲①
设
定
工
作
方
式②
设
定
计
数
初
值③
硬
件
启
动④
计
数
值
送
入
计
数
器⑤
计
数
过
程⑥
计
数
结
束方式2 频率发生器(分频器)方式2 频率发生器(分频器)方式3 方波发生器方式3 方波发生器方式4 软件触发选通信号方式4 软件触发选通信号方式5 硬件触发选通信号方式5 硬件触发选通信号各种工作方式的输出波形各种工作方式的输出波形讨论:
计数开始的时刻六种工作方式小结六种工作方式小结
方式0:计数初值N写入CR后,当GATE为高电平时,经过N个时钟脉冲之后OUT由0到1跳变
延迟时间 TD=N ×T CLK
每写一次初值运行一次 null
方式1:计数初值N写入CR后,由GATE触发,OUT输出一个单脉冲
延迟时间 T=N ×T CLK
不必每次都写初值。
null
方式2:计数初值N写入CR后,当GATE为高电平时,输入端每输入N个时钟脉冲,在输出端出现一 个时钟脉冲 —— N分频计数器。
自动重装入初值。 null 方式3:计数初值N写入CR后,当GATE为高电平时,OUT输出一系列方波(N分频计数器 )。N值为偶数和奇数时,方波高低电平时间不同(差一个时钟周期)。自动重装入初值 。
方式4:计数初值N写入CR后, 触发计数(此时GATE必须为高电平),经N个时钟脉冲,输出端产生选通负脉冲信号, 宽度= CLKnull
方式5:计数初值N写入CR后,硬触发(GATE一个正脉冲)后,经N个时钟脉冲, 输出端产生选通负脉冲信号,宽度= CLK
不必每次都写初值 9.1.3 8253/8254的编程9.1.3 8253/8254的编程8253加电后的工作方式不确定
8253必须初始化编程,才能正常工作
写入控制字
写入计数初值
读取计数值
8254新增读回命令1 写入方式控制字1 写入方式控制字00 计数器0
01 计数器1
10 计数器2
11 非法00 计数器锁存命令
01 只读写低字节
10 只读写高字节
11 先读写低字节
后读写高字节000 方式0
001 方式1
010 方式2
011 方式3
100 方式4
101 方式50 二进制
1 十进制控制字写入控制字I/O地址(A1A0=11)示例2 写入计数值2 写入计数值选择二进制时
计数值范围:0000H~FFFFH
0000H是最大值,代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
65536
选择十进制(BCD码)
计数值范围:0000~9999
0000代表最大值10000计数值写入计数器各自的I/O地址示例3 读取计数值3 读取计数值对8位数据线,读取16位计数值需分两次
计数在不断进行,应该将当前计数值先行锁存,然后读取:
向控制字I/O地址:给8253写入锁存命令
从计数器I/O地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制9.2 扩充定时计数器的应用9.2 扩充定时计数器的应用例题9.2
利用扩充定时计数器对外部事件的计数
例题9.3
为A/D转换电路提供可编程的采样信号例9.2例9.2null初始化程序段 mov dx,203h ;设置方式控制字
mov al,10h
out dx,al
mov dx,200h ;设置计数初值
mov al,64h ;计数初值为100
out dx,al例9.2输出:明确向哪个端口输出什么数据
输入:清楚从哪个端口输入什么数据例9.3例9.3null初始化计数器0 mov al,14h
mov dx,206h
out dx,al
mov al,cnt0
mov dx,200h
out dx,al例9.3null初始化计数器1 mov al,52h
mov dx,206h
out dx,al
mov al,cnt1
mov dx,202h
out dx,al例9.3null初始化计数器2 mov al,96h
mov dx,206h
out dx,al
mov al,cnt2
mov dx,204h
out dx,al例9.38253的控制字编程8253的控制字编程;某个8253的计数器0、1、2端口和控制端口地址依次是40H~43H
;设置其中计数器0为方式0,采用二进制计数,先低后高写入计数值
mov al,30h
;方式控制字:30H=00 11 000 0B
out 43h,al
;写入控制端口:43H8253的计数初值编程8253的计数初值编程;某个8253的计数器0、1、2端口和控制端口地址依次是40H~43H
;设置计数器0采用二进制计数,写入计数初值:1024(=400H)
mov ax,1024 ;计数初值:1024(=400H)
;写入计数器0地址:40H
out 40h,al ;写入低字节计数初值
mov al,ah
out 40h,al ;写入高字节计数初值8253/8254的I/O地址8253/8254的I/O地址0 1 0 0 00 1 0 0 10 1 0 1 00 1 0 1 10 0 1 0 00 0 1 0 10 0 1 1 0功 能对计数器0设置计数初值A1A0对计数器1设置计数初值对计数器2设置计数初值设置控制字从计数器0读出计数值从计数器1读出计数值从计数器2读出计数值null【例】利用8253的通道0和通道1,设计产生周期为1HZ的方波。设通道0的输入时钟频率为2MHz,8253所占端口地址为80H~83H。null
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
:
8253通道0工作于方式2(周期脉冲发生器),输出脉冲周期为10ms,则通道0的计数值为20000。周期为10ms的脉冲作为通道1的输入,要求输出端OUT1的波形为方波且周期为1s,则通道1工作于方式3,计数值为100。null习题1习题1设8253的的端口地址为40H~43H。要求计数器0工作在方式0,二进制计数,计数初值为1234H;计数器1工作在方式1,BCD计数,计数初值为100;计数器2工作在方式3,作为方波发生器,要求产生20KHZ的方波输出,并已知CLK2时钟输入信号频率为2MKZ。编写上述功能初始化程序。