光电信息协会电子设计竞赛 钟培文小组
{
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