这几种接口有些口线是复用的,有些寄存器也是复用的,在驱动编写中要根据当前不同的器件及其接口在这几个寄存器UCAxCTLO(USCI_AxControlRegistero)、UCAxCTLl(USCI_AxControlRegis-terl)、UCBxCTLO(USCI_BxControlRegisterO)、UCBxCTLl(USCI_BxCon-trolRegisterl)(x=l或2)中进行USCI工作模式的选择。
使用USCI驱动时,可以使用中断方式也可以使用查询方式进行操作。
以查询方式为例,如果通过USCIBO发送一个字节,那么使用如下语句:
第二行代码的作用就是等待发送操作完成。如果通过USCIBO接收一个字节,那么使用如下语句:
第一行代码的作用就是等待接收操作完成。
在这个系统中使用到硬件USCI驱动的芯片有PCF8563(12C)、GT21(SPI)和OSYN06188(UART)。
4数字温湿度传感器驱动:数字温湿度传感器虽然使用了两线串口,但与I2C不兼容。
其时序特点是(1)SCK用于微控制器与SHT之间的通讯同步:(2)DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
在测试的起始要产生启动时序,如下图所示。
由于MSP430系列单片机不支持位操作,因此要将口线某一位置为高电平或者低电平需要使用如下语句:
为了方便代码编写,使用如下预编译语句:5触摸屏控制芯片驱动:
触摸屏控制芯片选用的是AD7843,AD7843是使用了SPI总线的器件。但是经过实验发现AD7843的SPI总线使用MSP430的口线通过编程来模拟SPI总线比较好。
数据是在时钟的上升沿移入AD7843的,所以发送-bit数据的流程就是(1)时钟线置0:(2)设置MOSI线数据;(3)时钟线置1。
如此反复将一个字节数据送入AD7843。数据是在时钟的下降沿移出AD7843的,所以接收-bit数据的流程就是(1)时钟线置1;(2)读取MISO线上的数据;(3)时钟线置0。
6液晶显示模块驱动:选用的液晶显示模块为16位真彩色TFT液晶显示模块,即红色数据5位,绿色数据6位,蓝色数据5位。这款模块的接口是8位的接口,因此对于任何一个像素点都需要送两次字节数据;而模块的命令字依旧是8位的,因此命令只需要送一次字节数据。
7中断服务:在IAREmbeddedWorkbench环境中,中断服务函数有特殊的形式,如下代码所示(P2口的中断服务函数):
在设计中主要使用了P2与P1口的中断服务。
结束语
以硬件设计原理图将MSP430F2XX最小系统板和功能模块通过10芯FC-3排线进行连接,在系统硬件搭建完成后,首先用万用表进行测试,看是否有短路和断路的情况出现。经检测无误,给整个系统供电,对电源模块输出电压进行测试,在正常范围内。打开最小系统板的电源开关,如电源指示灯亮度正常,单片机不发热,即可以进行软硬件统调。
本文关键字:单片机 综合-其它,单片机-工控设备 - 综合-其它
上一篇:基于单片机的双色无表针钟表的设计