二、可编程定时器/计数器8253
? 8253是Intel公司生产的通用可编程定时/计数器,定时时间与计数次数由用户事
先设定。
? 8253的读/写操作对系统时钟没有特殊的要求,可应用于由任何一种微处理器组成
的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。
1.8253的内部结构及引脚功能
2)8253的引脚功能
8253采用双列直插式封装,有24个引脚。
26
3)8253的工作方式
? 8253的每个计数器都有6种工作方式:方式0~方式5。 ? 这6种工作方式的不同点是:
? 输出波形不同
? 启动计数器的触发方式不同
? 计数过程中GATE信号对计数过程的影响不同
4)8253的初始化 (1) 8253方式控制字
(2)8253初始化编程
8253初始化编程步骤是:
? 先写控制字到8253的控制端口。
? 再写计数器初值到相应的计数器端口。
例:在8086系统中,设8253的计数器0工作在方式2,二进制计数,计数初值为2000,8253的计数器1工作在方式3,BCD码计数,计数初值为100,8253端口地址为40H~43H。试编写初始化程序。
27
AL,34H ;方式控制字00110100B=34H
OUT 63H,AL ;将控制字送入8253A控制端口63H MOV AX,2000 ;初值送AX寄存器
OUT 60H,AL ;将初值的低8位输出计数通道0端口60H MOV AL,AH ;初值的高8位送AL寄存器
OUT 60H,AL ;将将初值的高8位输出计数通道0端口60H
8253计数器1的初始化程序如下:
MOV AL,57H ;方式控制字01010111B=57H
OUT 63H,AL ;将控制字送入8253A控制端口63H
MOV AL,100H ;初值100送AL寄存器,因为BCD码计数,要送100H OUT 61H,AL ;将初值的低8位输出计数通道1端口61H
【例】硬件图如图所示,。要求将一输入频率为2MHz信号,利用8253做一个秒信号发生器,其输出接一发光二极管,以0.5秒点亮,0.5秒熄灭的方式闪烁指示。设8253的通道地址为400H~403H。
28
MOV AL,34H ;或36H MOV DX,403H
OUT DX,AL ;写计数器0方式控制字 MOV DX,400H MOV AX,20000
OUT DX,AL ;写计数器0计数初值低8位 MOV AH,AL
OUT DX,AL ;写计数器0计数初值高8位 MOV AL,56H MOV DX,403H
OUT DX,AL ;写计数器1方式控制字 MOV DX,401H MOV AL,100
OUT DX,AL ;写计数器1计数初值低8位
三、可编程串行通信接口芯片8251A 1.基本概念
1).并行通信、串行通信。 2).传输速率
在并行通信中,传输速率用每秒传输的字节数表示,单位是:Bps。
在串行通信中,传输速率用波特率来表示。波特率是指单位时间内传送的二进制数据的位数,是衡量串行数据传送速度的重要指标。波特率的单位是:波特,1波特=1位/秒(bps)。 常见的标准波特率有:110bps、1200bps、9600bps和115200bps。 3).发送/接收时钟
在发送数据时,发送器在发送时钟的有效沿作用下将移位寄存器的数据按位移位串行输出;
29
在接收数据时,接收器在接收时钟的有效沿作用下对接收数据按位采样,并按位串行移入移位寄存器。
发送/接收时钟是对数据信号进行同步的,其频率将直接影响设备发送/接收数据的速度。发送/接收时钟频率一般是发送/接收波特率的n倍,n称为波特率因子,一般取1、16、32或64。
4).异步串行通信和同步串行通信
(1)异步串行通信中的异步是指发送端和接收端不使用共同的时钟,也不在数据中传送同步信号,但接收方与发送方之间必须约定传送数据的帧格式和波特率。
在异步串行通信中,通信双方以一个字符(含附加位)作为数据传输单位(一个数据帧),而且发送方传送字符的时间是不定的。在传输一个字符时,总是以起始位(1位,低电平)开始,以停止位(1、1.5或2位,高电平)结束。为了使数据可靠传送,还可包含奇偶校验位。
(2)同步串行通信
在异步串行通信中数据的每一帧都需要附加起始位和停止位,因而降低了传送有效数据的效率。对于快速传送大量数据的场合,为了提高数传的效率,一般采用同步串行传送方式。 同步传送时,无需起始位、停止位。每一帧包含较多的数据,在每一帧开始处使用1-2个同步字符以表示一帧的开始。
同步传送要求对传送的每一位在收发两端保持严格同步,发送、接收端可使用同一时钟源以保证同步。
2.可编程串行通信接口芯片8251A 1).8251A的基本功能
? 能以同步方式或异步方式进行工作。
? 工作于同步方式时,每个字符可定义为5、6、7或8位,可以选择进行奇校
验、偶校验或不校验。内部能自动检测同步字符实现内同步或通过外部电路获得外同步,波特率为0~64K。
? 工作于异步方式时,每个字符可定义为5、6、7或8位,用1位作为奇偶校
验(可选择)。时钟速率可用软件定义为通信波特率的1、16或64倍。能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据增加1个、1.5个或2个停止位。异步方式下,波特率为0~19200bps。 ? 8251A能进行出错检测,具有奇偶、溢出和帧错误等检测电路。
? 具有独立的接收器和发送器,因此,能够以单工、半双工或全双工的方式进
行通信。并且提供一些基本控制信号,可以方便地与调制解调器连接。
2).8251A的内部结构
30