永发信息网

基于MSP430F449的LCD12864液晶屏 为什么不显示。 程序如下

答案:2  悬赏:30  手机版
解决时间 2021-01-25 01:32
  • 提问者网友:相思似海深
  • 2021-01-24 21:51
#include "msp430x44x.h"
#define uchar unsigned char
#define uint unsigned int
#define RS1 P2OUT |=BIT0
#define RS0 P2OUT&=~BIT0
#define RW1 P2OUT |=BIT1
#define RW0 P2OUT&=~BIT1
#define EN1 P2OUT |=BIT2
#define EN0 P2OUT&=~BIT2
#define data P1DIR
float temp;
uchar table2[]="设定温度:60℃";
uchar table3[]="当前温度: . ℃";
void delay(uint n)
{
while(n--);
}
void busy()
{
EN1;//en=1
RS0; //rs=0
RW1;//rw=1
while(P1IN & 0x80)
EN0;//en=0
}
void write_cmd(uchar cmd)
{
busy();
P1DIR=0xff;
EN1;//en=1
RS0;//rs=0
RW0;//rw=0
P1OUT = cmd;
delay(50);
EN0;//en=0
}
void write_Data(uchar dat)
{
busy();
P1DIR=0xff;
EN1;//en=1
RS1;//rs=1
RW0;//rw=0
P1OUT=dat;
delay(50);
EN0;//en=0
}
void Lcd_CSH(void)
{
delay(4000);
write_cmd(0x30);
delay(100);
write_cmd(0x02);
delay(100);
write_cmd(0x0c);
delay(100);
write_cmd(0x01);
delay(10000);
write_cmd(0x06);
}
int main( void )

{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
uchar num;
P1DIR=0xff;
P2DIR |= BIT0+BIT1+BIT2;
Lcd_CSH();//初始化液晶
while (1)
{
write_cmd(0x80);
for(num=0;num<12;num++)
{
write_Data(table2[num]);
}
write_cmd(0x90);
for(num=0;num<14;num++)
{
write_Data(table3[num]);
}
}
}
最佳答案
  • 五星知识达人网友:冷風如刀
  • 2021-01-24 22:55
看不出来,我做的时候,直接把硬件肠涪斑皇职郝办酮暴捆接好,软件写进去就显示了。这种问题也不一定是软件问题,有可能硬件有问题呢。
全部回答
  • 1楼网友:胯下狙击手
  • 2021-01-24 23:27
12864的程序的话,我记得百度文库里面有个。http://wenku.baidu.com/view/595d6ac02cc58bd63186bd3f.html
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯