1 MSP430 单片机I/O 端口控制特点 与 8031 单片机相比,MSP430I/O 端口功能要强大多,其控制方法也更为复杂。MSP430I/O 端口可以实现双向输入、输出;完成一些特殊功能如:驱动 LCD、 A/D 转换、捕获比较等;实现I/O 各种中断。MSP430 采用了传统8 位端口方式保证其兼容性,即每个I/O 端口控制8 个 I/O 引脚。为了实现对I/O 端口每一个引脚复杂控制,MSP430 中每个I/O 口都对应一组8 位控制寄存器(如图1)。寄存器中每一位对应一个I/O 引脚,实现对该引脚独立控制。寄存器功能和数目是由该I/O 口所能完成功能以及类型确定。[2] 图 1 为 MSP430 一个I/O 端口控制结构示意图。对于最基本只能完成输入、输出功能I/O 端口其控制寄存器只有3 个。其中,输入寄存器保存输入状态;输出寄存器保存输出状态,方向寄存器控制对应引脚输入、输出状态。本文中用来实现I2C 总线接口P6.6、 P6.7 都属于这类端口。此外,有些I/O 端口不但可以用作基本输入输出,而且可以用作其他用途,比如可以作为LCD 驱动控制引脚。这类端口控制功能寄存器实现引脚功能状态切换。再者,有一类端口不但可以完成上述两种端口功能,而且可以实现中断功能。该类端口拥有图1 中所有寄存器,中断触发方式以及中断屏蔽性都可以通过相应寄存器控制。本文中使用P2.0 就属于该类端口,利用它来接收 LM92 发出中断。 通过上述控制结构,MSP430I/O 端口可以实现很丰富功能。不仅如此,其中一些I/O 口还可以与MSP430 中特殊模块相结合完成更为复杂工作。如与捕获比较模块相结合可以实现串行通信,与A/D 模块结合实现A/D 转换等。此外,MSP430 I/O 端口电器特性也十分突出,几乎所有I/O 口都有20mA 驱动能力,对于一般LED、蜂鸣器可以直接驱动无需辅助电路。许多端口内部都集成了上拉电阻,可以方便与外围器件接口。 2 MSP430 与 I2C 总线器件接口 通过上述介绍了解了MSP430 中I/O 口一些控制特点。以下介绍如何利用这些特点实现I2C 总线接口。如图2 所示,使用41 系列单片机P6.6 产生I2C 总线时序同步信号;使用P6.7 完成I2C 总线串行数据输入输出;利用P2.0 接收LM92 产生中断信号。基于I2C 总线规范,通过对LM92A0、 A1 和AT240A0、 A1、 A2 设定不同器件地址,两个器件可以共用SCL、 SDA。 图 : 2.1 I/O 端口引脚控制 与8031 不同,MSP430 没有位空间,也没有专门执行位操作控制电路。那么对于一个指定...