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

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

?? main.#3

?? 一個采用C8051F020+CH372實現的帶USB功能的流量測控系統
?? #3
?? 第 1 頁 / 共 3 頁
字號:
  if (SCON1&0x01)
  {
    SCON1 &= ~0x01;                              // 清除接收中斷標志,允許下次接收數據
	if (gbSyncTwoOK1)                            // 檢查同步字節是否接收完畢
	{
      if (SBUF1 == 0x7F)                         // 同步字節已接收完畢,但仍接收到了0x7F,說明出現了最糟糕
	    return;                                  // 的情況,即有3個0x7F,因此需將該字節舍棄。
      gnRxdBuf1[gnRxdID1++] = SBUF1;
	  if (gnRxdID1 == 2)                         // 檢查字節是否接收完畢,接收完則為下次接收做好準備
	  {        
        SetRxd1OK();                             // 重新初始化同步字節檢測標志和串口接收緩沖區索引
		if (gbStarted && gbTestOver)             // 當測試進程結束,且用戶尚未按下停止鍵時,不更新流量顯示值
		  return;
        nRes = gnRxdBuf1[0];                     // 先計算測量值
		nRes = nRes*256 + gnRxdBuf1[1];
        if (gnRxdBuf1[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 (SBUF1 == 0x7F)                         // 如果是同步字節,則設置相應的同步字節接收到標志
      {
	    if (gbSyncOneOK1)
		  gbSyncTwoOK1 = TRUE;
		else
		  gbSyncOneOK1 = TRUE;
	  }
	  else                                       // 接收到的字節既非同步字節又非正常的測量數據,舍棄重來。
		SetRxd1OK();                             // 重新初始化同步字節檢測標志和串口接收緩沖區索引
	}
  }
  else
    SCON1 &= ~0x02;                              // 清除發送中斷標志,允許下次接收數據    
}

/********************************************************************************************************
** 函數名稱: 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网站在线播放| 91色|porny| 欧美一区二区三区小说| 精品国产网站在线观看| 亚洲人妖av一区二区| 免费成人在线网站| av不卡在线观看| 精品精品国产高清一毛片一天堂| 亚洲人123区| 国产一区二区三区国产| 欧美日韩精品一区二区天天拍小说 | 偷拍一区二区三区| 波多野结衣视频一区| 4438x亚洲最大成人网| 国产精品福利一区| 国产高清在线精品| 欧美一区二区视频在线观看| 亚洲精品视频一区| 本田岬高潮一区二区三区| 久久先锋影音av鲁色资源网| 天天亚洲美女在线视频| 在线观看91视频| 亚洲人成人一区二区在线观看| 国产成人av一区二区| 日韩女优毛片在线| 亚洲不卡av一区二区三区| 99久久精品国产导航| 久久综合狠狠综合| 日本不卡一二三| 欧美午夜精品久久久久久孕妇| 国产精品久久精品日日| 国产在线视频一区二区三区| 丁香激情综合国产| 国产亚洲成av人在线观看导航 | 91色视频在线| 中文字幕av一区 二区| 国产一区 二区| 91精选在线观看| 一区二区三区在线不卡| 91在线观看污| 中文字幕欧美日韩一区| 麻豆国产精品一区二区三区| 欧美美女黄视频| 亚洲国产日日夜夜| 日本丶国产丶欧美色综合| 国产精品久久久久久久久搜平片| 国产一区二区三区香蕉| 2023国产精品| 五月天丁香久久| 91精品91久久久中77777| 日韩理论片在线| 91麻豆免费在线观看| 亚洲男人电影天堂| 欧美在线免费观看亚洲| 亚洲综合久久av| 日本韩国一区二区| 一区二区三区在线影院| 欧美性大战久久| 午夜精品aaa| 51久久夜色精品国产麻豆| 日韩专区欧美专区| 精品国产乱码久久久久久夜甘婷婷| 日本在线观看不卡视频| 欧美视频日韩视频| 午夜一区二区三区在线观看| 日韩午夜精品视频| 国产精品亚洲人在线观看| 欧美激情资源网| 99视频在线精品| 亚洲综合一区在线| 91精品国产综合久久蜜臀| 日本午夜一区二区| 精品精品国产高清一毛片一天堂| 国产成人在线观看| 一区二区三区在线视频免费观看| 欧美精品在欧美一区二区少妇| 免费在线观看成人| 国产三级久久久| 在线观看日韩电影| 另类综合日韩欧美亚洲| 国产精品久久久一本精品 | 久久久久国色av免费看影院| 丰满放荡岳乱妇91ww| 亚洲男人的天堂在线aⅴ视频| 欧美日本韩国一区二区三区视频| 七七婷婷婷婷精品国产| 久久久综合精品| 在线观看日韩一区| 国产精品小仙女| 亚洲午夜av在线| 国产丝袜美腿一区二区三区| 色www精品视频在线观看| 一区二区三区四区国产精品| 91丨九色丨黑人外教| 国产一区亚洲一区| 亚洲黄网站在线观看| 久久先锋资源网| 精品视频一区三区九区| 国产精品一二三区| 五月天国产精品| 国产精品天天看| 日韩欧美资源站| 欧美中文字幕不卡| 丰满岳乱妇一区二区三区| 日本中文字幕一区二区有限公司| 欧美韩日一区二区三区四区| 在线日韩一区二区| 国产在线播放一区二区三区| 丝袜亚洲精品中文字幕一区| 国产精品久久久久影视| 精品少妇一区二区三区在线视频| 欧美在线一二三四区| 不卡一区二区三区四区| 久久精品久久99精品久久| 亚洲愉拍自拍另类高清精品| 中文字幕欧美激情| 亚洲精品一区二区三区在线观看 | 国产自产视频一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 亚洲视频免费看| 欧美国产精品中文字幕| 精品日韩99亚洲| 欧美一区二区三区在线看| 欧美在线免费观看亚洲| 一本到不卡精品视频在线观看| 国产99久久久国产精品潘金| 国产一区二区三区高清播放| 六月婷婷色综合| 无码av免费一区二区三区试看 | www.性欧美| 粉嫩aⅴ一区二区三区四区五区| www.欧美日韩国产在线| 激情久久久久久久久久久久久久久久| 强制捆绑调教一区二区| 岛国av在线一区| 久久蜜桃av一区二区天堂| 精品久久五月天| 久久综合九色综合97婷婷女人| 欧美tk—视频vk| 欧美岛国在线观看| 91精品麻豆日日躁夜夜躁| 成人成人成人在线视频| 91麻豆精品一区二区三区| 在线影院国内精品| 欧美日韩高清影院| 日韩欧美综合一区| 久久综合久久综合亚洲| 久久毛片高清国产| 国产精品网站在线播放| 亚洲精选视频在线| 亚洲国产日产av| 日韩激情视频在线观看| 免费的国产精品| 国产成人一区二区精品非洲| 久久99精品国产麻豆婷婷| 美女免费视频一区| 蜜桃精品视频在线观看| 免费在线视频一区| 国产酒店精品激情| 97精品久久久午夜一区二区三区| 色呦呦日韩精品| 51精品秘密在线观看| 久久久蜜臀国产一区二区| **性色生活片久久毛片| 亚洲一级不卡视频| 男女激情视频一区| 波多野结衣在线一区| 91色|porny| 欧美电影免费提供在线观看| 这里只有精品视频在线观看| 欧美一级片在线看| 中文字幕中文在线不卡住| 午夜精品久久久久久不卡8050| 国模套图日韩精品一区二区 | 日韩你懂的在线观看| 欧美精品一区二区三区蜜桃| 综合久久久久久久| 蜜桃精品视频在线观看| 色系网站成人免费| 久久久精品国产免大香伊| 亚洲伊人色欲综合网| 国内精品自线一区二区三区视频| 99精品在线免费| 精品日韩欧美一区二区| 亚洲国产精品麻豆| 国产成人免费在线| 7777精品伊人久久久大香线蕉的 | 懂色av一区二区在线播放| 欧美绝品在线观看成人午夜影视| 国产校园另类小说区| 免费成人在线网站| 欧美私人免费视频| 国产精品久久久久精k8| 激情综合色综合久久| 欧美另类一区二区三区| 亚洲欧美色综合| 成人av网站免费观看| 久久蜜桃av一区精品变态类天堂 | 欧美高清dvd|