发布时间:2024-05-14 11:01
由于涉及到的外设较少,工程也较简单,主要逻辑代码(main函数)如下。
main.c
#include \"sys.h\"
u16 smgtime=0;
u8 keytime=0;
u8 s=0;
u16 sytime=0;
u16 time=0;
u8 cmode=1;//工作模式 1:睡眠风 2:自然风 3:常风
u8 UIC=1;//界面选择
u8 DX=0;
u8 temp=0;//读取到的温度数据
u8 PwmTime=0;//计时
u8 HPwm=0;
u8 PWMFLAG=0;
void PwmSetting(){
if(sytime==0){
P34=0;
return ;
}
if(cmode==1) HPwm=2;
else if(cmode==2) HPwm=3;
else if(cmode==3)HPwm=7;
if(HPwm>PwmTime&&PWMFLAG==1){
P34=1;
PWMFLAG=2;
}
else if(HPwm<=PwmTime&&PWMFLAG==2){
P34=0;
PWMFLAG=3;
}
if(PwmTime==10){
PwmTime=0;
PWMFLAG=1;
}
}
void LedSetting(){
u8 leds=0;
if(!sytime)leds=8;
else if(cmode==1)leds=0;
else if(cmode==2)leds=1;
else if(cmode==3) leds=2;
P0=0xff;
P2=P2&0x1f|0x80;
if(leds!=8)
P0=~(1<7)s=0;
if(sytime!=0){
time++;
if(time==1000){
time=0;
sytime--;
}
}
}
void time1() interrupt 3{
if(sytime!=0){
PwmTime++;
}
}
附上百度网盘链接提供参考:
链接:https://pan.baidu.com/s/1EksLtBSP15IY9bsw1zK80w
提取码:yzh1