国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
基于51單片機的水溫PID控制恒溫系統Proteus仿真和C源程序
[打印本頁]
作者:
eng
時間:
2021-6-14 03:14
標題:
基于51單片機的水溫PID控制恒溫系統Proteus仿真和C源程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png
(115.49 KB)
下載附件
2021-6-14 03:12 上傳
部分C源碼,完整程序請下載附件
void lcdnumdisplays(uchar pos,float f) //(0.001-99999) 精度低 但方便數據更新
{
uchar i;
writecom(pos);
if(f>65535&&f<0.001) for(i=0;i<5;i++)writedata(0x23);//超出范圍 顯示#
else if(f==0){writedata(0x30);for(i=0;i<4;i++)writedata(0x20);}
else
{
if((uint)f/10000!=0)
{
writedata((uint)f/10000+0x30);
writedata((uint)f%10000/1000+0x30);
writedata((uint)f%1000/100+0x30);
writedata((uint)f%100/10+0x30);
writedata((uint)f%10+0x30);
}
else
{
if((uint)f/1000!=0)
{
writedata(0+0x30);
writedata((uint)f/1000+0x30);
writedata((uint)f%1000/100+0x30);
writedata((uint)f%100/10+0x30);
writedata((uint)f%10+0x30);
}
else
{
if((uint)f/100!=0)
{
writedata((uint)f/100+0x30);
writedata((uint)f%100/10+0x30);
writedata((uint)f%10+0x30);
writedata(0x2e);
writedata((uint)(f*10)%10+0x30);
}
else
{
if((uint)f/10!=0)
{
writedata((uint)f/10+0x30);
writedata((uint)f%10+0x30);
writedata(0x2e);
writedata((uint)(f*10)%10+0x30);
writedata((uint)(f*100)%10+0x30);
}
else
{
writedata((uint)f%10+0x30);
writedata(0x2e);
writedata((uint)(f*10)%10+0x30);
writedata((uint)(f*100)%10+0x30);
writedata((uint)(f*1000)%10+0x30);
}
}
}
}
}
}
//lcd顯示數據2
void lcdnumdisplay(uchar pos,float f0) //(0.00001-99999.99999) 精度高 但數據需刷屏更新
{
uchar temp;
ulong f;
writecom(pos);
f=(ulong)f0;
temp=f/10000; //整數部分
if(temp!=0)
{
writedata(temp+0x30);
writedata(f%10000/1000+0x30);
writedata(f%1000/100+0x30);
writedata(f%100/10+0x30);
writedata(f%10+0x30);
}
else
{
temp=f%10000/1000;
if(temp!=0)
{
writedata(temp+0x30);
writedata(f%1000/100+0x30);
writedata(f%100/10+0x30);
writedata(f%10+0x30);
}
else
{
temp=f%1000/100;
if(temp!=0)
{
writedata(temp+0x30);
writedata(f%100/10+0x30);
writedata(f%10+0x30);
}
else
{
temp=f%100/10;
if(temp!=0)
{
writedata(temp+0x30);
writedata(f%10+0x30);
}
else
{
temp=f%10;
if(temp!=0)
{
writedata(temp+0x30);
}
else writedata(0+0x30);
}
}
}
}
if((ulong)(f0*10)%10!=0||(ulong)(f0*100)%10!=0||(ulong)(f0*1000)%10!=0||(ulong)(f0*10000)%10!=0)
{
writedata(0x2e);
temp=(ulong)(f0*10000)%10;
if(temp!=0)
{
writedata((ulong)(f0*10)%10+0x30);
writedata((ulong)(f0*100)%10+0x30);
writedata((ulong)(f0*1000)%10+0x30);
writedata(temp+0x30);
}
else
{
temp=(ulong)(f0*1000)%10;
if(temp!=0)
{
writedata((ulong)(f0*10)%10+0x30);
writedata((ulong)(f0*100)%10+0x30);
writedata(temp+0x30);
}
else
{
temp=(ulong)(f0*100)%10;
if(temp!=0)
{
writedata((ulong)(f0*10)%10+0x30);
writedata(temp+0x30);
}
else
{
temp=(ulong)(f0*10)%10;
if(temp!=0)
writedata(temp+0x30);
}
}
}
}
}
復制代碼
完整程序代碼和proteus仿真文件:
水溫控制系統PID可調51單片機仿真.zip
(100.06 KB, 售價: 5 E幣)
2021-6-14 03:14 上傳
點擊文件名下載附件
售價: 5 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0