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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 此代碼位PIC單片機的PID控溫程序
?? C
字號:

/*************************************************
  File name:  main.c     
  Description:  
    1.本程序文件主要功能:實現儀器運行狀態的控制,讀取當前溫度值,和撥碼開關校準值,控制LED狀態指示燈.
	2.void main (void)   主函數調用 init(),ad_read(),temp_control()函數.
    3.init():單片機配置的初始化
      ad_read():輸出當前采樣的溫度值,act_temp;
                輸出當前AD采樣的校準值,adjust_value;
                輸出斷路,短路報警,控溫過程中超溫報警;
    4. temp_control():控溫程序
  Others:        
  Function List:  
    1.void main (void)   主函數
    2.void init(void)    初始化函數
    3.void temp_control() 控溫程序
    4.void ad_read()      讀取AD采樣值,并計算當前溫度,判斷儀器運行狀態.
  History:       
    1. Date:
       Author:
       Modification:
    2. ...
*************************************************/
/**/
#include <pic.h>
#include "main.h"
#include   <stdlib.h>

/**********************
  申明模塊中所調用的函數
***********************/

void init(void);
//void temp_control();
void ad_read();

/*************************
申明變量
*************************/

unsigned char channel;            //ad采樣通道變量
unsigned char machine_status;     //儀器運行狀態變量
int temp_ad_value;       //ad采樣的溫度變量
unsigned int adjust_ad_value;     //ad采樣校準值
int control_temp;                 //控制溫度變量
int i_data,p_data;                //pid控制參數
int act_temp;                     //計算溫度值                 
int run_control;                  //pid控制量
extern bit keyok;                 //按鍵檢測標志位
extern bit error_flag;            //超溫報警標志
extern unsigned char led_time;    //led閃爍時間控制量
extern int adjust_value;          //校準值
extern bit err_time_flag;;
extern unsigned char adjust_num; 
extern unsigned int error_time;
extern unsigned char adjust_scan;
extern bit run_flag;

const  int ad_value_tab[9]={0x0075,0x00DC,0x014C,0x01BF,0x0232,0x02A3,0x0310,0x0375,0x03D4};//溫度采樣值
                                   //  0,     5,    10,    15,    20,    25,     30,    35,    40
const  int adjust_tab[9]={0x0000,0x0088,0x010D,0x0188,0x01F8,0x025F,0x02BE,0x0316,0x0367}; //撥碼開關采樣值。
                                  //-2    ,-1.5,  -1.0,   -0.5, 0,     0.5,   1.0,   1.5  ,  2,


/***********************************************************
 Function:         ad_read()
 Description:      讀取AD采樣值,溫度計算,檢測傳感器,撥碼開關短路報警,斷路報警;超溫報警
                   以及儀器運行狀態指示燈顯示。
 Calls:                
 Called By:        main();
 Input:           
 Output:           act_temp;adjust_value;
 Return:           
 Others:          
**************************************************************/                   
                   




void ad_read()
{
     unsigned char temp;
     
     temp=0;
     if(temp_ad_value>=ad_value_tab[0] && temp_ad_value<=ad_value_tab[8])       //判斷是否在控溫范圍之內.
     {
         
         while(temp<=8)
         {
              if ((temp_ad_value >= ad_value_tab[temp]) && (temp_ad_value <= ad_value_tab[temp+1]))
              {
                
                   act_temp=(int)(temp*50)+(50*(temp_ad_value-ad_value_tab[temp]))/(ad_value_tab[temp+1]-ad_value_tab[temp]);//計算溫度值
                   temp=8;
              }//end if ((temp_ad_value >= ad_value_tab[temp]) && (temp_ad_value <= ad_value_tab[temp+1]))
              temp++; 
         }//end while(temp<=8)
              

         if(machine_status==stop)      //停止狀態指示燈狀態
         {
              hold_led=false;
              if(led_time<25)
              {
                   cool_led=true;
              }
              else
              {
                   cool_led=false;
              }
         }//end if (machine_status==stop)


         if(machine_status==run)      //運行狀態 指示燈狀態
         {
              if((act_temp-control_temp)>6)
              {
                   cool_led=true;             //制冷
                   hold_led=false;
              }
              else if((control_temp-act_temp)>6)
              {
                   cool_led=false;           //加熱
                   hold_led=false;
              }
              else
              {
                   cool_led=false;
                   hold_led=true;            //恒溫
                   err_time_flag=true;
                  // error_flag=true;
              }

              if(error_flag==true && abs(act_temp-control_temp)>30)
              {
                   if(led_time<25)
                   {
                       cool_led=true;
                       hold_led=true;     //超溫報警
                   }
                   else
                   {   
                       cool_led=false;
                       hold_led=false;
                   }
              }
              
         }  //end if (machine_status==run)
    }//end if(temp_ad_value>=ad_value_tab[0] && temp_ad_value<=ad_value_tab[8])(ad_value_tab[0]-100)(ad_value_tab[8]+38)

    else if(temp_ad_value<=0 || temp_ad_value>=0x3FF)     //傳感器報警指示燈狀態 
    {   
        
         if(led_time<25)
         {
              cool_led=true;
              hold_led=true;         //制冷,恒溫指示燈同時閃爍i
         }
         else
         {   
              cool_led=false;
              hold_led=false;
         }
        run_flag=false;
        machine_status=stop;
    }//end if(temp_ad_value<(ad_value_tab[0]-40) || temp_ad_value>(ad_value_tab[8]+15))


    for(adjust_num=0;adjust_num<9;adjust_num++)
    {
         if(abs(adjust_ad_value-adjust_tab[adjust_num])<30)
         {
              adjust_scan=adjust_num;
         }
             
    }
         
    switch(adjust_scan)                        //讀取撥碼開關狀態
    {
         case 0:adjust_value=-20;break;
         case 1:adjust_value=-15;break;
         case 2:adjust_value=-10;break;
         case 3:adjust_value=-5; break;
         case 4:adjust_value=0; break;
         case 5:adjust_value=5;break;
         case 6:adjust_value=10;break;
         case 7:adjust_value=15;break;
         case 8:adjust_value=20;break;
         default:;
     }

    if(adjust_ad_value>=(adjust_tab[8]+50))//撥碼開關,短路斷路報警.
    {
         
         if(led_time<25)
         {
              cool_led=true;
              hold_led=true;
         }
         else
         {   
              cool_led=false;
              hold_led=false;
         }
         run_flag=false;
         machine_status=stop;
    }//end  if(adjust_ad_value>=(adjust_tab[8]+50))
  
   // adjust_value=0;
}


/*************************************************
 Function:         void init(void)  
 Description: 
 Calls:                
 Called By:    main()    
 Input:           
 Output:       單片機基本配置    
 Return:           
 Others:          
                   
                   
                           
*************************************************/

void init(void)                   //初始化函數
{   
   //初始化PORTC
   // IRP=1;
    OSCCON=0x67;
    CMCON0=0x07;
    PORTC = 0x00;
                                  //RC0,RC1,RC5輸出;其他做為輸入端口。三態控制寄存器。
    TRISC=0x1C;
 
    ADCON0 = 0xC0;                //結果右對齊,參考電壓選擇VREF.
    ADCON1 = 0x10;                //fosc/8
    ANSEL = 0xC0;                 //AN7,AN6為模擬輸入口;其他為I/O口。11000000;
    ADIF = 0;
    ADIE = 1;                     //使能AD轉換中斷
    ADON = 1;     				  //A/D轉換模塊正在工作
    //T1初始化

    T1CON = 0x05;                 //T1CON控制寄存器   啟動T1 ,選擇內部時鐘源FOSC/4,不于外部時鐘輸入同步。
    TMR1L = 0xF0;
    TMR1H = 0xD8;
    PIE1 = 0x41;                  //外設中斷使能寄存器1,使能time1溢出中斷   ,使能AD轉換中斷 ,T2匹配中斷
    TMR1IF=0;
    TMR1IE = 1;
    TMR1ON = 1;                   //啟動T1
    INTCON = 0xE0;
     
    //T2初始化
    T2CON=0x00;                   //TMR2控制寄存器
    CCP1CON=0x0C; //Single output; P1B modulated; P1B, P1C, P1D assigned as port pinsPWM mode; P1A, P1C active-high; P1B, P1D active-high
    TMR2IF=0;
    CCPR1L=0x00;       
    PR2=0x3F;                     //設置pwm周期
    TMR2ON = 1;
   
    //TIME0 初始化
    T0CS = 0;                      ///選擇內部指令時鐘周期
    T0IF=0;
    T0IE=1;                      
    TMR0 = 0x00;
    GIE=1;                        //使能所有非屏蔽中斷 
}





/********************************************
 Function:         void main(void) 
 Description: 
            主程序,控制儀器運行.
 Calls:        init(),ad_read(),temp_control();     
 Called By:     
 Input:           
 Output:       儀器運行狀態  
 Return:           
 Others:          
               
*********************************************/
void main(void)
{
	init();                  //調用初始化函數
    keyok=false;
    channel=6;               //附ad采樣通道
    run_flag=false;
    machine_status=stop;     //儀器進入停止狀態.

    while (1)
    {    
        if(machine_status==stop)
        {
             
             error_flag=false;     
             err_time_flag=false;
             error_time=0;
             ad_read();             //調用ad_read()
             
             
             if(keyok==true)
             {
                 keyok=false;
                 run_flag=true;
                 machine_status=run;
             }
        }//end if(machine_status==stop)


        else if(machine_status==run)
        {
             ad_read();
             control_temp=40+adjust_value; //控溫點
            // temp_control();               //調用控溫函數
           
             if(keyok==true)               //有鍵按下,進入停止狀態
             {
                 keyok=false;
                 run_flag=false;
                 machine_status=stop;
             }
        }//end if(machine_status==run)
    }
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产综合色视频| 青草国产精品久久久久久| 日韩亚洲欧美中文三级| 欧美日韩一区在线观看| 欧美日韩一区二区三区四区五区| 日本道色综合久久| 欧美日韩不卡一区| 91麻豆精品国产91久久久更新时间 | 日韩精品中文字幕一区二区三区 | 亚洲欧洲一区二区三区| 久久精子c满五个校花| 精品国产一区久久| 中文字幕国产一区二区| 1024成人网| 亚洲一区影音先锋| 日韩国产高清影视| 国内精品伊人久久久久av一坑| 激情偷乱视频一区二区三区| 成人在线综合网| 91女神在线视频| 欧美人与性动xxxx| 国产无一区二区| 亚洲欧美激情在线| 日本不卡中文字幕| 国产99久久久久久免费看农村| 99久久精品国产精品久久| 欧美性videosxxxxx| 久久免费午夜影院| 亚洲精品v日韩精品| 久久av中文字幕片| 91黄色激情网站| 久久亚洲一级片| 亚洲精品国产视频| 国产一区在线观看麻豆| 一本一道综合狠狠老| 欧美一区二区网站| 自拍偷拍国产亚洲| 奇米精品一区二区三区在线观看| 成人福利视频网站| 欧美岛国在线观看| 亚洲精品乱码久久久久久| 精彩视频一区二区| 欧美视频一区二区| 亚洲国产精品99久久久久久久久 | 国产色爱av资源综合区| 亚洲精品国久久99热| 国产在线国偷精品免费看| 欧美影片第一页| 中文字幕视频一区| 国产一区二区三区不卡在线观看| 欧美日韩在线播| 亚洲欧洲性图库| 国产成人在线视频免费播放| 在线成人av影院| 一个色综合av| 91亚洲精品乱码久久久久久蜜桃| 2017欧美狠狠色| 日日摸夜夜添夜夜添亚洲女人| 色综合天天综合色综合av| 久久久久久久久久久久久夜| 亚洲国产乱码最新视频 | 午夜久久电影网| 久久精品国产久精国产爱| 欧美理论电影在线| 99精品国产热久久91蜜凸| 一区二区三区不卡在线观看 | av在线播放不卡| 欧美日韩mp4| 日韩一区欧美二区| 日韩欧美www| 欧美一区二区三区播放老司机| 欧美性猛片xxxx免费看久爱| 欧美成人艳星乳罩| 亚洲精品日韩专区silk| 亚洲成人午夜影院| 亚洲美女屁股眼交3| 日韩一区二区三区高清免费看看| 精品一区二区三区免费毛片爱| 一片黄亚洲嫩模| 日本一区二区三区四区在线视频| 欧美不卡一区二区三区四区| 欧美综合视频在线观看| 成人免费视频caoporn| 国产综合一区二区| 国产精品996| 国产精品一区一区| 成人黄色小视频| 不卡区在线中文字幕| 91原创在线视频| 91久久精品一区二区| 欧美日韩亚洲综合一区| 欧美撒尿777hd撒尿| 色综合久久综合| 欧美日韩黄视频| 欧美浪妇xxxx高跟鞋交| 91麻豆精品91久久久久久清纯| 亚洲激情第一区| 26uuu亚洲综合色欧美| 国产色综合久久| 国产一区二区不卡| 精品综合免费视频观看| 欧美一区二区三区四区在线观看| 一区在线播放视频| 成人av网在线| 国产网红主播福利一区二区| 99精品在线观看视频| 欧洲精品一区二区三区在线观看| 欧美日韩在线亚洲一区蜜芽| 91 com成人网| 北岛玲一区二区三区四区| 青青草97国产精品免费观看| 色噜噜偷拍精品综合在线| 久久人人爽人人爽| 欧美影院精品一区| 久久机这里只有精品| 中文字幕在线观看一区| 51精品秘密在线观看| 成人免费高清视频在线观看| 亚洲大片精品永久免费| 国产日韩三级在线| 3d动漫精品啪啪1区2区免费| 99精品视频一区二区| 另类小说色综合网站| 亚洲人成网站色在线观看| 欧美视频中文一区二区三区在线观看| 久久精工是国产品牌吗| 有码一区二区三区| 久久久精品黄色| 欧美一级在线视频| 欧美性色黄大片| 91免费看片在线观看| 国产精品影视网| 日韩电影在线观看一区| 亚洲精品菠萝久久久久久久| 国产精品久久久久精k8| 久久尤物电影视频在线观看| 欧美疯狂做受xxxx富婆| 欧美专区日韩专区| 91小视频免费观看| 成人黄色av网站在线| 国产在线精品国自产拍免费| 美美哒免费高清在线观看视频一区二区| 亚洲天堂免费在线观看视频| 欧美国产日韩a欧美在线观看| 欧美成人国产一区二区| 在线综合+亚洲+欧美中文字幕| 欧美亚洲动漫另类| 欧洲生活片亚洲生活在线观看| 99精品偷自拍| 91久久一区二区| 欧美主播一区二区三区| 欧美亚日韩国产aⅴ精品中极品| 日本韩国欧美在线| 色噜噜狠狠色综合欧洲selulu| 91丨porny丨在线| 日本乱人伦aⅴ精品| 91在线播放网址| 欧美综合久久久| 91精品欧美综合在线观看最新 | 亚洲精品一区二区三区精华液| 欧美电影一区二区| 欧美大片一区二区| 精品少妇一区二区三区在线视频| 精品欧美一区二区三区精品久久| 欧美大胆一级视频| 国产欧美一区二区在线观看| 国产精品电影一区二区| 亚洲精品免费在线播放| 日韩激情视频网站| 久久99国产精品久久99果冻传媒 | 日本一区二区视频在线| 中文字幕一区二区三区在线播放| 18成人在线观看| 日韩国产欧美三级| 国产精品自拍在线| 色88888久久久久久影院野外| 欧美久久久久久久久| 久久丝袜美腿综合| 亚洲视频一区在线观看| 日韩va欧美va亚洲va久久| 国内外成人在线| 一本色道a无线码一区v| 这里是久久伊人| 国产精品成人免费| 日韩中文字幕亚洲一区二区va在线| 加勒比av一区二区| 色综合色综合色综合色综合色综合| 欧美日韩国产高清一区二区三区| 精品剧情v国产在线观看在线| 中文字幕乱码亚洲精品一区| 五月天欧美精品| 成人手机在线视频| 欧美一级午夜免费电影| 中文字幕亚洲一区二区va在线| 日韩avvvv在线播放| 不卡欧美aaaaa| 精品日韩欧美一区二区| 亚洲精品免费在线播放| 国产成人精品一区二区三区网站观看| 91成人免费在线|