第9章可编程接口芯片及其与CPU的接口技术Word文档下载推荐.docx
《第9章可编程接口芯片及其与CPU的接口技术Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第9章可编程接口芯片及其与CPU的接口技术Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
方式0(基本输入/输出方式)
方式1(选通输入/输出方式)
方式2(双向传送方式)
各端口可工作的方式:
A口:
方式0、方式1、方式2
B口:
方式0、方式1
C口:
方式0
2)8255A的控制字
①方式控制字
②C口置“1”/清“0”控制字
4.8255A各工作方式的功能及应用
1)8255A工作在方式0
特点:
8255A工作在方式0时,各个端口(包括2个8位端口A、B及2个4位端口C)的输入、输出可以有16种不同的组合。
在这种方式下,任一个端口都由CPU用简单的输入/输出指令进行读/写。
不用提供“联络”信号,适用于各种同步传送情况。
另外,方式0也可用于程序查询方式来进行数据传送。
此时,通常以A口和B口作为数据口,而用C口的某些位作为输入输出“联络”信号。
注意,输入“联络”信号和输出“联络”信号不在同一4位C口中。
2)8255A工作在方式1
8255A工作在方式1时,数据输入/输出操作要在选通信号控制下完成。
A口和B口可作为输入或输出口,而C口的某些位作为“联络”信息。
和方式0相比,最重要的差别在于C口的这些位与联络信号有着固定的一一对应关系。
A口的联络信息由C口的PC3~PC7提供,B口的联络信息由C口的PC0~PC3提供。
另外,8255A在方式1下具有中断能力,可以发出中断请求信号,为CPU工作在中断方式提供了条件。
由于输入接口和输出接口所需的选通控制不同,下面分别予以介绍。
①选通输入方式
Ø
选通输入方式C口“联络”信号定义图
方式1输入时“联络”信号时序图
②选通输出方式
选通输出方式C口“联络”信号定义图
方式1输出时“联络”信号时序图
3)8255A工作在方式2
8255A只有A口可工作在方式2,此时B口可工作在方式0或者方式1。
8255A工作在方式2,CPU通过它与外设交换数据可采用无条件传送方式,查询传送方式或中断传送方式。
A口设置为方式2,也就是说从A口既可以输入数据,也可以输出数据,但某时某刻只能是输入或输出。
实际上是A口方式1输入和输出的组合形式。
方式2下C口“联络”信号定义图。
第二讲可编程计数器/定时器8253
1.8253的内部结构及功能
1)内部结构及引脚
端口地址分配:
CSA1A0端口地址
0000#计数器地址
0011#计数器地址
0102#计数器地址
011控制字寄存器地址
计数器的内部结构
2)功能
计数器方式
定时器方式
2.8253的编程
1)控制字格式
2)对计数器赋计数初值
控制字写完后,接着赋计数初值。
计数初值写入计数器的格式必须按照控制字的RL1、RL0的读写指示来写。
另外,当D0=0时,即选择二进制计数,计数初值可在0~FFFFH之间选择。
当D0=1时,即选择BCD码计数,计数初值可在0~9999之间选择。
若想扩大计数范围,可以将两个或三个计数器级连使用。
即将一计数器的OUT信号与另一计数器的CLK信号相连接。
3)读计数器的内容
8253的读操作只能读计数器的值,而不能读控制字。
若读16位计数值,则对该计数器读两次,先读低8位,再读高8位。
如果在计数过程中读计数器内容,则需发锁存命令。
计数器的锁存命令是用一个字节的最高两位D7,D6指定要锁存的计数器;
D5,D4必须为00作为锁存命令的标志。
而低4位可为全0。
它是控制字的一种特殊形式,所以要把此锁存命令写到控制字寄存器中去。
可见,3个计数器的锁存命令分别为00H,40H和80H。
4)举例
例1若要使计数器1工作在方式0,仅用8位二进制计数,计数值为128,试对其进行初始化编程。
MOVAL,50H
OUT73H,AL
MOVAL,80H
OUT71H,AL
例2若要使计数器0工作在方式1,按BCD码计数,计数值为3000,试对其进行初始化编程。
MOVAL,23H
MOVAL,30H
OUT70H,AL
例3若要使计数器2工作在方式2,按二进制计数,计数值为1110H,试对其进行初始化编程。
MOVAL,0B4H
MOVAL,10H
OUT72H,AL
MOVAL,11H
例48253工作方式同上题。
要在计数过程中读取该计数器的计数值。
试对其进行初始化编程。
MOVBH,20H
W:
DECBH
JNZW
INAL,72H
MOVCL,AL
MOVAH,AL
MOVAL,CL
3.8253的工作方式
1)方式0
主要特点:
方式0的OUT输出是一次性负方波。
若想再次OUT输出,必须重写控制字、计数值或只写计数值。
2)方式1
方式1的OUT输出是一次性负方波。
若想再次OUT输出,只须重新启动GATE脉冲。
3)方式2
方式2的OUT输出是周期性的负脉冲。
例5:
已知计数脉冲CLK频率为2MHZ,要求每10ms产生一次中断,选用2#计数器。
8253地址70H~73H。
分析:
1、工作方式的选择
2、计数初值的确定
MOVAL,0B4H
MOVAL,20H
MOVAL,4EH
4)方式3
方式3的OUT输出是周期性的方波。
(若计数值n是偶数,则输出OUT是对称方波;
若计数值n是奇数,则输出OUT在(n+1)/2计数期间保持为高电平,而在(n-1)/2计数期间保持为低电平。
)
5)方式4
方式4的OUT输出是一次性负脉冲。
若想再次OUT输出,须再次写入计数值。
故又称软件触发选通方式。
6)方式5
方式5的OUT输出是一次性负脉冲。
若想再次OUT输出,只须再次启动GATE脉冲。
故又称硬件触发选通方式。
例6:
某8086系统中有一片8253芯片,利用其通道1完成对外部事件计数,计满250次向CPU发出中断申请;
利用2通道输出频率为1kHz的方波,试编写8253的初始化程序,硬件电路如图所示。
MOVAL,71H;
通道1控制字
OUT1EH,AL
MOVAL,0A7H;
通道2控制字
MOVAL,50H;
通道1计数值低8位
OUT1AH,AL
MOVAL,02H;
通道1计数值高8位
MOVAL,20H;
通道2计数值高8位
OUT1CH,AL
例78253通道2接有一发光二极管,要使发光二极管以点亮2s,熄灭2s的间隔工作,8253各通道端口地址分别为FFE9H~FFEFH。
其电路硬件图如图。
试编程完成以上工作。
MOVDX,0FFEFH;
控制字端口地址
MOVAL,65H;
OUTDX,AL
MOVDX,0FFEBH;
通道1端口地址
MOVAL,40H;
MOVDX,0FFEDH;
通道2端口地址
MOVAL,10H;
例8有如下接口原理图。
要求发光二极管L0亮5秒后就熄灭;
L1在K1启动后亮6秒后就熄灭;
L2亮4秒灭4秒交替进行。
写出源程序片段。
分析:
由译码电路分析可知,8253芯片计数器1、计数器2、计数器3及控制端口的地址分别为91H,93H,95H,97H。
根据接口图及题目要求,8253的计数器0应该工作在方式0,计数初值N0=5000;
计数器1应工作在方式1,N1=6000;
计数器2应工作在方式3,N2=8000。
MOVAL,21H;
初始化计数器0
OUT97H,AL
OUT91H,AL
MOVAL,63H;
初始化计数器1
OUT97H,AL
MOVAL,60H
OUT93H,AL
初始化计数器2
OUT95H,AL
第三讲可编程串行输入/输出接口芯片8251A
1.串行通讯概述
1)串行通讯方式
异步通讯同步通讯
2)串行通讯中的数据传送方向
单工半双工完全双工
3)串行输入/输出的实现
软件实现硬件实现
2.8251A芯片的特点及内部结构
既可用于同步传送方式又可用于异步传送方式。
完全双工传送,既能发送又能接受。
可检测奇偶出错、帧错误、溢出错误。
3.8251A芯片的引脚分配
1)数据总线
D7~D0
2)控制信号引脚
CLK、CS、C/D、RESET、RD、WR
3)发送器引脚
TXD、TXRDY、TXEMPTY、TXC
4)接受器引脚
RXD、RXRDY、RXC、
SYNDET/BRKDET
5)调制解调接口控制引脚
DTR、DSR、RTS、CTS
4.8251A的编程
1)方式选择控制字:
用来规定8251A的工作方式。
2)操作命令控制字:
用来规定8251A的工作状态。
3)状态字:
用来检查8251A工作状态,定时检测运行的错误,以便有效控制。
5.8251A的应用举例
例1设8251A为接收状态,双同步工作方式,7位/字符,偶校验。
设C/D连CPU的A0,地址为F0H,F1H。
试初始化编程。
MOVAL,B
OUT0F1H,AL;
方式选择控制字
MOVAL,16H
OUT0F1H,AL
输出同步字符
操作命令控制字
例2设8251A为异步工作方式,波特率系数为16,7位/字符,奇校验,两位停止位。
CPU从8251A输入80个字符。
试编程。
MOVAL,B
OUT0F1H,AL
MOVDI,OFFSETBUF1
MOVCX,80
WAIT:
INAL,0F1H
TESTAL,02H;
读RXRDY状态
JZWAIT
MOV[DI],AL
INCDI
TESTAL,B;
测错误标志
JNZERROR
LOOPWAIT
…
ERROR: