紧急求助ST7920控制12232的问题

[复制链接]
2109|3
 楼主| liuxaut11 发表于 2008-7-24 15:40 | 显示全部楼层 |阅读模式
下面是参考别人资料写的一个程序,烧进去后,液晶没任何反映.<br />用的是12232-9液晶,跪求高手指点,小弟不胜感激<br />//===========================================================================//<br />//mcumsp430f449//<br /><br />//p20rs//<br />//p21r/w//<br />//p22e//<br />//p30-p37db//<br />//===========================================================================//<br />#include&nbsp;&quot;msp430x44x.h&quot;<br />/*************************/<br /><br /><br />unsigned&nbsp;char&nbsp;busy,hang,lie;<br /><br />/********************************/<br />//定义字符串数组*/<br />/********************************/<br />char&nbsp;&nbsp;&nbsp;STR2[]=&quot;http://www.qfmcu.com&quot;;<br />char&nbsp;&nbsp;&nbsp;STR3[]=&quot;http://www.mcubbs.net&quot;;<br /><br />/**************************定义函数原型********************************/<br />void&nbsp;&nbsp;&nbsp;Delayus(unsigned&nbsp;long&nbsp;n);/*延时函数*/<br />void&nbsp;&nbsp;&nbsp;BUSYLOOP();//*判忙函数*//<br />void&nbsp;&nbsp;&nbsp;Write_command(unsigned&nbsp;char&nbsp;CMD);//*发控制字函数*//<br />void&nbsp;&nbsp;&nbsp;Write_data(unsigned&nbsp;char&nbsp;dat);//*发数据函数*//<br />void&nbsp;&nbsp;&nbsp;CHUSHIHUA();//*初始化函数*//<br />void&nbsp;&nbsp;&nbsp;CLEAR();//*清屏*//<br />void&nbsp;&nbsp;&nbsp;Display(unsigned&nbsp;char&nbsp;*ptr,unsigned&nbsp;char&nbsp;ddram);//**显字符串函数**//<br /><br /><br />/*********************************************延时<br />**************************************/<br /><br /><br />void&nbsp;&nbsp;Delayus(unsigned&nbsp;long&nbsp;n)<br />{unsigned&nbsp;long&nbsp;&nbsp;i,j;<br />for(i=0;i&ltn;i++)<br />&nbsp;&nbsp;&nbsp;for(j=0;j&lt9;j++);<br />}<br />//*********************判忙函数************************//<br />void&nbsp;&nbsp;BUSYLOOP()<br />{&nbsp;P2DIR=0xff;<br />&nbsp;&nbsp;&nbsp;P2OUT&=~0x01;<br />&nbsp;&nbsp;&nbsp;P2OUT|=0x02;<br />&nbsp;&nbsp;&nbsp;P3DIR=0X00;<br />&nbsp;&nbsp;&nbsp;P2OUT|=0x04;<br />&nbsp;&nbsp;&nbsp;while((P3IN&0x80)==0x80);<br />&nbsp;&nbsp;&nbsp;P2OUT&=~0x04;<br />&nbsp;&nbsp;&nbsp;P3DIR=0Xff;<br />}<br />//*********************写控制字函数****************************//<br />void&nbsp;Write_command(unsigned&nbsp;char&nbsp;CMD)<br />{<br /><br />BUSYLOOP();<br />_NOP();<br />P2DIR=0xff;<br />P3DIR=0xff;<br />P2OUT&=~0x01;<br />P2OUT&=~0x02;<br />P2OUT|=0x04;<br />P3OUT=CMD;<br />Delayus(10);<br />_NOP();<br />P2OUT&=~0x04;<br />_NOP();<br />}<br /><br />//*********************写数据函数****************************//<br />void&nbsp;Write_data(unsigned&nbsp;char&nbsp;dispdata)<br />{BUSYLOOP();<br />//Delayus(1000);<br />&nbsp;_NOP();<br />&nbsp;&nbsp;&nbsp;P2DIR=0xff;<br />&nbsp;&nbsp;&nbsp;P3DIR=0xff;<br />&nbsp;&nbsp;&nbsp;P2OUT|=0x01;<br />&nbsp;&nbsp;&nbsp;P2OUT&=~0x02;<br />&nbsp;&nbsp;&nbsp;P2OUT|=0x04;<br />&nbsp;&nbsp;&nbsp;P3OUT=dispdata;<br />&nbsp;&nbsp;&nbsp;Delayus(5);<br />&nbsp;&nbsp;&nbsp;_NOP();<br />&nbsp;&nbsp;&nbsp;P2OUT&=~0x04;<br />&nbsp;&nbsp;&nbsp;_NOP();<br />}<br /><br />/***************************清屏*************************************/<br />void&nbsp;CLEAR()<br />{<br />P2OUT&=~0x01;//RS=0;<br />P2OUT&=~0x02;//RW=0;<br />P2OUT|=0x04;//E=1;<br />P3OUT=0x01;<br />Delayus(10);<br />P2OUT&=~0x04;//E=0;<br />}<br /><br />//*************************液晶初始化********************************//<br />void&nbsp;CHUSHIHUA()<br />{<br />Delayus(40000);<br />Write_command(0x30);<br />Delayus(1500);<br />Write_command(0x30);<br />Delayus(400);<br />Write_command(0x0C);<br />Delayus(1500);<br />Write_command(0x01);<br />Delayus(15000);<br />Write_command(0x06);<br />}<br /><br />/*=======================================================<br />显示字符串<br />=======================================================*/<br />void&nbsp;Display(unsigned&nbsp;char&nbsp;*ptr,unsigned&nbsp;char&nbsp;ddram)<br />{<br />int&nbsp;i1,x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ddram&lt0x88)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{hang=0;}//定位行地址:第一行<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(ddram&lt0x90)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{hang=2;}//定位行地址:第三行<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(ddram&lt0x98)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{hang=1;}//定位行地址:第二行<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{hang=3;}//定位行地址:第四行<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lie=0x0f&ddram;//定位列地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(lie&gt0x07)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{lie=lie-0x08;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x=lie*2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write_command(ddram);//定位显示起始地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while((ptr[i1])!='\0')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;Write_data(ptr[i1]);//输出单个字符<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i1++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(x==0x10)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{x=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hang++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(hang)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;0:Write_command(0x80);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1:Write_command(0x90);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;2:Write_command(0x88);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;3:Write_command(0x98);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(hang&gt3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write_command(0x80);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hang=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br /><br />/**************************主函数开始***********************************/<br />main()<br />{WDTCTL=WDTPW+WDTHOLD;//停止看门狗<br /><br />P3DIR=0xff;<br />P3OUT=0x00;<br />P4DIR=0x0f;<br />P4OUT=0x00;<br />////////////////////////////////<br />CLEAR();<br />CHUSHIHUA();//初始化函数//<br />Display((unsigned&nbsp;char&nbsp;*)STR2,0x80);//上面一行显示一个预定字符串<br />Display((unsigned&nbsp;char&nbsp;*)STR3,0x88);<br />Delayus(200);<br />Write_command(0x9C);//将光标移到0x9C<br />Write_command(0x0f);//光标处反白闪烁<br /><br />//write_command(0x08,0);//进入睡眠状态<br />//delayus(200);<br />//write_command(0x0C,0);//唤醒<br /><br />while(1)<br />{;}<br />}<br />/*************************主函数结束*************************************/<br /><br />请高手指点下看哪有问题?<br />单片机为msp430f449<br />
zhaoyu2005 发表于 2008-7-25 09:43 | 显示全部楼层

对比度调了吗?

就负压输入,如果不对的话,累死你也显示不出来
zhaoyu2005 发表于 2008-7-25 09:45 | 显示全部楼层

找个datasheet好好看看时序

再调调对比度,一般就能弄出来,很简单的
 楼主| liuxaut11 发表于 2008-7-25 10:25 | 显示全部楼层

对比度调了

对比度调了.<br />给的资料上写的<br />对比度A0通过一个电位器,接到地,电位器另一脚为空&nbsp;<br />我问了他们也说就那样接<br />&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部