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

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

?? mcuunit.c

?? 一個完整的個人產品開發源代碼,包括對單片機STC12C5410的編程(含內部AD采樣、自創的內部Flash編程源碼等)、LCD1602的驅動編程等。
?? C
?? 第 1 頁 / 共 4 頁
字號:
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void SER_ISR(void) interrupt 4
{
  if (RI)
    RI = FALSE;                                  // 允許下次接收數據
  else if (TI)
  {
    TI = FALSE;
    if (!gbIsTxHeadOK)
    {
      gbIsTxHeadOK = TRUE;                       // 幀頭已發送完畢
      gnTxCnt = 0;                               // 準備發送數據
      gnCrc = 0;                                 // 準備計算校驗和
      SBUF = 0xFF;                               // 發送第二個幀頭
    }
    else if (!gbIsTxDataOK)
    {
      if (gnTxCnt > 8)                           // 檢查數據是否發送完
      {
        gbIsTxDataOK = TRUE;
        SBUF = gnCrc;                            // 發送校驗和
      }
      else
      {
        gnCrc = gnCrc^gnTxBuf[gnTxCnt];          // 計算校驗和
        SBUF = gnTxBuf[gnTxCnt];                 // 發送緩沖區中的數據
      }
      gnTxCnt++;                                 // 準備發送下一個數據
    }
	else
	  gbIsTxBusyOK = FALSE;						 // 串口發送緩沖區處于空閑狀態
  }
}

// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: SysInit
** 功能描述: 儀器上電時,對系統全局變量、特殊功能寄存器、定時器、串行口及中斷進行初始化。
** 輸  入: 無
** 輸  出: 無
** 全局變量: gnKeyCnt>>>>>>>>>>>按鍵檢測間隔計數器;
**           gnADData[]>>>>>>>>>存放前三個測量通道及其平均值的工程量結果;
**           gnLcdBuf[]>>>>>>>>>LCD顯示緩沖區。
** 全局常量:無
** 調用模塊: 無
** 其它說明:無
**
** 作  者: 羅建
** 日  期: 2007年06月29日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年07月03日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年07月05日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年07月29日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年09月20日(P3.2=OUT1、P3.3=OUT2默認設為高電平)
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void SysInit(void)
{
  INT8U i;

  P3 = 0x0F;                                     // TXD和RXD必須先設為高電平才能正常通訊
  gnKeyCnt = KEY_WAIT;

  /* LCD顯示緩沖區初始化 */
  for (i=0;i<4;i++)
  {
    gnLcdBuf[i][0] = ' ';                        // 空格
    gnLcdBuf[i][2] = '.';                        // 小數點
    gnLcdBuf[i][5] = 'm';                        // 單位:mm
    gnLcdBuf[i][6] = 'm';                        // 單位:mm
    gnLcdBuf[i][7] = ' ';                        // 空格
    gnADData[i].Word = 0;                        // 清零
  }

  /* 配置ADC模塊 */
  P1M0 = 0x0F;                                   // P1.0~P1.3作為ADC輸入(開漏),P1.4~P1.7作為通用IO(準雙向口)
  P1M1 = 0x0F;
  ADC_CONTR = 0x80;                              // 打開ADC電源,每通道轉換速度約為12KHz(約80us)

  /* 配置串行通訊口 */
  /***************************************************************
  PCON地址為 ,復位值為
  SMOD  ---  ---  ---  GF1  GF0  PD  IDL                  16進制值
  0     0    0    0    0    0    0   0                        0x00
  ****************************************************************
  SCON地址為 ,復位值為
  SM0   SM1  SM2  REN  TB8  RB8  TI  RI                   16進制值
    0     1    0    0    0    0   0   0                       0x40
  ***************************************************************/
  PCON = 0x00;                                   // SMOD=1,如果SMOD=0,則波特率將減半
  SCON = 0x40;                                   // 串行口工作于方式1,10位異步收發,允許接收

  /* 配置T0和T1 */
  /***************************************************************
  TMOD地址為89H,設定值為
  GATE1  C/T1  M1  M0  GATE0  C/T0  M1  M0                16進制值
      0     0   1   0      0     0   0   1                    0x21
  ****************************************************************
  AUXR地址為8EH,設定值為
  T0x12  T1x12  UART_M0x6  EADCI  ESPI  ELVDI  -  -       16進制值
      0      0          0      0     0      0  0  0           0x00
  ****************************************************************
  TCON地址為88H,設定值為
  TF1  TR1  TF0  TR0  IE1  IT1  IE0  IT0                  16進制值
    0    1    0    1    0    0    0    0                      0x50
  ****************************************************************
  波特率計算
  12T模式:Reload = 256 - INT(Fosc/Baud0/32/12 + 0.5);
  1T模式: Reload = 256 - INT(Fosc/Baud0/32 + 0.5).
  式中,INT()表示取整操作,即取消小數點,加0.5用于四舍五入;
        Fosc為晶振頻率;
        Baud0為標準波特率。
  ***************************************************************/
  TH0  = T0_CONST / 256;                         // 設置T0定時初值(10ms)
  TL0  = T0_CONST % 256;
  TH1  = T1_CONST;                               // 設置T1定時初值(19200bps)
  TL1  = T1_CONST;
  AUXR = 0x00;                                   // T0和T1采用12T模式
  TMOD = 0x21;                                   // 配置T0定時,T1自動重裝載為UART提供波特率
  TCON = 0x50;                                   // 啟動T0、T1定時

  /* 配置中斷允許控制寄存器 */
  /***************************************************************
  IE地址為 ,復位值為
  EA  ---  ET2  ES  ET1  EX1  ET0  EX0                    16進制值
   1    0    0   1    0    0    1    0                        0x92
  ***************************************************************/
  IE     = 0x92;                                 // 開放相關中斷
}

// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: main
** 功能描述: 主程序,負責檢測按鍵,并根據按鍵情況進行數據處理,同時將數據發送至PC。
** 輸  入: 無
** 輸  出: 無
** 全局變量: gbTimeOver>>>>>>>>>指示規定的定時間隔時間時否到,0~未到,1~已到;
**           gbIsTxBusyOK>>>>>>>指示是否串口發送緩沖區處于忙狀態,0~否,1~是。
** 全局常量:LOGO[]>>>>>>>>>>>>>開機顯示在LCD屏上的兩行字符串。
** 調用模塊: SysInit()>>>>>>>>>>儀器上電初始化;
**           LCDInit()>>>>>>>>>>LCD上電初始化;
**           LoadBase()>>>>>>>>>從STC5408AD芯片內部的EEPROM中讀取三個測量通道的基準值;
**           WriteCmdToLCD()>>>>向LCD顯示屏中寫入命令;
**           DisplayListChar()>>在LCD顯示屏的指定位置處顯示一串字符;
**           SendDataToPC()>>>>>通過RS-232串口發送測量數據到上位機;
**           DoneKey()>>>>>>>>>>檢測用戶按鍵并處理。
** 其它說明:
**
** 作  者: 羅建
** 日  期: 2007年06月29日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年07月03日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年07月05日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年07月29日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年09月20日(將ADC過程集中到DoneKey子程序中進行處理,數據發送也是自發進行的,該版改變很大)
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void main(void)
{
  bit       bLogo;                               // 儀表在上電時,該標志為TRUE,指示當前正在顯示LOGO標志
  INT16U    nTimeCnt;                            // 代表LOGO信息顯示時間對應的系統定時間隔次數,默認為200,代表2秒

  /* 初始化操作 */
  SysInit();                                     // 初始化系統定時器等片內外設
  LCDInit();                                     // 初始化LCD
  LoadBase();                                    // 從EEPROM中載入基準測量值

  /* LOGO顯示 */
  DisplayListChar(0, 0, 16, LOGO[0]);            // 顯示LOGO信息并保持3秒
  DisplayListChar(0, 1, 16, LOGO[1]);
  bLogo = TRUE;
  nTimeCnt = LOGO_WAIT;
  while (bLogo)                                  // 檢查是否還處于LOGO信息顯示狀態
  {
    if (gbTimeOver)                              // T0每10ms定時一次
    {
      gbTimeOver = FALSE;
      nTimeCnt--;
      if (nTimeCnt == 0)
        bLogo = FALSE;
    }
  }

  /* 顯示清零 */
  WriteCmdToLCD(0x01, TRUE);                     // 顯示清屏(2007.07.05,增加)
  ClrLCD();										 // 顯示0.00mm

  /* 主程序循環 */
  while (TRUE)
  {
    if (gbTimeOver)								 // 每隔10ms響應一次
	{
	  gbTimeOver = FALSE;
	  DoneKey();                                 // 處理用戶按鍵操作
	  if (!gbIsTxBusyOK && !TI)				     // 待發送緩沖區空時,向PC發送一次數據
	  {
	    gbIsTxBusyOK = TRUE;
		SendDataToPC();
	  }
	}	
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本乱人伦aⅴ精品| 久久精品这里都是精品| 中文字幕一区视频| 日本亚洲电影天堂| 在线播放视频一区| 亚洲国产精品久久艾草纯爱| 成人蜜臀av电影| 中文字幕一区二区三区精华液| 经典三级视频一区| 精品国产露脸精彩对白| 精品在线一区二区三区| 欧美激情在线看| 欧美日韩第一区日日骚| 专区另类欧美日韩| 色婷婷久久一区二区三区麻豆| 欧美国产日韩精品免费观看| 国产一区二区三区久久久| 国产三级三级三级精品8ⅰ区| 国产一区二区在线影院| 中文字幕欧美国产| 色综合视频一区二区三区高清| 亚洲综合激情网| 欧美一级理论性理论a| 国产精品88888| 亚洲日韩欧美一区二区在线| 色婷婷av一区二区三区大白胸| 成人av在线资源网站| 日韩一区二区免费高清| 久久99国产精品久久| 中文字幕一区视频| 91精品国产全国免费观看 | 91国在线观看| 日本欧美一区二区在线观看| 久久久91精品国产一区二区精品| 色综合色综合色综合色综合色综合| 石原莉奈在线亚洲二区| 国产精品美女久久久久高潮| 欧美一卡二卡三卡四卡| 99久久伊人精品| 国产一区久久久| 日韩**一区毛片| 亚洲自拍偷拍av| 亚洲国产岛国毛片在线| 精品乱人伦小说| 7777精品伊人久久久大香线蕉的 | 久久精品免费观看| 亚洲一二三专区| 一区二区三区四区不卡在线| 欧美激情中文字幕| 国产精品女同互慰在线看| 精品国产a毛片| 精品久久国产老人久久综合| 欧美精品久久一区二区三区| 欧美日韩精品一区二区三区蜜桃| 成人中文字幕在线| www.亚洲免费av| 97久久精品人人做人人爽50路| 成人免费毛片app| 99精品国产视频| 欧美在线观看视频一区二区三区| 99精品视频中文字幕| 91婷婷韩国欧美一区二区| 91在线国产福利| 欧美视频中文字幕| 5566中文字幕一区二区电影| 4438x成人网最大色成网站| 欧美日韩高清一区| 亚洲精品一区二区三区蜜桃下载 | 欧美精品粉嫩高潮一区二区| 91精品久久久久久久99蜜桃| 亚洲精品在线三区| 亚洲色图在线视频| 午夜激情久久久| 亚洲女爱视频在线| 亚洲国产精品成人综合| 亚洲色欲色欲www| 秋霞午夜av一区二区三区| 国产精品一区二区久久不卡| 99久久综合色| www一区二区| 午夜伦欧美伦电影理论片| 丁香天五香天堂综合| 欧美中文字幕久久| 中文无字幕一区二区三区| 亚洲高清久久久| 99精品视频在线免费观看| 精品国产区一区| 日本麻豆一区二区三区视频| 成人app下载| 国产视频一区不卡| 国模娜娜一区二区三区| 色999日韩国产欧美一区二区| 精品国产精品网麻豆系列 | 欧美日韩国产色站一区二区三区| 国产午夜久久久久| 精品制服美女久久| 欧美一级国产精品| 日韩和欧美一区二区三区| 欧美色视频在线观看| 国产精品灌醉下药二区| 丁香一区二区三区| 国产精品久久久久久久第一福利 | 色综合久久88色综合天天免费| 久久只精品国产| 国产福利91精品一区| 久久网站热最新地址| 久久99精品久久久久久久久久久久| 日韩一区二区三区av| 另类专区欧美蜜桃臀第一页| 日韩免费看的电影| 国产精品一二三四五| 国产精品久久久久三级| 色综合久久天天| 午夜av一区二区三区| 欧美一卡二卡三卡| 另类的小说在线视频另类成人小视频在线 | 精品一区在线看| 一区二区欧美国产| 在线中文字幕一区| 美日韩一区二区三区| 国产日产精品一区| 色狠狠色噜噜噜综合网| 蜜桃av一区二区三区| 亚洲日本欧美天堂| 9191精品国产综合久久久久久| 精品一区二区免费在线观看| 国产精品三级久久久久三级| 成人91在线观看| 《视频一区视频二区| 欧美视频一区二区三区四区 | 夜夜亚洲天天久久| 久久久99免费| 制服丝袜亚洲色图| 色婷婷亚洲精品| 91免费看`日韩一区二区| 亚洲综合激情网| 一区二区三区中文字幕电影| 91年精品国产| 国产69精品久久久久毛片| 日韩av网站在线观看| 亚洲男人的天堂一区二区| 日韩片之四级片| 欧美一级二级在线观看| 欧美日韩久久一区| 在线免费观看一区| 在线视频中文字幕一区二区| 成人免费视频视频在线观看免费| 久久99精品网久久| 九九**精品视频免费播放| 日韩成人精品在线| 偷拍自拍另类欧美| 日本不卡高清视频| 蜜桃传媒麻豆第一区在线观看| 午夜精品久久久久影视| 激情欧美日韩一区二区| 韩国v欧美v亚洲v日本v| 亚洲一区二区三区中文字幕在线| 高清在线观看日韩| 国产乱子伦一区二区三区国色天香 | 日韩精品乱码免费| 在线这里只有精品| 在线看国产一区| 91精品国产综合久久久久久漫画 | 欧美性大战久久久久久久蜜臀| 欧美成人官网二区| 亚洲图片自拍偷拍| 韩国在线一区二区| 欧美精品v国产精品v日韩精品| 国产精品美女视频| 国产aⅴ精品一区二区三区色成熟| 91精品婷婷国产综合久久竹菊| 最近中文字幕一区二区三区| 成人综合日日夜夜| 国产午夜久久久久| 国产在线播放一区二区三区| 欧美成人精精品一区二区频| 五月激情丁香一区二区三区| 在线观看av一区二区| 亚洲老妇xxxxxx| 欧美日韩精品福利| 日韩综合一区二区| 欧美一区二区在线观看| 美女脱光内衣内裤视频久久影院| 91麻豆精品国产91久久久使用方法| 亚洲免费观看高清完整版在线观看熊| a级高清视频欧美日韩| 亚洲男同1069视频| 91麻豆精品国产自产在线观看一区| 亚洲线精品一区二区三区| 一本到不卡精品视频在线观看| 亚洲欧美一区二区三区极速播放| 99在线热播精品免费| 午夜免费久久看| 久久久噜噜噜久噜久久综合| 91捆绑美女网站| 午夜精品国产更新| 国产精品美女久久久久久久久久久| 国产大陆精品国产| 国产精品免费免费| 在线不卡一区二区|