基于ZigBee和上位机的智能家居系统程序
-
-
我是勺小鱼
- LV2工程师
-
| 2017-05-16 10:42:51
- 浏览量 976
- 回复:2
#include
typedef unsigned char u8;
typedef unsigned int u16;
#define uint unsigned int
#define uchar unsigned char
u8 receivedate = 8;
uint k;
sbit led=P2^0;
sbit fengshan=P2^1;
sbit chuanglian=P2^2;
sbit beep=P1^5;
sbit yanwu=P2^3;
uchar code step_table={
0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};
uchar code step_table1={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};
void delay(uint t)
{
while(t--);
}
void xuanze()
{
uint j,i;
for (j=0; j<250; j++) //转1*n圈
{
for (i=0; i<8; i++) //一个周期转30度
{
if(k==1) P1=step_table1; //取数据
if(k==2) P1=step_table;
delay(100); //调节转速
}
}
}
void usartinit()
{
TMOD=0X20;
TH1=0XF3;
TL1=0XF3;
PCON=0X80;
TR1=1;
SCON=0X50;
ES=1;
EA=1;
}
void main()
{
usartinit();
while(1)
{
{
u8 I=receivedate;
switch(I)
{
case('0'):
led=0;
break;
case('1'):
led=1;
break;
case('2'):
while(1)
{
chuanglian=0;
k=1;
xuanze();
break;
}
case('3'):
chuanglian=1;
break;
case('4'):
fengshan=0;
break;
case('5'):
fengshan=1;
break;
}
//while函数,1代表真
if(yanwu==0)
{
beep=~beep; //电平的颠倒
delay(10); //时间决定振幅决定声音大小
}
}
}
}
void usart() interrupt 4
{
receivedate=SBUF;
RI=0;
SBUF=receivedate;
while(!TI);
TI=0;
}
2017.5月初完成
#include
typedef unsigned char u8;
typedef unsigned int u16;
#define uint unsigned int
#define uchar unsigned char
u8 receivedate = 8;
uint k;
sbit led=P2^0;
sbit fengshan=P2^1;
sbit chuanglian=P2^2;
sbit beep=P1^5;
sbit yanwu=P2^3;
uchar code step_table={
0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};
uchar code step_table1={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};
void delay(uint t)
{
while(t--);
}
void xuanze()
{
uint j,i;
for (j=0; j<250; j++) //转1*n圈
{
for (i=0; i<8; i++) //一个周期转30度
{
if(k==1) P1=step_table1; //取数据
if(k==2) P1=step_table;
delay(100); //调节转速
}
}
}
void usartinit()
{
TMOD=0X20;
TH1=0XF3;
TL1=0XF3;
PCON=0X80;
TR1=1;
SCON=0X50;
ES=1;
EA=1;
}
void main()
{
usartinit();
while(1)
{
{
u8 I=receivedate;
switch(I)
{
case('0'):
led=0;
break;
case('1'):
led=1;
break;
case('2'):
while(1)
{
chuanglian=0;
k=1;
xuanze();
break;
}
case('3'):
chuanglian=1;
break;
case('4'):
fengshan=0;
break;
case('5'):
fengshan=1;
break;
}
//while函数,1代表真
if(yanwu==0)
{
beep=~beep; //电平的颠倒
delay(10); //时间决定振幅决定声音大小
}
}
}
}
void usart() interrupt 4
{
receivedate=SBUF;
RI=0;
SBUF=receivedate;
while(!TI);
TI=0;
}
2017.5月初完成