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

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

?? mcuunit.c

?? 一個完整的個人產品開發源代碼,包括對單片機STC12C5410的編程(含內部AD采樣、自創的內部Flash編程源碼等)、LCD1602的驅動編程等。
?? C
?? 第 1 頁 / 共 4 頁
字號:
/********************************************************************************************************
**				                                 平面度測試儀
**
**                                          版權所有 (c) 2007,羅建
**                                               保留所有權利
**
**                                                  V1.11
**
**
**-------------------------------------------------文件信息----------------------------------------------
**文   件   名: McuUnit.C
**創   建   人: 羅建
**最后修改日期: 2007年10月29日
**描        述: 源程序。
**其        它:MCU采用STC12C5408AD,外部晶振為11.0592MHz,采用OCM2X16A LCD顯示屏顯示測量數據,并通過RS-232
**              接口向上位機發送測量數據。
**
**-----------------------------------------------歷史版本信息--------------------------------------------
** 創建人: 羅建
** 版  本: V1.00
** 日 期: 2007年06月29日
** 描 述: 原始版本
**
**-------------------------------------------------------------------------------------------------------
** 修改人: 羅建
** 版  本: V1.01
** 日 期: 2007年07月03日
** 描 述: 簡化了RS-232通訊協議,簡化了常數的定義方式。
**
**-------------------------------------------------------------------------------------------------------
** 修改人: 羅建
** 版  本: V1.02
** 日 期: 2007年07月29日
** 描 述: 對部分注釋進行了調整,修改了數據發送的方式(采用中斷方式發送),增加了按鍵檢測功能,目前支持測
**         試保持和啟動測試兩個按鍵(低電平有效)。
**
**-------------------------------------------------------------------------------------------------------
** 修改人: 羅建
** 版  本: V1.1
** 日 期: 2007年09月20日
** 描 述: 本版相對于以前版本作了較大改變,主要修改了對于按鍵的處理、數據采集的時序、數據的顯示方式以及向
**         上位機傳送數據的格式等,增加了校準數據的獲取功能。
**
**-------------------------------------------------------------------------------------------------------
** 修改人: 羅建
** 版  本: V1.11
** 日 期: 2007年10月29日
** 描 述: 本版根據用戶要求,在上一版本基礎上作了少量調整,主要反應在LCD顯示的最后一個值,原來為前三個通道
**         的平均值,現改為前三個通道的最大值。
**
** 平面度測試儀的特點如下:
**         1)采用STC12C5408AD高速單片機(PDI-28和SOP-28)為MCU,可利用RS-232串行接口方便地編程和調試;
**         2)具有最多7個(本來是8個,其中一個用作基準電壓測量)10位ADC輸入通道,測量范圍:0~5V;
**         3)具有最多4個(實際只使用2個)開關量輸入通道;
**         4)具有最多2個(目前保留)開關量輸出通道,也可作為輸入使用;
**         5)用OCM2X16A LCD屏顯示測量結果(包括三個基本測量通道及三個通道的平均值)。
** 說  明:1)系統按鍵功能如下:
**           a)啟動測試按鍵,對應于電路板上的KEY1,按下后首先檢查當前LCD是否已經清零,若是則采集一次數據并
**             更新LCD屏;否則不響應。當系統校準后該鍵也不響應。
**           b)顯示清零按鍵,對應于電路板上的KEY2,按下后清除LCD的顯示(全部顯示為:0.00mm)。當系統校準后
**             必須用該鍵清除LCD顯示內容(退出校準模式)。
**           c)當同時按下測試鍵和清零鍵時,LCD將分別顯示"Ready to adjust,"(上屏)和"   Waiting...   "(下
**             屏),此時,如果保持兩鍵同時按下2秒以上,則LCD會分別顯示"   Adjust OK!   "(上屏)和
**             "Press CLEAR key."(下屏),再按一下清零鍵退出校準模式并清除LCD顯示內容;如果有任一鍵或全部
**             鍵均彈起,則LCD顯示內容將被清除。
**         2)系統上電后,將顯示一LOGO字符串,然后進入清零狀態,等待用戶操作。此時,用戶可以按一下測試鍵,
**           開始測試一下當前值,也可以同時按住測試鍵和清零鍵并保持2秒,系統將測試一次當前值,并將其作為校
**           準值存入STC12C5408AD芯片的EEPROM中,以備下次開機時使用(校準值是立即生效的)。
**         3)通訊協議(可配套“平面度測試儀上位監控軟件 V1.0”使用)
**           a)硬件接口:RS-232;
**           b)波特率:14400bps;
**           c)起始位:1位;
**           d)數據位:8位;
**           e)停止位:1位;
**           f)奇偶校驗:無;
**           g)數據格式:接收到的幀數據包含三個測量通道的測量值及其平均值,每個值用無符號的16位整型數表示。
**             要計算這些值,可以按以下公式進行:
**                 Value1 = (MSB1 * 256 + LSB1) / 100.0,單位為:mm。
**             其中,MSB1的最高位D7表示正負符號位,0表示正數,1表示負數。
**             對于開關狀態SW,用一個字節表示,每位分別表示一個開關(輸入或輸出)的狀態,格式如下:
**                 D7       D6       D5       D4       D3        D2         D1         D0
**                 輸出備用 輸出備用 OUT2     OUT1     KEY4      KEY3       清零鍵     測量鍵
**             其中,D7~D2目前未用,可作今后擴展。另外,輸出OUT1和OUT2也可作輸入用。各開關均有上拉電阻。
**           h)幀格式:0xFF,0xFF,MSB1,LSB1,MSB2,LSB2,MSB3,LSB3,MSB4,LSB4,SW,CRC
**             一幀數據由三部分組成:開頭部分是幀頭,以兩個連續的0xFF表示;中間部分依次是測量通道1、測量
**             通道2、測量通道3及三個通道的平均值和開關的狀態,測量值和平均值分別由兩個字節表示,先發高
**             字節,后發低字節;開關的狀態SW由一個字節表示;最后部分是幀校驗和,用一個字節表示。校驗和的
**             計算方法如下:
**                 CRC = MSB1^LSB1^MSB2^LSB2^MSB3^LSB3^MSB4^LSB4^SW
**             即將中間部分的9個字節全部相或,其結果作為校驗和。
**             說明:由于最大量程為5.00mm,為了采用整數來表示浮點數,將值擴大了100倍,相當于最大值為500,
**             即0x01F4,高低位字節均不可能包含0xFF。因此,幀頭以兩個0xFF表示,不會產生混淆。
**
**-----------------------------------------------當前版本修訂--------------------------------------------
** 修改人: 羅建
** 版  本: V1.11
** 日 期: 2007年10月29日
** 描 述: 本版根據用戶要求,在上一版本基礎上作了少量調整,主要反應在LCD顯示的最后一個值,原來為前三個通道
**         的平均值,現改為前三個通道的最大值。
**
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include <Intrins.h>
#include <String.h>
#include "McuUnit.h"
#include "MiscUnit.h"
#include "LCD1602Drv.h"
#include "STC12C5410AD.h"
#include "STC12C5410AD_FlashIAP.h"

// ------------------------------------------------------------------------------------------------------
/* 定義位變量 */
bit       gbClring;                              /* 指示當前是否正處于清除LCD顯示狀態,0~否,1~是 */
bit       gbDisInfo;                             /* 指示當前是否正在顯示INFO字符信息,0~否,1~是 */
bit       gbBaseWait;                            /* 指示當前是否正在進行清除與測量兩個按鍵同時按下檢測,0~否,1~是 */
bit       gbTimeOver;                            /* 指示規定的定時間隔時間時否到,0~未到,1~已到 */
bit       gbIsTxHeadOK;                          /* 指示是否已將幀頭全部發送至上位機,0~否,1~是 */
bit       gbIsTxDataOK;                          /* 指示是否已將幀數據全部發送至上位機,0~否,1~是 */
bit       gbIsTxBusyOK;                          /* 指示是否串口發送緩沖區處于忙狀態,0~否,1~是 */

// ------------------------------------------------------------------------------------------------------
/* 定義字節變量 */
INT8U     data  gnCrc;                           /* 串行接口發送數據校驗和 */
INT8U     data  gnTxCnt;                         /* 串行接口發送緩沖區指針 */
INT8U     data  gnKeyCnt;                        /* 按鍵檢測間隔計數器 */
INT8U     data  gnBaseCnt;                       /* 清除與測量兩個按鍵同時按下檢測計數器 */
INT8U     data  gnTxBuf[9];                      /* 串行接口發送緩沖區(不含幀頭及校驗和) */
INT8U     data  gnLcdBuf[4][8];                  /* 代表四組LCD顯示緩沖區內容(如:2.35mm) */

// ------------------------------------------------------------------------------------------------------
/* 定義字變量 */
INT16     data  gnDisData[4];                    /* 存放要在LCD上顯示及要發送給PC的前三個測量通道及其平均值的測量數據 */
TWordType data  gnBaseVal[3];                    /* 存放前三個測量通道的基準測量值 */
TWordType data  gnADData[3];                     /* 存放前三個測量通道的工程量結果 */

// ------------------------------------------------------------------------------------------------------
/* LOGO顯示字符數組,在上電后顯示3秒鐘 */
INT8U code LOGO[][16] = {"   Welcome to   ",
                         "ChongQingHeCheng"};
/* 當用戶執行或取消校準時顯示的字符數組 */
INT8U code INFO[][16] = {"Ready to adjust,",
                         "   Waiting...   ",
                         "   Adjust OK!   ",
                         "Press CLEAR key."};

// ------------------------------------------------------------------------------------------------------
/********************************************************************************************************
** 函數名稱: Delay1MS
** 功能描述: 延時1ms。
** 輸  入: 無
** 輸  出: 無
** 全局變量: 無
** 全局常量:無
** 調用模塊: _nop_()>>>>>>>>>>>>空指令。
** 其它說明:無
**
** 作  者: 羅建
** 日  期: 2007年09月20日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Delay1MS(void)
{
  INT8U i=11;

  while (--i != 0)
  {
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
  }
}

// ------------------------------------------------------------------------------------------------------																										
/********************************************************************************************************
** 函數名稱: DelayXMS
** 功能描述: 由軟件實現的延時子程序,參數指定要延時的毫秒數。
** 輸  入: nTime>>>>>>>>>>>>>>要延時的毫秒數。
** 輸  出: 無
** 全局變量: 無
** 全局常量:無
** 調用模塊: Delay1MS()>>>>>>>>>延時1ms子程序。
** 其它說明:無
**
** 作  者: 羅建
** 日  期: 2007年09月20日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日  期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void DelayXMS(INT16U nTime)
{
  INT16U i;

  for (i=0;i<nTime;i++)
    Delay1MS();
}

// ------------------------------------------------------------------------------------------------------																										
/********************************************************************************************************
** 函數名稱: DataToLCDBuf
** 功能描述: 把一個整型數據按個、十、百進行分解,再轉換為對應數字的ASCII碼存放到LCD顯示緩沖區中。
** 輸  入: nData>>>>>>>>>>>>>>要轉換的16位整型數,這個數應該介于-999~999之間;
**           nBufID>>>>>>>>>>>>>指定轉換后的數據存放在哪個顯示緩沖區中,nBufID取值0~3。
** 輸  出: 無
** 全局變量: gnLcdBuf[]>>>>>>>>>LCD顯示緩沖區。
** 全局常量:無
** 調用模塊: 無
** 其它說明:無
**
** 作  者: 羅建
** 日  期: 2007年07月03日
**-------------------------------------------------------------------------------------------------------
** 修 改 人: 羅建
** 日  期: 2007年07月29日(增加了千位數字的顯示功能,滿足了0~5V輸入對應0~12.5mm顯示的設計要求)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美亚洲| 国产在线观看一区二区| 蜜臀av一区二区| 懂色av一区二区三区免费观看| 欧美在线高清视频| 国产午夜亚洲精品羞羞网站| 污片在线观看一区二区| 不卡的电影网站| 精品精品国产高清一毛片一天堂| 亚洲精品乱码久久久久| 懂色一区二区三区免费观看| 日韩欧美一区二区视频| 亚洲免费观看高清| 成人激情综合网站| 国产亚洲制服色| 麻豆精品视频在线观看视频| 欧美日韩亚洲综合在线| 日韩久久一区二区| 成人精品免费视频| 久久亚洲免费视频| 久久超碰97人人做人人爱| 欧美日韩视频专区在线播放| 中文字幕一区二区三区乱码在线 | 91精品免费在线观看| 中文字幕在线观看一区| 国产精品综合av一区二区国产馆| 欧美久久久久久久久久| 亚洲成人免费视| 欧美午夜电影一区| 亚洲最大成人网4388xx| 色噜噜久久综合| 亚洲免费观看高清完整版在线| 99久久免费精品高清特色大片| 欧美激情一区在线观看| 国产白丝精品91爽爽久久| 日韩欧美亚洲一区二区| 日本亚洲一区二区| 日韩欧美资源站| 精品亚洲成a人| 久久这里只有精品6| 国产在线视频一区二区| 国产午夜精品一区二区三区嫩草| 国产91在线观看丝袜| 国产精品久久久久久久久快鸭| 波多野结衣亚洲一区| 国产精品成人网| 一本大道av一区二区在线播放| 亚洲精品欧美激情| 91精品国产麻豆| 国产美女精品人人做人人爽| 久久精品视频免费| 色综合天天综合网国产成人综合天| 亚洲精品乱码久久久久| 欧美精品丝袜久久久中文字幕| 青草国产精品久久久久久| 亚洲精品在线观| 成人午夜大片免费观看| 一区二区三区国产| 欧美电影影音先锋| 久久精品国产亚洲a| 国产精品高潮呻吟| 精品视频999| 国产精品自在在线| 一级女性全黄久久生活片免费| 在线不卡的av| 懂色av一区二区三区免费观看| 亚洲高清一区二区三区| 日韩欧美区一区二| 一道本成人在线| 免费成人小视频| 综合精品久久久| 日韩欧美第一区| 色国产综合视频| 久久99久国产精品黄毛片色诱| 成人免费在线观看入口| 中文字幕欧美一| 欧美日韩国产首页| 国产高清精品网站| 午夜影院久久久| 久久精品欧美一区二区三区不卡 | 国产在线麻豆精品观看| 亚洲婷婷综合色高清在线| 日韩欧美一二三| 色哟哟欧美精品| 另类的小说在线视频另类成人小视频在线| 国产日韩精品一区二区三区| 欧美日韩国产经典色站一区二区三区| 国产精品一级二级三级| 男女男精品视频| 亚洲永久免费av| 中日韩免费视频中文字幕| 日韩一区二区三区电影在线观看| 99久久免费视频.com| 国产剧情在线观看一区二区| 免费一级片91| 三级精品在线观看| 亚洲一区在线观看网站| 国产精品电影院| 久久久不卡影院| 日韩欧美国产一区二区在线播放| 欧美视频一区二| 91蜜桃免费观看视频| 丰满亚洲少妇av| 国产成a人亚洲精品| 精品视频999| 91亚洲大成网污www| 成人av手机在线观看| 国产成人免费视频精品含羞草妖精 | a美女胸又www黄视频久久| 麻豆freexxxx性91精品| 亚洲成国产人片在线观看| 亚洲欧美一区二区三区极速播放 | 欧美成人一级视频| 在线播放欧美女士性生活| 欧美视频一区二| 欧美日韩在线三级| 欧美日韩一区三区四区| 欧美日韩在线播| 欧美日韩国产欧美日美国产精品| 欧美伊人久久大香线蕉综合69| 99这里只有久久精品视频| 91丨九色丨蝌蚪丨老版| 色综合久久九月婷婷色综合| 色综合色综合色综合色综合色综合| 99精品久久久久久| 91麻豆国产在线观看| 91成人网在线| 欧美一区二视频| 欧美精品一区二区三区四区 | 亚洲一区二区精品3399| 亚洲成人av中文| 免费在线视频一区| 国产乱子伦一区二区三区国色天香| 国产一区二区精品久久99| 成人国产免费视频| 欧洲色大大久久| 宅男噜噜噜66一区二区66| 欧美va亚洲va国产综合| 国产偷国产偷精品高清尤物| 国产精品伦理在线| 亚洲一区二区三区国产| 日本亚洲欧美天堂免费| 国产精品亚洲视频| 欧美午夜理伦三级在线观看| 日韩视频国产视频| 国产精品久久久久久妇女6080| 亚洲香蕉伊在人在线观| 国产综合色在线视频区| 色综合久久综合网97色综合| 亚洲人成人一区二区在线观看| 成人欧美一区二区三区1314| 天使萌一区二区三区免费观看| 国产麻豆精品theporn| 91丨国产丨九色丨pron| 欧美一区二区三区影视| 国产精品久久久久影院老司| 午夜精品久久久| 国产成+人+日韩+欧美+亚洲| 欧美亚洲免费在线一区| 久久先锋影音av鲁色资源| 一区二区三区不卡视频在线观看| 免费成人美女在线观看| 91久久奴性调教| 国产日韩欧美一区二区三区乱码| 亚洲午夜一区二区三区| 国产成人免费高清| 91精品婷婷国产综合久久| 中文字幕欧美一区| 国产激情一区二区三区桃花岛亚洲| 欧美日韩激情一区二区| |精品福利一区二区三区| 精品写真视频在线观看| 欧美三级资源在线| 国产精品网站在线观看| 精品影视av免费| 欧美日韩高清一区| 一区二区三区在线观看欧美| 成人亚洲一区二区一| 精品免费日韩av| 亚洲1区2区3区视频| 99re8在线精品视频免费播放| 久久久久久久久久久久电影 | 婷婷国产v国产偷v亚洲高清| 91色porny| 中文字幕日韩精品一区| 国产精品一区二区果冻传媒| 欧美一级一区二区| 亚洲国产精品久久久久秋霞影院| 色综合久久中文综合久久97| 中文字幕日韩精品一区| av午夜一区麻豆| 国产欧美一区二区精品忘忧草| 精品一二线国产| 日韩一级视频免费观看在线| 亚洲444eee在线观看| 欧美亚洲国产bt| 亚洲国产精品久久艾草纯爱| 91国产成人在线| 亚洲男人的天堂在线aⅴ视频| 不卡的av中国片|