微机原理与接口技术 | 四种可编程芯片的编程要点不完全记录

注:未记录芯片的引脚和具体工作方式,主要记录芯片的各控制字或命令字的初始化编程要点,其字格式也并未给出,可翻阅书籍查找。

CONTENTS

  1. 可编程中断控制器Intel 8259A
  2. 可编程定时/计数器芯片8253
  3. 可编程并行接口芯片8255A
  4. 可编程串行接口芯片8251A
  5. 具体代码的编写方式(汇编,可先行看此)

写入到芯片端口 OUT指令
从芯片端口读 IN指令

1.可编程中断控制器Intel 8259A

对应写入的芯片端口地址:(小—偶地址,大—奇地址)

ICW1ICW2ICW3ICW4OCW1OCW2OCW3

a.初始化编程:根据使用要求,在正常操作开始前写入
写入顺序(要考虑题意是否需要此命令字):ICW1 -> ICW2 -> ICW3 -> ICW4

芯片控制初始化命令字ICW1:需要ICW4?单、多片8259?电平、边沿?
中断类型初始化命令字ICW2:一般写入最小的中断类型号
主 / 从片初始化命令字ICW3:主从格式不同
方式控制初始化控制字ICW4:嵌套?缓冲?EOI?88/85?

b.工作方式编程:OCW1、OCW2、OCW3 %根据使用要求,在工作开始前工作期间写入皆可

屏蔽操作命令字OCW1:对应位屏蔽或开放中断
中断方式操作命令字OCW2:中断结束?优先级循环?
状态操作命令字OCW3:读IRR、ISR或状态寄存器状 注:当需要读IMR时,按我的做题经验直接从大地址(奇地址)读

2.可编程定时/计数器芯片8253

芯片端口地址:
a.单字节,eg : 40H 41H 42H 43H
b.双字节,eg:310H 312H 314H 316H

计数器0(通道0)计数器1(通道1)计数器2(通道2)控制端口
40H41H42H43H
310H312H314H316H

一个控制字:初始化时先写控制字(写入控制端口),再送计数初值(写入相应计数器的端口)。
要根据计数初值字节数来选用具体的读写格式和计数制。
当计数初值为两字节时,先写入低字节再高字节。

3.可编程并行接口芯片8255A

芯片端口地址:eg : 40H 41H 42H 43H

A口B口C口控制口
40H41H42H43H

a.方式选择控制字:写入控制口
b.C口置位/复位控制字:写入控制口,对C端口任意位置复位
有需求的话一般先a后b

4.可编程串行接口芯片8251A

一个控制口地址(先写a后b)
a.方式控制字:写入控制口,若有同步字符,则需要在此后写入字符,同样写入控制口
b.命令控制字:写入控制口
c.状态字

5.具体代码的编写方式

eg.控制字为10110000B,写入控制口地址为单字节34H

MOV AL,10110000B
OUT 34H,AL

eg.控制字为10110000B,写入控制口地址为双字节310H,要用DX做跳板

MOV DX,310H
MOV AL,10110000B
OUT DX,AL

eg.读取指定端口的内容如上,单字节直接读,双字节需要借助DX

IN AL,30H	;单字节端口

MOV DX,310H		;双字节端口
IN AL,DX

中断服务程序普通EOI命令:

MOV AL,20H
OUT 小地址,AL
IRET

中断服务子程序的装载(借助DOS功能调用装载),即写入中断向量表

MOV DS,n_CS		;n的基地址,基地址为16位时要借助AX跳板
MOV DX,n_IP		;n的偏移地址
MOV AL,n		;中断类型号n
MOV AH,25H
INT 21H
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值