1、复习8251 四.8251串行接口应用举例 1.3线制通信方式 在2台PC机相距不远时,串行通信用不着DTS、DTR等的为MODEM控制用的应答控制信号,直接将RS232中的 TXD、RXD与对方的RXD、TXD连接即可。 这就是串行通信中的最简3线方式。 §2可编程计数/定时控制器8253 一. 8253内部结构 1. 3个独立通道(计数器) 3个16位减1计数器:D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1
2、D0 可设为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
3、 写方式控制字(WR=0,写) 与8255同样的理由,8253占据4个端口地址 4. 控制字寄存器 二. 定时系数的计算 当CLK接入周期信号时,计数器就可作为定时器用 定时时间=定时系数* CLK脉冲周期 或: 定时系数= 例如CLK为1MHZ时钟信号,若要定时1ms,则 定时系数为:1ms / 1us=1000=3E8H 即计数器初始值需设为3E8H.( 二进制计数) 或1000H( BCD计数
4、) 三.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 10
5、1:方式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
6、的时钟脉冲,利用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 ;先送0
7、9C4H的低字节 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——L
8、ED 运行后可观察到该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
9、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,MO
10、DE13 ;定时器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 $ ;原地踏步等待






