|
最近在学习MSP430G2553和1602液晶显示屏连接,由于端口少用了4线输入的方法,但是参考网上所有的资料都是高四位输入法,试验后都成功了。然后我就想了想可不可以低四位输入呢? 带着这个问题我修改了代码和连线。但是几次尝试都是错误的,不知道为什么一下是几种尝试大神帮忙给看看。
一,把端口改成(用P2低四位口作为数据的输出端口)
* PIN7 --> D0接P2.0
* PIN8 --> D1接P2.1
* PIN9 --> D2接P2.2
* PIN10 --> D3接P2.3
(由于写指令函数和写数据函数大致内容相同,列举出写指令函数)
/*****************************************
写指令函数(修改过后的代码)
****************************************/
void LCD_write_command(unsigned char command)
{
delay_nus(16);
P2SEL=0x00; //设置P2端口为并行输出/输入端口
P1OUT&=~BIT6; //RS=0,P1.6管脚,意思是给1602选择指令寄存器
LCD_en_write1();//液晶使能上升沿
LCD_DATA_PORT&=0XFO; //清高四位
LCD_DATA_PORT|=command&0xOF; //写低四位
delay_nus(16);
LCD_en_write2();//液晶使能下降沿
command=command>>4; //高四位移到低四位
LCD_en_write1(); //液晶使能上升沿
LCD_DATA_PORT&=0x0f; //清低四位
LCD_DATA_PORT|=command&0xf0; /*写低四位,但是实质是把高四位上的数据
写了进去,因为把数据右移了4位*/
LCD_en_write2(); //液晶使能下降沿
}
不知道是自己对端口读字节的方式还不理解还是什么问题,为什么先写高四位的可以成功显示,尝试低四位输入就老师出错。请大神指点,如果代码错误请帮个小忙。
[ 本帖最后由 qinkaiabc 于 2013-10-12 13:41 编辑 ]
|
|