打印
[复制链接]
747|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
潇潇穆语|  楼主 | 2014-12-3 17:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
利用人体红外感应模块控制12864的背光程序怎么写呀?下面是我写的程序,为什么液晶屏总是亮一段时间后灭几秒,如此循环下去,按理说在一直有人的情况下液晶的背光不是一直亮的吗?
#include<reg52.h>//头文件声明
#include<intrins.h>
#include<stdio.h>
#include<stdlib.h>
#define uchar unsigned char
#define uint unsigned int

sbit beiguang = P2^7;      //LCD背光对应的是P2.7口  
sbit sensor = P2^6;       //将P2.6口设置成传感器的输入口   
                        
uchar flag1;         //定义全局变量,作为信号检测标志位
void delay(uint t)     
{  
    while(t--);
  }
void Test_Voltage(void)
{  
   if(sensor ==0)    // 若传感器的输入口为0   
    {     
      delay(10000);      //延时50毫秒信号确定  
        if(sensor == 0)      
          {   
            flag1 = 1;     //检测到信号         

           }  
        else           
           {   
             flag1 = 0;   
            }   
     }   
   else  
     {      
       flag1=0;
      }
  }  
void action(void)
{  
  if(flag1 ==1)  
  {   
     beiguang =0;  // LCD背光亮
   
   }  
  else  
   {   
    beiguang =1;  // LCD背光灭   
   }   
}
void main(void)
{  
    while(1)  
  {   
     Test_Voltage();      
     action();   

   }  
}
沙发
mintspring| | 2014-12-3 20:47 | 只看该作者
建议楼主是用中断,若出现下降沿将点亮屏幕,如果出现上升沿关闭背光。

使用特权

评论回复
板凳
gaoyang9992006| | 2014-12-4 11:28 | 只看该作者
这种简单的判断不建议用扫描,直接用中断比较好。

使用特权

评论回复
地板
tcchiu1| | 2014-12-4 13:48 | 只看该作者
你要看人体红外感应模块控制12864,它的信号。按照一般红外感应模块,它们只会打出pulse,告知有人经过或者有人移动。如果人停止不动,感应模块信号也会停止发送。回过头,你还是要分析人体红外感应模块控制12864信号,再决定如何写程序。

使用特权

评论回复
5
598330983| | 2014-12-4 22:04 | 只看该作者
有个好主意,你加个十秒钟延时

使用特权

评论回复
6
598330983| | 2014-12-4 22:05 | 只看该作者
在中断完成,然后延时,延时后检测状态

使用特权

评论回复
7
598330983| | 2014-12-4 22:06 | 只看该作者
定时进行中断,别搞错了

使用特权

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

本版积分规则

9

主题

11

帖子

0

粉丝