| 
 
| 本帖最后由 LHT5631080 于 2012-4-24 16:04 编辑 
 网上淘了块HLM24064LCD,无驱动器(类T6963)。用51驱动,但屏幕无显示,硬件连接电源等无误,看T6A39/40时序,折腾几天没辙,感觉是时序问题,请各位大侠是哪里错了。万望不吝解惑!
 
 以上实测HLM结构框图
 
 
 以上列驱动器T6A39时序(4位并行)。HLM24064是1位的。
 
 
 以上行驱动器T6A40时序。以下为51测试程序。程序如下:(在屏幕上显示30条等距竖线)
 #include<reg52.h>
 
 sbit DATA =P2^3;//串行数据
 sbit FLM  =P2^2;//帧同步
 sbit LP   =P2^1;//行同步
 sbit SCP  =P2^0;//串行时钟
 
 void wordsend(unsigned char dat)//字节发送
 {
 unsigned char i;
 for(i=0;i++;i<8)
 {
 if((dat&128)){DATA=1;}
 else              {DATA=0;}
 SCP=1;SCP=0;
 dat=dat<<1;
 }
 }
 
 /*------------------------------------*/
 
 main()
 {
 unsigned char row_num=30;//定义列30*8位=240列
 unsigned char column_num=64;//定义行
 FLM=0;LP=0;DATA=0;SCP=0;//控制端口置零
 while(1){
 while(column_num--)//64行
 {
 while(row_num--){wordsend(8);}//写入B00001000,240列
 LP=1;LP=0;//列输入240次,行同步
 row_num=30;
 }
 FLM=1;FLM=0;写入整屏,帧同步
 column_num=64;
 }
 }
 我对时序的理解是:写入单行240位数据,行同步一次,写完64行,帧同步一次。不知是否正确。
 加入延时程序,可以看到类似清屏的效果,即一行一行向下清屏,最后整屏空白,是不是列数据没有写入?
 望熟悉的师傅解惑!不胜感激!
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册 
  |