前面的文章中基本把关于 C51 单片机开发的环境和概念整理完了,就剩下关于 I/O 口的整理了,有了 I/O 口(输入输出口,也就是开发板上的针脚吧,其实这些针脚是从单片机上引出的)的知识就可以让单片机和外设进行通信了,我们用 PC 时也是有了键盘、鼠标和显示器,才方便操作计算机。这篇文章就来整理一下关于 I/O 口的内容。
0x01:I/O 口(输入/输出口)
我使用的单片机是 STC89C52,它也是兼容 STC89C51 单片机的。STC89C52 单片机有 5 组输入输出口,分别是 P0、P1、P2、P3 这四个口,每组对应 8 个针脚,P4 口是 RC 系列才有的,它有 7 个针脚。
在手册中有管脚的说明,手册上叫管脚,开发板叫针脚,至少我是这么理解的。因为它们是对应的,针脚的电路最后都是接到单片机的管脚上的。所以怎么叫可能无所谓吧(如果这里说明有误,就抱歉了)。
手册上有关于这 5 组针脚的说明,分别在第 26 页和第 27 页,截图如下:
针脚的作用是单片机和外设通信的,也就是用来交换数据的。
对于单片机来讲,I/O 口的输入是把外设的数据(信号)接收回来,对于输出来说是把数据(信号)送到外设。
STC89C52 的 I/O 口使用比较简单,直接使用即可,无需配置!
0x02:简单示例
这里给一个简单的示例,示例中演示从 P1.0 针脚获取数据和把数据给到 P1.0 的 I/O 口,代码如下:
sbit IOPORT = P1 ^ 0;
int main()
{
int io_data;
// 把 I/O 口的数据赋值给变量,就是输入
// 或者理解为,这个针脚有数据赋值给变量来保存
io_data = IOPORT;
// 把一个数据给到引脚,使得引起 I/O 口电压变化
// 一般 1 输出高电平,0 输出低电平
// 此时为输出,来影响外接的电路
IOPORT = 1;
}
上面的例子就是一个简单的 P1.0 输入输出的例子。
简单来说,变量在单片机的内存中,I/O 的数据给变量赋值就是输入,因为 I/O 的数据来自于外设,把值赋值给某个引脚就是输出,因为会通过引脚把数据输出给外设。输入输出是针对单片机来讲的!
到此,单片机的很多基础概念、开发环境就全部整理完成了!后面会有一些简单的示例来进行更多的了解。