基本输入输出接口技术

  • 一、并行通信
  • 二、串行通信
  • 三、串行通信方式 及异步通信协议
  • 四、 波特率
  • 五、串行异步通信标准接口
  • RS-232简单连接示意图
  • 可编程串行通信接口芯片 16550与8250
  • 8255的内部结构及引脚信号
  • 8255编程
  • 读写端口C的归纳
  • 可编程定时器/计数器 8253、8254
  • 8253初始化编程
  • 小记

一、并行通信

含义:并行通信是指将一个字节或一个字的各位同时进行传输的一种通信方式。
要点:传输的各位同时传输(输入或输出)。
特点:
(1)传输速度快
(2)传输的信息率高
(3)比串行通信需要更多通信信号线
用途:常用于传输距离短,数据传输速度要求高的场合。

二、串行通信

含义:串行通信是把传输的数据一位一位地顺序传送的一种通信方式。
要点:按位传输,同一时刻仅传送一位。
特点:
(1)通信线少
(2)成本低
(3)但通信速度慢
用途:适用于长距离数据传输。
串行通信数据传输方式

三、串行通信方式 及异步通信协议

串行通信方式
两种:串行异步通信和串行同步通信。

  1. 异步通信
    异步通信:指字符与字符之间的传送是完全异步的,随机的,但一个字符的位与位之间是同步的。
  2. 异步通信特点
    ① 字符的发送是随机的。
    ② 每一个字符传输总以一个起始位为准,然后接收方与发送方保持同步(格式的统一),最后是停止位
    ③ 通信双方可随时改变通信协议,即改变数据位、奇偶校验位和停止位长度或数据传输率。
    异步通信协议
    包括:一是字符的传送格式的规定,
    二是数据传送速率的要求。
    异步通信格式
    协议,即改变数据位、奇偶校验位和停止位长度或数据传输率。

四、 波特率

波特率(Baud Rate):指单位时间传送二进制数的位数,一般以为单位。
微机中常见的波特率有110,300,600,1200,2400,4800,9600,19200等。微机最高波特率由硬件决定。
例:已知字符格式中数据为8位,无校验,1位停止位,在1分钟内连续不断传送了 69120个字符,求波特率。
解:一个字符=1+8+0+1=10位
每秒传送的字符个数=69120/60=1152个
波特率=位/秒=1152*10=11520bits/S=11.52Kbits/s


五、串行异步通信标准接口

串行异步通信的标准接口有RS-232C、RS-449、RS-422、RS-485以及20mA电流环等接口。
一、RS-232C接口(PC使用)

  1. 接口逻辑:负逻辑传送
    1:-15V~-5V
    0:+5V~+15V 允许噪声容限为2V
    因此,实际RS-232能够区分的逻辑电平:
    1:-15V~-3V
    0:+3V~+15V
    只有在-3V~+3V时逻辑为不确定

RS-232简单连接示意图


可编程串行通信接口芯片 16550与8250

一、16550及8250功能
(1) 具有全双工、双缓冲器发送器和接收器。
(2) 是串行异步通信接口(UART)。
(3) 波特率:8250=509600波特;16550=50115200波特。
(4) 异步通信格式,可通过编程选择。
(5) 具有自动奇偶校验、溢出和帧出错等检测标志。
(6) 片内具有优先级中断控制逻辑。
(7) 单一+5V,40个引脚的DIP封装形式。

8255的内部结构及引脚信号

(1) 与外设接口信号引脚
PA7~PA0 A口的8个I/O引脚
PB7~PB0 B口的8个I/O引脚
PC7~PC0 C口的8个I/O引脚。
(2) 与系统总线接口信号引脚
D7~D0 数据线
/RD,/WR,/CS
RESET 高电平有效,有效时8255内部寄存器清除,同时三个数据端口被自动设为输入端口。

8255的端口操作

8255的工作方式


A输入

B输入

STB*——选通信号,低电平有效
由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255的输入锁存器
IBF——输入缓冲器满信号,高电平有效
8255输出的联络信号。当其有效时,表示数据已锁存在输入锁存器
INTR——中断请求信号,高电平有效
8255输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据


A输出

B输出

8255编程

对8255编程首先要写入方式选择控制字,然后再行输入输出操作。
操作时可对端口C进行置/复位操作。
因此:8255有两个控制字是编程的关键所在。
方式选择控制字

【例6.3】 编写对8255的初始化程序片段,要求:使A口为方式0输入,B口为方式0输出,C口作为8位的输出口使用。8255控制端口的地址为12BH。
解:对照方式选择控制字格式可得到控制字为:
10010000B=90H,初始化程序片段:
MOV AL,90H ;方式选择控制字
MOV DX,12BH ;由于端口号>256,用DX间接寻址
OUT DX, AL ;写入控制寄存器

【例6.4】 如果把A口设置为方式0输入,B口设成方式1输出,C口除了与B口方式1输出配合的PC0到PC2外,其PC3设成输入,C上半口(PC7~PC4)设为输出。则对照控制字格式,得其方式选择控制字为:10010101B=95H。
解:假设8255的口地址为60H~63H,并知道8255的A0和A1分别与CPU总线的A0和A1相连,写出对8255的初始化程序片段。
对8255的初始化程序只需要两条指令如下:
MOV AL, 95H ;方式选择控制字
OUT 63H,AL ;写入控制寄存器
端口C置/复位控制字

读写端口C的归纳

C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出

在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组
当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用:
A输入征用C3C4C5;
A输出征用C3C6C7;
B征用C0C1C2;
其余引脚仍可设定工作在方式0

对端口C的数据输出有两种办法:
通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效
通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器
读取的C端口数据有两种情况:
未被A和B端口征用的引脚:将作为方式0的I/O引脚
被A和B端口征用作为联络线的引脚:将读到反映8255状态的状态字

读取的C端口数据有两种情况:
未被A和B端口征用的引脚:将作为方式0的I/O引脚
被A和B端口征用作为联络线的引脚:将读到反映8255状态的状态字

可编程定时器/计数器 8253、8254

8253的内部结构及外部引脚


CLK时钟输入信号——在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1
GATE门控输入信号——控制计数器工作,可分成电平控制和上升沿控制两种类型
OUT计数器输出信号——当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号

二进制计数:0000H~FFFFH,即0-65535
BCD码计数:0000~9999
最小和最大计数值:
最大计数0000,不是FFFFH或9999。
除方式2、3外,最小值都为1

方式0 —— 中断信号发生器

(1) 计数器不会自动重装初值,只计数一遍。当由初值开始减1计数到0时,并不恢复计数初值,也不会重新开始计数。如果要重新产生一个中断请求信号,必须重新写入初值。
(2) 写完控制字,计数器并不开始计数,写入初始值(的上升沿)后的下一个CLK脉冲,才开始减1计数。因此,如果计数初值为n,从写完初值,则经过n+1个CLK脉冲后,输出信号OUT才发生变化。这一点对于其它方式也是同样的。
(3) 如果在计数过程中,GATE为低电平,则停止计数并保持原计数值不变,直到GATE为高后,又在原来的基础上继续减1计数,计数到0使OUT变高电平。
(4) 在计数过程中改变初值。如果改变的初值是8位的,则在写完初值后,计数器将按新的值重新开始减1计数,如果为16位计数,在先写入低字节初值时,计数器停止计数,在写完第二个字节初值后,计数器则按照新的初值开始计数。

方式1 —— 单稳负脉冲信号发生器

(1) 如果设置计数初值n,则输出的单拍脉冲宽度为n倍的时钟周期。
(2) 当计数到0后,可再次用外部触发(接至GATE端)来启动新一轮计数,以产生同样宽度的单拍脉冲信号。
(3)如果没有计数到结束,而重新触发一次,将扩展输出脉冲的宽度,因为重新触发,将使计数器重装原来的初值,重新开始减1计数。
(4) 如果在计数过程中改变初值,不影响当前一轮计数,等计数到0,产生单拍脉冲后,如果再有新的触发信号,将以新的初值开始计数,产生新宽度的单拍脉冲信号。

方式2 —— 速率信号发生器

(1) 自动重装计数初值。当减1计数至0后,计数器自动重新装入原来装入的初值,开始下一轮的计数。
(2) 计数过程可由门控信号GATE控制。当GATE=0时,停止计数。在GATE变高的下一个时钟使计数器恢复初值,计数重新开始。
(3) 在计数过程中,可以改变计数值,这对正在进行的一轮计数过程没有影响,但在计数到1时,OUT输出变低,过一个时钟输出又变高,计数器将以新的初值计数。因此改变初值影响下一轮计数

方式3 —— 方波信号发生器

(1) 偶数初值产生真正的方波
(2) GATE门控信号可使计数过程重新开始。如果OUT为低,则GATE=0时使OUT立即变高,停止计数。当GATE变高后,计数器将重新装入初值,开始新一轮计数。
(3) 奇数初值产生的方波正脉冲比负脉冲宽度多一个时钟周期
(4) 在计数期间改变计数初值不影响本周期计数过程,但本周期计数到0后将以新值开始计数

方式4 —— 软件触发的选通信号发生器
方式5 —— 硬件触发的选通信号发生器

8253初始化编程

写入控制字
写入计数初值
读取计数值
8254新增读回命令

控制字写入控制字I/O地址(A1A0=11)

对8位数据线,读取16位计数值需分两次
计数在不断进行,应该将当前计数值先行锁存,然后读取:
向控制字I/O地址:给8253写入锁存命令
从计数器I/O地址:读取锁存的计数值



初始化程序片段:
MOV AL, 30H ;计数器0控制字
MOV DX, 15BH ;控制寄存器端口
OUT DX, AL ;写计数器0控制字
MOV AX, 1000 计数器0初值
MOV DX, 158H ;计数器0端口
OUT DX, AL ;写计数器0计数初值低字节
MOV AL, AH
OUT DX, AL ;写计数器0计数初值高字节
MOV AL, 53H ;计数器1控制字
MOV DX, 15BH ;控制寄存器端口
OUT DX, AL ;写计数器1控制字
MOV AL, 86H ;计数器1初值
MOV DX, 159H ;计数器1端口
OUT DX, AL ;写计数器1计数初值
MOV AL, 0B6H ;计数器2控制字
MOV DX, 15BH ;控制寄存器端口
OUT DX, AL ;写计数器2控制字
MOV AL, 0 ;计数器2初值
MOV DX, 15AH ;计数器2端口
OUT DX, AL ;写计数器2计数初值低字节
OUT DX, AL ;写计数器2计数初值高字节

小记

8253计数器,2进制的初值直接写十进制的数,会自动分离出低8位和高8位,BCD的初值写十进制+H,如果超过256要用AX装初值。

【微机原理与接口技术】--第六章--基本输入输出接口技术相关推荐

  1. 《微机原理及接口技术》第04章在线测试

    <微机原理及接口技术>第04章在线测试  <微机原理及接口技术>第04章在线测试 剩余时间: 59:55  答题须知:1.本卷满分20分.            2.答完题后, ...

  2. 《微机原理及接口技术》第03章在线测试

    <微机原理及接口技术>第03章在线测试  <微机原理及接口技术>第03章在线测试 剩余时间: 59:53  答题须知:1.本卷满分20分.            2.答完题后, ...

  3. 《微机原理及接口技术》第08章在线测试

    <微机原理及接口技术>第08章在线测试  <微机原理及接口技术>第08章在线测试 剩余时间: 59:54  答题须知:1.本卷满分20分.            2.答完题后, ...

  4. 《微机原理及接口技术》第07章在线测试

    <微机原理及接口技术>第07章在线测试  <微机原理及接口技术>第07章在线测试 剩余时间: 59:55  答题须知:1.本卷满分20分.            2.答完题后, ...

  5. 《微机原理及接口技术》第05章在线测试

    <微机原理及接口技术>第05章在线测试  <微机原理及接口技术>第05章在线测试 剩余时间: 59:56  答题须知:1.本卷满分20分.            2.答完题后, ...

  6. 郑州大学微型计算机原理与接口技术,《微机原理及接口技术》第01章在线测试...

    <微机原理及接口技术>第01章在线测试 剩余时间: 58:45 答题须知:1.本卷满分20分. 2.答完题后,请一定要单击下面的"交卷"按钮交卷,否则无法记录本试卷的成 ...

  7. 典型微型计算机控制系统的实例,微机原理与接口技术第8章微型计算机应用系统设计案例...

    微机原理与接口技术第8章微型计算机应用系统设计案例 (85页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 第8章 微型计算机应用系统设计 ...

  8. 计算机通过io接口对什么实现控制器,《微机原理与接口技术》第6章 微计算机IO接口基础.ppt...

    <微机原理与接口技术>第6章 微计算机IO接口基础.ppt 第6章 微计算机IO接口基础 2.间接I/O端口寻址方式 (1) 输入指令格式: IN AL, DX 或 IN AX, DX 指 ...

  9. 南航计算机硬件实验,南航80X86微机原理及接口技术实验指导书.pdf

    80X86 微机原理及接口技术实验 指导书 卓然 编著 2015-3-1 序 错误!未定义书签. 第一章 TD-PIT++实验系统简介 3 1. 概述 3 2. 系统总线电路单元 5 3. 接口实验单 ...

最新文章

  1. 微信小程序全局监听路由变化
  2. AI一分钟 | 谷歌租下北京 6000 平米写字楼,或将发展AI项目;工信部就个人信息保护约谈百度、支付宝、今日头条
  3. 奶茶妹妹亏本甩卖悉尼豪宅 当年与刘强东澳洲办盛大婚礼
  4. extjs5的grid垂直滚动条bug_Extjs grid panel 滚动条失效的解决方法
  5. mysql数据库开发经历_六年开发经验,整理Mysql数据库技巧笔记,全网最详细的笔记集合!...
  6. 《基于MFC的OpenGL编程》Part 14 Quadrics
  7. 利用计算机的图形能力来进行设计工作的是,计算机一级MSOffice考试巩固练习题...
  8. Ubuntu Server Nginx 下配置 mono 下运行 asp.net mvc
  9. git add多个文件_10个节省时间和改善工作流的Git技巧
  10. 读《显微镜下的大明》马伯庸---笔记
  11. python读取邮箱邮件_Python读取我的outlook邮箱并分析邮件
  12. SpaceSyntax【空间句法】之DepthMapX学习:第四篇 凸多边形图分析[未完]
  13. html 做填写的表格,CSS写的简单表格示例
  14. 新电脑自带的office密钥在哪里?
  15. 初学者入门:认识STM32单片机
  16. 基于“python+”潮汐、风驱动循环、风暴潮等海洋水动力模拟
  17. asp.net房屋出租系统。 采用的典型的三层架构和mvc相结合的技术
  18. Hi3536音频单声道改双声道
  19. Silvaco三维仿真
  20. 【读邹伟等著强化学习】第1章~第7章

热门文章

  1. 初一上册数学用计算机进行运算,初一上册数学期中试卷及答案
  2. poj1723 SOLDIERS(思维题-中位数/货仓选址问题)
  3. oss取视频封面 以及图片缩略图
  4. MYSQL数据类型-整数数据类型(bigInt、int、smallint、tinyint)区别
  5. 学习日志 全民一起VBA提高篇 第四回 日期类型穿梭岁月 时间函数算尽光阴
  6. 如何使用node操作mysql链接数据库
  7. Java连接Oracle两种方式thin与oci区别
  8. 数据结构与算法详解(含算法分析、动图图解、Java代码实现、注释解析)
  9. Värde Partners募资逾26亿美元,将寻求市场错置机会
  10. java oop_java面试提问:什么是OOP?