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

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

?? main.#1

?? 一個(gè)采用C8051F020+CH372實(shí)現(xiàn)的帶USB功能的流量測控系統(tǒng)
?? #1
?? 第 1 頁 / 共 3 頁
字號:
  {
    SCON1 &= ~0x01;                              // 清除接收中斷標(biāo)志,允許下次接收數(shù)據(jù)
	if (gbSyncTwoOK1)                            // 檢查同步字節(jié)是否接收完畢
	{
      if (SBUF1 == 0x7F)                         // 同步字節(jié)已接收完畢,但仍接收到了0x7F,說明出現(xiàn)了最糟糕
	    return;                                  // 的情況,即有3個(gè)0x7F,因此需將該字節(jié)舍棄。
      gnRxdBuf1[gnRxdID1++] = SBUF1;
	  if (gnRxdID1 == 2)                         // 檢查字節(jié)是否接收完畢,接收完則為下次接收做好準(zhǔn)備
	  {        
        SetRxd1OK();                             // 重新初始化同步字節(jié)檢測標(biāo)志和串口接收緩沖區(qū)索引
		if (gbStarted && gbTestOver)             // 當(dāng)測試進(jìn)程結(jié)束,且用戶尚未按下停止鍵時(shí),不更新流量顯示值
		  return;
        nRes = gnRxdBuf1[0];                     // 先計(jì)算測量值
		nRes = nRes*256 + gnRxdBuf1[1];
        if (gnRxdBuf1[0] & 0x80)                 // 如果測量值為負(fù),則乘以-1轉(zhuǎn)換為正數(shù)
          nRes = 0;
        gnLeakRes += nRes;                       // 對流量值濾波(平均值濾波)
		nLeakCnt--;
		if (nLeakCnt == 0)
		{
		  nLeakCnt = LEAK_SAMPLE_NUMS;           // 重新準(zhǔn)備計(jì)數(shù)初值
		  if (gbStarted)                         // 僅當(dāng)充氣和測試時(shí)才顯示流量值,停止時(shí)顯示為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;                // 數(shù)字量轉(zhuǎn)換為工程量
				#else
				gnLeakRes /= 128;
				#endif
				break;
			  }
			}
			if (i == 4)                          // 如果測量值超出了最大流量修正值,則系數(shù)默認(rèn)為1
			{
			  gnLeakRes *= 100;                  // 乘以系數(shù)1
			  #ifdef  RIDEN_A10
              gnLeakRes /= 896;                  // 數(shù)字量轉(zhuǎn)換為工程量(A50=128,A10=128*7=896)
			  #else
			  gnLeakRes /= 128;
			  #endif
            }
          }
		  else
		    gnLeakRes = 0;
          EA=0;
          gnLeakGet = gnLeakRes;
          EA =1;
        }
	  }
	}
	else                                         // 同步字節(jié)還未接收完畢,繼續(xù)檢測
	{
      if (SBUF1 == 0x7F)                         // 如果是同步字節(jié),則設(shè)置相應(yīng)的同步字節(jié)接收到標(biāo)志
      {
	    if (gbSyncOneOK1)
		  gbSyncTwoOK1 = TRUE;
		else
		  gbSyncOneOK1 = TRUE;
	  }
	  else                                       // 接收到的字節(jié)既非同步字節(jié)又非正常的測量數(shù)據(jù),舍棄重來。
		SetRxd1OK();                             // 重新初始化同步字節(jié)檢測標(biāo)志和串口接收緩沖區(qū)索引
	}
  }
  else
    SCON1 &= ~0x02;                              // 清除發(fā)送中斷標(biāo)志,允許下次接收數(shù)據(jù)    
}

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

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

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

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

  // 僅當(dāng)進(jìn)入測試畫面后才進(jìn)行壓力調(diào)節(jié)
  if (gnCntAdjust-- != 0)
    return;
  gnCntAdjust = ADJUST_WAIT;

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


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

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区三区在线播放| 久久精品国产精品青草| 国产精品久久久久三级| 久久久久久**毛片大全| 国产在线观看一区二区| 亚洲不卡av一区二区三区| 成人欧美一区二区三区| 97se亚洲国产综合在线| 成人精品鲁一区一区二区| 欧美男男青年gay1069videost| 午夜视频在线观看一区二区| 欧美精品第1页| 欧美性感一区二区三区| 亚洲综合激情网| 一区二区免费看| 免费看日韩a级影片| 国产福利一区二区三区视频在线 | 国产精品久久久久影院老司 | 亚洲激情在线播放| 亚洲欧洲综合另类在线| 亚洲一二三四在线| 秋霞电影一区二区| 极品美女销魂一区二区三区| 国产精品88av| 色综合网站在线| 91精品国产色综合久久| 欧美精品一区二区三区蜜桃视频| 久久久久久电影| 亚洲乱码国产乱码精品精小说| 亚洲自拍都市欧美小说| 日韩福利视频网| 国产精品一区二区免费不卡| 99精品热视频| 在线电影一区二区三区| 久久久久久一级片| 国产日产亚洲精品系列| 五月激情丁香一区二区三区| 国产午夜久久久久| 亚洲人成在线播放网站岛国| 五月天精品一区二区三区| 精品一区二区三区免费| 91影院在线观看| 欧美一级欧美一级在线播放| 欧美激情一区二区在线| 亚洲妇熟xx妇色黄| 国产精品一区不卡| 欧美综合久久久| 国产亚洲午夜高清国产拍精品| 亚洲欧美另类综合偷拍| 久久99国产精品免费| 色综合久久久久| 日韩精品资源二区在线| 亚洲精品精品亚洲| 国产精品综合二区| 欧美性xxxxx极品少妇| 国产日本一区二区| 香蕉av福利精品导航| 国产欧美一区在线| 在线亚洲欧美专区二区| 亚洲天堂精品在线观看| 日韩中文字幕亚洲一区二区va在线| 韩国av一区二区三区四区| 欧美在线观看你懂的| 久久久精品国产99久久精品芒果| 亚洲一区二区三区视频在线播放 | 综合久久一区二区三区| 麻豆精品视频在线| 欧美亚男人的天堂| 国产精品国产a| 狠狠色丁香久久婷婷综| 欧美日本不卡视频| 一区二区三区波多野结衣在线观看| 国产一区在线观看麻豆| 日韩视频免费观看高清完整版| 亚洲欧美日韩一区二区| 成人久久18免费网站麻豆| 国产成人av资源| 日韩高清不卡一区二区三区| 91网站最新网址| 中文字幕欧美国产| 精品在线免费视频| 91精品国产欧美一区二区18 | 国产在线一区二区综合免费视频| 欧美高清视频www夜色资源网| 国产精品久久久99| 国产成人午夜视频| 久久一留热品黄| 美女网站在线免费欧美精品| 6080yy午夜一二三区久久| 洋洋成人永久网站入口| 色婷婷av一区二区三区软件| 国产精品久久久久久久久快鸭| 国产电影一区在线| 国产亚洲综合色| 国产一区二区三区久久久| 日韩欧美区一区二| 美日韩一区二区三区| 日韩午夜电影在线观看| 日本系列欧美系列| 欧美一区二区精美| 青青草精品视频| 日韩视频一区二区三区在线播放| 日韩经典中文字幕一区| 91精品欧美久久久久久动漫| 男人的j进女人的j一区| 日韩午夜激情视频| 韩国精品主播一区二区在线观看 | 国产三级一区二区| 国产精品系列在线播放| 国产女同互慰高潮91漫画| 在线电影欧美成精品| 日韩在线一二三区| 91精品国产色综合久久不卡蜜臀| 首页亚洲欧美制服丝腿| 精品免费日韩av| 国产一区二区三区蝌蚪| 中文在线免费一区三区高中清不卡| 粉嫩av亚洲一区二区图片| 日韩一区在线看| 精品婷婷伊人一区三区三| 午夜伊人狠狠久久| 日韩亚洲欧美中文三级| 国产麻豆成人传媒免费观看| 国产精品久久午夜| 欧美亚洲国产怡红院影院| 日本欧美大码aⅴ在线播放| 2024国产精品| www.欧美精品一二区| 亚洲女同女同女同女同女同69| 欧美三级电影网站| 蜜臀av一区二区在线免费观看| 久久久三级国产网站| 91蜜桃网址入口| 日韩电影免费在线看| 国产亚洲短视频| 色婷婷久久久亚洲一区二区三区| 午夜激情一区二区| 久久一区二区视频| 色婷婷狠狠综合| 蜜臀91精品一区二区三区 | 奇米精品一区二区三区在线观看| 久久综合九色综合97婷婷| 99视频精品全部免费在线| 日韩av不卡一区二区| 国产女人18毛片水真多成人如厕 | 成人av在线资源网站| 性久久久久久久久| 国产欧美精品一区二区色综合朱莉| 色综合久久久久久久| 51久久夜色精品国产麻豆| 国产成人一级电影| 亚洲自拍都市欧美小说| 2023国产精品自拍| 欧美日韩免费观看一区二区三区| 精品一区二区三区在线播放| 亚洲精品日韩一| 久久精品亚洲国产奇米99| 欧美日韩成人一区二区| 国产91丝袜在线播放0| 天天色综合天天| 国产精品短视频| www日韩大片| 在线不卡欧美精品一区二区三区| 岛国一区二区三区| 免费三级欧美电影| 亚洲精品国产高清久久伦理二区| xnxx国产精品| 欧美一区三区四区| 欧美性做爰猛烈叫床潮| 成人av资源在线| 国产一区二区三区久久久| 午夜一区二区三区视频| 亚洲视频综合在线| 国产日韩欧美一区二区三区综合| 欧美天堂亚洲电影院在线播放| 国产99久久精品| 黄色精品一二区| 蜜桃一区二区三区在线观看| 亚洲一区精品在线| 亚洲少妇30p| 日本一区二区三区电影| 精品精品欲导航| 91精品国产福利| 欧美日韩一区不卡| 欧美影院精品一区| 91在线看国产| 成人av资源站| 成人免费av资源| 国产一区二区三区四区五区入口| 日本vs亚洲vs韩国一区三区二区 | 午夜国产精品一区| 一区二区三区在线视频观看| 国产精品嫩草99a| 久久精品视频免费| 久久精品人人做| 日本一区二区免费在线观看视频| 日韩精品影音先锋| 精品理论电影在线| 欧美精品一区二区在线播放| 2023国产精品自拍|