资源描述
复习8251
四.8251串行接口应用举例
1.3线制通信方式
在2台PC机相距不远时,串行通信用不着DTS、DTR等的为MODEM控制用的应答控制信号,直接将RS232中的
TXD、RXD与对方的RXD、TXD连接即可。
这就是串行通信中的最简3线方式。
§2可编程计数/定时控制器8253
一. 8253内部结构
1. 3个独立通道(计数器)
3个16位减1计数器:D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0
可设为2进制计数,从FFFFH计到0000H
也可设为BCD计数 ,从9999H计到0(当作10进制计数)
CLK 计数输入端 GATE计数门控端 OUT计数溢出端
2. 数据缓冲器
3. 读写控制电路
A1、A0:通道及控制字寄存器选择
CS A1 A0 操作对象
0 0 0 读写通道0(WR=0,写;RD=0,读)
0 0 1 读写通道1(WR=0,写;RD=0,读)
0 1 0 读写通道2(WR=0,写;RD=0,读)
0 1 1 写方式控制字(WR=0,写)
与8255同样的理由,8253占据4个端口地址
4. 控制字寄存器
二. 定时系数的计算
当CLK接入周期信号时,计数器就可作为定时器用
定时时间=定时系数* CLK脉冲周期
或:
定时系数=
例如CLK为1MHZ时钟信号,若要定时1ms,则
定时系数为:1ms / 1us=1000=3E8H
即计数器初始值需设为3E8H.( 二进制计数)
或1000H( BCD计数)
三.8253的工作方式
四. 8253控制字
D7 D6 D5 D4 D3 D2 D1 D0
SC1
SC0
RL1
RL0
M2
M1
M0
BCD
1:BCD计数
0:二进制计数
00:计数器锁存
01:只读写计数器
低字节
10:只读写计数器
高字节
11:先读写计数器
低字节,
后读写计数器
高字节
00:通道0
01:通道1
10:通道1
11:无效
000:方式0
001:方式1
*10:方式2
*11:方式3
100:方式4
101:方式5
8253与8088的连接
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
地址
1
1
0
0
0
1
0
0
0
0
310H
通道0
1
1
0
0
0
1
0
0
0
1
311H
通道1
1
1
0
0
0
1
0
0
1
0
312H
通道2
1
1
0
0
0
1
0
0
1
1
313H
控制字寄存器
五.8253编程
例1. 已知8253通道1的CLK1脚上接2.5MHZ的时钟脉冲,利用8253通道1,产生1KHZ的方波。
解:
根据题意,设定8253为方波方式(方式3)
8253通道1设定的初值(定时系数)=1ms / 0.4us=2500=09C4H
STT: MOV DX,8253控制字寄存器端口
MOV AL,01110110B ;通道1,先读写高字节后读写低字节
OUT DX, AL ;,方式3,二进制计数
MOV DX,8253通道1端口
MOV AL,0C4H
OUT DX,AL ;先送09C4H的低字节
MOV AL, 09H
OUT DX , AL ;再送09C4H的高字节
运行完这段程序,8253就自动进入产生方波方式,其OUT1引脚上产生1KHZ的方波。
并不需要程序反复设定(方波方式自动重装定时常数)
六.定时器/计数器实验
编程
定时器0设定为方式3——方波发生器
定时器1设定在方式2——速率波发生器
定时器2设定在方式2——速率波发生器
连线
定时器0_OUT——定时器1_CLK
定时器1_OUT——定时器2_CLK
定时器2_OUT——LED
运行后可观察到该LED在不停闪烁
程序
TIM_CTL EQU 22bH
TIMER0 EQU 228H
TIMER1 EQU 229H
TIMER2 EQU 22aH
MODE03 EQU 00110110B ;通道0,先读写低字节,后读写高直接,方式3,二进制计数
MODE13 EQU 01110100B
MODE22 EQU 10110100B
MOV DX,TIM_CTL ;DX指向控制字端口地址
MOV AL,MODE03 ;定时器0工作在方式3
OUT DX,AL ;送出控制字,初始化通道0
MOV DX,TIMER0 ;DX指向通道0端口地址
MOV AL,00H
OUT DX,AL ;先写低字节00H
mov al,01h
out dx,al ;后写高字节01H 写0100H
MOV DX,TIM_CTL ;DX指向控制字端口地址
MOV AL,MODE13 ;定时器1工作在方式2
OUT DX,AL ;送出控制字,初始化通道1
MOV DX,TIMER1
MOV AL,18H
OUT DX,AL
mov al,00h
out dx,al ; 通道1定时/计数值 0018H
MOV DX,TIM_CTL ;DX指向控制字端口地址
MOV AL,MODE22 ;定时器2工作在方式2
OUT DX,AL ;送出控制字,初始化通道2
MOV DX,TIMER2
MOV AL,0aH
OUT DX,AL
mov al,00h
out dx,al ; 通道2定时/计数值 000AH
STI
JMP $ ;原地踏步等待
展开阅读全文