基于stc89c52rc单片机的智能风扇设计毕业论文(编辑修改稿)内容摘要:

oid write_string(unsigned char x,unsigned char y,unsigned char *s)。 void write_char(unsigned char x,unsigned char y,unsigned char Data)。 void change_display2(void)。 void Ir_work(void)。 void Ircordpro(void)。 void beep()。 /* 函数声明区 */ void main (void) { Init_all()。 while(1) { key=KeyScan()。 if(irok) //如果接收好了进行红外处理 { Ircordpro()。 irok=0。 } if(irpro_ok) //如果处理好后进行工作处理,如按对应的按 //键后显示对应的数字等 { Ir_work()。 } switch(key) { case 1: run_flag=1。 beep()。 if(i==3)i=0。 i++。 start()。 break。 case 2: beep()。 if(j==3)j=0。 if(run_flag)++j。 mode2_flag=0。 mode3_flag=0。 break。 case 3: beep()。 if(run_flag)stop()。 break。 case 4: beep()。 if(run_flag)timing_flag++。 break。 case 5: beep()。 if(run_flag){timing_run=~timing_run。 timing_on=~timing_on。 } 光电信息协会电子设计竞赛 钟培文小组 20 } if(timing_flag) Timing()。 run()。 change_display2()。 if(time2==0 amp。 amp。 timing_on) stop()。 } } void Init_all(void) //全局初始化 { PWM_ON=0。 Init_timer()。 Init_1602()。 display2()。 led(4,4)。 //关闭所有 led } void start(void) { if(run_flag==1 amp。 amp。 r_flag==0) { PWM_ON=2。 fan_normal()。 j=1。 i=1。 led(0,1)。 r_flag=1。 p=1。 } } 光电信息协会电子设计竞赛 钟培文小组 21 void run(void) { 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,OFF )。 } //速度切换 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。 } 光电信息协会电子设计竞赛 钟培文小组 22 } //模式切换 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。 } } 光电信息协会电子设计竞赛 钟培文小组 23 /* 模式函数 */ 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。 光电信息协会电子设计竞赛 钟培文小组 24 mode3_flag=1。 } 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。 光电信息协会电子设计竞赛 钟培文小组 25 TH0=(6553650000)/256。 TL0=(6553650000)%256。 irtime++。 //外部中断 EA=1。 IT0 = 1。 //指定外部中断 0 下降沿触发, INT0 () EX0 = 1。 ET0=1。 ET1=1。 TR0=1。 TR1=1。 } /*外部中断 0 初始化*/。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。