MSP430驱动OCMJ15X20D液晶显示屏
先用51的程序成功可以使OCMJ15X20D液晶显示屏成功显示,但是430上就不能显示啦。。真心搞不懂啊。。求教大神。。。写进去寄存器在读出来都是错误的。。。。不知道哪位大神搞过的求指教
还有就是这个函数搞不懂诶
void lcd_datawrite(uchar wrdata) small
{
while(lcd_busy == 0);
lcd_data = wrdata;
lcd_cs1 =0; // chip enable.
lcd_rd = 1; //
lcd_rs = 1; // rs = 1;
lcd_wr = 0; // wr = 0;
delay_nop(1);
lcd_wr = 1; // wr = 1;
lcd_rs = 1; // rs = 1;
lcd_cs1 =1; // chip disable.
}
lcd_busy。。端口给的datasheet上写的是 while(lcd_busy == 1);
但是我把程序移植到51板上必须是 while(lcd_busy == 0);才能显示。。我纠结了
430还没用过………… fengye5340 发表于 2013-5-4 20:00 static/image/common/back.gif
以前做过类似驱动罢了,呵呵,现在没用啦
多谢大神。。嘿嘿 洛川子 发表于 2013-5-3 21:13 static/image/common/back.gif
多谢啦。。。兄弟最近有这个液晶做什么呢?暂么你可以相互交流下回啊。俺滴qq1009822165 ...
以前做过类似驱动罢了,呵呵,现在没用啦 fengye5340 发表于 2013-5-2 12:02 static/image/common/back.gif
这个判忙 while(lcd_busy == 0); 在430上不适用啊。
430里面的IO是双向,判忙时,需要设置为输入才行
多谢啦。。。兄弟最近有这个液晶做什么呢?暂么你可以相互交流下回啊。俺滴qq1009822165 这个判忙 while(lcd_busy == 0); 在430上不适用啊。
430里面的IO是双向,判忙时,需要设置为输入才行
下面是我用的驱动,判忙函数可以参考一下{:soso_e112:}
#define LCD_DataIn P4DIR=0x00 //数据口方向设置为输入
#define LCD_DataOut P4DIR=0xff //数据口方向设置为输出
#define LCD_RS_H P3OUT|=BIT0 //P3.0
#define LCD_RS_L P3OUT&=~BIT0 //P3.0
#define LCD_RW_H P3OUT|=BIT1 //P3.1
#define LCD_RW_L P3OUT&=~BIT1 //P3.1
#define LCD_EN_H P3OUT|=BIT2 //P3.2
#define LCD_EN_L P3OUT&=~BIT2 //P3.2
void chk_busy()
{
unsigned char temp=0;
LCD_RS_L;
LCD_RW_H;
LCD_DataIn;
do
{
LCD_EN_H;
_NOP();
temp= P4IN;
LCD_EN_L;
}
while(temp&0x80);
LCD_DataOut;
}
延时及端口设置,430的IO是需要配置的,跟51是有区别的:) 这个是51的程序吧? 对于IO口的设置有没有问题?还有就是这个延时跟在51上的延时的时间是否一样的?
页:
[1]