大家好,我最近在调这块液晶(内置控制芯片为T6963C)。用的是51单片机的IO方式驱动它。P1口接DB0-7,P3口接WR,CE,RD,C/D,RST等信号。程序使用的网上搜的T6963C的驱动,IO口的配置也都按照我的连线设置好了。可就是没有显示。只能看到背光LED点亮,还有复位的时候LCD里有一条线(位置是随机,复位之后就灭了)。<br />有用过这块液晶的朋友帮忙看看,是屏的问题,还是程序可能有问题。多谢啦!<br /><br />#include "reg52.h"<br />#include "intrins.h"<br /><br />#define uchar unsigned char<br />#define uint unsigned int<br /><br />sbit _WR=P3^6;<br />sbit _RD=P3^4;<br />sbit _CE=P3^3;<br />sbit C_D=P3^7;<br />sbit RST=P3^5;<br />sbit FS=P2^0;<br /><br />void delay(uint delx)<br />{<br /> uint i=0;<br /> while(i<delx)<br /> {<br /> i++;<br /> }<br />}<br /><br />void lcddatawrite(uchar dat)<br />{<br /> delay(1000);<br /> C_D=0;<br /> _WR=0;<br /> _nop_();_nop_();_nop_();<br /> P1=dat;<br /> _nop_();_nop_();_nop_();<br /> _WR=1;<br />}<br /><br />void lcdcommand(uchar dat1,uchar dat2,uchar com,uchar num)<br />{<br /> if((num==1)|(num==2))<br /> {<br /> lcddatawrite(dat1);<br /> }<br /> if(num==2)<br /> {<br /> lcddatawrite(dat2);<br /> }<br /> delay(1000);<br /> C_D=1;<br /> _WR=0;<br /> _nop_();_nop_();_nop_();<br /> P1=com;<br /> _nop_();_nop_();_nop_();<br /> _WR=1;<br />}<br /><br />void initialize(void)<br />{<br /> lcdcommand(0,0,0x80,0);<br /> lcdcommand(0x00,0x00,0x40,2);<br /> lcdcommand(0x1e,0x00,0x41,2);<br /> lcdcommand(0x00,0x0f,0x42,2);<br /> lcdcommand(0x1e,0x00,0x43,2);<br />}<br /><br />void clearscr()<br />{<br /> uint i=0;<br /> lcdcommand(0x00,0x00,0x24,2);<br /> for(i=0;i<0x1000;i++)<br /> lcdcommand(0x00,0,0xc0,1);<br />}<br /><br />void displayasc(uchar x,uchar y,uchar *asc)<br />{<br /> uint charsit;<br /> FS=0;<br /> charsit=y*30+x;<br /> lcdcommand((uchar)charsit,(uchar)(charsit>>8),0x24,2);<br /> while(*asc>0)<br /> {<br /> lcdcommand(*asc-0x20,0,0xc0,1);<br /> asc++;<br /> }<br />}<br /><br />void main()<br />{<br /> RST=0;<br /> delay(1000);<br /> RST=1;<br /> _CE=0;<br /> initialize();<br /><br /> lcdcommand(0,0,0x9c,0);<br /> displayasc(0,0,"This is a LCD demo on 240128.");<br /> while(1);<br />} |
|