教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

单片机的智能温控风扇的设计(7)

来源:网络收集 时间:2026-09-04
导读: } if(key_can == 3) { } dis_smg[0] = smg_du[t_low % 10]; //取小数显示 if(flag_lj_3_en == 0) t_low -- ; //按键按下未松开自动减三次 if(t_low >= t_high) t_low = t_high - 1; else t_low -= 10; //按键按下未

}

if(key_can == 3) { }

dis_smg[0] = smg_du[t_low % 10];

//取小数显示

if(flag_lj_3_en == 0)

t_low -- ;

//按键按下未松开自动减三次

if(t_low >= t_high)

t_low = t_high - 1;

else

t_low -= 10;

//按键按下未松开自动加三次之后每次自动加10

if(t_low <= 10)

t_low = 10;

dis_smg[1] = smg_du[t_low / 10 % 10] & 0xdf; //取个位显示 dis_smg[2] = smg_du[t_low / 100 % 10] ; dis_smg[3] = 0x3D;

//L

//取十位显示

} }

/****************风扇控制函数***************/ void fengshan_kz() {

// static uchar value;

if(temperature >= t_high) //风扇全开 {

TR1 = 1; pwm = 0;

31

}

else if((temperature < t_high) && (temperature >= t_low)) 缓慢 { }

else if(temperature < t_low) {

TR1 = 0; pwm = 1;

//关闭风扇

f_pwm_l = 60; TR1 = 1;

//风扇

} }

/****************主函数***************/ void main() {

time_init(); //初始化定时器 temperature = read_temp();

//先读出温度的值

init_eeprom(); //开始初始化保存的数据 delay_1ms(650);

//先读出温度的值

temperature = read_temp();

dis_smg[0] = smg_du[temperature % 10]; //取温度的小数显示

dis_smg[1] = smg_du[temperature / 10 % 10] & 0xdf; //取温度的个位显示 dis_smg[2] = smg_du[temperature / 100 % 10] ; //取温度的十位显示 f_pwm_l = 50;

32

while(1) {

//按键程序

key();

if(key_can < 10) { }

if(flag_300ms == 1) //300ms 处理一次温度程序 {

flag_300ms = 0;

temperature = read_temp(); //先读出温度的值 if(menu_1 == 0) {

smg_i = 3;

dis_smg[0] = smg_du[temperature % 10]; //取温度的小数显示 dis_smg[1] = smg_du[temperature / 10 % 10] & 0xdf; //取温度的key_with();

//设置报警温度

个位显示 位显示 } }

/*************定时器0中断服务程序***************/ void time0_int() interrupt 1 {

dis_smg[2] = smg_du[temperature / 100 % 10] ; //取温度的十

}

}

fengshan_kz(); //风扇控制函数

33

static uchar value; TH0 = 0xf8;

TL0 = 0x30; //2ms display(); value++; if(value >= 150) { }

if(flag_lj_en == 1) //按下按键使能 { } }

key_time ++;

if(key_time >= 250) //500ms { }

key_time = 0;

key_500ms = 1; //500ms key_value ++; if(key_value > 3) {

key_value = 10;

flag_lj_3_en = 1; //3次后1.5秒连加大些

value = 0; flag_300ms = 1;

//数码管显示函数

//定时2ms中断一次

}

34

/*******************定时器***********************/

void Timer1() interrupt 3 //调用定时器1 1

用做单片机模拟

PWM 调节

{

static uchar value_l;

TH1=0xfe; // 定时10ms中断一次 TL1=0x0c; //500us if(pwm==1) { value_l+=3;

if(value_l > f_pwm_l) //高电平 {

value_l=0;

if(f_pwm_l != 0)

pwm=0;

}

} else

{ value_l+=3;

if(value_l > 100 - f_pwm_l)

// { value_l=0; pwm=1;

}

}

35

低电平

}

36

…… 此处隐藏:163字,全部文档内容请下载后查看。喜欢就下载吧 ……
单片机的智能温控风扇的设计(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/436025.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)