打印

又要请教大神问题了,关于LCD各个段亮度不一的问题

[复制链接]
4287|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
W_fantasy|  楼主 | 2017-11-22 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神,我是用MCU  I/O口做LCD驱动,发现在动态扫描驱动的时候各段位亮度明暗不一。
程序上,在要点亮某个段时,第一步是将seg位输出高,对应的com口输出低,其余com口置为输出且输出高。
第二步是关闭,将COM口置为输入,所有SEG位置为0.
电路图如下

相关帖子

沙发
W_fantasy|  楼主 | 2017-11-22 10:35 | 只看该作者
电路图片上传不了
反正电路也简单,就是COM口接两个100K分5V电压的中间点,其余SEG口都是直接接MCU的I/O口

使用特权

评论回复
板凳
lulunlun| | 2017-11-22 17:09 | 只看该作者
估计Com或者Seg扫描的高低电平时间不一致

使用特权

评论回复
地板
eyuge2| | 2017-11-22 17:16 | 只看该作者
LCD还是LED?

使用特权

评论回复
5
xyq8888p| | 2017-11-22 17:16 | 只看该作者
LCD尺寸大小,太大近的和远的电阻不一样会有点,小尺寸的话不应当

使用特权

评论回复
6
xyq8888p| | 2017-11-22 17:18 | 只看该作者
你那个是黑白屏还是LED段码?

使用特权

评论回复
7
bearlinux| | 2017-11-22 17:51 | 只看该作者
IO口输出高低的程序,时间是否一致,或者有没有中断一类的。

使用特权

评论回复
8
chunyang| | 2017-11-22 18:34 | 只看该作者
注意占空比需要一致,这样亮度才能相当。

使用特权

评论回复
9
W_fantasy|  楼主 | 2017-11-22 19:01 | 只看该作者

是LCD

使用特权

评论回复
10
W_fantasy|  楼主 | 2017-11-22 19:01 | 只看该作者
xyq8888p 发表于 2017-11-22 17:18
你那个是黑白屏还是LED段码?

LCD,黑白屏

使用特权

评论回复
11
W_fantasy|  楼主 | 2017-11-22 19:05 | 只看该作者
xyq8888p 发表于 2017-11-22 17:18
你那个是黑白屏还是LED段码?

就是这样的,是段式LCD

液晶屏图3.jpg (240.96 KB )

液晶屏图3.jpg

使用特权

评论回复
12
W_fantasy|  楼主 | 2017-11-22 19:08 | 只看该作者
bearlinux 发表于 2017-11-22 17:51
IO口输出高低的程序,时间是否一致,或者有没有中断一类的。

程序里面是先打开相应的段位,然后延时500us,再关断所有段位(COM口置为输入),再延时500us,就这样循环执行

使用特权

评论回复
13
W_fantasy|  楼主 | 2017-11-22 19:12 | 只看该作者

这是我网上下载的图片,基本跟这个是一样的

网上荡LCD屏图片.jpg (31.37 KB )

网上荡LCD屏图片.jpg

使用特权

评论回复
14
W_fantasy|  楼主 | 2017-11-22 19:14 | 只看该作者
xyq8888p 发表于 2017-11-22 17:16
LCD尺寸大小,太大近的和远的电阻不一样会有点,小尺寸的话不应当

尺寸是14*30的,单位mm

使用特权

评论回复
15
dirtwillfly| | 2017-11-22 19:29 | 只看该作者
建议上传下程序

使用特权

评论回复
16
yzqok| | 2017-11-23 09:02 | 只看该作者
有可能是点亮每个点的程序扫描时序不一样,看看程序扫描频率是不是高了,速度高了就会出现完全点不亮的问题

使用特权

评论回复
17
W_fantasy|  楼主 | 2017-11-23 15:30 | 只看该作者

void lcd_display(void)
{
        switch(result_value)
        {
                case 0:
                {
                        _pa=0b01110111;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms
                }break;
                case 1:
                {
                        _pa=0b00010010;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms       
                }break;
                case 2:
                {
                        _pa=0b01101011;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;       
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms
                }break;
                case 3:
                {
                        _pa=0b01011011;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;       
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms       
                }break;
                case 4:
                {
                        _pa=0b00011110;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;       
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms       
                }break;
                case 5:
                {
                        _pa=0b01011101;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;       
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms       
                }break;
                case 6:
                {
                        _pa=0b01111101;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;       
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms       
                }break;
                case 7:
                {
                        _pa=0b00010011;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;       
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms       
                }break;
                case 8:
                {
                        _pa=0b01111111;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;       
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms
                }break;
                case 9:
                {
                        _pa=0b01011111;judge_digital_place();GCC_DELAY(1000); //正亮,延时5ms;       
                        _pa=0x00;_pcc=0x1f;GCC_DELAY(1000);        //关闭,延时5ms       
                }break;
                default:{;}                       
        }
       
}


使用特权

评论回复
18
ningling_21| | 2017-11-23 17:23 | 只看该作者
W_fantasy 发表于 2017-11-23 15:30
void lcd_display(void)
{
        switch(result_value)

对比度的问题

使用特权

评论回复
19
QuakeGod| | 2017-11-23 23:08 | 只看该作者
LCD应该用交流驱动啊,直流驱动很快就会极化损坏的。

使用特权

评论回复
20
caijie001| | 2017-11-24 07:27 | 只看该作者
不懂帮顶

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

83

帖子

0

粉丝