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

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

?? main.c

?? 一個采用C8051F020+CH372實現的帶USB功能的流量測控系統
?? C
?? 第 1 頁 / 共 3 頁
字號:
  {
    RI0 = FALSE;                            // 清除數據接收中斷標志
	if (gbSyncTwoOK0)                            // 檢查同步字節是否接收完畢
	{
      if (SBUF0 == 0x7F)                         // 同步字節已接收完畢,但仍接收到了0x7F,說明出現了最糟糕
	    return;                                  // 的情況,即有3個0x7F,因此需將該字節舍棄。
      gnRxdBuf0[gnRxdID0++] = SBUF0;
	  if (gnRxdID0 == 2)                         // 檢查字節是否接收完畢,接收完則為下次接收做好準備
	  {        
        SetRxd0OK();                             // 重新初始化同步字節檢測標志和串口接收緩沖區索引
		if (gbStarted && gbTestOver)             // 當測試進程結束,且用戶尚未按下停止鍵時,不更新流量顯示值
		  return;
        nRes = gnRxdBuf0[0];                     // 先計算測量值
		nRes = nRes*256 + gnRxdBuf0[1];
        if (gnRxdBuf0[0] & 0x80)                 // 如果測量值為負,則乘以-1轉換為正數
          nRes = 0;
        gnLeakRes += nRes;                       // 對流量值濾波(平均值濾波)
		nLeakCnt--;
		if (nLeakCnt == 0)
		{
		  nLeakCnt = LEAK_SAMPLE_NUMS;           // 重新準備計數初值
		  if (gbStarted)                         // 僅當充氣和測試時才顯示流量值,停止時顯示為0
		  {
  		    gnLeakRes = gnLeakRes/(LEAK_SAMPLE_NUMS+1);
			#ifdef  RIDEN_A10
            nRes = gnLeakRes*100/896;
			#else
			nRes = gnLeakRes*100/128;
			#endif
			for (i=0;i<4;i++)
			{
			  if (nRes < gnLeakAreaMax[i])
			  {
			    gnLeakRes *= gnLeakAreaCoef[i];
				#ifdef  RIDEN_A10
				gnLeakRes /= 896;                // 數字量轉換為工程量
				#else
				gnLeakRes /= 128;
				#endif
				break;
			  }
			}
			if (i == 4)                          // 如果測量值超出了最大流量修正值,則系數默認為1
			{
			  gnLeakRes *= 100;                  // 乘以系數1
			  #ifdef  RIDEN_A10
              gnLeakRes /= 896;                  // 數字量轉換為工程量(A50=128,A10=128*7=896)
			  #else
			  gnLeakRes /= 128;
			  #endif
            }
          }
		  else
		    gnLeakRes = 0;
          EA=0;
          gnLeakGet = gnLeakRes;
          EA =1;
        }
	  }
	}
	else                                         // 同步字節還未接收完畢,繼續檢測
	{
      if (SBUF0 == 0x7F)                         // 如果是同步字節,則設置相應的同步字節接收到標志
      {
	    if (gbSyncOneOK0)
		  gbSyncTwoOK0 = TRUE;
		else
		  gbSyncOneOK0 = TRUE;
	  }
	  else                                       // 接收到的字節既非同步字節又非正常的測量數據,舍棄重來。
		SetRxd0OK();                             // 重新初始化同步字節檢測標志和串口接收緩沖區索引
	}
  }
  else
    TI0 = FALSE;                            // 清除數據發送中斷標志
}

/********************************************************************************************************
** 函數名稱: TIMER2_ISR
** 功能描述: TIMER2定時中斷服務程序。
** 輸  入: 無
** 輸  出: 無
** 全局變量: 略
** 全局常量:無
** 調用模塊: 無
** 設 計 者:羅建                                                                日  期:2007年12月09日
** 版    本:V1.00,原始版本
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void TIMER2_ISR(void) interrupt INT_TIMER2
{
  TF2 = FALSE;
  gnCnt10ms++;
  if (gnCnt10ms >= 10)                 // 定時100ms
  {
    gbTimeOver = TRUE;
	gnCnt10ms = 0;
  }
}

// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: SetRxd0OK和SetRxd1OK
** 功能描述: UART0或UART1數據接收完畢,重新初始化同步字節檢測標志及接收緩沖區索引。
** 輸  入: 無
** 輸  出: 無
** 全局變量: 略
** 全局常量:無
** 調用模塊: 無
** 設 計 者:羅建                                                                日  期:2007年12月09日
** 版    本:V1.00,原始版本
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void SetRxd0OK(void)
{
  gbSyncOneOK0 = FALSE;
  gbSyncTwoOK0 = FALSE;
  gnRxdID0 = 0;
}

void SetRxd1OK(void)
{
  gbSyncOneOK1 = FALSE;
  gbSyncTwoOK1 = FALSE;
  gnRxdID1 = 0;
}

// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: AdjustPress
** 功能描述: 判斷當前測試壓力值是否超過設定范圍,是則調節。
** 輸  入: 無
** 輸  出: 無
** 全局變量: 略
** 全局常量:無
** 調用模塊: 無
** 設 計 者:羅建                                                                日  期:2007年12月09日
** 版    本:V1.00,原始版本
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void AdjustPress(void)
{
  INT16 nErr;

  // 僅當進入測試畫面后才進行壓力調節
  if (gnCntAdjust-- != 0)
    return;
  gnCntAdjust = ADJUST_WAIT;

  // 調節比例閥的輸出,使其等于用戶設定值
  nErr = gnPressSet - gnPressGet;           // 計算設定值與實測值之間的差值
  if ((nErr <= -20) || (nErr >= 20))        // 壓力值誤差大于正負2.0KPa,則粗調
    gnPressOut = gnPressOut + nErr;
  else if ((nErr <= -5) || (nErr >= 5))     // 壓力值誤差大于正負0.5KPa且小于正負2.0KPa,則細調
    gnPressOut = gnPressOut + nErr/5;       // 按照誤差的1/5進行微調
  if (gnPressOut > 0x0FFF)                  // 當壓力輸出gnPressOut超出了DAC0的最大輸出值時,讓其輸出為0
    gnPressOut = 0;
  DAC0L = gnPressOut % 256;                 // 最后將輸出值通過DAC0輸出給壓力調節閥
  DAC0H = gnPressOut / 256;
}


// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: DoneKey
** 功能描述: 檢測哪個鍵有按下,如有鍵按下則進行相應的處理。
** 輸  入: 無
** 輸  出: 無
** 全局變量: 略
** 全局常量:無
** 調用模塊: 無
** 設 計 者:羅建                                                                日  期:2007年12月09日
** 版    本:V1.00,原始版本
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void DoneKey(void)
{
  if (!gbCanGetKey)                         // 檢測用戶按鍵情況
  {
    if (gnCntGetKey-- == 0)                 // 實現按鍵檢測延時
      gbCanGetKey = TRUE;
  }
  else                                      // 可以檢測按鍵
  {
    if (!KEY_START)                         // 啟動鍵按下
	{
	  if (!gbStarted)                       // 僅在啟動按鍵尚未按下時才響應啟動鍵操作
      {
        gnCurrTime= gnFillTime;             // 準備充氣時間
        DRV_PASS  = CLOSE;                  // 先將PASS和FAIL指示燈關閉
        DRV_FAIL  = CLOSE;
        DRV_VALVE = OPEN;                   // 打開控制閥
        gbTestOver= FALSE;                  // 假定測試狀態未結束
        gbStarted = TRUE;                   // 進入啟動測試狀態
        gbFilling = TRUE;                   // 進入充氣時間倒計數狀態
      }
	}
    else if (!KEY_STOP)                     // 停止鍵按下
	{
      DRV_VALVE = CLOSE;                    // 關閉電磁閥
      gbFilling = FALSE;                    // 退出充氣時間倒計數狀態
      gbTesting = FALSE;                    // 退出測試時間倒計數狀態
      gbStarted = FALSE;                    // 退出啟動測試狀態
      gbTestOver= FALSE;                    // 已經退出測試狀態
	  DRV_PASS  = CLOSE;                    // 關閉PASS和FAIL指示燈
      DRV_FAIL  = CLOSE;
	}
    gnCntGetKey = KEY_WAIT;                 // 準備進行按鍵檢測延時
    gbCanGetKey = FALSE;                    // 暫停下一次鍵檢測
  }
}

// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: DoneTest
** 功能描述: 執行充氣和測試操作。
** 輸  入: 無
** 輸  出: 無
** 全局變量: 略
** 全局常量:無
** 調用模塊: 無
** 設 計 者:羅建                                                                日  期:2007年12月09日
** 版    本:V1.00,原始版本
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void DoneTest(void)
{
  if (gbFilling)                          // 如果正在執行充氣操作,則對充氣時間進行遞減
  {
    if (gnCurrTime == 0)                  // 如果充氣時間減為全0,則進入測試狀態
    {
      gbFilling = FALSE;
      gbTesting = TRUE;
      gnCurrTime = gnTestTime;            // 準備測試時間
    }
	else
	  gnCurrTime--;
  }
  else if (gbTesting)                     // 如果正在執行測試操作,則對測試時間進行遞減
  {
    if (gnCurrTime == 0)                  // 如果測試時間減為全0,則測試結束,關閉電磁閥并保持當前顯示狀態不變
    {
	  if (gnLeakGet > gnLeakMax)
	  {                                   // 測試結束后,如果氣體流量超過了設定的流量范圍,則FAIL燈亮,否則PASS燈亮
	    DRV_FAIL = OPEN;
	    DRV_PASS = CLOSE;
      }
	  else
	  {
        gbTesting = FALSE;
        gbTestOver= TRUE;                 // 指示檢測已完成
        DRV_PASS = OPEN;
        DRV_FAIL = CLOSE;
        DRV_VALVE = CLOSE;                // 關閉電磁閥
	  }
    }
	else
	  gnCurrTime--;
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91成人免费在线视频| 亚洲日本成人在线观看| 中文字幕一区二区不卡| 丝袜a∨在线一区二区三区不卡| 久久国产人妖系列| 欧美影视一区二区三区| 国产亚洲一区字幕| 美日韩一区二区三区| 在线免费不卡电影| 国产精品国产三级国产专播品爱网| 亚洲丰满少妇videoshd| 风间由美一区二区三区在线观看 | 性感美女极品91精品| 国产99久久久久久免费看农村| 欧美精品第1页| 亚洲精品欧美二区三区中文字幕| 久久精品国产77777蜜臀| 在线观看三级视频欧美| 国产精品国产三级国产普通话99| 精品在线亚洲视频| 9191成人精品久久| 亚洲一区二区三区在线看| av在线播放一区二区三区| 日韩免费在线观看| 美洲天堂一区二卡三卡四卡视频| 在线免费亚洲电影| 亚洲人成精品久久久久久| 国产成人综合在线| 久久久一区二区三区捆绑**| 久色婷婷小香蕉久久| 7777精品伊人久久久大香线蕉经典版下载 | 日韩欧美亚洲一区二区| 视频一区二区三区在线| 欧美三级电影网站| 一区二区三区视频在线看| 99这里只有精品| 成人欧美一区二区三区视频网页 | 久久精品在线观看| 国内精品免费**视频| 欧美大片拔萝卜| 久久精品国产99国产| 欧美精品一区视频| 高清日韩电视剧大全免费| 国产日韩欧美电影| 成人app下载| 国产精品久久福利| 色综合天天性综合| 亚洲品质自拍视频| 欧美日韩国产电影| 美女视频网站黄色亚洲| 久久人人爽爽爽人久久久| 国产成人aaaa| 亚洲欧美日韩中文字幕一区二区三区| 色综合天天性综合| 天天影视涩香欲综合网| 精品久久人人做人人爱| 国产精品一区在线观看你懂的| 国产精品福利一区| 欧美日韩性生活| 久久精品国产秦先生| 国产精品色一区二区三区| 在线观看欧美黄色| 老司机午夜精品| 国产精品久久午夜夜伦鲁鲁| 欧美又粗又大又爽| 精品一区二区在线看| 亚洲欧美一区二区三区孕妇| 91精品国产综合久久精品麻豆| 国产精品456露脸| 亚洲综合一二三区| 日韩精品一区二区三区四区视频| 成人av电影免费观看| 日本亚洲视频在线| 国产精品美女久久久久久久久| 欧美四级电影网| 国产精品一区二区三区四区| 亚洲成人动漫在线观看| 国产日韩欧美综合一区| 欧美日韩大陆一区二区| 粉嫩av一区二区三区在线播放| 亚洲国产中文字幕在线视频综合| 久久精品一区蜜桃臀影院| 欧美高清一级片在线| 成人免费观看男女羞羞视频| 日本怡春院一区二区| 亚洲欧美日韩在线播放| www日韩大片| 91精品久久久久久久91蜜桃| eeuss鲁一区二区三区| 久久99国产精品免费| 午夜欧美大尺度福利影院在线看| 国产三级一区二区| 日韩精品一区二区三区swag | 亚洲综合成人网| 国产精品美女www爽爽爽| 久久久久久**毛片大全| 日韩无一区二区| 欧美日韩国产bt| 一本大道av一区二区在线播放| 国产成人av网站| 国产精一品亚洲二区在线视频| 午夜视频一区二区| 亚洲女厕所小便bbb| 中文字幕在线不卡一区| 亚洲国产精品黑人久久久| 555www色欧美视频| 7777精品久久久大香线蕉 | 9久草视频在线视频精品| 国产美女精品人人做人人爽| 久久精品国产一区二区三区免费看 | 色中色一区二区| 色婷婷亚洲精品| 91在线你懂得| 色狠狠桃花综合| 欧美私人免费视频| 欧美日韩不卡在线| 欧美一区二区在线免费播放 | 日本美女一区二区三区视频| 五月激情六月综合| 视频一区二区三区中文字幕| 日韩精品乱码免费| 久久狠狠亚洲综合| 韩国女主播一区| 国产99精品视频| 色悠悠久久综合| 欧洲另类一二三四区| 欧美中文一区二区三区| 欧美亚洲一区二区在线观看| 777久久久精品| 精品卡一卡二卡三卡四在线| 久久女同互慰一区二区三区| www成人在线观看| 综合中文字幕亚洲| 亚洲国产精品久久久久婷婷884| 亚洲一区二区三区影院| 奇米综合一区二区三区精品视频| 精品一区二区在线免费观看| 国产成人精品亚洲777人妖 | 欧美久久久久久久久久| 日韩欧美国产高清| 久久久久综合网| 亚洲美女电影在线| 蜜桃视频一区二区| 成人av资源下载| 欧美羞羞免费网站| 欧美xxxxxxxxx| 中文字幕制服丝袜成人av| 亚洲人成在线观看一区二区| 日韩在线一区二区三区| 国产精品1024久久| 在线观看视频一区| 国产色婷婷亚洲99精品小说| 亚洲一二三四在线观看| 激情久久五月天| 欧美性一二三区| 欧美成人精品1314www| 国产精品天干天干在观线| 亚洲成人激情av| 成+人+亚洲+综合天堂| 欧美日韩在线观看一区二区 | 成人精品视频网站| 欧美日韩亚洲丝袜制服| 久久精品一区八戒影视| 一片黄亚洲嫩模| 国产成人无遮挡在线视频| 欧美视频一区二区在线观看| 久久久五月婷婷| 日韩和欧美一区二区| 不卡影院免费观看| 26uuu久久综合| 亚洲影视在线观看| 国产99精品国产| 久久亚洲综合av| 免费观看成人av| 欧美日韩精品一区二区三区四区| 国产精品美日韩| 国产乱码精品一品二品| 欧美高清视频不卡网| 依依成人精品视频| 成人精品免费网站| 久久一区二区视频| 青草国产精品久久久久久| 欧洲精品一区二区三区在线观看| 国产精品女人毛片| 国产精品一区二区你懂的| 日韩一级精品视频在线观看| 亚洲国产日韩精品| 色就色 综合激情| 亚洲人妖av一区二区| 岛国精品在线观看| 久久久www成人免费毛片麻豆| 老司机午夜精品| 精品国产人成亚洲区| 日本午夜精品视频在线观看 | 99re热这里只有精品免费视频| 久久久综合视频| 国产一区二区三区久久久| 精品欧美一区二区在线观看| 免费人成网站在线观看欧美高清| 欧美一三区三区四区免费在线看|