服务热线: 0755-83261303
邮箱:ht@htsemi.com
地址:深圳市龙华区大浪街道浪口社区华昌路315号华昌工业园
金誉半导体笔记:单片机I/O口是什么?有哪些种类
前言:任何MCU单片机都具有一定数量的I/O口,没有I/O口,MCU就失去了与外部沟通的渠道。
单片机I/O口是用来定义相对I/O口位的输入、输出的状态和方式。其中I是input 输入的意思,O是output输出的意思,I/O读写就是输入或输出读写。
根据I/O口的可配置情况,可以分为如下几种类型:
1、纯输入或纯输出口:此类I/O口由MCU硬件设计决定,只能是输入或输出,需要切换到内核态对操作系统进行操作,不可用软件来进行实时的设定。
例如程序要保存一个文件到硬盘,在程序执行的用户态,是直接操作磁盘的。只有切换到内核态才能真正去操作磁盘。在进行I/O操作时CPU会从用户态切换为内核态,而操作结束后则需要从内核态切换为用户态。
2、直接读写I/O口:如MCS-51的I/O口就属于此类I/O口。当执行读I/O口指令时,就是输入口;当执行写I/O口指令则自动为输出口。read: 把数据从内核缓冲区复制到进程缓冲区。 write: 把数据从进程缓冲区复制到内核缓冲区。
因此,上层程序的IO操作、不是物理设备级别的读写,而是缓存的复制。设置缓冲区的目的就是为了减少频繁地与设备之间的物理交换。
3、程序编程设定输入输出方向的:此类I/O口的输入或输出由程序根据实际的需要来进行设定,应用比较灵活,可以实现一些总线级的应用,如I2C总线,各种LCD、LED Driver的控制总线等。
对于I/O口的使用,重要的一点必须牢记的是:对于输入口,必须有明确的电平信号,确保不能浮空(可以通过增加上拉或下拉电阻来实现);而对于输出口,其输出的状态电平必须考虑其外部的连接情况,应保证在Standby或静态状态下不存在拉电流或灌电流。
最重要的一点是:必须设置寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点。