亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? 恒溫控制單片機系統(tǒng)C程序,對系統(tǒng)的溫度進行采集,然后進行PID運算后控制輸出,保持恒溫狀態(tài)
?? C
字號:
/*==================================
微機控制與接口技術(shù)課程設(shè)計
恒溫控制單片機系統(tǒng)C程序
==================================*/
#include <AT89X52.H>
#include <string.h>
#include <stdio.h>
#include <absacc.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
double      rOut;       //  PID Response (Output)
double      rIn;        //  PID Feedback (Input)
sbit P30=P3^0;  		// DQ=P30=P3^0,為溫度總線
sbit P31=P3^1;
uchar TEMP;				// 溫度值的變量;
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
//共陰 LED
unsigned char code led[]={0x3F,0x6,0x5B,0x4F,0x66,0x6D,0x7D,0x7,0x7F,0x6F};

typedef struct PID {
    double  SetPoint;      // 設(shè)定目標 Desired value,從撥碼盤的輸入值
    double  Proportion;    // 比例常數(shù) Proportional Const
    double  Integral;      // 積分常數(shù) Integral Const
    double  Derivative;    // 微分常數(shù) Derivative Const
    double  LastError;     // 偏差 Error[-1]
    double  PrevError;     // 偏差 Error[-2]
    double  SumError;      // 偏差總和 Sums of Errors
} PID;
/*=================================================================
   PID計算部分
==================================================================*/

double PIDCalc( PID *pp, double NextPoint )
{
	double  dError,Error;
    Error = pp->SetPoint -  NextPoint;          // 偏差
    pp->SumError += Error;                      // 積分
    dError = pp->LastError - pp->PrevError;     // 當前微分
    pp->PrevError = pp->LastError;
    pp->LastError = Error;
    return (pp->Proportion * Error              // 比例項
        +   pp->Integral * pp->SumError         // 積分項
        +   pp->Derivative * dError             // 微分項
           );
}

/*===================================================================
   Initialize PID Structure
===================================================================*/

void PIDInit (PID *pp)
{
    memset ( pp,0,sizeof(PID));   
	//緩沖區(qū)操作函數(shù),初始化緩沖區(qū)中指定個數(shù)的數(shù)據(jù)字節(jié)為某一指定的字符值
}

/*===================================================================
    Main Program
====================================================================*/

	//從DS18B20數(shù)字溫度傳感器讀取的溫度值。

void delay (unsigned int count)
{									
	unsigned int i;	
	while (count)	
	{
		i =200;
		while (i>0) i--;
		count--;
    }
}

void tmreset (void)				// 發(fā)送復位和初始化
{
	unsigned int i;
	P30 = 0;	
	i = 103;
	while (i>0) i--;        	// 延時
	P30 = 1;	
	i = 4;	
	while (i>0) i--;	
}

bit tmpread (void)				// 讀取數(shù)據(jù)的一位
{ 
	unsigned int i;
	bit dat;
	P30 = 0; i++;	
	P30 = 1; i++; i++;			//延時	
	dat = P30;	
	i = 8; while (i>0) i--;		// 延時
	return (dat);
}	

unsigned char tmpread2 (void) 	//讀一個字節(jié)
{
	unsigned char i,j,dat;	
	dat = 0;	
	for (i=1;i<=8;i++)
	{
		j = tmpread ();	
		dat = (j << 7) | (dat >> 1);	
	}
	return (dat);
}	

void tmpwrite (unsigned char dat)	//寫一個字節(jié)
{   
	unsigned int i;
	unsigned char j;
	bit testb;	
	for (j=1;j<=8;j++)
	{	
		testb = dat & 0x01;
		dat = dat >> 1;	
		if (testb)
		{	
			P30 = 0; 	// 寫0 
			i++; i++;  
			P30 = 1;	
			i = 8; while (i>0) i--; 
		}
		else	
		{
			P30 = 0; 	// 寫0 
			i = 8; while (i>0) i--; 
			P30 = 1;
			i++; i++;  
		}
	}
}

void tmpchange(void)	// ds1820 開始轉(zhuǎn)換
{  
	tmreset ();			// 復位	
	delay (1);			// 延時
	tmpwrite (0xcc);	// 跳過序列號命令
	tmpwrite (0x44); 	// 發(fā)轉(zhuǎn)換命令 44H,	
}

void tmp (void)			// 讀取溫度
{ 
	unsigned char a;
	tmreset ();			// 復位
	delay (1);			// 延時
	tmpwrite (0xcc); 	// 跳過序列號命令
	tmpwrite (0xbe); 	// 發(fā)送讀取命令
	a = tmpread2 ();	// 讀取溫度(ROM數(shù)字)	
	TEMP=a>>1;			// 乘分辨率0.5,轉(zhuǎn)換為十進制的溫度值
}

//---------------------------------------------------------
double sensor (void)    //  Dummy Sensor Function
{
    tmpchange();		// 開始溫度轉(zhuǎn)換
	delay(200);			// 讀取延時
	tmp();				// 讀取溫度
	return(TEMP);		// 返回溫度值
}

//============================================================
//	display 子程序

unsigned int display(viod)
{
	unsigned int NUM;
	unsigned int shi; 	//高位顯示變量
	unsigned int ge;  	//低位顯示變量
	shi=(!P17)*8+(!P16)*4+(!P15)*2+(!P14)*1;
	ge=(!P13)*8+(!P12)*4+(!P11)*2+(!P10)*1;
	P0=led[shi];
	P2=led[ge];
	rIn=shi*10+ge;
	return(rIn);
}

//===========================================================

void delay_1ms(int t) 	//設(shè)置周期為1mS,使用等脈寬PWM法。
{
	unsigned int i;	
	while (t)	
	{
		i =1000;
		while (i>0) i--;
		t--;
    }
}

//-----------------------------------------------------------
	//輸出PWM控制程序
void PWM_actuator(double rDelta)  // PWM Actuator Function
{
	unsigned int th;
	unsigned int tl;
	unsigned char k;
	// (200/700)*1.0≈0.29
	double bili=0.29;  	//初始化功率=200W,對應bili=1時是700W。
	if  (rDelta > 0)
 	{
		th=1000*bili;
		tl=1000*(1-bili);
		bili+=0.02;
		for (k=10;k>0;k--)   	// 加熱一段時間
		{
			P31=1;
			delay_1ms(th);
			P31=0;
			delay_1ms(tl);
		}
	}
	else
	{
		bili=0;	
		P31=0;    		//不加熱,讓其自然冷卻
	}	
}
//===============================================================================

void main(void)
{
    PID         sPID;                   //  PID Control Structure
    PIDInit ( &sPID );                  //  Initialize Structure
    //P、I、D 系數(shù)的設(shè)定,以及鍵盤預置溫度輸入的讀取
    sPID.Proportion = 0.1;
    sPID.Integral   = 0.1;
    sPID.Derivative = 0.1;
    sPID.SetPoint   = display();       //  鍵盤輸入的溫度設(shè)定值,同時送LED顯示
    while(1) 
    {                         			//  Mock Up of PID Processing
        rIn = sensor ();                //  Read Input
        rOut = PIDCalc ( &sPID,rIn );   //  Perform PID Interation
        PWM_actuator ( rOut );          //  Effect Needed Changes
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清免费一级二级三级| 麻豆91免费看| 麻豆国产一区二区| 色偷偷88欧美精品久久久| 日韩欧美一区在线观看| 一区二区三区资源| 国产精品综合一区二区| 欧美日本在线一区| 在线观看亚洲精品视频| 欧美高清视频在线高清观看mv色露露十八| 精品国产乱码久久久久久免费| 一区二区三区精密机械公司| 国产精品白丝av| 精品国产乱子伦一区| 视频在线观看一区| 欧美日韩日本视频| 亚洲国产aⅴ成人精品无吗| 91亚洲男人天堂| 国产精品婷婷午夜在线观看| 激情五月激情综合网| 91精品国产美女浴室洗澡无遮挡| 亚洲一二三四区不卡| 91在线视频免费观看| 日本一区二区综合亚洲| 国产精品18久久久久久久久久久久 | 久久国产精品色| 91精品国产乱| 日韩精品一二三区| 91麻豆精品国产91久久久资源速度 | 亚洲一区在线观看视频| 色婷婷av一区| 一区二区三区成人| 在线观看国产日韩| 亚洲一区二区三区四区在线| 欧美专区在线观看一区| 亚洲国产一区二区三区| 欧美日本韩国一区二区三区视频| 亚洲国产精品久久不卡毛片| 欧美人与z0zoxxxx视频| 另类小说色综合网站| 精品日韩在线一区| 国产高清成人在线| 国产精品久久久久久福利一牛影视| 成人午夜短视频| 亚洲视频一区在线| 欧美日韩不卡一区| 九一九一国产精品| 国产日产欧美一区二区视频| jizzjizzjizz欧美| 亚洲一区二区三区四区在线| 555夜色666亚洲国产免| 九九精品视频在线看| 中文av一区二区| 91高清在线观看| 日本不卡不码高清免费观看| 久久久一区二区| 91国产成人在线| 久久99国产精品麻豆| 国产精品成人在线观看| 欧美人伦禁忌dvd放荡欲情| 精品一区在线看| 亚洲三级在线播放| 91精品综合久久久久久| 成人中文字幕合集| 亚洲国产欧美日韩另类综合| 久久中文字幕电影| 在线视频国内一区二区| 国内国产精品久久| 亚洲卡通欧美制服中文| 欧美成人综合网站| 一本色道久久综合亚洲91| 久久精品久久久精品美女| 中文字幕一区在线| 日韩欧美一级片| 色哟哟欧美精品| 国产精一品亚洲二区在线视频| 一区二区欧美国产| 欧美激情一区二区三区不卡| 欧美日本乱大交xxxxx| 99精品久久99久久久久| 青娱乐精品视频在线| 亚洲日本韩国一区| 久久精品欧美日韩| 91麻豆精品国产91久久久久| 色久优优欧美色久优优| 国产精品77777| 日本成人在线看| 亚洲一本大道在线| 亚洲天堂免费在线观看视频| 久久久久久9999| 精品国产免费人成在线观看| 欧美日韩精品系列| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品一二一区| 紧缚捆绑精品一区二区| 日韩av电影天堂| 亚洲第一在线综合网站| 亚洲欧美在线另类| 国产精品国产自产拍在线| 久久久久免费观看| 久久久久久免费网| 精品久久五月天| 日韩欧美二区三区| 日韩亚洲欧美高清| 日韩一级成人av| 欧美一区二区三区免费在线看 | 成人在线视频首页| 国产一二三精品| 国模娜娜一区二区三区| 精品一区二区三区欧美| 日本视频一区二区| 久久精品国产久精国产爱| 日韩国产高清在线| 麻豆精品一二三| 激情深爱一区二区| 国产一区二区三区美女| 国产成人亚洲综合a∨婷婷| 国产精品中文欧美| 国产高清亚洲一区| 成人高清在线视频| 91在线看国产| 欧洲av一区二区嗯嗯嗯啊| 欧美日韩国产小视频在线观看| 欧美日韩一区二区三区在线看| 欧美在线啊v一区| 欧美日韩在线播| 精品日产卡一卡二卡麻豆| 久久先锋影音av鲁色资源网| 国产欧美日韩在线观看| 国产精品对白交换视频 | 国产免费成人在线视频| 国产精品素人视频| 尤物视频一区二区| 日韩高清国产一区在线| 国产乱码字幕精品高清av| 国产·精品毛片| 色欲综合视频天天天| 欧美日韩一本到| 欧美变态口味重另类| 国产精品女同互慰在线看| 一区二区三区欧美视频| 免费欧美高清视频| 风间由美性色一区二区三区| 色噜噜狠狠成人网p站| 日韩欧美国产电影| 中文字幕在线一区免费| 五月天视频一区| 国产风韵犹存在线视精品| 在线观看国产日韩| 国产午夜精品理论片a级大结局 | 日韩成人av影视| 国产91精品一区二区| 欧美色图天堂网| 久久久久久97三级| 亚洲一区二区三区在线看| 国产一区在线看| 在线观看日韩毛片| 欧美激情在线看| 午夜精品久久久久影视| 岛国一区二区三区| 6080yy午夜一二三区久久| 亚洲欧美综合色| 国产剧情一区二区三区| 欧美日本一区二区| 国产精品夫妻自拍| 国产一区二区精品久久99| 色婷婷av久久久久久久| 中文字幕乱码一区二区免费| 青青草成人在线观看| 日本韩国一区二区| 国产欧美一区二区三区在线看蜜臀| 亚洲成人动漫一区| 91麻豆免费视频| 中文幕一区二区三区久久蜜桃| 免费看欧美美女黄的网站| 欧美性淫爽ww久久久久无| 国产精品久久久久永久免费观看| 免费人成在线不卡| 欧美日韩国产小视频| 亚洲一区在线视频| 色噜噜久久综合| 亚洲色图制服诱惑| 不卡电影一区二区三区| 中文字幕av一区二区三区| 国产伦精品一区二区三区在线观看 | 99精品偷自拍| 国产精品女人毛片| 国产成人亚洲精品青草天美| 欧美大尺度电影在线| 日韩综合小视频| 欧美人狂配大交3d怪物一区| 亚洲国产日韩综合久久精品| 91网站黄www| 亚洲美女在线国产| 91久久精品日日躁夜夜躁欧美| 综合在线观看色| 99re热这里只有精品视频| 综合婷婷亚洲小说| 色哟哟国产精品免费观看| 一区二区在线免费观看|