热门关键词: 广州半宙实验室设备 出售二手洗涤设备 牧田工具 太阳能热水器设备 喷雾干燥设备 scsi硬盘测试工具 废水处理设备
  IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
相关专题
怎么能让LCD1602的背光自动延时关闭?
新闻出处:21ic 发布时间:2007-11-13
89cpu 发布于 2007-11-11 23:17:00
有个问题请教大家: 怎么能让LCD1602的背光自动延时关闭?

1.软件上通过定时器设定,检测按键动作有多久没有发生,然后关闭背光;

2.通过硬件连接;我记得在一本书上说过,可是忘记哪本书了,好像是通过电容充放电来控制的。

希望能做成像手机屏一样的效果:
在一个固定时间内,若没有按键动作,则会自动关闭背光;

谢谢!




89cpu 发布于 2007-11-12 10:24:00
ayb_ice,谢谢你的回复.

我想了好久,也没想到你的办法啊.
我总想用定时,但又可能影响到其它显示.
你所说的方法挺简洁的.我去试试了.



computer00 发布于 2007-11-12 11:09:00
如果有按键按下了,就给这个变量赋一个比较大的值.

当变量减到0时,就关闭LCD背光。


89cpu 发布于 2007-11-13 9:56:00
谢谢各位!

那么请问:
程序中有  JB K1,$      ;等待K1按下
这样的语句, 那怎么处理好呢?



gjg191 发布于 2007-11-13 10:38:00
这样等待别的事情很难干了.


89cpu 发布于 2007-11-13 11:49:00
那可以在等待的过程中减1?

*-*-*-*-*-*-*-*-*-*-*-*-*

JB K1,$    ;等待K1按下

可是此时它只认K1按下的动作, 别的什么都不理会的啊?



gjg191 发布于 2007-11-13 11:55:00
改下不就行了多加几句话
dd:
    这里加背光判断
    jb k1,dd




    


89cpu 发布于 2007-11-13 16:17:00
改下不就行了多加几句话
dd:
    这里加背光判断
    jb k1,dd

?




新好男孩 发布于 2007-11-13 16:31:00
/*---------------------------------------------------------*-
* 函数名称: SystemTick()
* 函数功能: 系统时标.任何任务执行时间都不能大于系统时标.
* 说     明: T0的低位计数器为自动加载.    (系统时标为15mS)     
* 当前版本: 1.0                 * 取代版本:
* 作     者: WSL                 * 原作者  :
* 完成日期: 2007-07-31             * 完成日期:
-*---------------------------------------------------------*/
void SystemTick(void) interrupt 1 using 1
{
    TH0 = PRELOAD_mS_H;
    KeyPad();
    
    
    // LCD背光控制,点亮15S
    if (++BLK_timer >= 40*15)
    {
        BLK_timer = 40*15;
        BLK_CNT = 0;    // 关背光
    }
    
    LcdDispEn++;    

    if ( TimerEn )
    {
        NewTime.millisecond++;
        if (NewTime.millisecond >= 40)
        {
            NewTime.millisecond = 0;    // 1s
            NewTime.second++;
            if (NewTime.second >= 60)
            {
                NewTime.second = 0;        // 1m
                NewTime.minuter++;

                BLK_CNT = 1;
                if (NewTime.minuter >= 60)
                {
                    NewTime.minuter = 0;    // 1h
                    NewTime.hour++;
                    if (NewTime.hour > 24)
                    {
                        NewTime.hour = 0; // one day
                    }
                }
            }
        }
    }
}


在程序的其它地方运行
BLK_timer = 0;    // 点背光
就可以了.


关闭】【打印
友情链接:
© 2007 电子设备网 网站地图