微机原理与接口技术(6)_并行IO接口与串行IO接口
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、开关量的检测
在工业控制过程中, 例 【8-3】 在工业控制过程中 , 经常需要检测某些 开 关的 状 态 。 例 如 , 在 某一 系 统中 , 有 8 个 开 关 要求不断地检测它们的通断状态, K7~K0,要求不断地检测它们的通断状态,并随时 在发光二极管上显示。 通过8255A 的端口A 读入开 在发光二极管上显示 。 通过 8255A 的端口 A 8255 关状态信息,使端口B 端口C 关状态信息,使端口B、端口C连接的发光二极管的 状态与端口A 开关状态相呼应, 并重复执行。 状态与端口 A 开关状态相呼应 , 并重复执行 。 假设 8255A在系统中端口A 8255A在系统中端口 A、 B 、 C及控制口的地址分别 100H 101H 102H 103H 为 100H , 101H , 102H , 103H , 试设计出硬件电 路图,并编写程序。 路图,并编写程序。
例1:要把A口指定为1方式,输入,C口上半部为输出;B 要把A口指定为1方式,输入, 口上半部为输出; 组指定为0方式,输出, 口下半部定为输入, 组指定为0方式,输出,C口下半部定为输入,则工作方式 命令代码是:10110001B或B1H。( 8255A的CS端口为 。(设 命令代码是:10110001B或B1H。(设8255A的CS端口为 300H~303H, A1接地址总线的A1,A0接地址总线的A0) 接地址总线的A1 接地址总线的A0 300H~303H,且A1接地址总线的A1,A0接地址总线的A0) 若将此命令代码写到8255A的命令寄存器, 若将此命令代码写到8255A的命令寄存器,即实现了 8255A的命令寄存器 8255A工作方式及端口功能的指定 工作方式及端口功能的指定, 对8255A工作方式及端口功能的指定,或者说完成了对 8255A的初始化 初始化的程序段为: 的初始化。 8255A的初始化。初始化的程序段为: MOV MOV OUT DX, DX,303H AL, AL,0B1H DX, DX,AL ;8255A命令口地址 8255A命令口地址 ;初始化命令 ;送到命令口
8255A 2~9 PA0~7 DATA0~7 STB BUSY 地 打印机插座
CPU
PC7 PC2 地 8255A并行打印机接口电路框图 并行打印机接口电路框图
1 11
②打印过程分析 采用查询方式时,打印机与CPU之间传送数据的过程是: 采用查询方式时,打印机与CPU之间传送数据的过程是: CPU之间传送数据的过程是 A 首先查询BUSY。若BUSY=1,打印机忙,则等待;若BUSY=0, 首先查询BUSY。 BUSY=1,打印机忙,则等待; BUSY=0, BUSY 打印机不忙,则送数据。 打印机不忙,则送数据。 通过并行接口把数据送给标准插座DATA B 通过并行接口把数据送给标准插座DATA BIT1~DATA BIT8 数据线上,此时数据并未送入打印机。 数据线上,此时数据并未送入打印机。 再送出一个数据选通信号DATA STROBE- 负脉冲) C 再送出一个数据选通信号DATA STROBE-(负脉冲)给 标准 插座的1号引脚,把数据线上的数据打入到打印机的内部缓冲器。 插座的1号引脚,把数据线上的数据打入到打印机的内部缓冲器。 打印机在收到数据后,通过插座的11号引肢发出“ 11号引肢发出 D 打印机在收到数据后,通过插座的11号引肢发出“忙” BUSY=1)信号,表明打印机正在处理输入的数据。 (BUSY=1)信号,表明打印机正在处理输入的数据。 最后在10号引脚上送出一个回答信号ACK 给主机, 10号引脚上送出一个回答信号ACKE 最后在10号引脚上送出一个回答信号ACK-给主机,表示上 一个字符已经处理完毕。 一个字符已经处理完毕。
BUF; OFFSET BUF;打印字符内存首地址 ;打印字符个数 ;PC口地址 PC口地址 ;查BUSY=0?(PC2=0) BUSY=0?(PC2=0) ?(PC2=0
AL, AND AL,04H JNZ L DX, MOV DX,300H AL, MOV AL,[SI] OUT MOV DX, DX,AL AL, AL,00001110B AL, MOV AL,303H
1
D6
D5
D4
PA 0=输出 输出 1=输入 输入
D3
PC4~7 0=输出 输出 1=输入 输入
D2
B组方式 组方式 0=0方式 方式 1=1方式 方式
D1
PB 0=输出 输出 1=输入 输入
D0
PC0~3 0=输出 输出 1=输入 输入
特征位
A组方式 组方式 00=0方式 方式 01=1方式 方式 10=2方式 方式 11=不用 不用
思考:
• 并行接口芯片8255与CPU接口有哪些信号线, 并行接口芯片8255与CPU接口有哪些信号线, 8255 接口有哪些信号线 每个信号的用途是什么? 每个信号的用途是什么? • 8255占用几个端口地址?各个端口分别对应 8255占用几个端口地址 占用几个端口地址? 什么? 什么? • 端口C可以分为两组吗? 端口C可以分为两组吗?
4、 8255A的编程命令 8255A的编程命令 ①方式命令
作用:指定8255A的工作方式及其方式下3个并行端口(PA、PB、PC) 作用:指定8255A的工作方式及其方式下3个并行端口(PA、PB、PC) 8255A的工作方式及其方式下 的功能,是作输入还是作输出。 的功能,是作输入还是作输出。 格式: 格式:8位,其中最高位是特征位,一定要写1,其余各位定义如下, 其中最高位是特征位,一定要写1 其余各位定义如下, 应根据用户的设计要求填写1 应根据用户的设计要求填写1或0。
③接口驱动程序
开始
CODE ASSUME
SEGMENT CS:CODE,DS: CS:CODE,DS:CODE
8255A 初始化
N
ORG100H START: START: MOV MOV MOV MOV MOV OUT AX, AX,CODE CS, CS,AX DS, DS,AX DX, DX,303H ;8255A命令口 8255A命令口 AL, AL,10000001B ;工作方式字 DX,AL;(A DX,AL;(A口0方式,输出, C4~C7 ;( 方式,输出, 输出, 输入) 输出,C0~C3输入)
②按位置位/复位命令 按位置位/ 作用:指定PC口的某一位(某一个引脚)输出高平或低电平。 作用:指定PC口的某一位(某一个引脚)输出高平或低电平。 PC口的某一位 格式: 格式:8位,其中最高位是特征位,一定要写0,其余各位 其中最高位是特征位,一定要写0 的定义如下,应根据用户的设计要求填写1 的定义如下,应根据用户的设计要求填写1或0. 0 D6 D5
PB口 PC口 例1:试分析下列电路的中PA口、 PB口、 PC口、 控制字寄 试分析下列电路的中PA口 PA 存器的地址分别是多少? 存器的地址分别是多少?
8255A基本工作方式 3、 8255A基本工作方式 8255A有三种工作方式,用户可以通过编程来设置。 8255A有 用户可以通过编程来设置。 可编程并行接口8255A有三种基本的工作方式 有三种基本的工作方式 可编程并行接口 1)方式 基本输入输出方式; )方式0——基本输入输出方式; 基本输入输出方式 三个端口的每一个都可由程序选定作为输入或输出 2)方式 选通输入/输出方式 )方式1——选通输入 输出方式; 选通输入 输出方式; 端口A或端口 仍作为数据的输入/输出口 或端口B仍作为数据的输入 输出口, 端口 或端口 仍作为数据的输入 输出口,但同时规 定端口C的某些位作为控制或状态信息 的某些位作为控制或状态信息。 定端口 的某些位作为控制或状态信息。 3)方式 )方式2——双向传送方式 双向传送方式 方式2只用于端口 只用于端口A, 方式 只用于端口 , 既能发送数据也能接收数据 双向总线I/O) 工作时可用程序查询方式, ( 双向总线 ) 。 工作时可用程序查询方式 , 也可以 工作在中断方式
不 用 (写0) ) 特征位
D4
D3
D2
位 选 择 000=C口0位 口 位 001=C口1位 口 位 … 111=C口7位 口 位
D1
D0
1=置位 置位 高电平) (高电平) 0=复位 复位 低电平) (低电平)
8255A的 §3.3 8255A的0方式及其应用 1、特点 ①0方式是一种基本输入/输出工作方式。通常不用联络信号, 方式是一种基本输入/输出工作方式。通常不用联络信号, 或不使用固定的联络信号。 或不使用固定的联络信号。 ②在0方式下,彼此独立的两个8位和两个4位并行口,都能被 方式下,彼此独立的两个8位和两个4位并行口, 指定作为输入或者输出用,共有16种不同的使用状态。 16种不同的使用状态 指定作为输入或者输出用,共有16种不同的使用状态。 ③在0方式下不设置专用联络信号线,需要联络时,可由用户 方式下不设置专用联络信号线,需要联络时, 任意指定C 根线完成某种联络功能, 任意指定C口中的哪 根线完成某种联络功能,这与后面要讨论的 方式、 方式下设置固定的专用联络信号线不同。 在1方式、2方式下设置固定的专用联络信号线不同。 ④是单向I/O,一次初始化只能指定端口(PA、PB和PC)作输 是单向I/O,一次初始化只能指定端口(PA、PB和PC) I/O 入或输出,不能指定端口同时既作输入又作输出。 入或输出,不能指定端口同时既作输入又作输出。
BUSY=0?
Y
送 数 送 STB 内存+1 内存 字节数-1 字节数
N
送完? 送完?
Y 结束Biblioteka AL, MOV AL,00001111B DX,AL OUT DX, MOV SI, CX, MOV CX,OFFH L: MOV IN DX,302H DX, AL, AL,DX
位置高, STB---=1 ;PC0位置高,使STB--=1
JMP L1
4、并行打印机接口设计 ① 要求 为某应用系统配置一个并行打印机接口,并且通过接口CPU采 为某应用系统配置一个并行打印机接口,并且通过接口CPU采 CPU 用查询方式把存放在BUF缓冲区的256个字(ASCII码 送去打印。 BUF缓冲区的256个字 用查询方式把存放在BUF缓冲区的256个字(ASCII码)送去打印。
硬件电路如图8-11所示 解:(1) 硬件电路如图 所示
(2) 相应的 相应的8255A初始化程序为: 初始化程序为: 初始化程序为
MOV DX,103H , MOV AL, 90H , OUT DX, AL , L1:MOV DX,100H : , IN AL,DX , MOV DX,101H , OUT DX,AL , XOR AL,0FFH , MOV OUT DX,102H , DX,AL , ;控制寄存器的地址送给DX 控制寄存器的地址送给 ;控制字 ;写入控制字 ;端口A 地址的送给 端口 地址的送给DX ;从端口A读入开关状态 从端口 读入开关状态 ;指向端口B端口 指向端口 端口 输出, ;从端口B输出,控制 从端口 输出 控制LED ;AL← AL取反 ← 取反 ;端口C 的地址送给 端口 的地址送给DX ;从端口C输出 从端口 输出 ;循环
2、8255A基本操作与端口地址 、8255A基本操作与端口地址
CS 0 0 0 A1 0 0 1 A0 0 1 0 RD 0 0 0 WR 1 1 1 读操作 PA口 数据总线( CPU) PA口→数据总线( → CPU) PB口 数据总线( CPU) PB口→数据总线( → CPU) PC口 数据总线( CPU) PC口→数据总线( → CPU) 写操作 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 PA口← 数据总线(← CPU) 数据总线( CPU) PA口 PB口 数据总线( CPU) PB口←数据总线(← CPU) PC口←数据总线(← CPU) PC口 数据总线( CPU) 控制寄存器← 控制寄存器←数据总线 数据 数据 数据 控制字 内容 数据 数据 数据