8088/8086微机系统常用接口芯片控制及状态字

目录

1、8253定时器/计数器

2、8259A中断控制器

3、8255A并行通信接口芯片

 4、8251A串行通信接口芯片

1、8253定时器/计数器

1)D7、D6 计数器:题目会明确

2)D5、D4 读/写格式:看计数初值大小及数制   

  • 若D0为二进制,计数范围:0-65535。

        当计数初值小于255,只读/写低8位,D5D4=01;

        若大于255,当低8位全为0时,可令D5D4=10,只读/写高8位,

        否则令D5D4=11,先读/写低8位,后读/写高8位。

  • 若D0为BCD码,计数范围0-9999。

        两位数以内,令D5D4=01,只读/写低8位;

        两位数以上,若低两位数全为0,令D5D4=10,只读/写高8位,

        否则令D5D4=11,先读/写低8位,后读/写高8位。

3)D3D2D1 工作方式:看输出波形及启动方式

不能自动重复计数的工作方式--不会输出连续波形

◆方式0:软件启动,计数结束输出高电平。

◆方式1:硬件启动,计数开始输出低电平,结束后又变高。

◆方式4:软件启动,计数结束输出一个CLK宽度的低电平。

◆方式5:硬件启动,波形与方式4相同。

能够自动重复计数的工作方式--会输出连续波形

◆方式2:软、硬件启动,计数到最后一个脉冲时输出低电平。

◆方式3:软、硬件启动,输出对称方波。

常见举例:

(1)输出方波:选方式3

(2)计数满后向CPU申请一次中断:选方式0

(3)每隔一段时间输出一个负脉冲:选方式2

4)D0 数制:D0=0 二进制计数   ,  D0=1 BCD码计数

2、8259A中断控制器

(1)初始化命令字ICW1

  • ICW1必须写入A0=0的端口地址
  • D7~D5和D2 --- 在8086/8088系统中不用,用户编程时可写入任意值
  • D4 --- 恒为1,为ICW1的标志位
  • D3 --- LTIM位,规定中断请求信号的触发形式。当D3=1时,表示为电平触发方式;当              D3=0时,表示为边沿触发方式
  • D1 --- SNGL位,若8259A单片工作,D1=1,否则D1=0
  • D0 --- IC4位,若使用ICW4,则D0=1,否则D0=0

(2)初始化命令字ICW2

  •  ICW2必须写入A0=1的端口地址,用来设置中断类型码,其高5位即T7~T3为中断类型码的高5位,低3位无意义,用户编程时可写入任意值。

 (3)初始化命令字ICW3

          ICW3只有系统中有多片8259A时才有意义,即只有ICW1中的D1=0时才需送此字。ICW3必须写入A0=1的端口地址,且对主片和从片编程时的定义不同.

  • 主片ICW3:若IRi接有从片,则相应位置1,否则相应位置0

  • 从片ICW3:D7-D3 随意设置,D2-D0 等于该从设备的INT端所连接的主片的IRi引脚的编码i。例如,某从片连在主片的IR3,则该从片的ICW3的低3位即为011B。因此,从片的ICW3是用来指出本片连在主片的哪一个引脚。ICW3的高5位无用,可写人任意值。

 (4)初始化命令字ICW4

  • ICW4必须写入A0=1的端口地址,其中 D7D6D5=000是ICW4的标志位
  • D4 --- SFNM位,D4=1,中断优先级设置为特殊的全嵌套方式;D4=0,中断优先级设置为普通的全嵌套方式
  • D3 --- BUF位,用来指出本片是否工作在缓冲方式,并由此决定了SP/EN的功能。D3=1表示8259A工作在缓冲方式(经缓冲器与总线相连),反之,8259A 工作在非缓冲方式(直接与总线相连)
  • D2 --- M/S位,在缓冲方式下,用来表明相应8259A是否为主片,若为主片,置D2=1;否则置D2=0;非缓冲方式下随意设置
  • D1 --- AEOI位,D1=1,置自动中断结束方式;D1=0,中断结束需用中断结束命令
  • D0 --- μPM位,在8086/8088系统中,μPM=1;在8080/8085系统中,μPM=0

 (5)操作命令字OCW1

  • OCW1 即为中断屏蔽字,用来设置8259A的屏蔽操作。M7~M0代表8个屏蔽位,分别用来控制 IR7~IR0 输入的中断请求信号。如果某位Mi为1,则屏蔽相应的 IRi 输人的中断请求;如果某位 Mi 为0,则清除屏蔽,允许相应的 IRi 的中断请求信号进入优先级排队

 (6)操作命令字OCW2

  • OCW2必须写入A0=1的端口地址,且要求 D4D3=00
  • D7 --- R位,优先权循环控制位。D=1表示为循环优先权方式,反之为固定优先权方式

在固定优先权方式下,中断优先级排序是IR0>IR1>…>IR7,即来自IR0的中断优先级最高,来自IR7的中断优先级最低。而在循环优先权方式下,优先级的队列是在变化的,刚刚服务过的中断请求的优先级降为最低,例如,目前的优先权队列是IR0>IR1>…>IR7,而来自IR3的中断刚刚被服务过,则优先权队列变为IR4>IR5 >…>IR0>IR1>IR2>IR3。初始时可以是IR7级别最低,也可由L2~L0的编码来确定(此时要求D6=1)。

  • D6 -- SL位,用来指定L2~L0是否有效。D6=1时,OCW2的低3位即L2~L0有效,反之无效
  • D5 --- EOI位,D5=1 表明相应操作命令是中断结束命令
  • D2~D0 --- L2~L0位,表明所对应的中断源,注:只有D6=1时有效

(7)操作命令字OCW3 

  • OCW3必须写入A0=0的端口地址,且要求D4D3=01、D7=0
  • D6 --- ESMM位,特殊屏蔽方式允许位,D6=1即允许特殊屏蔽方式
  • D5 --- SMM位,特殊屏蔽方式位,只有当D6=1时这位才起作用。若D6D5=11,则8259A进入特殊屏蔽方式;若D6D5 =10,则恢复原来的屏蔽方式
  • D2 --- P位,查询方式位,D4=1表示相应的操作字是查询中断源命令
  • D1 --- RR位,读寄存器命令字,D1=1时允许读ISR和IRR寄存器,前提是D2必须为0,即不处于查询方式
  • D0 --- RIS位,读ISR和IRR的选择位,它必须和D1位结合起来使用。当D1D0= 10时,允许读IRR的内容;当D1D0=11时,允许读ISR的内容

3、8255A并行通信接口芯片

 

D3 ---设置C口的PC4-PC7是做输入还是输出

D0 ---设置C口的PC0-PC3是做输入还是输出

 若系统要求8255A 的A口方式2,B口方式1输出。编写初始化程序(假设8255A的端口地址为04H~07H)。

分析 确定控制字为:11×××10×B

这时,共有4位的取值是任意的,其中D0和D3是由于此时C口用作应答联络线,是无法用编程来改变的,D4位是由于A口方式2是双向(即可同时输人/输出),此位的编程已失去意义,D5位则是控制字本身格式决定。

A口方式2要求使PC4和 PC6置位来开放两个中断,B口方式1要求使PC2置位来开放中断,需要确定相应的按位置位/复位的控制字。

PC4置位:0×××1001B

PC6置位:0×××1101B

PC2置位:0×××0101B

初始化程序如下(以上控制字中不用的位均置0)。

MOV AL,0C4H

OUT 07H,AL      ;设置工作方式

MOV AL,09H

0UT 07H,AL       ;PC4置位,A口输入允许中断

M0V AL,ODH

0UT 07H,AL       ;PC6置位,A口输出允许中断

MOV AL,05H

OUT 07H,AL      ;PC2置位,B口输出允许中断

总结:8255初始化一般只需将控制字写入控制端口地址,若要求PCn置/复位,则将置/复位控制字也写入同一控制端口地址。

 4、8251A串行通信接口芯片

 (1)方式选择控制字(模式字)

  • D1、D0 --- 用来确定8251A是工作于同步方式还是异步方式,如果是异步方式则可由D1D0的取值来确定传送速率,×1表示输入的时钟频率与波特率相同;×16表示时钟频率是波特率的16倍,×64表示时钟频率是波特率的64倍。因此通常称1、16、64 为波特率系数,它们之间存在着如下关系:发送/接收时钟频率=发送/接收波特率×波特率系数
  • D3、D2 --- 用来定义数据字符的长度,每个字符可为5、6、7或8位
  • D4 --- 用来定义是否允许带奇偶校验。当D4=1时,由D5位定义是采用奇校验还是偶校验
  • D5 --- 用来定义是采用奇校验还是偶校验,D5=1时,采用偶校验,反之采用奇校验
  • D7、D6 ---这两位在同步方式和异步方式时的定义是不相同的。异步方式时,通过它们的不同编码来定义停止位的长度(1、1.5或2位);而同步方式时,则通过它们的不同编码来定义是外/内同步或单/双同步

 (2)操作命令控制字(控制字)

  • D0(TxEN) --- 允许发送。D0=1则允许发送,反之则不允许发送。8251A 规定,只有当TxEN=1时,发送器才能通过TxD线向外部发送数据
  • D1(DTR) --- 数据终端准备就绪。D1=1表示终端设备已准备好,反之表示终端设备未准备好
  • D2(RxE) --- 允许接收。D2=1允许接收,反之则不允许接收。8251A规定,只有当RxE=1时,接收器才能通过RxD线从外部接收数据
  • D3(SBRK) --- 发送终止字符。D3=1,强迫TxD为低电平,输出连续的“0”信号
  • D4(ER) --- 错误标志复位。D4=1,使状态寄存器中的错误标志(PE/OE/FE)复位
  • D5(RTS) --- 请求发送。D5=1,使8251A 的\overline{RTS}输出引脚有效,表示CPU已作好发送数据准备,请求向调制解调器或外设发送数据
  • D6(IR) --- 内部复位。D6=1,追使8251A内部复位重新进入初始化
  • D7(EH) --- 外部搜索方式。该位只对同步方式有效。D7=1,表示开始搜索同步字符。

(3)状态字

  • D0(TxRDY) --- 发送准备好标志,它与引脚TxRDY的含义有些区别。TxRDY状态标志为“1”只反映当前发送器已空,而TxRDY引脚为“1”的条件,除发送数据缓冲器已空外,还要求\overline{CTS}=0和 TxEN=1,也就是说它们存在下列关系:                                          TxRDY引脚端=(TxRDY状态位=1)且(\overline{CTS}=0)且(TxEN=1)
  • D3(PE) --- 奇偶错标志位。PE=1,表示产生了奇偶错,但它不中止8251A 的工作
  • D4(OE) --- 溢出错标志位。OE=1,表示当前产生了溢出错,即CPU还没来得及将上一个字符取走,下一个字符又来了。虽然它不中止8251A 继续接收下一个字符,但上一个字符将丢失
  • D5(FE) --- 帧校验错标志位,只对异步方式有效。FE=1,表示未检验到停止位,但它不中止8251A 的工作

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值