当前位置:文档之家› 单片机输入和输出

单片机输入和输出


0
110
0
写端口B:总线数据→B口 写端口C:总线数据→C口
1
010
0 写控制字:总线数据→控制字
寄存器
1
110
0
× ×××
1
101
××1 1
1 数据总线为三态 0 非法状态 0 数据总线为三态
7.4.2.3 8255A的工作方式 8255A有三种工作方式: (1) 方式0:基本输入输出; (2) 方式1:选通输入输出; (3) 方式2:双向传送(仅A口有)。
锁存:由于单片机工作速度快,数据在数据总线上保留的时间十分短暂,无法满
足慢速外设的数据接收。I/O电路应具有数据锁存器,以保证接收设备接收。
3.信息转换
4.通信联络
7.1.2 I/O接口的构成
一个典型的I/O接口如图所示。其中有数据端口、状态端口和控制端口。CPU 通过这些端口与外部设备之间进行信息的传送。通常将信息按各自的作用分成 以下三种。
(2)模拟量 当微型机用于控制、检测或数据采集时.大量的现场信息是连续变化的物理量 (如温度、压力、流量.位移等).这些物理量经过传感器变换成电量,并经放大 得到模拟电压或电流.这些模拟量必须再经过A/D转换后.把它们变成数字量 才能输入计算机。计算机的输出也必须先经过D/A转换,把数字量变成模拟量 后再控制执行机构。
RESET:复位输入线 CE*和IO/M* RD*和WR* ALE:地址锁存允许 TIMERIN和TIMEROUT*: (4)电源线(2条) Vcc:+5V电源 Vss:地
8155各端口地址分配
CE* IO/M A7 A6 A5 A4 A3 A2 A1 A0 *
所选的端口
0 1 × × × × × 0 0 0 命令/状态寄存器
P0是真正的双向I/O口 P1、P2、P3是准双向I/O/O口线的只有P1口的8位I/O线和P3口的某些位线。 在多数应用系统中,MCS-51单片机都需要外扩I/O接口电路。
7.4.1 用TTL芯片扩 展并行I/O口
7.4.1.1 总线扩展法
TTL芯片常用 的有:373, 273,244, 245等,一般扩 展P0口
2.I/O方式 8155的I/O方式分为基本I/O和选通I/O两种工作 方式。可对片内任一寄存器读写, 端口地址由A2、A1、A0三位决定(见表)
(1)基本I/O方式
(2)选通I/O方式 (见右图)
3. 内部定时器/计数器及使用
14位的减1定时器/计数器,计数长度和计数方式 由写入计数寄存器的控制字来确定。 计数器的两个寄存器的格式如图
一个I/O接口芯片可以有多个I/O端口, (1)数据口(2)控制口(3)状态口
I/O端口编址两种方式:独立编址与统一编址。 1.独立编址方式 I/O寄存器地址空间和存储器地址空间分开编址, 但需专门读写I/O的指令和控制信号。 2.统一编址方式 I/O寄存器与数据存储器单元同等对待,统一编址。 不需要专门的I/O指令,直接使用访问数据存储器的指 令进行I/O操作,简单、方便且功能强。
MOV A,#0C2H
;设定命令控制字
MOVX @DPTR,A ;A口输入,B口输出,开定时器
8155的命令字
0 1 ××××× 0 0 1
A口
0 1 ××××× 0 1 0
B口
0 1 ××××× 0 1 1
C口
0 1 × × × × × 1 0 0 计数器低8位
0 1 × × × × × 1 0 1 计数器高6位
0 0 ××××××××
RAM单元
7.4.3.2 8155的工作方式
1.存储器方式 对片内RAM单元进行读写,若IO/M*=0和CE*=0,则 通过AD7~AD0上的地址对RAM存储器任一单元读写。
PA7~PA0:A口输入/输出线。
PB7~PB0:B口输入/输出线。
PC7~PC0:C口输入/输出线。
2. 寻址线 CS*:片选信号线,低电平有效,表示本芯片被选中
A1、A0:地址线,用来选择8255A内部的4个端口。 当CS*=0,A1和A0的4种组合 00,01,10,11 分别选择A、B、C口和控制寄存器
7.2.3 直接存储器存取传送(DMA——Direct Memory Access)
是一种由专门的硬件DMA控制器(DMAC)来控制的传送方式。
在DMAC的控制下,外设接口可直接与内存进行高速的数据传送,而 不必经过CPU,于是进行传送时就不必作保护现场,恢复现场之类的 额外操作。DMA方式主要是通过硬件来实现的,因而传送速率很高, 数据传送的速度基本上取决于外设和存储器的速度。DMA方式特别适 用于大批量数据的高速传送。
3. 控制线 RD*:读出信号线,控制8255A中数据的读出高 WR*:写入信号线,控制向8255A数据的写入。
A1 A0 RD* WR* CS*
工作状态
0
001
0 读端口A:A口数据→数据总线
0
101
0
读端口B:B口数据→数据总线 读端口C:C口数据→数据总线
1
001
0
0
010
0 写端口A:总线数据→A口
7.2.1 程序传送 不是传送程序 程序传送,是指CPU与外设之间的数据传送在程序控制下进行的一种方式, 它又分为无条件传送和条件传送两种。 1.同步传送方式(无条件传送) 当外设速度和单片机的速度相比拟时,常采用同步传送方式,最典型的同 步传送就是单片机和外部数据存储器之间的数据传送。
适用于对简单的I/O设备(如开关、LED显示器、继电器等)的操作,或 者I/O设备的定时固定或已知的场合。
LJMP 1000H
ORG 1000H
MOV DPTR,#0FFF3H
MOV A,#10000010B
MOVX @DPTR,A
star:MOV
DPTR,#0FF1H
MOVX A,@DPTR
CPL A
ANL A,#0FH
MOV DPTR,#SEGTAB MOVC A,@A+DPTR MOV DPTR,#0FF0H MOVX @DPTR,A SJMP star SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H, 82H ,0F8H,80H ,90H DB 88H, 83H ,0C6H,0A1H,86H DB 8EH END
7.4.3 用 8155可编程I/O扩展芯片 1. 8155的内部结构
2. 8155H的引脚功能
(1) AD7~AD0(8条) (2) I/O总线(22条) (3)控制总线(8条)
T13~T0:计数器长度 M2、M1:设置定时器的4种工作方式
4种工作方式及相应输出波形
7.4.3.3 MCS-51与8155接口及软件编程 1.MCS-51与8155H的硬件接口电路
2. 8155H的编程举例 (1) 初始化程序设计 例 若A口定义为基本输入方式,B口定义为基本输出方
式,对输入时钟脉冲进行24分频,初始化程序如下:
1.工作方式选择控制字 三种工作方式由方式控制字来决定。 控制字格式如下。
例 8255A端口地址为FFF0H—FFF3H
MOV DPTR,#0FFF3H MOV A,#10010000B
;置A口方式0输入, B口方式0输出。
MOVX @DPTR,A
例7.4.1 8255A的接口电路如图示,A口味输入端口,接有4个开关,B口输出 端口,通过缓冲器接有一个七段LED。要求显示器显示开关接通的数字。
SEND: WAIT:
MOV A,@R0
MOV SBUF,A ;启动串行口发送过程
JNB TI,WAIT ;1帧数据未发完,循环等待
CLR TI
INC R0
;取下一个数
DJNZ R7,SEND ;未完,发完从子程序返回
RET
7.4.2 用8255A可编程器件扩展并行接口
7.4.2.1 8255A芯片内部结构
8255A是Intel公司 生产的可编程并行 I/O接口芯片,具 有3个8位的并行 I/O口,3种工作方 式,可通过编程改 变其功能,因而使 用灵活方便,通用 性强。
7.4.2.2 8255A引脚说明 40只引脚,双列直插式封装,引脚功能如下: 1. 数据线 D7~D0:三态双向数据线,与单片机数据总线连接
2. 状态信息 输入设备的“准备就绪”,输出设备的“忙”信号等。CPU根据外设的状态, 决定是否输入或输出数据。
3.控制信息 控制信息是在传选过程中.CPU发送给外设的命令.用于控制外设的工作。 例如,控制设备的起停
7.1.3 I/O端口的地址分配
首先清楚I/O接口(Interface)和I/O端口(Port)的概念。
2.查询传送方式(条件传送,异步式传送) 查询外设“准备好”后,再进行数据传送。 优点:通用性好,硬件连线和查询程序十分简单, 缺点:效率不高。
为提高效率,通常采用中断传送方式。
7.2.2 中断传送 外设准备好后,发中断请求,单片机进入与外设数 据传送的中断服务程序,进行数据的传送。中断服务 完成后又返回主程序继续执行。工作效率高。
7.4.1.2 串行口扩展法7.4.1.2 串行口扩展法 利用74LS164扩展二个8位并行输出口的接口电路。
例 编写将内部RAM单元30H、31H的内容经串行口 由74LS164并行输出的子程序。
START: MOV R7,#02H ;设置要发送的字节个数 MOV R0,#30H ;设置地址指针 MOV SCON,#00H ;设置串行口为方式0
START:MOV DPTR, #7F04H ;指针指向定时器低8位
MOV A,#18H
;计数初值24送A,
MOVX @DPTR,A ;计数初值低8位装入定时器
INC DPTR
;指针指向定时器高8位
相关主题