单片机智能房间设计
离的nRF24l01p,现在正在路上呢,我会尽把无线模块部分的程序整合到智能房间中去的。2012年7月16日
今天把PLC上模拟定时器功能给编出来了。
PLC上有T0到Tn个定时器,在单片编程中有时也要用到好多定时器到延时或别的什么的。我一直想用C语言实现这样的
功能。今天给做出来了。并在实验板上实验通过了。现在发出来与爱好单片机有朋友们分享。
#include //加一个定时器就要加一个记录当前时间的变量 jilu //和Tnbz标致 /****************************/ /***********************************/ if(!t1bz) //改变延时时间 if(!t2bz) if(!t4bz) t5bz=0; 自己感觉以上程序比较绕人,费脑子。有兴趣有朋友看的时候一定要有耐心哦。 2012年7月22日 智能房间的硬件工作,从上个星期天正式开始了。这次为了确保能稳定可靠的工作,我尽量的避免了用细如牛毛的细铜丝作跳线。下面的图片是进展情况。 智能房间硬件进展: 2012年8月19日 昨天把传感器输入部分给做了一些。 用的是LM339 暂时接了3个传感器,两个光敏电阻,一个温度电阻,剩下的1/4作备份。
#define uint unsigned int
#define uchar unsigned char
//uchar code SEG87[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar jishu;
uint sec;//秒变量,可计大约18小时,
uint jilu1,jilu2,jilu3,jilu4,jilu5;
bit t1bz,t2bz,t3bz,t4bz,t5bz;
sbit D1=P3^3;//定义按键输入
sbit D2=P3^4;
sbit D3=P3^5;
sbit D4=P3^2;
void delay(uint k)
{
uint data i,j;
for(i=0;i
{;}}
}
/***********************************/
void timer0(void) interrupt 1//用于计时
{
TH0=-(35000/256);
TL0=-(40000%256);
jishu++;
if(jishu==20)
sec++;//秒变量尚未考虑sec溢出情况
}
/***********************************/
void main(void)
{
TH0=-(50000/256);
TL0=-(50000%256);
ET0=1;
EA=1;
TR0=1;
sec=3600;
while(1)
{
//*****虚拟定时器1******
{if(!D1)
{ delay(20);
if(!D1)
{jilu1=sec;
t1bz=1;
}
}
}
if(sec-jilu1==2)//这里的 2 为延时时间,改就此值可
{P2=0xef;
t1bz=0;
}
//*******************************
{if(!D2)
{ delay(20);
if(!D2)
{jilu2=sec;
t2bz=1;
}
}
}
if(sec-jilu2==4)
{P2=0xdf;
t2bz=0;
}
//*********************************
if(!t3bz)
{if(!D3)
{ delay(20);
if(!D3)
{jilu3=sec;
t3bz=1;
}
}
}
if(sec-jilu3==6)
{P2=0xbf;
t3bz=0;
}
//*****下面是用虚拟定时器4,5实现P2^0位LED,闪烁。
{ jilu5=0;
jilu4=sec;
t4bz=1;
}
if(sec-jilu4==1)
{
P2|=0x01;
t5bz=1;
}
//******************************
if(t5bz)
{
jilu4=0;
jilu5=sec;
}
if(sec-jilu5==1)
{P2&=0xfe;
t4bz=0;
}
}
}
2012年8月5日
单片机智能房 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)