亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
精品欧美一区二区在线观看| 欧美日韩一区在线| 亚洲国产乱码最新视频| 久久婷婷综合激情| 欧美伊人久久久久久久久影院 | 免费观看一级特黄欧美大片| 亚洲国产精品99久久久久久久久| 精品视频在线免费| 成人av免费观看| 久久精品久久精品| 亚洲一区二区三区国产| 亚洲欧洲精品一区二区精品久久久 | 亚洲高清在线视频| 中文字幕制服丝袜一区二区三区| 日韩免费视频线观看| 精品视频在线看| 99天天综合性| 国产69精品久久久久777| 美女性感视频久久| 香蕉加勒比综合久久| 亚洲视频图片小说| 中文字幕av在线一区二区三区| 91精品国产综合久久国产大片| 白白色 亚洲乱淫| 国产精品456露脸| 国产一区二区视频在线播放| 麻豆精品视频在线| 日韩中文字幕不卡| 午夜精品爽啪视频| 亚洲自拍都市欧美小说| 亚洲少妇屁股交4| 国产精品久久久久久久久免费相片| 欧美大片拔萝卜| 日韩免费一区二区三区在线播放| 色综合久久综合网97色综合| 成人高清伦理免费影院在线观看| 国产精品白丝jk黑袜喷水| 精品一区二区三区视频| 看电视剧不卡顿的网站| 毛片基地黄久久久久久天堂| 久久精品久久综合| 国产一区二区三区蝌蚪| 国产精品一区二区久久精品爱涩| 激情av综合网| 国产九色sp调教91| 丁香六月综合激情| av男人天堂一区| 91浏览器入口在线观看| 一本久道久久综合中文字幕| 欧美最猛性xxxxx直播| 欧美性大战久久| 日韩精品一区二| 精品日韩欧美一区二区| 久久精品视频一区二区三区| 国产精品免费观看视频| 中文字幕字幕中文在线中不卡视频| 综合久久久久综合| 亚洲一级二级三级| 久久精品国产免费看久久精品| 国产永久精品大片wwwapp| 国产成人免费9x9x人网站视频| www.日韩av| 欧美日韩一本到| 日韩精品一区二区三区在线观看 | 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲免费大片在线观看| 一区二区三区丝袜| 婷婷开心激情综合| 久久99久久99小草精品免视看| 国产成人久久精品77777最新版本| jlzzjlzz国产精品久久| 欧美性猛片xxxx免费看久爱| 日韩一区二区三区在线| 国产精品水嫩水嫩| 亚洲444eee在线观看| 国模大尺度一区二区三区| 成人av电影免费在线播放| 欧美手机在线视频| 欧美成人官网二区| 一区二区三区四区亚洲| 日本欧美在线观看| 99精品在线观看视频| 91精品综合久久久久久| 欧美经典一区二区三区| 亚洲成av人影院在线观看网| 国产剧情一区二区| 欧美综合视频在线观看| 久久婷婷国产综合精品青草| 亚洲免费观看高清完整| 韩国女主播成人在线观看| 99精品久久免费看蜜臀剧情介绍| 在线不卡欧美精品一区二区三区| 国产欧美一区二区精品仙草咪| 亚洲一区二区偷拍精品| 国产精品一色哟哟哟| 欧美日韩高清一区二区三区| 国产女主播在线一区二区| 免费在线观看成人| 91社区在线播放| 久久婷婷色综合| 日韩一区欧美二区| 色呦呦网站一区| 久久品道一品道久久精品| 亚洲国产视频网站| 成人一区二区三区视频在线观看| 欧美日韩视频一区二区| 成人欧美一区二区三区视频网页 | 国产毛片精品视频| 欧美日韩成人综合| 亚洲日本护士毛茸茸| 国产精品一区二区在线观看不卡| 欧美年轻男男videosbes| 国产精品久久精品日日| 国产又黄又大久久| 欧美一区日韩一区| 亚洲高清在线视频| 日本乱码高清不卡字幕| 专区另类欧美日韩| 成人午夜免费av| 26uuu久久天堂性欧美| 国产黑丝在线一区二区三区| 欧美综合一区二区| 伊人性伊人情综合网| a亚洲天堂av| 国产精品久久久久久久久免费桃花 | 美女网站一区二区| 欧美性色黄大片| 一区二区三区加勒比av| 色婷婷久久久久swag精品| 国产精品嫩草久久久久| 国产精品一线二线三线| 久久免费国产精品| 激情综合亚洲精品| 日韩一区二区三区精品视频| 日韩精品成人一区二区三区| 欧美精品色综合| 国产日韩精品一区二区三区在线| 色婷婷香蕉在线一区二区| 不卡的电影网站| 国产精品传媒在线| 成人免费不卡视频| 国产精品欧美一区二区三区| 成人综合在线观看| 中文字幕亚洲电影| 97精品久久久久中文字幕| √…a在线天堂一区| 91小视频免费观看| 亚洲三级在线看| 欧美日韩精品系列| 日韩 欧美一区二区三区| 91精品国产高清一区二区三区| 蜜臀a∨国产成人精品| 日韩精品一区二区在线观看| 国产露脸91国语对白| 国产日韩欧美综合一区| av色综合久久天堂av综合| 一区二区三区在线视频播放| 欧美日韩国产成人在线91| 美女国产一区二区三区| 国产日韩精品一区二区三区 | 国产一区二区精品久久99| 久久久久99精品一区| 99久久精品国产观看| 亚洲在线视频网站| 精品剧情v国产在线观看在线| 国产在线麻豆精品观看| 国产精品网站导航| 在线一区二区三区四区| 日韩精品乱码免费| 国产网红主播福利一区二区| 99re视频精品| 午夜精品福利一区二区蜜股av| 精品日本一线二线三线不卡| 成人动漫精品一区二区| 亚洲一区二三区| 日韩免费成人网| 成人h动漫精品一区二区| 亚洲午夜免费电影| 精品国产麻豆免费人成网站| 不卡高清视频专区| 免费观看成人av| 国产精品久久久久久久久晋中 | www.成人网.com| 日本怡春院一区二区| 日本一区二区成人| 欧美高清一级片在线| 国产精品一二三在| 天天综合天天综合色| 欧美激情在线看| 制服丝袜在线91| 91欧美一区二区| 国内成+人亚洲+欧美+综合在线| 亚洲第一激情av| 久久久久久久久久久久久女国产乱| 在线亚洲+欧美+日本专区| 国产一区二区三区四区五区美女| 亚洲一区二区三区国产| 中文子幕无线码一区tr| 日韩欧美高清在线| 在线观看亚洲成人|