原理图如下:
源代码如下:
#include #include #include"define.h" #include"delay.h" #include"LCD1602.h" #include"DS18B20.h" #include"HL_alarm.h" sbit KEY3 = P3^5; //定义开始/停止 void zhuan(); unsigned char timer1; //***********************************************************************/ void main() { if(KEY3==0) //第一次检测是否有键按下 { PWM=0;MA=~MA;MB=~MB; delay(1); return; } else {LCD_init(); set_alarm_HL(); DS_read_temperature(); TMOD=0x01; TH0=-50000/256; TL0=-50000%256; EA=1; ET0=1; TR0=1; while(1) {} } } void timer0() interrupt 1 { if(KEY3==0) //第一次检测是否有键按下 { TH0=-50000/256; TL0=-50000%256; DS_read_temperature();//读取温度 if((HI_alarm==1)||(LO_alarm==1)) alarm(); if(DS_OK==0) return;//如果读取错误,返回从新再读 display_temperature(); buffer_line1[10]='S';//*********修改成STOP buffer_line1[11]='T'; buffer_line1[12]='O'; buffer_line1[13]='P'; PWM=0;MA=~MA;MB=~MB; delay(1); return; } else { TH0=-50000/256; TL0=-50000%256; DS_read_temperature();//读取温度 if((HI_alarm==1)||(LO_alarm==1)) alarm(); if(DS_OK==0) return;//如果读取失败,返回重新再读 display_temperature(); if(sign_temp<=50&&sign_temp>=15) { MA=1; MB=0; if(sign_temp<25) //等于45或65时停止转动,占空比0 { buffer_line1[10]='S';//*********修改成STOP buffer_line1[11]='T'; buffer_line1[12]='O'; buffer_line1[13]='P'; PWM=0; delay(1); return; } buffer_line1[10]='R';//*********修改成RUN buffer_line1[11]='U'; buffer_line1[12]='N'; buffer_line1[13]=' '; zhuan(); } else { MA=0; MB=0; } } } void zhuan() { TMOD|= 0x10; //设置定时计数器工作方式1为定时器 TH1 = 0xFE; TL1 = 0x0C; //--定时器赋初始值,12MHZ下定时0.5ms--// ET1 = 1; //开启定时器1中断 EA = 1; TR1 = 1; //开启定时器 if(timer1>50) //PWM周期为50*0.5ms { timer1=0; } if(timer1 < sign_temp) //改变sign_temp这个值可以改变直流电机的速度 { PWM=1; } else { PWM=0; } } void Time1(void) interrupt 3 //3为定时器1的中断号 1 定时器0的中断器 0外部中断 1 2外部中断 2 4串口中断 { TH1 = 0xFE; //重新赋初值 TL1 = 0x0C; timer1++; }
上一篇:单片机红外解码,短按开关灯,长按调光,数码管显示键值
下一篇:单片机红外遥控风扇源程序
推荐阅读最新更新时间:2024-11-06 09:34
设计资源 培训 开发板 精华推荐
- LTM8052AEY 的典型应用,用于调节 Peltier 器件的正负电压和电流
- 使用 ROHM Semiconductor 的 BD5346 的参考设计
- 使用 Infineon Technologies AG 的 IR3220 的参考设计
- Type-C接口USB转串口(CH340B)
- AN-REF-35W 适配器、35W、19V 适配器参考板,带 ICE2QS03G、IPD60R600P6
- 使用 RECOM Power GmbH 的 RSO-243.3DZ 的参考设计
- 使用 ROHM Semiconductor 的 BD45471 的参考设计
- LT1172IN8、5V/1.25A 升压转换器的典型应用
- VIP 0-M07-ADIS板:连接到SPC560B-DIS发现板,基于M0-7设备来驱动汽车前灯
- MC34072DR2G 低压快速数模转换器的典型应用