第五章 IO端口
例:使用RB口控制G6区的8个指示灯,循 环移位点亮,瞬间只有一个灯亮。发光二 极管点亮
共阳极
输入输出端口
功能:MCU与外界交换信息的通道。 引脚的复用功能:
– 通用I/O – 支持外部设备
I/O端口的功能:
– 并行I/O端口 – 模拟端口引脚配置 – 输入电平变化中断模式
相关的I/O端口引脚: RB0~RB15 RC12~RC15 RD0~RD11 RE0~RE7 RF0~RF6 RG2~RG9
休眠和空闲模式下的CN 工作
CN 模块在休眠或空闲模式下继续工作。
– 如果使能的CN 引脚中的一个改变了状态, CNIF (IFS1<3>)状态位将被置1。 – 如果CNIE 位(IEC1<3>)被置1,则器件将从休眠或 空闲模式唤醒并恢复工作。
如果为CN 中断分配的优先级等于或低于当前 CPU 的优先级,则器件会紧随SLEEP 或IDLE 指 令后的那条指令继续执行。 如果为CN 中断分配的优先级高于当前CPU 的优 先级,则器件将从CN 中断向量地址继续执行。
变化通知(CN)引脚
CN 配置和操作
CN 引脚配置如下: 1. 通过将TRISx 寄存器中的相关位置1,确保CN 引脚配置为数字输 入引脚。 2. 通过将CNEN1 和CNEN2 寄存器中的相应位置1,允许所选的CN 引脚中断。 3. 通过将CNPU1 和CNPU2 寄存器中的相应位置1,打开所选的CN 引脚的弱上拉器件(如果需要)。 4. 清零CNIF (IFS1<3>)中断标志。 5. 使用CNIP<2:0> 控制位(IPC4<14:12>)为CN 中断选择所需的中 断优先级。 6. 使用CNIE (IEC1<3>)控制位允许CN 中断。 当CN 中断发生时,用户应读取与该CN 引脚相关的PORT 寄存器。 这样做将清除引脚电平不匹配条件,并设置CN 逻辑电路以检测下一 次引脚电平变化。可以将当前的端口值与上一次CN 中断时得到的端 口读出值比较,来确定发生过变化的引脚。
模拟端口
AD1PCFG 和TRIS 寄存器控制A/D 端口引脚的操 作。若希望端口引脚为模拟输入引脚,则必须将 相应的TRIS 位置1 (输入)。如果将TRIS 位清 零(输出),则该引脚的数字输出电平(VOH 或 VOL)将被转换。 读取PORT 寄存器时,所有配置为模拟输入通道 的引脚均读为0 (低电平)。配置为数字输入的 引脚不对模拟输入信号进行转换。
;Turn LED @ PORTA bit 0 ON ;Turn LED @ PORTA bit 1 ON
RMW 问题的解决方法
对LAT寄存器使用R-M-W 指令:
– BSF LATA,#0 – BSF LATA,#1
LAT 寄存器
与I/O 引脚相关的LALAT 寄存器之间的差异可以归纳如下:
IO口的外设复用
复用数字输入外设 外设不控制TRISx 寄存器。 PORTx寄存器可以读取引脚值。 PORTx数据输入路径不受影响。 外设输入路径使用特殊输入缓冲器,与IO 输入路径相互独立
变化通知(CN)引脚
电平变化通知(Change Notification,CN) 引脚使PIC24F 器件能够向处理器发出中断 请求,以响应所选择的输入引脚上的状态 变化。 可以选择(使能)最多24 个输入引脚来产 生CN 中断。 可用的CN 输入引脚总数取决于所选的 PIC24F 器件。具体查看引脚图
IO口的外设复用
下列外设允许通过PORT 寄存器手动控制它们的输入引脚:
– – – – 外部中断引脚 定时器时钟输入引脚 输入捕捉引脚 PWM故障引脚
大多数串行通信外设在使能时,将完全控制I/O 引脚,因此不 能通过相应的PORT 寄存器影响与该外设相关的输入引脚。 这些外设如下:
– – – – – SPI I2C DCI UART CAN
PORTx Function PINs
Drive Logic
Interfacing to 5V devices
5V tolerant input and Open drain configuration simplifies 5V interface
Interfacing to 5V devices
通用I/O
所有端口都为施密特触发输入,提高了抗噪声能力。
I/O 端口控制寄存器
有4 个与该端口操作直接相关的寄存器:
– TRISx: 数据方向寄存器 – PORTx:I/O 端口寄存器 – LATx: I/O 锁存寄存器 – ODCx: I/O 开漏控制寄存器
注:
– 器件上的每个I/O 引脚在TRIS、PORT、LAT 和ODC 寄存器中都分别有一个相关的位。 – 其中字母“x”表示特定的I/O 端口:
ODC 寄存器
每个I/O 引脚都可以单独配置为正常数字输 出( ODC 位为1)或开漏输出( ODC 位 为0 )。 ODC 位仅对输出引脚有效。 复位后, ODCx 寄存器的所有位的状态被 设置为0。
I/O 的开漏输出
15 7 6 5 4 3 2 1 0
0
0
0
1 0
0
0
0
0
0
ODCx
OD
CN 控制寄存器
有4 个与CN 模块相关的控制寄存器。
– CNEN1 和CNEN2 寄存器包含CNxIE 控制位, 其中“x”表示CN 输入引脚的编号。要让某个 CN 输入引脚中断CPU,必须将其CNxIE 位置 1。 – CNPU1 和CNPU2 寄存器包含CNxPUE 控制 位。每个CN 引脚连接一个弱上拉器件,该器 件可以通CNxPUE 控制位使能或禁止。 – 弱上拉器件充当连接到该引脚的电流源,并且 当连接了按钮或键盘设备时,有了该器件即可 不需要外部电阻。
端口可当作寄存器来访问(读入或写出) 每个端口的每个引脚可分别设置为输入(1) 或输出(0) 复位后,所有端口引脚都被定义为输入。
15 7 6 5 4 3 2 1 0
1
1
1
0 1
1
0 1
1
1
1 0
TRISA
I
I
I
I O
I
O I
I
I
O I
PORTA
引脚
数字 I/O 口 – 16-位
BSET PORTA,#0 BSET PORTA,#1
Interfacing to low impedence 5V load with open drain feature
5V 5V
PIC24FJxxxx
PIC24FJxxxx
Logic low
Load on
Logic high
Load Off
IO口的外设复用
许多引脚还支持一个或多个外设模块。当 配置为操作外设时,引脚不能用作通用输 入或输出。
– – – – 写PORTx 寄存器就是将数据值写入该端口锁存器。 PORTx 写LATx 寄存器就是将数据值写入该端口锁存器。 读PORTx 寄存器就是读取I/O 引脚上的数据值。 读LATx 寄存器就是读取保存在该端口锁存器中的数据 值。
PORT 寄存器
– 通过PORTx寄存器访问I/O引脚上的数据。 – 读PORTx寄存器是读取I/O引脚上的值; – 写PORTx寄存器是将值写入端口数据锁存器。 – 注意都是读-修改-写操作指令。如BSET 和 BCLR,
合集下载
第五章GPIO和中断
GPIO课程实验程序.doc
对C口的6个GPIO管脚进行操作,设计花 样流水灯
#include "stm32f10x.h“ #define LED_ALL GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5 int main(void) { unsigned char j=0; chLsd=0xFF;
对于双向复用功能,端口位必须配置复用功能 输出模式(推挽或开漏)。
如果把端口配置成复用输出功能,则引脚和输出寄 存器断开,并和片上外设的输出信号连接。
如果软件把一个GPIO脚配置成复用输出功能,但是 外设没有被激活,它的输出将不确定。
模拟输入配置
GPIO寄存器的操作
SM32F10X硬件文档.PDF
GPIO_Mode值
例如:IO配置
GPIO_Mode_AIN = 0x0, 模拟输入 GPIO_Mode_IN_FLOATING = 0x04, 浮空输入 GPIO_Mode_Out_OD = 0x14, 表示配置相应管脚为GPIO开漏输出(真双向IO) GPIO_Mode_Out_PP = 0x10, 通用推挽输出模式 GPIO_Mode_AF_OD = 0x1C, 表示配置相应管脚为复用功能的开漏输出 GPIO_Mode_AF_PP = 0x18 复用功能的推挽输出模式
GPIOx_BSRR和GPIOx_BRR寄存器允许 对任何GPIO寄存器的读/更改的独立访问
端口位配置表
I/O端口位输出配置
复用功能配置
复用功能
对于复用的输入功能,端口必须配置成输入模 式(浮空、上拉或下拉)且输入引脚必须由外部 驱动
对于复用输出功能,端口必须配置成复用功能 输出模式(推挽或开漏)。
对C口的6个GPIO管脚进行操作,设计花 样流水灯
#include "stm32f10x.h“ #define LED_ALL GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5 int main(void) { unsigned char j=0; chLsd=0xFF;
对于双向复用功能,端口位必须配置复用功能 输出模式(推挽或开漏)。
如果把端口配置成复用输出功能,则引脚和输出寄 存器断开,并和片上外设的输出信号连接。
如果软件把一个GPIO脚配置成复用输出功能,但是 外设没有被激活,它的输出将不确定。
模拟输入配置
GPIO寄存器的操作
SM32F10X硬件文档.PDF
GPIO_Mode值
例如:IO配置
GPIO_Mode_AIN = 0x0, 模拟输入 GPIO_Mode_IN_FLOATING = 0x04, 浮空输入 GPIO_Mode_Out_OD = 0x14, 表示配置相应管脚为GPIO开漏输出(真双向IO) GPIO_Mode_Out_PP = 0x10, 通用推挽输出模式 GPIO_Mode_AF_OD = 0x1C, 表示配置相应管脚为复用功能的开漏输出 GPIO_Mode_AF_PP = 0x18 复用功能的推挽输出模式
GPIOx_BSRR和GPIOx_BRR寄存器允许 对任何GPIO寄存器的读/更改的独立访问
端口位配置表
I/O端口位输出配置
复用功能配置
复用功能
对于复用的输入功能,端口必须配置成输入模 式(浮空、上拉或下拉)且输入引脚必须由外部 驱动
对于复用输出功能,端口必须配置成复用功能 输出模式(推挽或开漏)。
精选设备管理IO设备
第五章 设 备 管 理
3) 这种分类方式可将I/O (1) 独占设备。 (2) (2) 共享设备。 (3) (3) 虚拟设备。
第五章 设 备 管 理
2. 设备与控制器之间的接口
至设备 控制器
数据信号线 状态信号线
控制信号线
I/O设 备 缓冲 转换器
控制逻辑
信号 数据
图 5-1 设备与控制器间的接口
第五章 设 备 管 理
5.1.2 设备控制器
1. 设备控制器的基本功能 1) 接收和识别命令 2) 2) 数据交换 3) 3) 标识和报告设备的状态 4) 4) 地址识别 5) 5) 数据缓冲 6) 6) 差错控制
第五章 设 备 管 理
2. 设备控制器的组成
CPU与 控 制 器 接 口
数据线
地址线 控制线
T3(缓 冲 3)
T4(缓 冲 4)
(b)
M1
M2
M3
M4
C1
C2
C3
C4
(2) 内存地址寄存器MAR。在输入时,它存放把数据从 设备传送到内存的起始目标地址;在输出时,它存放由内存 到设备的内存源地址。
(3) 数据寄存器DR。用于暂存从设备到内存,或从内存 到设备的数据。
(4) 数据计数器DC。 存放本次CPU要读或写的字(节)数。
第五章 设 备 管 理
3. DMA工作过程 设置AR和DC初值
一是其指令类型单一,这是由于通道硬件比较简单, 其所能执行的命令,主要局限于与I/O操作有关的指令; 再 就是通道没有自己的内存,通道所执行的通道程序是放在主 机的内存中的, 换言之,是通道与CPU共享内存。
第五章 设 备 管 理
2. 通道类型 1) 字节多路通道(Byte Multiplexor Channel)
输入输出接口
六.8086输入/输出指令
1. 输入指令
IN AL, PORT
IN AX, PORT
IN AL, DX
IN AX, DX
2. 输出指令
OUT PORT, AL
OUT PORT, AX
OUT DX, AL
OUT DX, AX
计算机原理讲义
CPU与外设的连接
第5.2节 CPU与外设的连接
一.CPU与外设的一般接口电路
接口功能
D15~D0 A15~A0
A0 BHE IOR IOW
三.接口的功能
数据口 状态口 控制口
I/O装置
➢ 数据缓冲:外设数据输入到总线时需要缓冲。 ➢ 数据锁存:总线数据输出到外设时的锁存,解决CPU
与外设速度不匹配问题。 ➢ 传输控制命令和状态信息:计算机与外设有时需使用
硬件握手。例如:计算机利用查询输出到打印机。 ➢ 信息转换:串并转换、数模转换、电平格式转换
(START)、停止(STOP)或数据的选通(STB)等, 具体由外设的要求而定。 ③ 状态口 ✓ CPU通过状态口了解外设状态。如:
输入外设是否准备好(READY) 转换是否结束(EOC) 输出装置是否忙(BUSY) ✓ 控制信息和状态信息一般也由数据总线传送。
计算机原理讲义
CPU与外设的数据传送方式
D15~D0
A15~A0 A0
BHE IOR IOW
(一)端口
数据口 状态口 控制口
I/O装置
① 数据口:用于完成数据的输入或输出。包括:
✓ 数字量 如用ASCII码表示的数和字符 ✓ 模拟量 如经DAC转换输出的电流 ✓ 开关量 如以一位二进制表示的量
计算机原理讲义
CPU与外设的连接
第五章 IO端口、输入捕捉
• 注: 为了将PORTB 引脚用作数字I/O,ADPCFG 寄 存器中的相应位必须置为“1”(即使关闭了A/D 模块 也应如此)。
• 图5-2: 共用的端口结构框图
• 5.3.1 I/O 与多个外设复用
• 对于有些dsPIC30F 器件,尤其是那些带有少量 I/O 引脚数较少的器件,其每个I/O 引脚可能要 复用多种外设功能。图5-2 所示为两个外设与同 一个I/O 引脚复用的示例。
• 和TRISx 寄存器以及该端口引脚将读作0
5.3 外设复用
• 当某个外设使能时,与其相关的引脚将被禁止作为通 用I/O 引脚使用。可以通过输入数据路径读该I/O 引脚, 但该I/O 端口位的输出驱动器将被禁止。
• 与另一个外设共用一个引脚的I/O 端口总是服从于该外 设。外设的输出缓冲器数据和控制信号提供给一对多 路开关。该多路开关选择是外设还是相关的端口拥有 输出数据的所有权以及I/O 引脚的控制信号。图11-2 显示了端口如何与其他外设共用,以及与外设连接的 相关I/O 引脚。
• 参照图5-2,外设多路开关的结构将决定外设输 入引脚是否可以通过使用PORT 寄存器用软件控 制。
• 当图中所示的概念化的外设在功能被使能时,会断开 I/O 引脚与端口数据的连接。一般而言,下列外设允许 通过PORT 寄存器手动控制它们的输入引脚:
• 外部中断引脚 • 定时器时钟输入引脚 • 输入捕捉引脚 • PWM 故障引脚 • 大多数串行通信外设在使能时,将完全控作0 • bit 13 ICSIDL:输入捕捉模块在空闲时停止控制位 • 1 = 输入捕捉模块在CPU 空闲模式将停止 • 0 = 输入捕捉模块在CPU 空闲模式将继续工作 • bit 12-8 未用:读作0 • bit 7 ICTMR:输入捕捉定时器选择位 • 1 = 捕捉事件时捕捉TMR2 的内容 • 0 = 捕捉事件时捕捉TMR3 的内容 • 注: 可供选择的定时器可能会和上述不同。 更多详细
• 图5-2: 共用的端口结构框图
• 5.3.1 I/O 与多个外设复用
• 对于有些dsPIC30F 器件,尤其是那些带有少量 I/O 引脚数较少的器件,其每个I/O 引脚可能要 复用多种外设功能。图5-2 所示为两个外设与同 一个I/O 引脚复用的示例。
• 和TRISx 寄存器以及该端口引脚将读作0
5.3 外设复用
• 当某个外设使能时,与其相关的引脚将被禁止作为通 用I/O 引脚使用。可以通过输入数据路径读该I/O 引脚, 但该I/O 端口位的输出驱动器将被禁止。
• 与另一个外设共用一个引脚的I/O 端口总是服从于该外 设。外设的输出缓冲器数据和控制信号提供给一对多 路开关。该多路开关选择是外设还是相关的端口拥有 输出数据的所有权以及I/O 引脚的控制信号。图11-2 显示了端口如何与其他外设共用,以及与外设连接的 相关I/O 引脚。
• 参照图5-2,外设多路开关的结构将决定外设输 入引脚是否可以通过使用PORT 寄存器用软件控 制。
• 当图中所示的概念化的外设在功能被使能时,会断开 I/O 引脚与端口数据的连接。一般而言,下列外设允许 通过PORT 寄存器手动控制它们的输入引脚:
• 外部中断引脚 • 定时器时钟输入引脚 • 输入捕捉引脚 • PWM 故障引脚 • 大多数串行通信外设在使能时,将完全控作0 • bit 13 ICSIDL:输入捕捉模块在空闲时停止控制位 • 1 = 输入捕捉模块在CPU 空闲模式将停止 • 0 = 输入捕捉模块在CPU 空闲模式将继续工作 • bit 12-8 未用:读作0 • bit 7 ICTMR:输入捕捉定时器选择位 • 1 = 捕捉事件时捕捉TMR2 的内容 • 0 = 捕捉事件时捕捉TMR3 的内容 • 注: 可供选择的定时器可能会和上述不同。 更多详细
第五章(8259)
采用I/O独立编址方式(但地址线与存储器共用) 地址线上的地址信号用 IO/M来区分:
IO/M=1 时为I/O地址
I/O操作只使用20根地址线中的16根: A15 ~ A0 可寻址的I/O端口数为64K(65536)个 I/O地址范围为0~FFFFH IBM PC只使用了1024个I/O地址(0~3FFH)
符号 ’0’ ’1’ ’2’ ’3’ ’4’ ’5’ ’6’ ’7’
应用例子:发光二极管接口
+5V
D0 | D7 Q0
D0~D7
A0~A15 M/IO
译 码 器
. . .
Q7
=1 . . . =1
R
. . .
. . .
R
CP
WR
74LS373
I/O接口综合应用例
根据开关状态在7段数码管上显示数字或符号 设输出接口的地址为F0H
设输入接口地址为F1H
当开关的状态分别为0000~1111时,在7段数 码管上对应显示’0’和内存地址空间相互独立。 优点:内存地址空间不受I/O编址的影响 缺点:I/O指令功能较弱,使用不同的读写控制 信号
内存地址空间 I/O地址空间 0000H FFFFH
内存空间 (1MB)
00000H
I/O空间 (64KB)
FFFFFH
8088/8086 CPU的I/O编址方式
第5章 数字量输入输出
5.1 概述 1.I/O信号形式 通常有以下4种类型: (1) 数字量: 二进制形式的数据,最小单位为 “位”(bit),8位称为一个字节(BYTE)。 (2) 模拟量: (3) 开关量: 用一位二进制数表示。 (4) 脉冲量:
计算机控制(第五章开关IO电机控制步进电机)
(七)电磁阀接口技术 电磁阀对气体、液体管道的开关进行控制。广泛应用于液 压机械、空调系统、热水器、自动机床等系统中。 电磁阀可分为交流和直流两类,根据其阀位和通道数目有 两位三通、两位四通、三位四通等。 下图为电磁阀的结构原理图。
交流电电磁阀常要使用双向可控硅驱动或用一个直流继 电器作为中间继电器控制。
下图为交流电磁阀的接口电路。MOC3041为光电耦合 器,用于触发双向晶闸管KS,以及隔离单片机和电磁阀系统。
(八)报警程序的设计
常用的报警方式有: 1、 声语言报警:电铃,电笛,频率可调的蜂鸣震 荡音响,集成电子音乐芯片,语音芯片等。 2、 显示报警:LED指示灯,闪烁的白炽电灯, LED、LCD数码管,LED、LCD图形显示器,CRT 显示器等。 3、 图形、声音的混合报警。
三、电机控制接口技术
电动机的应用非常广泛。电机分为动力电机和控制电机。 现代化生产对电机的性能要求越来越高:精度、速度、带 负载能力、灵活性、智能化等。 电机的控制用自动化控制设备,朝向集成化、微型化、智 能化方向发展。微机和单片机使电机控制产生革命性的飞跃。目 前已研制出了许多微机或单片机控制电机的系统及专用控制板。 不远的将来,智能化调速系统、电机一体化等会广泛应用。 (一)小功率直流电机调速原理 小功率直流电机的调速可通过控制电枢平均电压来实现。 用微机或单片机控制,通过改变电枢电压接通时间与通电周期的 比值(即占空比)来控制电机速度——此即脉冲宽度调制PWM。 电机转速由电枢电压Ua决定, Ua越大,电机转速越高。 电机通电时速度增加,断电时速度逐渐减小,控制通、断时间比 即可控制电机转速。 设电机全通电时的转速为Vmax,占空比为D=t1/T,则电机的 平均速度为:Vd=Vmax×D (近似的线性关系)
第5章 IO接口电路的设计
0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 0 0
1 0 1 1 1 0 1 1 1
x x x x x x
x x x x x x x x x
C018~C01F C020~C027
C028~C02F C030~C037 C038~C03F
1 1 1
1 1 1
0 0 0
0 0 0
0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0
x x x x x x x x x
C000~C007 C008~C00F C010~C017
1 1
1 1 1
1 1
1 1 1
0 0
0 0 0
0 0
0 0 0
0 0 0 0
开始 初始化 读入状态
N
数据准备好
Y
输入数→CPU
数→内存缓冲区
N Y
传送完? 结束
9
例5-4
查询式输出方式的接口电路
输出 /ACK 设备
数 据 锁存器 (8位) R C
选通 信号 +5V
D7~D0 /WR(写数据) 2 /CS2 /CS1 1
I/O 译码
M//IO A15~A0
Q
D
D触发器
/RD(读状态) D1(数据总线)
10
设:状态口的地址为P_S2,输出口地址 为P_OUT,传送数据的总字节为C_2, 则查询方式输出数据的程序段为: MOV CX,C_2 READ_S2:IN AL,P_S2 TEST AL,02H JZ READ_S2 MOV AL,输出数据 OUT P_OUT,AL LOOP READ_S2 ……
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 0 0
1 0 1 1 1 0 1 1 1
x x x x x x
x x x x x x x x x
C018~C01F C020~C027
C028~C02F C030~C037 C038~C03F
1 1 1
1 1 1
0 0 0
0 0 0
0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0
x x x x x x x x x
C000~C007 C008~C00F C010~C017
1 1
1 1 1
1 1
1 1 1
0 0
0 0 0
0 0
0 0 0
0 0 0 0
开始 初始化 读入状态
N
数据准备好
Y
输入数→CPU
数→内存缓冲区
N Y
传送完? 结束
9
例5-4
查询式输出方式的接口电路
输出 /ACK 设备
数 据 锁存器 (8位) R C
选通 信号 +5V
D7~D0 /WR(写数据) 2 /CS2 /CS1 1
I/O 译码
M//IO A15~A0
Q
D
D触发器
/RD(读状态) D1(数据总线)
10
设:状态口的地址为P_S2,输出口地址 为P_OUT,传送数据的总字节为C_2, 则查询方式输出数据的程序段为: MOV CX,C_2 READ_S2:IN AL,P_S2 TEST AL,02H JZ READ_S2 MOV AL,输出数据 OUT P_OUT,AL LOOP READ_S2 ……
单片机原理及接口技术第5章 IO口应用-显示与开关键盘输入
图5-1
发光二极管与单片机并行口的连接
5
如果端口引脚为低电平,能使灌电流Id从单片机的外部流入内部,则将
大大增加流过的灌电流值,如图5-1(b)所示。所以,AT89S51单片机任 何一个端口要想获得较大的驱动能力,要采用低电平输出。 如果一定要高电平驱动,可在单片机与发光二极管之间加驱动电路,如 74LS04、74LS244等。 5.1.2 单片机I/O端口控制发光二极管的编程 发光二极管与单片机的I/O端口的连接,如图5-1(b)所示。如要点亮 某发光二极管,只需该I/O端口位写入“0”即可。下面通过一个例子介绍如
21
图5-6 4位LED静态显示的示意图
示字符。这样在同一时间,每一位显示的字符可以各不相同。但是,静态
显示方式占用I/O口线较多。 对于图5-6所示电路,要占用4个8位I/O口(或锁存器)。如果数码管 数目增多,则还需要增加I/O口的数目。在实际的系统设计中,如果显示位 数较少,可采用静态显示方式。但显示位数较多时,为了降低成本,一般 采用动态显示方式。 2. 动态扫描显示方式 显示位数较多时,静态显示所占用的I/O口多,为节省I/O口与驱动电路
单片机控制的8位I/O口锁存器输出相连。如果送往各个LED数码管所显示字 符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到
送入下一个显示字符的段码。因此,静态显示方式的显示无闪烁,亮度较
高,软件控制比较容易。 图5-6所示为4位LED数码管静态显示电路,各个数码管可独立显示,
只要向控制各位I/O口锁存器写入相应的显示段码,该位就能保持相应的显
闭合时,P3.0引脚为低电平。单片机对开关状态的检测是由程序检测
10
图5-3
开关、LED发光二极管与P1口的连接
单片机IO端口工作原理
单片机IO端口工作原理在单片机内部,每一个IO端口都对应着一个寄存器,该寄存器称为IO口寄存器,用于控制该IO端口的输入输出状态。
IO口寄存器通常是一个8位或16位的寄存器,每一位对应一个IO端口。
单片机的IO端口工作原理如下:1.输入方式:当一些端口被设置为输入模式时,它可以接收外部信号。
在输入模式下,该端口的电平状态可以被单片机读取到。
通常通过设置IO口寄存器的相应位来控制端口的输入模式。
在输入模式下,可以通过查询或中断方式读取IO端口的状态。
2.输出方式:当一些端口被设置为输出模式时,它可以向外部设备发送信号。
在输出模式下,可以通过设置IO口寄存器相应位的值来控制端口的输出电平状态。
高电平和低电平对应着不同的输出状态,可以通过操作寄存器来改变IO端口的电平状态。
3.端口模式设置:针对每一个IO端口,单片机提供了相应的寄存器来设置其工作模式。
通常包括输入模式、输出模式、上拉模式和下拉模式等。
输入模式和输出模式可以通过设置IO口寄存器的相应位来实现,上拉模式和下拉模式则需要通过设置其他寄存器或器件来实现。
4.状态改变:在一些情况下,IO端口的状态可能发生改变,如按键按下、外部信号触发等。
这时候可以通过查询或中断的方式来获取IO端口的状态变化,然后进行相应的处理。
5.外部设备连接:IO端口通常通过引脚连接到外部设备,如按键、LED灯、LCD显示屏、电机等。
通过IO端口的输出控制可以实现对外部设备的控制,通过IO端口的输入可以获取外部设备的状态。
总之,单片机IO端口通过IO口寄存器进行控制,可以实现与外部设备的信息交换和控制。
通过设置端口的输入输出模式,可以实现数据的输入和输出。
通过查询或中断的方式,可以实时获取IO端口的状态变化。
通过连接外部设备,可以实现对其控制和监测。
第5章.IO接口WY001
5.3.2.程序查询式控制
一. 特点:
I/O操作总是由MPU通过程序查询外设的 状态来启动,即总是MPU主动,I/O被动。
二. 硬件接口结构 输入接口 输出接口
1.输入接口硬件结构
数 据 输 入 设 备
&
Pd
数据 锁存
三态缓冲 器(8位)
DB
Di
输入状态信息
N AB MPU
选 通
> D
R Q
三态缓冲 器(1位)
READY (状态 信息)
Ps
地 址 译 码
IOR
数据就绪?
Y
输入数据 状态位复位
+5V
准备就绪 触发器
&
(a) 硬件结构
(b) 工作流程
输入外设发选通信号锁存数据。Q = 1, READY =1 读状态标志,Ps有效,READY = 1,数据准备就绪; 执行IN 命令,Pd有效, 并使触发器复位
I/O地址译码例
地址范围:
A11
A0
××××001011110000 ××××001011110011
任意状态
片内地址
图中不接入
I/O地址译码例
译码电路图:
A1 A11 A10 A18 A3 A2 A9 A7 A4 ┇ A0
接口芯片
≥1 &
CE
2. 关于Intel系列MPU的I/O编址方式说明:
D7-D0 D7-D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 D7 D6 D5 D4 D3 D2 D1 D0
D5
IOW
A9 | A3
A15 | A10 A2 A1 A0
