欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

ht1621b 不能显示出来呢,该如何解决

更新时间: 2014-01-05 03:15:23 责任编辑: Author_N1

 

HT1621B 不能显示出来呢,
以下是子程序:
不能显示出段,也不能关闭
#define BIAS 0x52  
#define SYSEN 0x02 
#define LCDON 0x06 
#define LCDOFF 0x04

void SendBit_1621(uchar data2,uchar cnt)  //data的高cnt位写入HT1621,高位在前 

 uchar i; 
 for(i =0; i <cnt; i ++) 
 { 
  if((data2&0x80)==0) dat=0; 
  else dat=1; 
  wr=0; 
  delay(10);
  wr=1; 
  data2<<=1; 
 } 

void SendDataBit_1621(uchar data2,uchar cnt) //data的低cnt位写入HT1621,低位在前 

 uchar i; 
 for(i =0; i <cnt; i ++) 
 { 
  if((data2&0x01)==0) dat=0; 
  else dat=1; 
  wr=0; 
  delay(10);
  wr=1; 
  data2>>=1; 
 } 

 
void SendCmd(uchar command) 
{
 cs=0; 
 SendBit_1621(0x80,4);  //写入标志位码”100”和9位command命令,由于 
 SendBit_1621(command,8);   //没有使有到更改时钟输出等命令,为了编程方便 
 cs=1;     //直接将command的最高位写”0” 

 
void Write_1621(uchar addr,uchar data2) 

 cs=0; 
 SendBit_1621(0xa0,3);  //写入标志位码”101” 
 SendBit_1621(addr,6);   //写入addr的高6位 
 SendDataBit_1621(data2,4);  //写入data的低4位 
 cs=1; 

 
void WriteAll_1621(uchar addr,uchar *p,uchar cnt) 

 uchar i; 
 cs=0; 
 SendBit_1621(0xa0,3);   //写入标志位码”101” 
 SendBit_1621(addr,6);   //写入addr的高6位 
 for(i =0; i <cnt; i ++,p++)  //连续写入数据 
 { 
  SendDataBit_1621(*p,8); 
 } 
 cs=1; 


SendCmd(BIAS);  //设置偏压和工作周期 
 SendCmd(SYSEN);  //打开系统振荡器 
 SendCmd(LCDON);  //打开LCD偏压发生器 
  WriteAll_1621(0,a,5);  //0:(起始地址)高6位有效, 
     //a:(写入数据的起始地址)8位都有效, 
     //5:为写入的字节数。连续写入”123456789a” 
 SendCmd(LCDOFF);  //关闭LCD显示

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:15:23
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20206/
本文WWW.DOC100.NET DOC100.NET版权所有。