编辑: 贾雷坪皮 | 2019-07-02 |
不同结构的 I/O 在使用上是有差异的,所以在使用时,要事先了解 该I/O 的结构和定义,才能正确应用. 1. 端口(I/O Port)结构 中颖公司 SH6xxx 系列单片机中, 针对不同的应用,设计了几种不同的 I/O 结构.如:开漏电路(Open Drain)和CMOS 结构.以下对这些 I/O 的结构和应用分别 进行说明. - CMOS 结构 I/O 中颖公司系列单片机典型的 COMS I/O 端口是一个标准的双向端口,即可设置 为输入端口,又可设置为输出端口.端口在作为输出时,依据具体的应用定位, 可以提供大小不等的驱动能力.端口在作为输入时,呈现极高的输入阻抗,对输 入信号基本可视为开路或悬浮状态. 这些端口的输入或输出状态完全由用户通过软件设置相应控制寄存器进行控 制.并且每个端口都互相独立. CMOS I/O 端口的结构分为三种. 图1-1 为CMOS I/O 结构图 1: I/O Pad PULLEN PH/PL Weak Pull high READ DATA IN READ VDD VDD Weak Pull Low GND GND DATA Regiser I/O Control Register DATA 图1-1 CMOS I/O 结构图
1 特点: 1)此端口设计中有内建的上拉/下拉 CMOS 电阻(几十至几百千欧姆不 等,依单片机型号而定) ,此功能仅在端口设置为输入状态时才能启用,在 输出状态会自动关闭,且每个端口互相独立. 2)通过寄存器 PULLEN 控制位选择是否允许上拉/下拉电阻功能;
通过 寄存器PH/PL控制位选择上拉或下拉电阻功能. 这些内建的上拉/下拉CMOS 电阻在设计中可以节省电路板上的外部上拉/下拉电阻及电路板面积. 图1-2 为CMOS I/O 结构图 2: I/O Pad PULLEN Weak Pull high READ DATA IN READ VDD VDD GND DATA Regiser I/O Control Register DATA 图1-2 CMOS I/O 结构图
2 此端口设计中只有内建的上拉 CMOS 电阻(几十至几百千欧姆不等,依单片机 型号而定) , 此功能仅在端口设置为输入状态时才能启用, 在输出状态会自动关闭, 且每个端口互相独立.通过寄存器 PULLEN 控制位选择是否允许上拉电阻功能. 图1-3 为CMOS I/O 结构图 3: I/O Control Register DATA Register Pull high Register M2T1
0 1 s READ DATA IN DATA READ I/O Pad Pull high VDD GND VDD 图1-3 CMOS I/O 结构图
3 此端口设计中有内建的上拉 CMOS 电阻(几十千欧姆) ,此功能仅在端口设置 为输入状态时才能启用,在输出状态会自动关闭,且每个端口互相独立. 通过寄 存器 PULLEN 控制位选择是否允许上拉电阻功能. 开漏结构( Open Drain) I/O 图1-4 是开漏结构的 I/O 端口结构: READ DATA IN READ DATA Regiser I/O Control Register DATA I/O Pad GND 图1-4 开漏结构 I/O 结构图 开漏结构端口输出
0 时,在引脚输出低电平.而输出
1 时,在引脚输出表 现为高阻抗.如果要取得高电平则需要使用外部上拉电阻,如图 1-5.此外部高电 平可以高于或低于单片机的工作电压,使用户可以根据外围电路需求取得需要的 输出控制电平.同时这一特性可允许多个开漏结构端口并联使用,而不会造成冲 突. Data-In Data-Out I/O PAD VCC 图1-5 开漏结构端口的应用 2. 端口(I/O Port)的操作 每个端口都有独立的输入/输出状态控制寄存器 (PxCR) . 其中 x 对应 A, B, C, D 等不同端口.通过用户软件对这些状态控制寄存器写入
0 或1,就可以独立控制 每一个端口的输入/输出状态,0 为输入状态,1 为输出状态.一旦向端口输入/输 出状态控制寄存器(PxCR)写入数据后,端口将一直保持用户设定的状态,直至 下一次被改写. 端口在系统复位后(上电复位、外部 RESET、低电压检测复位及看门狗溢出复 位)的初始状态为输入悬空状态(数据寄存器复位为