单片机/MCU论坛
直播中

周来通

11年用户 509经验值
擅长:EDA/IC设计 控制/MCU
私信 关注
[资料]

关于Nokia3310 液晶屏驱动的问题

本帖最后由 eehome 于 2013-1-5 09:52 编辑

void LCD_date_com(uchar date_com,uchar d_c)
{
uchar i;
LCD_DC=d_c;
for(i=0;i<8;i++)
{
  LCD_SCL=0;
  LCD_SDA=date_com&0x80;
  LCD_SCL=1;//正脉冲时采集数据
  delay(2);
  date_com<<=1;
}
}

上述是我写的向Nokia内写数据或命令的子函数,在51单片机上跑过没有问题,而在cc2430芯片上就是跑不起来,没有任何显示,仔细认真对比CC22430资料里的程序和我写的程序后发现,他只是把LCD_SDA=date_com&0x80;  此语句改成了  
if(Data & 0x80)
  {
      LCD_SDA = 1;
   }
   else LCD_SDA = 0;
其他的均一样,我也相应的改后,果然能在CC2430上正常运行,显示,在51单片机上也可以,我始终搞不明白,这两种方法实现的不一样吗???
还有就是该液晶偏执电压的配置问题?  电压5v的话,经计算得到Vop6-Vop0=32=0x20//0010 0000, 但是数据手册配置表偏置电压上的最高位固定为1啊,初始化液晶时 写0x20// 0010 0000  则正常,但是写成0xa0//1010 0000  就不对啊
期待大侠解决!!!  谢谢。。。







回帖(2)

lstcspring

2012-8-15 20:57:58
“LCD_SDA=date_com&0x80;”这个跟编译器有关系?要深入了解的话, 可以看一下生成的汇编程序!
举报

周来通

2012-8-15 22:29:54
引用: lstcspring 发表于 2012-8-15 20:57
“LCD_SDA=date_com&0x80;”这个跟编译器有关系?要深入了解的话, 可以看一下生成的汇编程序! ...

谢谢大侠!可能真的是这样吧!哎。。。搞了很久,就是不知道原因,郁闷死了,51用的是keil和cc2430 用的是IAR
举报

更多回帖

发帖
×
20
完善资料,
赚取积分