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

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

?? mcuunit.c

?? 一個完整的個人產品開發源代碼,包括對單片機STC12C5410的編程(含內部AD采樣、自創的內部Flash編程源碼等)、LCD1602的驅動編程等。
?? C
?? 第 1 頁 / 共 4 頁
字號:
** 其它說明:要顯示的數據及其符號(正或負)存放在gnDisData結構的數組中。
**
** 作  者: 羅建
** 日  期: 2007年09月20日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年10月29日
** 變    化:將原第四個顯示值由通道平均值改為了通道最大值。
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void DisLCD(void)
{
  INT8U  i;

  // 轉換測試數據及其平均值到LCD顯示緩沖區中
  for (i=0;i<3;i++)
  {
    gnDisData[i] = gnADData[i].Word - gnBaseVal[i].Word;
	DataToLCDBuf(gnDisData[i], i);         
  }
  // 2007.10.29,將原通道平均值改為了通道最大值
  gnDisData[3] = gnDisData[0];
  if (gnDisData[3] < gnDisData[1])
    gnDisData[3] = gnDisData[1];
  if (gnDisData[3] < gnDisData[2])
    gnDisData[3] = gnDisData[2];
  // gnDisData[3] = (gnDisData[0] + gnDisData[1] + gnDisData[2]) / 3;
  /////////////
  DataToLCDBuf(gnDisData[3], 3);

  DisplayListChar(0x00, 0, 8, gnLcdBuf[0]);// 顯示通道1的測試數據
  DisplayListChar(0x08, 0, 8, gnLcdBuf[1]);// 顯示通道2的測試數據
  DisplayListChar(0x00, 1, 8, gnLcdBuf[2]);// 顯示通道3的測試數據
  DisplayListChar(0x08, 1, 8, gnLcdBuf[3]);// 顯示通道平均值  
  gbClring = FALSE;
  gbDisInfo = FALSE;
}

// ------------------------------------------------------------------------------------------------------																										
/********************************************************************************************************
** 函數名稱: ClrLCD
** 功能描述: 清除LCD顯示內容(顯示0.00mm)。
** 輸  入: 無
** 輸  出: 無
** 全局變量: gbClring>>>>>>>>>>>指示當前是否正處于清除LCD顯示狀態,0~否,1~是;
**           gbDisInfo>>>>>>>>>>指示當前是否正在顯示INFO字符信息,0~否,1~是;
**           gnDisData[]>>>>>>>>存放要在LCD上顯示及要發送給PC的前三個測量通道及其平均值的測量數據;
**           gnLcdBuf[]>>>>>>>>>代表四組LCD顯示緩沖區內容(如:2.35mm)。
** 全局常量:無
** 調用模塊: DataToLCDBuf()>>>>>把一個整型數據按個、十、百進行分解,再轉換為對應數字的ASCII碼存放到LCD顯
**                              示緩沖區中;
**           DisplayListChar()>>在LCD顯示屏的指定位置處顯示一串字符。
** 其它說明:無
**
** 作  者: 羅建
** 日  期: 2007年09月20日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void ClrLCD(void)
{
  INT8U i;

  for (i=0;i<4;i++)
  {
	gnDisData[i] = 0;
    DataToLCDBuf(gnDisData[i], i);
  }
  DisplayListChar(0x00, 0, 8, gnLcdBuf[0]);// 顯示通道1的測試數據
  DisplayListChar(0x08, 0, 8, gnLcdBuf[1]);// 顯示通道2的測試數據
  DisplayListChar(0x00, 1, 8, gnLcdBuf[2]);// 顯示通道3的測試數據
  DisplayListChar(0x08, 1, 8, gnLcdBuf[3]);// 顯示通道平均值  
  gbClring = TRUE;
  gbDisInfo = FALSE;
}

// ------------------------------------------------------------------------------------------------------																										
/********************************************************************************************************
** 函數名稱: DoneKey
** 功能描述: 檢查是否有按鍵,如有則進行處理。
** 輸  入: 無
** 輸  出: 無
** 全局變量: gbTimeOver>>>>>>>>>指示規定的定時間隔時間時否到,0~未到,1~已到;
**           gbDoKeep>>>>>>>>>>>指示是否保持當前顯示值不變,0~否,1~是;
**           gbDoTest>>>>>>>>>>>指示是否開始測試,0~否,1~是;
**           gnKeyCnt>>>>>>>>>>>按鍵檢測間隔計數器。
** 全局常量:無
** 調用模塊: 無
** 其它說明:按鍵檢測間隔為250ms,有抖動消除功能。
**
** 作  者: 羅建
** 日  期: 2007年07月29日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年09月20日(增加對功能鍵的處理代碼,包括測量、清零和校準)
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void DoneKey(void)
{
  INT8U i;

  gnKeyCnt--;
  if (gnKeyCnt == 2)                             // 消除抖動(20ms延時)
    P1 |= 0xC0;
  else if (gnKeyCnt == 0)						 // 開始檢測按鍵
  {
    gnKeyCnt = KEY_WAIT;                         // 準備下一次鍵檢測延時    
	if ((SW_CLR == 0) && (SW_TEST == 0))		 // 檢查用戶是否需要進行校準
	{
      if (gbDisInfo)
        return;
      if (!gbBaseWait)                           // 如果同時按下清零鍵和測試鍵,則準備采集數據
	  {
	    gbBaseWait = TRUE;						 // 開始計時
	    gnBaseCnt = BASE_WAIT;					 // 計時2秒鐘
	    DisplayListChar(0x00, 0, 16, INFO[0]);   // 顯示"Ready to adjust,"
        DisplayListChar(0x00, 1, 16, INFO[1]);   // 顯示"   Waiting...   "
	  }
	  else                                       // 如果同時按下清零鍵和測試鍵并保持2秒,則采集一次數據,
	  {											 // 并作為基準數據存儲在EEPROM中。
	    gnBaseCnt--;							 // 計數
	    if (gnBaseCnt == 0)						 // 2秒計時到則保存數據
	    {
	      gbBaseWait = FALSE;
	      DoneADC();                             // 采集一次數據
		  for (i=0;i<3;i++)					     // 保存基準數據至內存和EEPROM中
		    gnBaseVal[i].Word = gnADData[i].Word;
		  SaveBase();
		  DisplayListChar(0x00, 0, 16, INFO[2]); // 顯示"   Adjust OK!   "
          DisplayListChar(0x00, 1, 16, INFO[3]); // 顯示"Press CLEAR key."
          gbDisInfo = TRUE;
          gbClring = FALSE;
          DelayXMS(1000);
		}
      }
	}
	else                                         // 只有一個鍵按下
	{
	  if (gbBaseWait || (SW_CLR == 0))           // 清零鍵按下或取消了校準
      {
        gbBaseWait = FALSE;                      // 取消校準
        ClrLCD();							     // LCD顯示為零
	  }
	  else if (SW_TEST == 0)
	  {
		if (gbClring)							 // 檢查數據是否已清除,是則采集一次數據并顯示
	    {	    
		  DoneADC();
		  DisLCD();
	    }
	  }
	}
  }
}

// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: T0_ISR
** 功能描述: T0定時器中斷服務程序(默認為10ms)。
** 輸  入: 無
** 輸  出: 無
** 全局變量: gbTimeOver>>指示規定的定時間隔時間時否到,0~未到,1~已到。
** 全局常量:無
** 調用模塊: 無
** 其它說明:本模塊實現了T0定時精度的兩重補償。
**           1)第一重補償是將上一次因中斷響應延時造成多計的一部分脈沖數(存于T0中)加在下一次T0定時初值中
**           ,使定時器少計數T0個脈沖。
**           2)第二重補償是考慮到晶振的振蕩精度不足,于是加了一個補償值T0_COMP(可正可負),具體值需實驗
**           確定,且不同的晶振和單片機都有可能不同。如果對精度要求不高,可以將T0_COMP設置為0,即不補償。
**           如果單片機計時變慢,則T0_COMP取值為正,否則為負。T0_COMP的簡單確定方法如下:
**           每T0_TIMER定時間隔內補償(T0_COMP*12*TSYS)秒,假設單片機設置的充氣時間為t1,用計數器計下實際的
**           充氣時間t2,為了對Δt=t2-t1進行補償,有Δt=t1*1000/T0_TIMER * (T0_COMP*12*TSYS),則補償量為
**             T0_COMP = Δt * T0_TIMER / t1 / 12000 / TSYS
**                     = Δt * T0_TIMER * FSYS / t1 / 12000
**                     = (t2 - t1) * T0_TIMER * FSYS / t1 / 12000
**           比如:設t1=10s, 測得t2=11.321s, 則
**             T0_COMP = (11.321 - 10) * 10 * 22118400 / 10 / 12000
**                     = 2435
**           又比如:設t1=20s,測得t2=19.992s,則
**             T0_COMP = (19.992 - 20) * 10 * 22118400 / 20 / 12000
**                     = -7
**
** 作  者: 羅建
** 日  期: 2006年09月22日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void T0_ISR(void) interrupt 1
{
  TWordType T0Word;

  TR0 = EA = FALSE;
  T0Word.Word    = T0_CONST + T0_COMP + TL0;
  T0Word.Byte[0] = T0Word.Byte[0] + TH0;
  TH0 = T0Word.Byte[0];
  TL0 = T0Word.Byte[1];
  EA = TR0 = TRUE;
  gbTimeOver = TRUE;
}

// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: SER_ISR
** 功能描述: 串行接口中斷服務程序(主要針對數據發送)。
** 輸  入: 無
** 輸  出: 無
** 全局變量: gbIsTxHeadOK>>>>>>>指示是否已將幀頭全部發送至上位機,0~否,1~是;
**           gbIsTxDataOK>>>>>>>指示是否已將幀數據全部發送至上位機,0~否,1~是;
**           gnTxBuf>>>>>>>>>>>>串行接口發送緩沖區(不含幀頭及校驗和)。
** 全局常量:無
** 調用模塊: 無
** 其它說明:
**
** 作  者: 羅建
** 日  期: 2007年07月29日
**-------------------------------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服视频三区第一页精品| 精品久久五月天| 欧美v日韩v国产v| 《视频一区视频二区| 日韩电影在线观看电影| 91影院在线免费观看| 日韩免费视频线观看| 亚洲一区在线看| 国产白丝精品91爽爽久久| 91精品国产手机| 亚洲永久精品国产| 成人中文字幕合集| 久久久久久久av麻豆果冻| 青椒成人免费视频| 欧美日韩在线观看一区二区 | 亚洲二区视频在线| 成人精品高清在线| 久久这里只有精品6| 亚洲成人av一区二区| 色综合中文字幕国产| 国产精品美女久久久久久久| 国内欧美视频一区二区| 日韩精品一区二区三区四区视频| 亚洲福利国产精品| 欧美日韩免费电影| 午夜国产精品一区| 欧美人伦禁忌dvd放荡欲情| 亚洲美女淫视频| 欧美一区二区三区在线电影| 亚洲图片自拍偷拍| 欧美日韩激情一区二区三区| 亚洲国产视频在线| 欧美日韩一区二区三区在线| 亚洲成人免费电影| 欧美日韩免费视频| 日韩影院精彩在线| 欧美va在线播放| 国产精品资源站在线| 2021久久国产精品不只是精品| 国内精品嫩模私拍在线| 国产丝袜在线精品| 97久久超碰国产精品| 亚洲色图丝袜美腿| 欧美男同性恋视频网站| 日韩专区欧美专区| 亚洲精品一区二区三区影院 | 欧美精品一区二区精品网| 美女视频黄a大片欧美| 精品久久久久久久久久久久包黑料| 久久国产福利国产秒拍| 国产亚洲欧洲一区高清在线观看| 国产乱码字幕精品高清av| 国产精品乱码妇女bbbb| 色诱亚洲精品久久久久久| 亚洲综合小说图片| 日韩视频国产视频| 成人黄色电影在线| 亚洲午夜影视影院在线观看| 欧美一区二区福利视频| 波多野结衣在线aⅴ中文字幕不卡| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产剧情一区二区三区| 亚洲私人影院在线观看| 欧美挠脚心视频网站| 国内精品伊人久久久久av一坑| 国产精品麻豆久久久| 精品视频免费看| 成人一二三区视频| 亚洲成人自拍偷拍| 国产日韩欧美高清在线| 欧美丝袜第三区| 国产精品影音先锋| 亚洲午夜免费福利视频| 国产亚洲精品超碰| 欧美日韩不卡一区二区| 国产成人亚洲精品狼色在线| 亚洲午夜在线视频| 亚洲国产成人午夜在线一区| 欧美三区在线观看| 国产 日韩 欧美大片| 手机精品视频在线观看| 中文字幕日韩一区| 久久婷婷国产综合国色天香| 欧美伊人久久大香线蕉综合69| 成人av免费在线播放| 日本aⅴ亚洲精品中文乱码| 国产精品三级视频| 欧美大片国产精品| 色久综合一二码| 国产成人综合视频| 精品一区二区在线免费观看| 一区二区三区在线观看国产| 欧美激情一区二区三区全黄| 日韩一级大片在线| 色老汉一区二区三区| av激情成人网| 国产麻豆日韩欧美久久| 秋霞午夜鲁丝一区二区老狼| 亚洲国产精品一区二区www| 国产精品女主播av| 国产视频一区在线观看| 久久久亚洲精品石原莉奈| 91精品国产美女浴室洗澡无遮挡| 色狠狠色狠狠综合| 色av成人天堂桃色av| 99久久精品国产观看| 激情五月播播久久久精品| 看片的网站亚洲| 久久99精品一区二区三区三区| 五月综合激情婷婷六月色窝| 亚洲一区二区在线观看视频| 一区二区三区欧美亚洲| 亚洲精品久久久蜜桃| 亚洲一区二区五区| 亚洲一二三四区不卡| 亚洲一区二三区| 三级精品在线观看| 蜜桃av一区二区三区| 黄色资源网久久资源365| 蜜桃av一区二区三区电影| 久久91精品国产91久久小草| 久久国产视频网| 国产精品中文有码| 成人精品小蝌蚪| 色综合天天综合狠狠| 91久久奴性调教| 欧美精品乱码久久久久久| 91精品综合久久久久久| 精品国产91乱码一区二区三区| 久久综合成人精品亚洲另类欧美| 国产日韩精品视频一区| 亚洲欧美欧美一区二区三区| 一级中文字幕一区二区| 午夜精品成人在线| 精品一区二区三区在线播放| 国产麻豆视频精品| 成人av免费在线观看| 欧美在线视频你懂得| 日韩一区二区精品葵司在线| 久久九九99视频| 一区二区在线免费观看| 麻豆国产91在线播放| 成人高清免费观看| 欧美午夜视频网站| 26uuu国产在线精品一区二区| 中文字幕高清不卡| 蜜桃av一区二区三区电影| 成人黄色大片在线观看| 欧美三级视频在线| 久久久久久久av麻豆果冻| 亚洲你懂的在线视频| 久久精品国产澳门| 色综合婷婷久久| 久久先锋影音av鲁色资源网| 樱桃国产成人精品视频| 国产呦精品一区二区三区网站| 成人av在线网站| 日韩欧美国产一区二区三区| 国产精品美女视频| 麻豆精品视频在线观看免费| 色综合久久久久久久| 26uuu精品一区二区| 亚洲一区二区五区| 成人激情午夜影院| 337p粉嫩大胆色噜噜噜噜亚洲| 怡红院av一区二区三区| 国产成人免费av在线| 欧美顶级少妇做爰| 中文字幕一区在线观看视频| 麻豆精品一区二区三区| 欧美探花视频资源| 国产精品成人一区二区艾草| 男女激情视频一区| 欧美午夜电影网| 国产精品的网站| 国产麻豆精品在线| 制服丝袜成人动漫| 亚洲自拍偷拍综合| 一本色道**综合亚洲精品蜜桃冫| 欧美成人一区二区三区片免费 | 欧美揉bbbbb揉bbbbb| 久久久亚洲午夜电影| 秋霞av亚洲一区二区三| 在线免费观看日本一区| 国产精品国产三级国产普通话三级 | 亚洲欧美偷拍三级| 国产精品羞羞答答xxdd| 日韩欧美一级二级三级| 天堂av在线一区| 欧美性猛片xxxx免费看久爱| 亚洲色图清纯唯美| 99视频精品在线| 中文字幕高清不卡| 成人免费视频视频在线观看免费| 精品久久久久久久人人人人传媒| 日本v片在线高清不卡在线观看| 欧美日韩另类国产亚洲欧美一级| 一区二区在线看| 欧美性高清videossexo| 亚洲国产精品久久久男人的天堂 |