2019-03-23 22:21发布
zzbaizhi 发表于 2014-9-22 08:28 那HT1621上电初始化后正常的话应该显示什么呢
bobde163 发表于 2014-9-22 09:04 上电之后应该是什么都不显示,初始化是选择偏压选项,再使能系统振荡器,再打开显示,这三条基本的命令就 ...
zzbaizhi 发表于 2014-9-22 10:12 向其他人求证过了,初始化发完LCDON命令后,液晶上应该是所有段都显示,这样应该能够说明“写”这个子函 ...
bobde163 发表于 2014-9-22 13:15 那你给它发送段数据,看一看相应的段会不会显示
最多设置5个标签!
上电之后应该是什么都不显示,初始化是选择偏压选项,再使能系统振荡器,再打开显示,这三条基本的命令就可以了
最后LCDON后也是什么都不显示吗?
那你给它发送段数据,看一看相应的段会不会显示
唉,写数据不行
主频:20M/8
void main(void)
{ WDTCTL = WDTPW+WDTHOLD; //关闭看门狗定时器
P8DIR |=BIT5+BIT6+BIT7;
P8OUT |=BIT5+BIT6+BIT7;//CS,WR,DATA置高
Init_Clk();
delay_ms(10);
Ht1621WrCmd(BIAS); //1/3
Ht1621WrCmd(RC256); //使用内部振荡器
Ht1621WrCmd(SYSDIS);
Ht1621WrCmd(WDTDIS);
Ht1621WrCmd(SYSEN);
Ht1621WrCmd(LCDON);
//Ht1621WrCmd(LCDOFF);
delay_ms(20);
//Ht1621WrOneData(1,0);
display(A);//清屏
_NOP();
}
void Ht1621Wr_Data(uchar Data,uchar cnt)
{
uchar i;
for (i=0;i<cnt;i++)
{
WR_0;
_NOP();
_NOP();
_NOP();
// _NOP();
if((Data&0x80)==0x80)
DATA_1;
else DATA_0;
//_NOP();
WR_1;
_NOP();
_NOP();
_NOP();
//_NOP();
Data<<=1;
}
}
void display(uchar Data0)
{
uchar i;
uchar Addr=0;
CS_0;
_NOP();
Ht1621Wr_Data(0xa0,3); //写入数据标志101
Ht1621Wr_Data(Addr<<2,6); //写入地址数据
for (i=0;i<16;i++)
{ //Ht1621Wr_Data(Addr<<=2,6); //写入地址数据
Ht1621Wr_Data(Data0,8); //写入数据
}
CS_1;
}
一周热门 更多>