输入输出端口
输入/输出端口的作用和用法
微型计算机的周边出现了很多银色的线,我们把它叫做针脚。这些引脚的前端连接着LED和开关等外围设备。
外围设备连接的引脚连接到微型计算机功能,称为输入/输出端口(I/O端口)。端口是微型计算机和外围设备连接的端子。
如果您想从微型计算机打开/关闭LED,您可以通过执行程序中的端口控制来实现。端口控制成为嵌入式开发人员首先要记住的硬件控制技巧。
在高功能微型计算机中,将I/O端口称为GPIO(General Purpose Input/Output:通用输入输出),功能与I/O端口相同!
输入输出端口与电路图、结构图的关系
基础上连接着微型计算机和LED、开关、马达等各种外围设备。
为了从微型计算机控制这些外围设备,您需要知道微型计算机的哪里有什么连接。为了确认这个连接,需要基础的电路图。
电路图是研究对象产品的硬件开发负责人将外围设备连接到微型计算机的哪个引脚来制作的。如果你有能力解读电路图,你就可以理解你可以用什么程序来控制外围设备。
现在,让我们来看看电路图中的PDF文件。画在中心的四边形是H8/36064微型计算机。下左图是只摘录了橙色LED的LED1部分的电路图。
软件开发人员控制外围设备所需的信息是与称为端口号的微型计算机的连接信息。如果您准备了简化电路图的结构图,则开发将变得更容易。
输入输出端口寄存器与端口号的关系
从程序控制外围设备时,端口号是关键。连接橙色LED1的端口号是“P60”。让我们再次参考H8数据表,了解这个“P60”是什么。下一张图画出来了。你可以看到,“P60”写在最下面。
端口6是微型计算机和外部引脚的连接口,共管理8个端口。“P60”是表示端口6的0号端子的号码。
例如,如果是“P74”的端口号,则是端口7的4号端子。
必须有端口号才能控制外围设备。
请注意,端口的端子号与bit号相同,从0号开始!
输入/输出端口6的寄存器配置
I/O端口6也有寄存器。让我们看看数据表,看看有哪些寄存器存在。
- 端口控制寄存器6(PCR6)
- 端口数据寄存器6(PDR6)
这两个寄存器是I/O端口控制的代表性寄存器。不仅在H8微型计算机中,在许多微型计算机中也在I/O端口上提供类似的寄存器。那么,让我们依次看看每个寄存器的作用。
端口控制寄存器6(PCR6)
首先要抑制的寄存器是端口控制寄存器。首先,从确认数据表的解说开始。
- 您可以通过查看此寄存器规范来解读以下内容
- 由1Byte(8位)构成
- 每位与8个端口一一对应
- 只能写
- 通常,0时为输入端口,1时为输出端口
- 系统启动后的初始值全部是输入端口的设定
8个端口必须选择输入端口或输出端口的模式。
输入端口
当设置为输入端口时,模式可以从程序读取施加到目标端口的外部电压的状态。你可以检查电压是高还是低。连接到输入端口的典型外围设备是开关。
输出端口
设置为输出端口时,您可以从程序中提高和降低目标端口的外部电压。通过提高和降低电压,您可以操纵连接的外围设备。连接到输出端口的典型外围设备是LED。
关于端口控制寄存器的输入/输出的设定值的决定方法
端口连接到外围设备,如LED和开关。根据这些外围设备确定端口控制寄存器的输入和输出。外围设备可以大致分为输入设备和输出设备的分类。
设置为输入端口还是设置为输出端口取决于连接到端口的外围设备是输入系统还是输出系统。
除了这个例子之外,世界上当然有很多设备,但是你可以想象它属于哪一个。
在微型计算机中,制作的程序会运行。例如,通过程序检测开关被按下并指示电机转动的运动是使用端口的代表性外围设备的控制。
注意端口控制寄存器始终是只起决定输入和输出控制方向作用的寄存器!
端口数据寄存器6(PDR6)
端口数据寄存器是根据端口控制寄存器确定的输入/输出方向来控制特定外围设备的。
寄存器的特点如下。
- 由1Byte(8位)构成
- 每位与8个端口一一对应
- 读写都可以
- 根据对应的PCR6的输入/输出设定而变化
- 系统启动后的初始值全部设定为0
端口控制寄存器在输入设置时的端口数据寄存器控制
如果PCR是输入设置,PDR则是读取控制。
通过查看PDR的位值,您可以检查施加到目标端口的外部电压是Hige还是Low。如果开关连接到外围设备,则将硬件配置为在不按下或按下开关的情况下改变外部电压。
这允许您通过从程序中读取电压状态来检查开关是否被按下或断开。
端口控制寄存器输出设置时的端口数据寄存器控制
如果PCR是输出设置,PDR将被写入控制。
通过在PDR的位值中写入1,可以将施加到目标端口的外部电压写入Hige,从而使电压为Low。
如果LED通过外围设备连接,则可以通过升高和降低电压来打开/关闭LED。
端口控制寄存器与端口数据寄存器关系的总结
让我们最后总结这两个寄存器。软件寄存器硬件关联动作如下。
※注意:上图是寄存器解说用的图象图,视窗中LED和开关的连接端口号不同。
因此,寄存器存在于软件和硬件之间的边界线上。从软件控制硬件就是通过寄存器进行交互。