TI 的MSP-EXP430FR5969 LaunchPad 开发板功能太强大了,先从简单的IO操作开始吧
IAR提供了标准的库函数可用于几乎所有资源的操作,但是这些库函数太过上层,一般是面向应用开发的,对于初学者不利用硬件的学习,所以我这里用的大都是直接的寄存器操作
首先看一段官方的 “Blink LED” 例程
/////////////////************Blink LED
****************//////////////////////
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop WDT
// Configure GPIO
P1OUT &= ~0x01; // Clear P1.0 output latch for a defined power-on state
P1DIR |= 0x01; // Set P1.0 to output direction
PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode
// to activate previously configured port settings
while(1)
{
P1OUT ^= BIT0; // Toggle LED
__delay_cycles(100000);
}
}
/////////////////////end
从上面这段程序可以看出其IO操作与MSP430G2xxx系列十分类似,只是多了一条 激活端口的语句 ‘ PM5CTL0 &= ~LOCKLPM5; ’,
这个应该是出于降低功耗而引人的一个新功能
有了基本的了解之后就可以试试LCD显示了,手头只找到了一块1602,先凑合用用吧
一般来说,点亮1602需要一个8位的数据端口+3位控制端口,至少需要11个IO口,可是板子提供的IO口太少,且零碎
条件越艰苦,越有利于创新,下面且看我的 4线方式LCD1602显示(4Data IO + 2 Con IO,共需6个IO)
原理:
1. 大多数LCD1602 本身支持4线数据模式,只需初始化时选择合适的工作模式,即可实现4位数据(指令)输入输出
2. LCD1602 作为一个显示器件其实与MCU单向通行即可,即MCU按照一定的时序发送指令,同时预留一定预量即可在1602上实现无误码的显示
那么3个控制端口 RW(读写) RS(数据/指令) EN(使能),只需RS、EN即可,RW端一直接低电平:即一直进行写操作
实物展示:
整体连线
4位数据线+2根控制线 的具体连接方式
主函数
4线液晶显示头文件
完整的工程文件
本帖最后由 tianshuihu 于 2015-1-5 18:37 编辑