I/O 端口,是单片机学习者首先接触的基本外围功能,用于输出控制信号、或者输入外部状态信号。尽管功能简单、易用,在实际的电子产品开发中,仍有值得注意的细节,甚至这些细节的处理关乎产品的质量。作为示例,本文介绍2点需要关注的内容。
1、端口的方向设置
对于双向I/O端口,具体应用中根据实际需要,设置为输入端口或者输出端口,这个功能的实现,通常是在初始化程序中,通过设置I/O端口的方向寄存器来完成的。
如下例所示:
以上的程序,从逻辑上看,没有任何问题。但是,在产品的实际工作过程中,方向寄存器中的设定值,存在被意外改写的风险。例如,强噪声环境中运行的电子产品。
那么,如何尽可能地降低这种风险带来的负面影响呢?
常用的方法,是每隔一段时间,重复设置方向寄存器,以减少方向寄存器被意外改写所带来运行故障。如下所示。
2、位操作指令的使用
有的单片机提供了位操作指令(例如:SEB命令,CLB命令),用于对某一输出端口执行置位(端口输出高电平)或复位(端口输出低电平)操作。但是,使用位操作时如果不慎,也可能会给产品的运行带