|
发表于 2025-1-15 21:29:22
|
显示全部楼层
我最近也在使用这款单片机做LCD断码屏项目,有个问题请教一下,LCD显示时的死区时间长度是什么意思,长和短有什么区别。还有我调试出来,正面视角看都没有问题,稍微侧面偏一点看,就会发现一些本该不亮的段,有隐约被点亮的效果,我唤作残影。我把电压调低的话,侧面视角看残影会消失,但是正面看的话会变暗。不知道是屏幕本身问题,还是哪里配置问题。单片机是5V通过一个二极管供电,电压约4.8V,11.0592MHZ内部IRC, 屏是3V的。下面是LCD初始化代码
void LCD_initial(void) /*LCD_initial*/
{
unsigned char vx_vol;
P_SW2 |= 0x80; // SFR enable
ADC_CONTR = 0x80; //open ADC voltage
ADCTIM = 0x3f; //0011 1111
ADCCFG = 0x0f; //0000 1111
delay_ms(5);
ADC_CONTR = 0xcf; //start ADC ch15 interal 1.19V
_nop_();
_nop_();
while (!(ADC_CONTR & 0x20));
ADC_CONTR &= ~0x20;
vx_vol= ADC_RES;
ADC_CONTR = 0x00; //close ADC
LCDCFG = (vx_vol*375/16/119-13)& 0x07; //根据ADC的电压来配置3V液晶的电压参数
DBLEN = 0x07;
COMLENH = 0x00;
COMLENM = 0x61;
COMLENL = 0xa5;
BLINKRATE = 60; // ÉÁ˸ÂÊÅäÖüĴæÆ÷, LCDÉÁ˸ÂÊ = LCDË¢ÐÂÂÊ / BLINKRATE[7:0] Hz
COMON = 0x0f;
SEGON1 = 0x00;
SEGON2 = 0x00;
SEGON3 = 0Xff; // SEGÏßʹÄܼĴæÆ÷3, SEG23~SEG16
SEGON4 = 0xff; // SEGÏßʹÄܼĴæÆ÷4, SEG31~SEG24
SEGON5 = 0x00;
C0SEGV2 = 0x01;
C0SEGV3 = 0x00;
C1SEGV2 = 0x01;
C1SEGV3 = 0x00;
C2SEGV2 = 0x08;
C2SEGV3 = 0x40;
C3SEGV2 = 0x09;
C3SEGV3 = 0x00;
LCDCR = 0x01; // LCD
}
|
-
-
从下面视角看
|