基于STC89c52RC单片机的智能风扇设计 下载本文

光电信息协会电子设计竞赛 钟培文小组

{

change_speed(); change_mode(); }

void stop(void) {

p=0;PWM_ON=0; run_flag=0; r_flag=0; Init_all(); i=0,j=0,a=0; mode2_flag=0; mode3_flag=0; timing_flag=0; tim=0; timing_run=0; timing_on=0;

write_string(11,1,\ \}

void change_speed(void) { switch(i) {

case 1: PWM_ON=2;led(1,0);break; case 2: PWM_ON=4;led(2,0);break; case 3: PWM_ON=8;led(3,0);break; } }

//模式切换

//速度切换

//停止系统

21

光电信息协会电子设计竞赛 钟培文小组

void change_mode(void) { switch(j) {

case 1: led(0,1);fan_normal();break; case 2: led(0,2);fan_natural();break; case 3: led(0,3);fan_sleep();break; } }

//.....................................led控制函数 void led(uchar o,uchar p) { switch(o) {

case 0: break;

case 1: led1=0;led2=1;led3=1;break; case 2: led1=1;led2=0;led3=1;break; case 3: led1=1;led2=1;led3=0;break; case 4: led1=1;led2=1;led3=1;break; } switch(p) {

case 0: break;

case 1: led4=0;led5=1;led6=1;break; case 2: led4=1;led5=0;led6=1;break; case 3: led4=1;led5=1;led6=0;break; case 4: led4=1;led5=1;led6=1;break; } }

/* 模式函数

*/

22

光电信息协会电子设计竞赛 钟培文小组

void fan_normal(void) { p=1; }

void fan_natural(void) {

if(mode2_flag==0) { time1=0; p=1; mode2_flag=1; }

if(time1==4)

{ p=0; } if(time1==12) { p=1; time1=0; } }

void fan_sleep(void) {

if(mode3_flag==0)

{ i=1; time1=0; p=1;

mode3_flag=1; }

23

光电信息协会电子设计竞赛 钟培文小组

if(time1==8) { p=0; }

if(time1==16) { p=1; time1=0; } }

/* 模式函数 void Delayus(uint t) { while(--t); }

void Delayms(uint n) {

while(--n) {

Delayus(245); Delayus(245); } }

*/

/*.........................初始化定时器 ................................ */ void Init_timer(void) {

TMOD=0x11; TH1=0X00; TL1=0X00;

TH0=(65536-50000)/256; TL0=(65536-50000)%6;

24