1. 怎么实现单片机控制温度要使温度保持在一定温度范围~~~
闭环-pid
估计用得到pwm
什么ad了那是必须的了
很墨迹的
2. 单片机温度控制系统
这个不难 有很多成熟的方案.至于pid ,这个做好了升册不太容易.不过.对毕业设计来说敬核.达到一般的要求就可亮笑掘以了
3. 单片机选型 温度范围:有没有能耐100°高温以上的51单片机
有的。
Atmel有军用型的单片机,在电子市场能买到的,型号AT89C52-MI,这在100度工作绝对没问题。
例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
(3)单片机温度限制扩展阅读:
总线型/非总线型这是按单片机是否提供并行总线来区分的。
总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型/家电型这是按照单片机大致应用的领域进行区分的。
一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。
例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
4. 求单片机温度控制设计
这个是单片机在工业电气上到应举中前用,注意抗干扰和可靠性设计。
0-5v是工业的常见模拟量,此外还有0-10v,4-20ma等
温度探头建议使正清用铂电阻pt100,ad读取电压,单片机换算出温度值。再把读到的ad转换值输出到da上,放大作为模拟量输出。
至于泵的控制,一般工业培宴使用pid变频控制的。可能成本上会很高。
5. 为什么单片机水的温度控制在75°
如果你指的是热水器里面的单片机,那就是国家标准规定热水器的最高温度不能超过75度。
6. 51单片机工作温度
AT89C51-24PI,中24表示他的工返伏蠢作频率,P为封装形式(厅纤DIP),I为工作环境(工业)。 单片机工作温度:商业级:0℃-+70℃ 工业级:-40℃-+85℃ 汽车级:-40℃-+125℃ 军漏陪用级:-55℃-+150℃
7. 单片机工作的温度范围是多少就是多少温度就会工作不正常,甚至烧毁
一般是30到80
8. 单片机退火炉的温度范围
作为 8031 单片机的采样值,与最初设定的温度值(600℃—900℃)进行比较来确定相 应的输出,来表示不同范围内的温度值,进族大伏一步采取措施来控制温度。 若低于 600℃(温度下限值),则亮低温报警灯(绿色),报警器发出长音报 警单片机控制加热电阻进行加热。若温度高于 900℃(温度上限值),则亮高温报 警灯(黄色),报警器发出短音报警并兆携且风机开始旋转降温。若温度值处于正仿氏常 状态(600℃~900℃),则既不亮灯,也不响报警器。
9. 单片机控制温度
#define KP 3.0 //比例系数
#define KI 0.3 //积分系数
#define KD 200.0 //微分系数
#define KC 0.1 //维持功率系数
#define T_c 16 //采样周期(单位:秒)
sbit pid_port=P3^5; /伏余/控制输出端口
float T_target=0; //目标温度
float T_real=0; //当前温度
float PWM=0; //输出控制量
bit read_AD_enable=0; //PID运算允许标志位
//T0定时器初始化
void Timer0_Init()
{
TMOD|=0x01;
TF0 =0;
TR0 =1;
IE |=0x02;
}
//读取AD 转换值并刻度
void read_AD(void)
{
int delta_ad;
unsigned char ad[3];
ad[0]=ADRESH;
ad[1]=ADRESM;
ad[2]=ADRESL;
delta_ad=ad[0]*0x100+ad[1]-0x23cb;
if(delta_ad<=0)delta_ad=0;
T_real=(float)delta_ad/70;
}
//*--------PID运算函数
void pid(void)
{
static float diff[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
static float sum_diff=0; //Σ(diff)
static int curr_=0;
float p_out,i_out,d_out,temp;
float pwm_0;
temp=diff[curr_];
if(curr_+1>=20)curr_=0;
else curr_+=1;
sum_diff-=diff[curr_];
diff[curr_]=T_target-T_real;
sum_diff+=diff[curr_];
p_out=KP*diff[curr_]; //比例项输出
i_out=KI*sum_diff; //积分项输出
d_out=KD*(diff[curr_]-temp); //微分项输出
pwm_0=KC*T_target; //维持功率项
if(i_out>100)i_out=100; //积分分离
if(i_out<-100)i_out=-100;
PWM=p_out+i_out+d_out+pwm_0; //总输出量
if(PWM<0)PWM=0;
else if(PWM>=100)PWM=100;
}
// 输出函数
void PWM_OUT(float PWM)
{
static unsigned char t=1; //t=(1--100)周期为4秒
unsigned char limit; //pid_value输出百分比
limit=(unsigned char)PWM;
if(t<=limit)pid_port=0; //加热
else pid_port=1; //停止加热
t++;
if(t>100)t=1;
}
/**************************************************/
//T0中断服务程序
void Timer0_ISR() interrupt 1 using 1
{
static unsigned int x=0;
TH0=(28672)>>8; // 11.0592MHz,interval 40mS
TL0=(28672+20)&0xff; // +20 compensate
TF0=0;
if((x++)>(T_c*25))
{
x=0;
read_AD_enable=1;
}
PWM_OUT(PWM); //可控硅输出
}
/****************************************************
主程序拍厅巧
----------------------------------------------------*/
void main (void)
{
//-------程序初始化(略)
while (1)
{
if(read_AD_enable==1)
{
read_AD_enable=0;
read_AD();
pid();
}
}
}
大致的参考程序就是这样了 具体的话需要袭键你自己看了
10. 单片机为什么有环境温度限制
按理说单片机就是一些芯片、金属板、导线的组合,主要是通电使用,电和温度也没关系啊电和温度有关系有很大关系材料的导电性能在不同温度下会不同最极端情况比如接近0K的时候会有着名的超导现象。另外温度过高导线的绝缘皮什么的很可能会被破坏或者芯片本身的结构也会被破坏我确实口气有问题,在这里道歉,原句编辑掉好了。
满意请采纳