|
有c语言+protues仿真
单片机源程序:
- #include<reg52.h>
- #include<intrins.h>
- #include"define.h"
- #include"delay.h"
- #include"LCD1602.h"
- #include"DS18B20.h"
- #include"HL_alarm.h"
- void main()
- {
- 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
- {
- 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>=65) //温度大于等于65时设为65
- sign_temp=65;
- if(sign_temp<=0)
- sign_temp=0;
- if(sign_temp>=45)
- {
- MA=1;
- MB=0;
- if(sign_temp==45) //等于45或65时停止转动,占空比0
- {
- PWM=0;
- delay(30);
- return;
- }
- if(sign_temp==65)
- {
- PWM=1;
- delay(30);
- return;
- }
- PWM=1; //占空比0%~100%
- delay(sign_temp-45);
- PWM=0;
- delay(65-sign_temp);
- }
- else
- {
- if(sign_temp<=20)
- {
- MA=0;
- MB=1;
- if(sign_temp==20)
- {
- PWM=0;
- delay(30);
- return;
- }
- if(sign_temp==0)
- {
- PWM=1;
- delay(30);
- return;
- }
- PWM=1; //占空比0%~100%
- delay(20-sign_temp);
- PWM=0;
- delay(sign_temp);
- }
- else
- {
-
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
温度控制直流电动机转速protues仿真.zip
(62.38 KB, 下载次数: 63)
|
评分
-
查看全部评分
|