亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
51單片機(jī)+max6675模塊+K型熱電偶的高溫可調(diào)PID溫控系統(tǒng)源程序
[打印本頁]
作者:
kk201314
時(shí)間:
2019-6-17 13:36
標(biāo)題:
51單片機(jī)+max6675模塊+K型熱電偶的高溫可調(diào)PID溫控系統(tǒng)源程序
單片機(jī)源程序如下:
#include <reg52.h>
#include<intrins.h>
#include<string.h>
#include <stdio.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int//位定義
//max6675
sbit SO= P1^0;
sbit CS= P1^1;
sbit SCK=P1^2;
//按鍵
sbit key1=P1^5; //功能鍵
sbit key2=P1^6; //+
sbit key3=P1^7; //-
sbit BEEP=P1^3; //蜂鳴器
sbit RELAY=P1^4; //繼電器
//DAC0832
//sbit CSDA=P3^2;
//sbit wr=P3^6;
//int high_limit=1250; //上限溫度,默認(rèn)值為1250
int Temp_set=250; //設(shè)定目標(biāo)溫度,默認(rèn)值為250
int Temp_true;
int set_status=0;
uchar qian=0,bai=0,shi=0,ge=0,xiao=0;
uchar smg[8];
//float Kp,Ki,Kd;
uchar num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極數(shù)碼管賦值 0,1,2,3,4,5,6,7,8,9
//uchar num_p[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//共陽極數(shù)碼管帶小數(shù)點(diǎn)賦值 0,1,2,3,4,5,6,7,8,9
uchar choose[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//數(shù)碼管位選
//sbit dula=P2^6; //數(shù)碼管段選,鎖存器控制信號(hào)
//sbit wela=P2^7; //數(shù)碼管位選,鎖存器控制信號(hào)
uint Re_Convert(); //熱電偶數(shù)據(jù)讀取,返回溫度
//int ek=0;
//int eset_statu=0; //第K-1采樣時(shí)的偏差值,Error[-1]
//int ek2=0; //第K-2采樣時(shí)的偏差值,Error[-2]
//float LastOutput=0; //上次PID輸出
//float Output=0; //PID的輸出
//uchar high_time,low_time,count=0; //占空比調(diào)節(jié)參數(shù)
//---------------------------延時(shí)子程序---------------------------//
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void delay_50ms(uint m)
{
uchar x,y;
for(x=m;x>0;x--)
for(y=50;y>0;y--) ;
}
/*********** MAX6675函數(shù)***********/
uint Re_Convert() //熱電偶數(shù)據(jù)讀取,返回溫度
{
long int a=0x7ff8;
long int wendu=0,wendu_1;
float wendu_2;
uint i;
CS=1;
SCK=0;
delay(200);
_nop_();
_nop_();
CS=0;
for(i=1;i<=16;i++)
{ wendu=wendu<<1;
_nop_();
SCK=1;
if(SO==1){wendu=wendu|0x01;}
else wendu=wendu|0x00;
_nop_();
_nop_();
SCK=0;
_nop_();
_nop_();
}
wendu_1=wendu&a;
wendu_1=wendu_1>>3;
wendu_2=wendu_1*0.25;
return wendu_2; //返回帶兩位小數(shù)的實(shí)際溫度
//wendu=wendu_2*100; //放大100倍轉(zhuǎn)成整型常數(shù)
//return wendu; //返回整型常數(shù)便于顯示小數(shù)位數(shù)字
}
//*************溫度顯示程序*******************//
void Disp_temp_true(uint temp)//溫度顯示
{
unsigned char i;
unsigned int j;
ge=temp%10; //取個(gè)數(shù)位數(shù)字
temp=temp/10;
shi=temp%10;//取十位數(shù)字
temp=temp/10;
bai=temp%10;//取百位數(shù)字
qian=temp/10;//取千位數(shù)字
smg[0]=num[qian];
smg[1]=num[bai];
smg[2]=num[shi];
smg[3]=num[ge];
/*
for(i=0; i<4; i++)
{
P2=choose[i]; //數(shù)碼管位選
P0=smg[i]; //送數(shù)字到段碼端口,顯示數(shù)字
j = 10; //掃描間隔時(shí)間設(shè)定
while(j--);
P0 = 0x00;//消隱
}
*/
}
//*************溫度設(shè)置顯示程序*******************//
void Disp_temp_set(uint set)//溫度設(shè)置顯示
{
unsigned char i;
unsigned int j;
ge=set%10; //取個(gè)數(shù)位數(shù)字
set=set/10;
shi=set%10;//取十位數(shù)字
set=set/10;
bai=set%10;//取百位數(shù)字
qian=set/10;//取千位數(shù)字
smg[4]=num[qian];
smg[5]=num[bai];
smg[6]=num[shi];
smg[7]=num[ge];
/*
for(i=4; i<8; i++)
{
P2=choose[i]; //數(shù)碼管位選
P0=smg[i]; //送數(shù)字到段碼端口,顯示數(shù)字
j = 10; //掃描間隔時(shí)間設(shè)定
while(j--);
P0 = 0x00;//消隱
}
*/
}
//*************報(bào)警子程序*******************//
void Alarm()//蜂鳴器間斷
{
if(Temp_true>Temp_set)
{
int b;
for(b=100;b>0;b--)
{
BEEP=1;
delay_50ms(10);
BEEP=0;
delay_50ms(10);
}
}
}
void compare_temper()
{
uint temper=Temp_true;
if(temper>=Temp_set) //實(shí)際溫度是否大于設(shè)置的溫度
{
RELAY=1;
}
else if(temper<Temp_set)
{
RELAY=0;
}
}
//*******按鍵子程序*******//
void keyset()
{
#if 1
if(key1 == 0){
set_status =!set_status;
}
if(set_status==1){
if(key1==0)
{
set_status =!set_status;
}
if(key2==0)
{
Temp_set=Temp_set+10;
Disp_temp_set(Temp_set);
//delay_50ms(1);
//while(!key2);
}
if(key3==0)
{
Temp_set=Temp_set-10;
Disp_temp_set(Temp_set);
//delay_50ms(10);
//while(!key3);
}
}
}
#else
if(set_status==0)
{
if(key1==0)
{
set_status=1;
}
}
else{
//while(set_status==1)
{
if(key1==0)
{
set_status=0;
}
if(key2==0)
{
Temp_set=Temp_set+10;
Disp_temp_set(Temp_set);
//delay_50ms(1);
//while(!key2);
}
if(key3==0)
{
Temp_set=Temp_set-10;
Disp_temp_set(Temp_set);
//delay_50ms(10);
//while(!key3);
}
//}
}
#endif
}
void init_sys() //系統(tǒng)初始化
{
IT0=1;
EX0=1;
ET0=1;
EA=1;
TMOD=1;
TH0=0xfc;
TL0=0x66;//裝初值,定時(shí)時(shí)間為1ms
ET0=1; //打開定時(shí)器0的大門
TR0=1;
P0=0xc0;
}
//*************主程序*******************//
void main()
{
// Kp=1.2;
// Ki=3.4;
// Kd=5.6;
init_sys();
delay_50ms(1);
while(1)
{
Temp_true=Re_Convert();// 熱電偶數(shù)據(jù)讀取,返回溫度
compare_temper();
Disp_temp_true(Temp_true);
Disp_temp_set(Temp_set);
//if(key1==0)
{
keyset();
}
//PID();
Alarm();
//delay_50ms(6);
}
}
void Dsqi0() interrupt 1
{
long int i=0;
uchar c=0xfe;
TH0=0xfc;
TL0=0x66;
P2=0xff;
P0=smg[i];
P2=c;
c=_crol_(c,1);
i=i+1;
if(i==8)
{
i=0;
c=0xfe;
}
}
復(fù)制代碼
所有資料51hei提供下載:
max6675.rar
(43.63 KB, 下載次數(shù): 197)
2019-6-17 13:35 上傳
點(diǎn)擊文件名下載附件
51單片機(jī)+max6675模塊+K型熱電偶的高溫可調(diào)溫控系統(tǒng)
下載積分: 黑幣 -5
作者:
admin
時(shí)間:
2019-6-17 16:03
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
作者:
壞牧羊人
時(shí)間:
2020-5-1 14:40
請(qǐng)問有對(duì)應(yīng)原理圖嗎
作者:
qzsulin
時(shí)間:
2020-10-19 09:36
未包含pid程序部分
作者:
woyaodwn
時(shí)間:
2021-12-28 09:53
補(bǔ)全電路原理圖,源碼了嗎
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1