原创 ST7565黑白液晶使用注意

2009-7-30 17:19 2380 1 1 分类: MCU/ 嵌入式

   首先,lcd要使用一般必须外部接电容构成正倍压电路,有了pump才能显示.ST7565的datasheet上说明的4倍压电路.在用电容时遇到了问题,一般我们调试的时候喜欢焊接直插件,而电容一般有极性.很多ST7565P核心的lcd在管脚标识的时候,正负号与电容的正负正好相反,所以出现调试的时候倍压不能的情况,一般显示器的厂商会提醒全部使用无极性电容,一般直接用产品化后设定的贴片电容来焊接即可,不需要刻意买一些直插的.


    一般屏幕的初始化和显示测试程序可以向lcd提供商索要,他们一般有普通51的测试程序.有了初始化的demo做起来省很多时间.这里还要补充一点,如果屏幕初始化了不显示,各种电气信号又都测量出正常,不要着急,调整一下lcd的显示亮度.我一开始就是因为lcd的显示对比度设置不妥当,导致全是黑屏.对于ST7565P,微调指令是0x81 0xmm (mm=00--3f) 粗调指令是0x2n (n=0--7),我使用不同厂家的屏幕,发现显示对比度设置后,效果差距较大,一个设置0x10 0x26正好,一个需要设置0x0a 0x27才可以,第一个屏幕使用第二条设置会几乎黑屏.


初始化:



  1. /*===================================================================  
  2. 函数功能:初始化ST7565,结果全屏点亮  
  3. 输入参数:无  
  4. 输出参数:无  
  5. 函数说明:  
  6. ======================================================================*/   
  7. void InitST7565(void)   
  8. {                   
  9.         WriteCom(0xaf);                 //打开LCD显示 AE--off   AF--on     
  10.         //WriteCom(0xa2);                 //设置LCD电压偏置 a2--1/9,a3---1/7    
  11.         WriteCom(0xa1);                 //设置显示数据区,a0正常,a1 COM与SEG互换    
  12.        // WriteCom(0xc7);                 //选择COM扫描方向,《C7为正常方向,》C8为反向方向    
  13.         WriteCom(0x2f);                 //选择内部电源供给模式    
  14.         //WriteCom(0xa6);               //设置显示模式(a6正,a7反)    
  15.         //WriteCom(0x81);                 //设置V0电压寄存器    
  16.         //WriteCom(0x20);                 // 调节显示颜色    
  17.         WriteCom(0x20);                 //选择内部电阻调节比    
  18.    
  19.         //WriteCom(0xe0);    
  20.         WriteCom(0xAd);                 //Static indicaor ON(AD)/OFF(AC)    
  21.         WriteCom(0x01);                 //Static indicator register set     
  22.            
  23.         //WriteCom(0xa5);                 //全屏点亮    
  24.          
  25. }   
  26. /*===================================================================  
  27. 函数功能:向ST7565写命令  
  28. 输入参数:命令字  
  29. 输出参数:无  
  30. 函数说明:  
  31. ======================================================================*/   
  32. void WriteCom(uchar ComData)   
  33. {   
  34.         A0 = 0;       //写命令    
  35.         MRE = 1;   
  36.         delay_us(50);   
  37.         DataPort = ComData;   
  38.         MWE = 0;      //写有效    
  39.         delay_ms(10);   
  40.         MWE = 1;   
  41.      
  42. }   
  43.    
  44.    
  45. /*===================================================================  
  46. 函数功能:向ST7565写数据  
  47. 输入参数:数据  
  48. 输出参数:无  
  49. 函数说明:  
  50. ======================================================================*/   
  51. void WriteData(uchar Data)   
  52. {   
  53.         A0 = 1;         //写数据    
  54.         MRE = 1;   
  55.         MWE = 0;      //写有效    
  56.         DataPort = Data;    
  57.         MWE = 1;          
  58. }   
  59.    
广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
412922521_325344472 2009-11-15 00:44
通用按键消抖函数 -- 数据与过程分离
AUTO:  nicksean 不务正业          项目里经常处理按键消抖, 本来这个消抖的过程是与具体按下的键无关的, 可以前的代码总是在消抖的同时处理具体的按键值, 再加上长按 短按 组合...
412922521_325344472 2009-11-13 13:16
液晶ST7920串行显示
液晶显示128*64以7920为主控制器,采用3线制,比较经济简单。代码如下.....
412922521_325344472 2009-11-13 13:11
DS18B20 C51完整版
使用WINBOND W78C516单片机,11.0592MHZ晶振,用共阳LED数码管P0口输出段码,P1口扫描/*******************************************...
412922521_325344472 2009-11-12 13:19
74HC164驱动数码管
          74HC164是串行输入,并行输出接口器件,可用在单向的并行输出/并行地址锁存等. 74HC164因为价格便宜,容易使用特别适合使用在在需要用到数码管显示IO口又比较紧张的电子产品...
412922521_325344472 2009-11-10 20:13
at24c512多字节读写函数 欢迎测试
刚写的at24c512多字节读写函数,欢迎测试。/********************************************************************函数功能:EE...
412922521_325344472 2009-11-10 19:59
旋转编码器
    很好的旋转编码器的读码程序,设旋转编码器的输出波形如下                 ______        ______        ______        ______正转时:...
广告
我要评论
0
1
广告
关闭 热点推荐上一条 /3 下一条