新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2021-3-24
- 在线时间
- 4 小时
|
1金钱
大佬们,我现在在设计一个智能窗帘系统,可是我不知道怎么通过按钮切换自动模式和手动模式,然后设计手动按钮模式在while()里会影响温度的读取,两个相冲突。
按钮模块
main.c
while(1)
{
u8 i;
key=readkey1(0); //扫描按键
switch(key)
{
case 0: led2=0;readkey1(0);break; //按下K_UP按键 点亮D2指示灯
case 1: led2=1;readkey1(0);break; //按下K_DOWN按键 熄灭D2指示灯
case 2: led3=1;readkey1(0);break; //按下K_LEFT按键 点亮D3指示灯
case 3: led3=0;readkey1(0);break; //按下K_RIGHT按键 熄灭D3指示灯
}
printf("temperature: %d \r\n",key); //LED1状态取反
}
delay_ms(10);
}
u8 readkey1(u8 mode)
{
unsigned char i,j;
if(!K_UP)
{
for(i=0;i<10;i++)
for(j=0;j<120;j++);
if(!K_UP){
while(!K_UP){
};
n++;
n%=4;
}
}
return n;
温度模块
while(1)
{
u8 xd=60;
u8 wd=0;
u8 sd=0;
u8 i;
DHT11_Read_Data(&wd,&sd);
printf("temperature: %d \r\n",wd);
printf("humidity: %d %%\r\n",sd);
if(sd>xd){
led1=1;}
if(sd<xd){
led1=0;}
if(i%20==0)
{led2=!led2;
}
delay_ms(1000);
delay_ms(1000);
}
}
|
|