(void)
{
P2DIR|=0X02;// SDA="0"
;IIC_Delay();
P2DIR&=0XFB;//SCL=1 FB="1111",1011
IIC_Delay();
P2DIR|=0X04;// SCL="0"
IIC_Delay();
}
// 连续读字符模块
void ReadNbyte(unsigned char *p,unsigned int addr,unsigned char number)
{
start_IIC();
send_char(0xa2);
iic_ACK();
send_char(addr/256);
iic_ACK();
send_char(addr%256);
iic_ACK();
start_IIC();
send_char(0xa3);
iic_ACK();
do
{
*p=read_char();
p++;
if(number!=1)
S_ACK(); //send ACK
}
while(--number);
iic_NACK();
stop_IIC();
}
数据的传输
数据传输是存储在EEPROM中的数据到达计算机的有效途径,数据上传到计算机最常用的是串行(RS232)接口,现在由于USB计数的不断成熟,通过USB可以方便快捷实现数据传输,而且可以满足速率和设备外观的要求,但是USB的驱动程序设计是比较复杂的工作,本例中使用简单的桥接电路,把UART接口的数据经过CP2102的桥接,直接实现数据的USB转换,从430F449异步串口输出的数据自动转化为符合USB协议的数据直接连接到计算机的USB口,上位机应用程序通过CP2102的驱动程序可以象操作串口一样直接读写端口数据。
结论
以上的硬件设计比较简单可靠,可以照搬到同类型的控制芯片上,软件代码也同样具有较好的移植性,只要把控制时钟和数据端口和程序软件设置相一致即可。
参考文献:
1、MSP430系列16位超低功耗单片机实践与系统设计《清华大学出版社》
2、MSP430系列单片机接口计数及系统设计实例《北京航天航空大学出版社》
3、MSP430系列单片机C语言程序设计与开发《北京航天航空大学出版社》