久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 28240|回復(fù): 3
收起左側(cè)

基于單片機的液位控制系統(tǒng)的設(shè)計文檔

[復(fù)制鏈接]
ID:333813 發(fā)表于 2018-5-19 18:15 | 顯示全部樓層 |閱讀模式

基于單片機的液位控制系統(tǒng)設(shè)計

摘要
液位測量廣泛應(yīng)用于工業(yè)、經(jīng)濟、生活等領(lǐng)域。本設(shè)計以水箱供水為模型,用于對水箱液位信號進行測量監(jiān)控記錄。
基于單片機的液位測量裝置具有測量準確、重復(fù)性好、功耗低、使用壽命長的特點,是廣泛采用的技術(shù)。在深入學習科學發(fā)展觀的同時,電子設(shè)備的設(shè)計也需融入可持續(xù)發(fā)展的設(shè)計理念。故此,在基于單片機的液位測量裝置基礎(chǔ)上,擴展實時監(jiān)控、數(shù)據(jù)采集、計算機串行通信等功能,從而能夠通過科學的方法將液位測量與統(tǒng)計科學結(jié)合,合理調(diào)度水資源,降低能源消耗。
本文從系統(tǒng)方案選擇與論證,硬件電路設(shè)計,系統(tǒng)軟件與上位機軟件設(shè)計等幾個方面介紹了基于單片機的液位測量監(jiān)控系統(tǒng)的設(shè)計過程,最終實現(xiàn)了液位的實時測量與監(jiān)控。最后,本文總結(jié)了設(shè)計過程中出現(xiàn)的問題及解決方法,簡要敘述了所獲數(shù)據(jù)的處理方法,引出了進一步設(shè)計開發(fā)的思路。

目錄
引言
第1章  緒論
1.1  課題背景與研究意義
1.2  國內(nèi)外研究現(xiàn)狀及發(fā)展
1.3  本課題主要研究內(nèi)容
第2章  系統(tǒng)總體方案
2.1  系統(tǒng)設(shè)計要求
2.2  系統(tǒng)框圖
2.3  硬件設(shè)計方案
2.3.1  主控模塊設(shè)計方案
2.3.2  鍵盤模塊設(shè)計方案
2.3.3  顯示模塊設(shè)計方案
2.3.4  數(shù)據(jù)存儲模塊設(shè)計方案
2.3.5  時間模塊設(shè)計方案
2.3.6  A/D轉(zhuǎn)換模塊設(shè)計方案
2.3.7  通信模塊設(shè)計方案
2.3.8  電機控制模塊設(shè)計方案
第3章  硬件電路設(shè)計
3.1  AT89S52硬件設(shè)計
3.2  按鍵設(shè)計
3.3  顯示單元硬件設(shè)計
3.4  存儲單元硬件設(shè)計
3.5  時間單元硬件設(shè)計
3.6  A/D轉(zhuǎn)換單元硬件設(shè)計
3.7  通信單元硬件設(shè)計
3.8  其他外圍電路的設(shè)計
第4章  系統(tǒng)軟件設(shè)計
4.1  系統(tǒng)軟件
4.1.1  系統(tǒng)軟件編譯開發(fā)環(huán)境
4.1.2  系統(tǒng)主程序流程圖
4.1.3  系統(tǒng)初始化
4.1.4  顯示與A/D轉(zhuǎn)換的數(shù)據(jù)處理
4.1.5  按鍵部分軟件設(shè)計
4.1.6  顯示模塊的軟件設(shè)計
4.1.7  A/D轉(zhuǎn)換模塊軟件設(shè)計
4.1.8  電機控制模塊軟件設(shè)計
4.1.9  通信協(xié)議及通信模塊軟件設(shè)計
4.1.10  時間模塊軟件設(shè)計
4.2  上位機軟件設(shè)計
4.2.1  上位機軟件開發(fā)編譯環(huán)境
4.2.2  上位機軟件的界面設(shè)計
4.2.3  上位機串口通信功能的實現(xiàn)
4.2.4 上位機軟件中的數(shù)據(jù)處理
結(jié)論與展望
致謝
參考文獻
附錄A  系統(tǒng)電路原理圖
附錄B  外文文獻及譯文
附錄C  主要參考文獻的題錄及摘要
附錄D  系統(tǒng)軟件源代碼

插圖清單

引言

上世紀40年代,電子計算機的誕生,標志著人類電子技術(shù)進入了一個新的階段。1976年單片機的推出為電子電路設(shè)計提供了新的思路,也促進了模擬電路向數(shù)字電路發(fā)展的歷程。它在一片芯片上集成了完整的計算機系統(tǒng)。從它的發(fā)展來看,低功耗CMOS化、微型單片化、主流與多品種共存的發(fā)展趨勢更進一步促使了單片機在各個行業(yè)的應(yīng)用。這些應(yīng)用,很大一方面體現(xiàn)在工業(yè)控制中。在工業(yè)上,使用單片機可以構(gòu)成形式多樣的控制系統(tǒng)和數(shù)據(jù)采集系統(tǒng)。
單片機應(yīng)用發(fā)展迅速而廣泛。在過程控制中,單片機既可作為主計算機,又可作為分布式計算機控制系統(tǒng)中的前端機,完成模擬量的采集和開關(guān)量的輸入、處理和控制計算,然后輸出控制信號。單片機廣泛用于儀器儀表中,與不同類型的傳感器相結(jié)合,實現(xiàn)諸如電壓、功率、頻率、濕度、流量、速度、厚度、壓力、溫度等物理量的測量;在家用電器設(shè)備中,單片機已廣泛用于電視機、錄音機、電冰箱、電飯鍋、微波爐、洗衣、高級電子玩具、家用防盜報警等各種家電設(shè)備中。在計算機網(wǎng)絡(luò)和通信、醫(yī)用設(shè)備、工商、金融、科研、教育、國防、航空航天等領(lǐng)域都有著十分廣泛的應(yīng)用。
工程應(yīng)用中液位的測量常用方法主要有超聲波、激光紅外測距、機械浮子、壓力傳感器測距等幾種。這些測量方式對一般液位的測量來說各有各的優(yōu)點,可根據(jù)不同的應(yīng)用場合和要求進行選擇。比如,常見的液位控制系統(tǒng)多采用浮標、電極等,這種控制形式結(jié)構(gòu)簡單成本低廉,但是控制精度不高,不能進行數(shù)值顯示;另外容易引起誤操作,與上位機進行信息交互比較困難。
隨著科技的發(fā)展,液位測量技術(shù)趨于智能化、微型化、可視化。本設(shè)計思想是用單片機做下位機,PC機做上位機,單片機和PC機相結(jié)合對水箱液位進行測量和監(jiān)控。該設(shè)計要求具有一定的智能化,可操作性和穩(wěn)定性好。

1章  緒論





    •   課題背景與研究意義

在工農(nóng)業(yè)生產(chǎn)中,常常需要測量液體液位。隨著國家工業(yè)的迅速發(fā)展,液位測量技術(shù)被廣泛應(yīng)用到石油、化工、醫(yī)藥、食品等各行各業(yè)中。低溫液體(液氧、液氮、液氬、液化天然氣及液體二氧化碳等)得到廣泛的應(yīng)用,作為貯存低溫液體的容器要保證能承受其載荷;在發(fā)電廠、煉鋼廠中,保持正常的鍋爐汽包水位、除氧器水位、汽輪機凝氣器水位、高、低壓加熱器水位等,是設(shè)備安全運行的保證;在教學與科學研究中,也經(jīng)常碰到需要進行液位控制的實驗裝置。





    •   國內(nèi)外研究現(xiàn)狀及發(fā)展

液位測量的方法比較多,依據(jù)測量方式的不同可分為接觸式與非接觸式兩種類型。
●接觸式測量法
接觸式測量法是指測量用傳感器直接與容器內(nèi)存儲液體相接觸,從而獲得測量參數(shù)的方法。
1.人工檢尺法
人工檢尺法可用于測量油罐液位,其歷史十分悠久。它利用浸入式刻度鋼皮尺測量液位,這種方法具有測量簡單、可靠性高、直觀、成本低的優(yōu)點,但人為讀數(shù)誤差大、無法實現(xiàn)自動檢測和操作。
2.電參數(shù)測量法
常見的有電阻法、光電法、測重法、電容法、浮標法及聲光電的反射回波法等。無論怎樣,這些方法的關(guān)鍵是利用液位傳感器將液位的相對位移量轉(zhuǎn)換成為電壓、電流、阻抗等便于進行電處理的物理量。限于篇幅,下面僅簡單介紹電容測量法的基本原理。
本方法所使用的電容通常由兩塊圓柱形極板或一個探極與罐壁構(gòu)成。當液位不同時,電容器的介電常數(shù)就不同,故電容量也不同。在此基礎(chǔ)上可以把電容量轉(zhuǎn)化為電壓、相移、頻率、脈寬等物理量,再進行測量。
電容式液位測量裝置通常結(jié)構(gòu)簡單、靈敏度高、穩(wěn)定性好、動態(tài)響應(yīng)快,適合于惡劣的工作環(huán)境,生產(chǎn)成本也不高;但電容液位測量器需要考慮溫度補償,且介質(zhì)的成分、水分、溫度、密度等不確定變化因素直接影響測量結(jié)果的準確性,另外檢測電路比較復(fù)雜,尤其是檢測微小電容量的變化。
●非接觸式測量法
非接觸式測量法包括超聲波法、調(diào)制型光學法、微波法等。其特點是測量手段并不采用浮子之類的固態(tài)物,而是利用聲、光、射線、磁場等的能量。液位傳感器不和被測介質(zhì)接觸,不受被測介質(zhì)影響,也不影響被測介質(zhì),故適用范圍廣泛。特別是接觸式測量裝置不能適用的特殊場合,如高粘度、強腐蝕性、污染性強,易結(jié)晶的介質(zhì)。下面簡單介紹超聲波法和微波法的測量原理。
超聲波法:換能裝置將電功率脈沖轉(zhuǎn)換為超聲波,射向液面,經(jīng)液面反射后再由換能器將該超聲波轉(zhuǎn)換為電信號,超聲波法可用于多液面的測量。
超聲波是機械波,傳播衰減小,界面反射信號強,且發(fā)射和接收電路簡單,因而應(yīng)用較為廣泛;但超聲波的傳播速度受介質(zhì)的密度、濃度、溫度、壓力等因素影響,其測量精度往往較低。
微波法:微波通過天線輻射出去,經(jīng)液面反射后被天線接收,然后由二次電路計算發(fā)射信號與接收信號的時間差得出液位。
微波速度受傳播介質(zhì)、溫度、壓力、液體介電常數(shù)的影響很小,但液體界面的波動、液體表面的泡沫、液體介質(zhì)的介電常數(shù)對微波反射信號強弱有很大影響。當壓力超過規(guī)定數(shù)值時,壓力對液位測量精度將產(chǎn)生顯著影響。對波導(dǎo)管的銹蝕、彎曲和傾斜都會影響測量精度。
●光纖測量法
光纖液位檢測是近年來出現(xiàn)的一種新技術(shù)。根據(jù)光導(dǎo)纖維中光在不同介質(zhì)中傳輸特性的改變對液位進行測量。
光纖液位測量有以下優(yōu)點:精度高、靈敏度好、抗電磁干擾、耐腐蝕、電絕緣性好、檢測現(xiàn)場無電、光路有抗擾性以及便于與計算機連接,便于與光纖傳輸系統(tǒng)組成網(wǎng)絡(luò)等。
目前,市面上進行液位測量的儀表種類繁多,但是同時具有測量、監(jiān)控、數(shù)據(jù)記錄及處理的液位測量裝置并不多。在某些工業(yè)控制系統(tǒng)中,數(shù)據(jù)的測量這一基本功能已不能滿足現(xiàn)代工業(yè)的要求,往往需要對大批數(shù)據(jù)進行記錄,對其進行后期處理分析,實現(xiàn)差錯控制、工藝改善、資源優(yōu)化等一系列工作。為了獲得大批量的數(shù)據(jù),得到可靠的分析資料,往往需要長期、多網(wǎng)點的監(jiān)控記錄。在液位測量這一領(lǐng)域中,如江河湖海、城市用水等方面,大量數(shù)據(jù)長時間,多網(wǎng)點的采集記錄分析具有普遍的意義。液位的變化分析,有助于人們進一步對自然環(huán)境、天氣變化甚至是災(zāi)害預(yù)警提供可靠的支持。





    •   本課題主要研究內(nèi)容

本設(shè)計以水箱供水為模型,鑒于單片機液位測量裝置的測量準確、重復(fù)性能好、功耗低、使用壽命長等特點,設(shè)計以單片機為基礎(chǔ)的液位測量監(jiān)控記錄系統(tǒng)。具有實時液位測量監(jiān)控數(shù)據(jù)處理等功能。
設(shè)計具體內(nèi)容分為以下幾個方面:
  • 系統(tǒng)硬件電路設(shè)計以及單片機選型;
  • 系統(tǒng)軟件設(shè)計;
  • 上位機軟件設(shè)計以及上位機與下位機通信設(shè)計。

第2章 系統(tǒng)總體方案

2.1 系統(tǒng)設(shè)計要求

本設(shè)計以水箱供水為模型,鑒于單片機液位測量裝置的測量準確、重復(fù)性能好、功耗低、使用壽命長等特點,設(shè)計以單片機為基礎(chǔ)的液位測量監(jiān)控記錄系統(tǒng)。它具有實時測量監(jiān)控水箱液位高度并顯示的功能,并根據(jù)實時水量與設(shè)置的上、下液位參數(shù)的比較,啟動電機供水或停止水泵。在啟動電機與停止水泵時,實時記錄時間點與電機狀態(tài)。液位測量高度≤5米,測量精度10%,AC220V供電。
可通過上位機軟件,可與監(jiān)控記錄系統(tǒng)進行通信,能夠從PC機獲取當前液位高度、電機狀態(tài)、設(shè)備系統(tǒng)時間、上下液位高度等數(shù)據(jù),并可根據(jù)需要改變系統(tǒng)默認的參數(shù)。同時可以獲取設(shè)備運行時記錄的數(shù)據(jù),并能夠?qū)?shù)據(jù)保存。能夠根據(jù)一定的算法,計算分析單位時間水箱消耗水量,繪制圖形,通過計算分析的結(jié)果,可以進行區(qū)域用水統(tǒng)籌,降低能源的消耗。

2.2 系統(tǒng)框圖

根據(jù)系統(tǒng)的設(shè)計要求,采用單片機為主控芯片,通過單片機數(shù)據(jù)地址總線及I/O端口,擴展數(shù)據(jù)存儲模塊、A/D轉(zhuǎn)換模塊、顯示模塊、時間模塊、串口通信模塊以及A/D轉(zhuǎn)換、電機控制等外圍電路,從而實現(xiàn)系統(tǒng)所需的設(shè)計功能。系統(tǒng)總體方案框圖如圖2-1:
圖2-1 系統(tǒng)總體框圖
圖中,信號流向僅指示了通過數(shù)據(jù)地址總線或I/O口上發(fā)生的數(shù)據(jù)信號,不包括控制信號。

2.3 硬件設(shè)計方案
2.3.1 主控模塊設(shè)計方案

單片機作為主控模塊,使得在對單片機選型上有了較大的空間。單片機在30多年的發(fā)展歷程中,形成了多公司、多系列、多型號“百家爭鳴”的局面。因而,選擇一個合適的單片機有時真的不太容易,要考慮的方面太多。大致總結(jié)出以下幾點:
1) 單片機的基本參數(shù)。例如速度、程序存儲器容量、I/O引腳數(shù)量等。
2) 單片機的增強功能。例如看門狗、雙指針、雙串口、RTC(實時時鐘)、EEPROM、擴展RAM、CAN接口、I2C接口、SPI接口、USB接口。
3) Flash和OTP(一次性可編程)。
4) 封裝:DIP(雙列直插),PLCC(PLCC有對應(yīng)插座)還是貼片。
5) 工作溫度范圍,工業(yè)級還是商業(yè)機。
6) 功耗。            
7) 工作電壓范圍。例如設(shè)計電視機遙控器,2節(jié)干電池供電,至少應(yīng)該能在1.8~3.6V電壓范圍內(nèi)工作。
8) 供貨渠道暢通。
9) 價格。
10) 燒錄器價格,能否ISP(在線系統(tǒng)編程)。
11) 仿真器。
12) 單片機匯編語言支持。
13) 資料盡量豐富。
14) 抗干擾性能好。
15) 和其他外設(shè)芯片放在一起的綜合考慮。
根據(jù)以上因素:系統(tǒng)的實時性要求不高,因而運算速度無需很快,且系統(tǒng)規(guī)模不大,采用分時復(fù)用的方式使用總線,對I/O口的數(shù)量可以要求進一步降低。使用4路8位I/O接口即可滿足設(shè)計要求;系統(tǒng)中需要擴展外部存儲器對數(shù)據(jù)進行存儲,數(shù)據(jù)存儲量為32KB已滿足要求,因此采用16位或準16位地址總線的單片機即可滿足設(shè)計需要;由于是實驗階段,采用DIP(雙列直插)封裝的芯片便于實驗,暫不考慮實際工業(yè)控制中的對外界環(huán)境的具體要求;系統(tǒng)采用AC220V供電,且對功耗沒有具體要求,使用DC5V為芯片供電,便于系統(tǒng)外圍電路的設(shè)計;芯片支持ISP可節(jié)省仿真器的投入。
綜上所述,采用與MCS-51兼容的AT89S52單片機滿足設(shè)計要求。
AT89S52是一種低功耗、高性能CMOS工藝的8位微控制器,具有8K在線系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。
AT89S52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。

2.3.2 鍵盤模塊設(shè)計方案

鍵盤在單片機應(yīng)用系統(tǒng)中是一個很關(guān)鍵的部件,它能實現(xiàn)向單片機輸入數(shù)據(jù)、發(fā)送命令等功能,是人工干預(yù)單片機系統(tǒng)的主要手段。考慮到本設(shè)計實際需要的按鍵較少,故采用獨立式鍵盤接口電路即可。

2.3.3 顯示模塊設(shè)計方案

顯示器是計算機的主要輸出設(shè)備,在簡單的工業(yè)控制系統(tǒng)中,常用的顯示器有數(shù)碼管顯示器(LED),液晶顯示器(LCD)等,該系統(tǒng)僅需顯示液位高度,即數(shù)字量,采用LED顯示器已能滿足系統(tǒng)要求。
系統(tǒng)中,要求測量范圍≤5m,測量精度為10%,假設(shè)測量范圍為5m,在10%精度的要求下,其測量的有效值為5*10%=0.5m。因而采用2位LED顯示器便能滿足設(shè)計要求。
在單片機應(yīng)用系統(tǒng)中,LED顯示器的現(xiàn)實方法有兩種:靜態(tài)顯示法和動態(tài)顯示法。靜態(tài)顯示法的優(yōu)點是顯示程序十分簡單,顯示亮度大,由于CPU不必經(jīng)常掃描顯示器,所以節(jié)約了CPU的工作時間。但靜態(tài)顯示也有其缺點,主要是占用I/O口資源較多,硬件成本較高。所以靜態(tài)顯示法常用在顯示器數(shù)目較少的應(yīng)用系統(tǒng)中。為了解決靜態(tài)顯示占用I/O口資源的缺點,在軟件上采用壓縮BCD碼輸出顯示數(shù)據(jù),硬件上使用一個8位鎖存器74LS273與兩個BCD數(shù)碼顯示譯碼驅(qū)動芯片74LS47連接,減少對系統(tǒng)資源的占用時間。由于74LS47譯碼為共陽極數(shù)碼管的碼表,因而選用8段(帶小數(shù)點)共陽極LED用于數(shù)據(jù)顯示。高位顯示米單位,低位顯示分米單位,且高位小數(shù)點常亮。單片機使用1位I/O口控制數(shù)據(jù)的鎖存。

2.3.4 數(shù)據(jù)存儲模塊設(shè)計方案

使用AT89S52內(nèi)部256字節(jié)的數(shù)據(jù)存儲器記錄數(shù)據(jù)是遠遠不夠的,因而需要擴展數(shù)據(jù)存儲器進行數(shù)據(jù)存儲。
數(shù)據(jù)存儲器可選擇的種類繁多,常用的有隨機存取存儲器(RAM)、只讀存儲器(ROM)與閃存(FLASH)。
RAM是存儲單元的內(nèi)容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關(guān)的存儲器。這種存儲器在斷電時將丟失其存儲內(nèi)容,故主要用于存儲短時間使用的程序。
ROM通常指固化存儲器(一次寫入,反復(fù)讀取),它的特點與RAM相反。ROM又分一次性固化、光擦除和電擦除重寫兩種類型。
閃存則是一種不揮發(fā)性(Non-Volatile)內(nèi)存,在沒有電流供應(yīng)的條件下也能夠長久地保持數(shù)據(jù),其存儲特性相當于硬盤,這項特性正是閃存得以成為各類便攜型數(shù)字設(shè)備的存儲介質(zhì)的基礎(chǔ)。
NOR和NAND是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)。
NAND閃存的存儲單元則采用串行結(jié)構(gòu),存儲單元的讀寫是以頁和塊為單位來進行(一頁包含若干字節(jié),若干頁則組成儲存塊,NAND的存儲塊大小為8到32KB),這種結(jié)構(gòu)最大的優(yōu)點在于容量可以做得很大,超過512MB容量的NAND產(chǎn)品相當普遍, NAND閃存的成本較低,有利于大規(guī)模普及。
NAND閃存的缺點在于讀速度較慢,它的I/O端口只有8個,比NOR要少多了。這區(qū)區(qū)8個I/O端口只能以信號輪流傳送的方式完成數(shù)據(jù)的傳送,速度要比NOR閃存的并行傳輸模式慢得多。再加上NAND閃存的邏輯為電子盤模塊結(jié)構(gòu),內(nèi)部不存在專門的存儲控制器,一旦出現(xiàn)數(shù)據(jù)壞塊將無法修,可靠性較NOR閃存要差。
NOR的特點是芯片內(nèi)執(zhí)行(XIP, eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運行,不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
NAND結(jié)構(gòu)能提供極高的單元密度,可以達到高存儲密度,并且寫入和擦除的速度也很快。應(yīng)用NAND的困難在于FLASH的管理和需要特殊的。
可以看出ROM的存儲復(fù)雜,不適宜實時系統(tǒng)的數(shù)據(jù)存儲。
FLASH是一個不錯的解決方案。鑒于系統(tǒng)的復(fù)雜程度,暫時不考慮使用FLASH作為存儲單元。
根據(jù)設(shè)計要求,記錄某一記錄點(電機狀態(tài)改變時刻)的狀態(tài)與時間需要6字節(jié)數(shù)據(jù),即年(2000-2099年)、月(1-12月)、日(1-31日)、時(0-23時)、分(0-59分)、狀態(tài)(0或1)這些數(shù)據(jù),如果系統(tǒng)長時間的工作,將會有大批量的數(shù)據(jù)產(chǎn)生,假若數(shù)據(jù)存儲空間不夠大,將會產(chǎn)生數(shù)據(jù)的覆蓋,從而降低了對數(shù)據(jù)分析的準確性。因此選用32K字節(jié)的數(shù)據(jù)存儲器,可以記錄大于5000項記錄點數(shù)據(jù),考慮到水箱上水與耗水的頻繁程度不高,5000項數(shù)據(jù)已基本滿足后期數(shù)據(jù)處理的需求。在實際應(yīng)用中,系統(tǒng)設(shè)計在不掉電的工作環(huán)境下;軟件上,上位機軟件對數(shù)據(jù)提取后即可保存在PC機中,5000項數(shù)據(jù)進行時間上的緩沖是充足的。為節(jié)省CPU的工作時間,且由于RAM存儲速度快、使用方便等特點,從而可以忽略了RAM掉電數(shù)據(jù)丟失的缺點。

2.3.5 時間模塊設(shè)計方案

通過單片機的定時器,可以設(shè)計時間功能,然而單片機自身的產(chǎn)生時間數(shù)據(jù)大大占用了系統(tǒng)的資源,降低了工作效率,甚至影響了其他功能的實現(xiàn),因此在本設(shè)計方案中,采用了外部芯片提供時間信號,用以系統(tǒng)記錄時間信息。
目前市場上的時鐘芯片很多,如DS1302/DS1307/HT1380/HT1381/PCF8563等。
DS1302是DALLAS公司推出的涓流充電時鐘芯片,內(nèi)含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡單的串行接口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日期、日、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線(1) RES(復(fù)位),(2) I/O(數(shù)據(jù)線),(3) SCLK(串行時鐘)。時鐘/RAM的讀、寫數(shù)據(jù)以一個字節(jié)或多達31個字節(jié)的字符組方式通信。DS1302工作時功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于1mW。
DS1302是由DS1202改進而來,增加了以下的特性雙電源管腳用于主電源和備份電源供應(yīng),Vcc1為可編程涓流充電電源,附加七個字節(jié)存儲器。它廣泛應(yīng)用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。下面將主要的性能指標作一綜合:
  • 實時時鐘具有能計算2100年之前的秒、分、時、日期、星期、月、年的能力,還有閏年調(diào)整的能力。
  • 31*8位暫存數(shù)據(jù)存儲RAM。
  • 串行I/O口方式使得管腳數(shù)量最少。
  • 寬范圍工作電壓2.0~5.5V。
  • 工作電流2.0V時,小于300nA。
  • 讀/寫時鐘或RAM數(shù)據(jù)時有兩種傳送方式單字節(jié)傳送和多字節(jié)傳送字符組方式。
  • 8腳DIP封裝或可選的8腳SOIC封裝。
  • 簡單3線接口。
  • 與TTL兼容Vcc=5V。
  • 可選工業(yè)級溫度范圍-40至+85攝氏度。
  • 與DS1202兼容。
  • 在DS1202基礎(chǔ)上增加的特性:
對Vcc1有可選的涓流充電能力;
雙電源管用于主電源和備份電源供應(yīng);
備份電源管腳可由電池或大容量電容輸入;
附加的7字節(jié)暫存存儲器。
              綜上所述,選用DS1302時間芯片完全滿足設(shè)計的需求。

2.3.6 A/D轉(zhuǎn)換模塊設(shè)計方案

A/D器件和芯片是實現(xiàn)單片機數(shù)據(jù)采集的常用外圍器件。A/D轉(zhuǎn)換器的品種繁多、性能各異,在設(shè)計數(shù)據(jù)采集系統(tǒng)時,首先碰到的就是如何選擇合適的A/D轉(zhuǎn)換器以滿足系統(tǒng)設(shè)計要求的問題。選擇A/D轉(zhuǎn)換器件需要考慮器件本身的品質(zhì)和應(yīng)用的場合要求。基本上,可以根據(jù)以下幾個方面的指標選擇一個A/D器件。
1) A/D轉(zhuǎn)換器位數(shù)
A/D轉(zhuǎn)換器位數(shù)的確定,應(yīng)該從數(shù)據(jù)采集系統(tǒng)的靜態(tài)精度和動態(tài)平滑性這兩個方面進行考慮。從靜態(tài)精度方面來說,要考慮輸入信號的原始誤差傳遞到輸出所產(chǎn)生的誤差,它是模擬信號數(shù)字化時產(chǎn)生誤差的主要部分。量化誤差與A/D轉(zhuǎn)換器位數(shù)有關(guān)。一般把8位以下的A/D轉(zhuǎn)換器歸為低分辨率A/D轉(zhuǎn)換器,9~12位的稱為中分辨率轉(zhuǎn)換器,13位以上的稱為高分辨率轉(zhuǎn)換器。10位以下的A/D芯片誤差較大,11位以上對減小誤差并無太大貢獻,但對A/D轉(zhuǎn)換器的要求卻提得過高。因此,取10位或11位是合適的。由于模擬信號先經(jīng)過測量裝置,再經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換后才進行處理,因此,總的誤差是由測量誤差和量化誤差共同構(gòu)成的。A/D轉(zhuǎn)換器的精度應(yīng)與測量裝置的精度相匹配。也就是說,一方面要求量化誤差在總誤差中所占的比重要小,使它不顯著地擴大測量誤差;另一方面必須根據(jù)目前測量裝置的精度水平,對A/D轉(zhuǎn)換器的位數(shù)提出恰當?shù)囊蟆?/div>
目前,大多數(shù)測量裝置的精度值不小于0.1%~0.5%,故A/D轉(zhuǎn)換器的精度取0.05% ~ 0.1%即可,相應(yīng)的二進制碼為10~11位,加上符號位,即為11~12位。當有特殊的應(yīng)用時,A/D轉(zhuǎn)換器要求更多的位數(shù),這時往往可采用雙精度的轉(zhuǎn)換方案。
2) A/D轉(zhuǎn)換器的轉(zhuǎn)換速率
A/D轉(zhuǎn)換器從啟動轉(zhuǎn)換到轉(zhuǎn)換結(jié)束,輸出穩(wěn)定的數(shù)字量,需要一定的轉(zhuǎn)換時間。轉(zhuǎn)換時間的倒數(shù)就是每秒鐘能完成的轉(zhuǎn)換次數(shù),稱為轉(zhuǎn)換速率。
確定A/D轉(zhuǎn)換器的轉(zhuǎn)換速率時,應(yīng)考慮系統(tǒng)的采樣速率。例如,如果用轉(zhuǎn)換時間為100us的A/D轉(zhuǎn)換器,則其轉(zhuǎn)換速率為10KHz。根據(jù)采樣定理和實際需要,一個周期的波形需采10個樣點,那么這樣的A/D轉(zhuǎn)換器最高也只有處理頻率為1KHz的模擬信號。把轉(zhuǎn)換時間減小,信號頻率可提高。對一般的單片機而言,要在采樣時間內(nèi)完成A/D轉(zhuǎn)換以外的工作,如讀數(shù)據(jù)、再啟動、存數(shù)據(jù)、循環(huán)計數(shù)等已經(jīng)比較困難了。
3) 采樣/保持器
采集直流和變化非常緩慢的模擬信號時可不用采樣保持器。對于其他模擬信號一般都要加采樣保持器。如果信號頻率不高,A/D轉(zhuǎn)換器的轉(zhuǎn)換時間短,即采樣高速A/D時,也可不用采樣/保持器。
4) A/D轉(zhuǎn)換器量程
A/D轉(zhuǎn)換時需要的是雙極性的,有時是單極性的。輸入信號最小值有的從零開始,也有從非零開始的。有的轉(zhuǎn)換器提供了不同量程的引腳,只有正確使用,才能保證轉(zhuǎn)換精度。在使用中,影響A/D轉(zhuǎn)換器量程的因素有:量程變換和雙極性偏置;雙基準電壓;A/D轉(zhuǎn)換器內(nèi)部比較器輸入端的正確使用。
5) 滿刻度誤差
滿度輸出時對應(yīng)的輸入信號與理想輸入信號值之差。
6) 線性度
實際轉(zhuǎn)換器的轉(zhuǎn)移函數(shù)與理想直線的最大偏移。
ADC0804是單路8位逐次比較型雙極性輸入A/D轉(zhuǎn)換器,轉(zhuǎn)換時間小于。量化間隔:
                                             (2-1)
絕對量化誤差:
                                                (2-2)
相對量化誤差:
                       (2-3)
在液位傳感器誤差與參考電壓誤差不大的情況下,ADC0804是完全滿足設(shè)計誤差要求的。

2.3.7 通信模塊設(shè)計方案

AT89S52單片機內(nèi)部有一個全雙工異步串行I/O接口,占用P3.0和P3.1兩個引腳。利用該接口,可實現(xiàn)系統(tǒng)與上位機的通信。
不同設(shè)備間串口通信的過程中,需要采用相同的的接口標準才能通信。
典型的串行通訊標準是RS232和RS485,它們定義了電壓,阻抗等,但不對軟件協(xié)議給予定義。
RS-232C標準(協(xié)議)的全稱是EIA-RS-232C標準,其中EIA(Electronic Industry Association)代表美國電子工業(yè)協(xié)會,RS(EcommededStandard)代表推薦標準,232是標識號,C代表RS232的最新一次修改(1969),在這之前,有RS232B、RS232A。。它規(guī)定連接電纜和機械、電氣特性、信號功能及傳送過程。
區(qū)別于RS232,RS485的特性包括:
1) RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(2~6)V表示;邏輯“0”以兩線間的電壓差為-(2~6)V表示。接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。
2) RS-485的數(shù)據(jù)最高傳輸速率為10Mbps。
3) RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性好。
4) RS-485接口的最大傳輸距離標準值為4000英尺,實際上可達3000米,另外RS-232-C接口在總線上只允許連接1個收發(fā)器,即單站能力。而RS-485接口在總線上是允許連接多達128個收發(fā)器。即具有多站能力,這樣用戶可以利用單一的RS-485接口方便地建立起設(shè)備網(wǎng)絡(luò)。
因RS-485接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優(yōu)點就使其成為首選的串行接口。
PC機作為上位機,一般情況下帶有RS-232C通信接口,鑒于RS-485接口的優(yōu)點與系統(tǒng)實際工作環(huán)境的需要,系統(tǒng)采用RS-485接口標準,使用RS-232/RS-485轉(zhuǎn)換器與PC機連接進行通信。
MAX485接口芯片是Maxim公司的一種RS-485芯片。采用單一電源+5V工作,額定電流為300μA,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS-485電平的功能。

2.3.8 電機控制模塊設(shè)計方案

由于設(shè)計中沒有規(guī)定水泵電機的參數(shù)規(guī)格,而且不同型號的水泵參數(shù)不盡相同,電氣參數(shù)的不同使得在電路上的設(shè)計差異較大,因此在此僅作理論演示。
選用繼電器作為電機控制的元件。
繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關(guān)”。故在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用。
繼電器主要產(chǎn)品技術(shù)參數(shù):
1) 額定工作電壓。是指繼電器正常工作時線圈所需要的電壓。根據(jù)繼電器的型號不同,可以是交流電壓,也可以是直流電壓。
2) 直流電阻。是指繼電器中線圈的直流電阻,可以通過萬能表測量。
3) 吸合電流。是指繼電器能夠產(chǎn)生吸合動作的最小電流。在正常使用時,給定的電流必須略大于吸合電流,這樣繼電器才能穩(wěn)定地工作。而對于線圈所加的工作電壓,一般不要超過額定工作電壓的1.5倍,否則會產(chǎn)生較大的電流而把線圈燒毀。
4) 釋放電流。是指繼電器產(chǎn)生釋放動作的最大電流。當繼電器吸合狀態(tài)的電流減小到一定程度時,繼電器就會恢復(fù)到未通電的釋放狀態(tài)。這時的電流遠遠小于吸合電流。
5) 觸點切換電壓和電流。是指繼電器允許加載的電壓和電流。它決定了繼電器能控制電壓和電流的大小,使用時不能超過此值,否則很容易損壞繼電器的觸點。
根據(jù)以上的參數(shù),結(jié)合設(shè)計的演示性,選用額定工作電壓120VAC/24VDC,工作電流3A,控制電壓5VDC的小型繼電器。

第3章 硬件電路設(shè)計

3.1 AT89S52硬件設(shè)計

AT89S52引腳定義及功能介紹如圖3-1。

P0:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在FLASH編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。
P1:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下所示:
  • 在FLASH編程和校驗時,P1口接收低8位地址字節(jié)。
  • 引腳號第二功能:
P1.0/T2 (定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出
P1.1/T2EX (定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)
P1.5 MOSI (在系統(tǒng)編程用)
P1.6 MISO (在系統(tǒng)編程用)
P1.7 SCK (在系統(tǒng)編程用)
P2:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在FLASH編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。
P3:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。

表3-1 端口引腳第二功能
端口號
第二功能
P3.0
RXD(串行輸入口)
P3.1
TXD(串行輸出口)
P3.2
INTO(外中斷0)
P3.3
INT1(外中斷1)
P3.4
TO(定時/計數(shù)器0)
P3.5
T1(定時/計數(shù)器1)
P3.6
WR(外部數(shù)據(jù)存儲器寫選通)
P3.7
RD(外部數(shù)據(jù)存儲器讀選通)

此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。
RST——復(fù)位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。
ALE/PROG——當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。
PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。
EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H~FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。
XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
為了便于接下來的說明,單片機各管腳網(wǎng)絡(luò)標號定義如圖3-1。
要使單片機按照設(shè)計要求正常工作,完整單片機最基本的工作要求,考慮到系統(tǒng)無需精確地定時功能,且為了方便串口通信波特率的計算,采用11.0592MHz的晶振提供系統(tǒng)時鐘。并附加復(fù)位電路,組成單片機最小系統(tǒng)。根據(jù)電路設(shè)計規(guī)范和AT89S52芯片手冊,設(shè)計時鐘電路與復(fù)位電路如圖3-2:
圖3-2 復(fù)位電路及時鐘電路
圖中網(wǎng)絡(luò)標號RST連接單片機RST引腳,具有上電復(fù)位與手動復(fù)位的功能;XTAL1與XTAL2連接單片機XTAL1和XTAL2引腳,且并聯(lián)兩個30pF匹配電容使晶振起振。
由于單片機P0口作普通I/O口時不能輸出高電平,因此需接上拉電阻,實際電路中,使用8*10KΩ電阻作為上拉電阻。

3.2 按鍵設(shè)計

鍵盤在單片機應(yīng)用系統(tǒng)中是一個很關(guān)鍵的部件,它能實現(xiàn)向單片機系統(tǒng)輸入數(shù)據(jù)、發(fā)送命令等功能,是人工干預(yù)單片機的主要手段。考慮到本設(shè)計實際需要的按鍵較少,故采用獨立式鍵盤接口電路。它是將每個獨立按鍵按一對一的方式直接接到單片機的I/O口上,通過程序掃描查詢方式實現(xiàn)與單片機系統(tǒng)交互的。在程序查詢方式下,通過I/O端口讀入按鍵狀態(tài),當有按鍵按下時,相應(yīng)的I/O端口變?yōu)榈碗娖剑幢话聪碌陌存I在上拉電阻作用下為高電平,這樣通過讀I/O口的狀態(tài)判斷是否有按鍵按下。系統(tǒng)按鍵電路如圖3-3所示。
下圖中,S2~S5便是控制顯示用的按鍵。其作用就是通過按動它們實現(xiàn)對高低警戒液位的設(shè)置。具體來說,S3、S4分別實現(xiàn)數(shù)字的增一與減一,S2、S5則作為高低警戒液位的模式選擇和確認鍵。
圖3-3 系統(tǒng)按鍵電路

3.3 顯示單元硬件設(shè)計

在顯示單元上,使用了74LS273帶公共時鐘復(fù)位八位觸發(fā)器與74LS47共陽極BCD顯示譯碼驅(qū)動芯片。兩個芯片的管腳圖如圖3-4:


74LS273與74LS47引腳功能說明:
74LS273:1腳是復(fù)位CLR,低電平有效,當1腳是低電平時,輸出腳2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部輸出0,即全部復(fù)位;
當1腳為高電平時,11(CLK)腳是鎖存控制端,并且是上升沿觸發(fā)鎖存,當11腳有一個上升沿,立即鎖存輸入腳3、4、7、8、13、14、17、18的電平狀態(tài),并且立即呈現(xiàn)在在輸出腳2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上。
74LS47上BI/ROB,LI,RBI引腳為控制引腳,主要用于測試和脈沖控制,均為低電平有效,設(shè)計上不適用此項功能,因此均接高電平。A0~A3是BCD輸入,分解74LS273輸出的高、低四位。a~g用于共陽極數(shù)碼管的相應(yīng)管腳的連接。
為了保護LED數(shù)碼管,在74LS47與LED之間添加限流電阻,以滿足數(shù)碼管的工作需要。
根據(jù)以上的設(shè)計思路,設(shè)計電路圖如圖3-5:


3.4 存儲單元硬件設(shè)計

存儲模塊的硬件設(shè)計比較簡單,由于AT89S52單片機為數(shù)據(jù)線與低8位地址線復(fù)用,需要使用地址鎖存芯片74LS373。上文中已敘述,使用32KRAM作為存儲芯片,因此選用與51系列兼容的62256隨機數(shù)據(jù)存儲器。
該模塊中使用的兩個芯片管腳功如圖3-6:
在62256中,A0~A14管腳為地址總線,共15位,尋址范圍可達到32kB;I/O0~I/O7為8位三態(tài)雙向數(shù)據(jù)接口;Vcc,Vss為電源和地;CS是片選接口,低電平有效;OE/WE分別是讀選通和寫選通數(shù)據(jù)輸入輸入線,低電平有效。


圖3-7 存儲的單元電路

74LS373引腳位置和功能與74LS273差異不大,區(qū)別在于其1腳是輸出使能(OE),是低電平有效,當1腳是高電平時,不管輸入3、4、7、8、13、14、17、18如何,也不管11腳(鎖存控制端,G)如何,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈現(xiàn)高阻狀態(tài)(或者叫浮空狀態(tài));當1腳是低電平時,只要11腳(鎖存控制端,G)上出現(xiàn)一個下降沿,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈現(xiàn)輸入腳3、4、7、8、13、14、17、18的狀態(tài)。74LS273也可以作為地址鎖存器來用,作鎖存器時,對273來說,1(CLR)腳必須接高電平,ALE信號經(jīng)過反相后接11腳(因為單片機的ALE信號是以下降沿方式出現(xiàn))對373來說,1腳接低電平,保證使能,11腳直接接單片機的ALE信號。
按照常規(guī)的連接方法設(shè)計電路圖3-7如示。

3.5 時間單元硬件設(shè)計

DS1302因其較小的體積,占用I/O口資源少等特點,是常用的時間芯片。此次設(shè)計采用DIP-8封裝,管腳功能如圖3-8:
圖3-8 DS1302引腳圖


其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中電壓較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2供電,當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源接口,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳輸。RST輸入有兩種功能:首先RST接通控制邏輯,允許地址/命令序列送入移位寄存存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果傳送過程中RST置為低電平,則會終止此次傳輸,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端。SCLK始終是輸入端,用來輸入串行時鐘信號。根據(jù)DS1302的特點,設(shè)計電路如圖3-9:
圖3-9 時間單元電路

在實際應(yīng)用中,起控制、輸入輸出的三個端口上拉較弱,容因產(chǎn)生信號串擾,因此加上了上拉電阻與單片機P1口相連,加強信號的穩(wěn)定性;為了保證時鐘的可靠性,在Vcc1上使用了CR2032紐扣電池作為備用電源,輸出電壓為3V,從而保證了系統(tǒng)掉電狀態(tài)下,時鐘能夠繼續(xù)保持運行。
3.6 A/D轉(zhuǎn)換單元硬件設(shè)計

A/D轉(zhuǎn)換模塊是系統(tǒng)中較為重要的一部分,由于涉及到模擬部分,A/D轉(zhuǎn)換器的結(jié)構(gòu)較為復(fù)雜。

以下是ADC0804管腳及功能的介紹:
/CS 芯片選擇信號。
/RD 外部讀取轉(zhuǎn)換結(jié)果的控制輸出信號。/RD為高電平時,DB0~DB7處于高阻抗:/RD為低電平時,數(shù)據(jù)才會輸出。
/WR 用來啟動轉(zhuǎn)換的控制輸入,相當于ADC的轉(zhuǎn)換開始(/CS=0時),當/WR由高電平變?yōu)榈碗娖綍r,轉(zhuǎn)換器被清除;當/WR回到高電平時,轉(zhuǎn)換正式開始。
CLK INCLK R 時鐘輸入或接振蕩元件(R,C)頻率約限制在100kHZ~1460kHZ,如果使用RC電路則其振蕩頻率為1/(1.1RC)。
/INTR 中斷請求信號輸出,低地平動作。
VIN(+) VIN(-) 差動模擬電壓輸入。輸入單端正電壓時,VIN(-)接地;而差動輸入時,直接加入VIN(+) VIN(-)。
AGND,DGND 模擬信號以及數(shù)字信號的接地。
VREF 輔助參考電壓。
DB0~DB7 8位的數(shù)字輸出。
VCC 電源供應(yīng)以及作為電路的參考電壓。
設(shè)計滿偏電壓為5V,則VREF輔助參考電壓為5V/2=2.5V,在10%的誤差范圍內(nèi),無需過分苛刻參考電壓的電壓源,由于系統(tǒng)中DC5V供電,采用兩只相同阻值電阻分壓,便能近似得到2.5V的參考電壓。
系統(tǒng)中使用10K電阻與150pF電容組成RC振蕩電路,根據(jù)技術(shù)手冊計算公式:
                                                 (3-1)
其振蕩頻率約為606kHz,滿足芯片要求。
另外,以阻抗型液位傳感器為模型,液位傳感器阻值變化與液位的高度是成正比的,因此需要將電阻值轉(zhuǎn)換為電壓值匹配A/D轉(zhuǎn)換器。常用的阻抗-電壓轉(zhuǎn)換法如歐姆法。由于被測阻抗兩端電壓正比于被測電阻,可把被測阻抗轉(zhuǎn)換為電壓測量。即
                       (3-2)
式中,是轉(zhuǎn)化電壓,恒定電流,為被測電阻,為比例系數(shù)。因此,液位高度的變化同樣正比于輸入電壓,故而A/D轉(zhuǎn)換器輸出的數(shù)據(jù)正比于液位高度。為了簡化設(shè)計調(diào)試過程,使用系統(tǒng)內(nèi)部5V電壓作為模擬輸入,VIN(-)直接接地,通過接入傳感器分壓將阻抗轉(zhuǎn)換為電壓信號,接入電位器可實現(xiàn)模擬輸入。
根據(jù)以上參數(shù)分析,設(shè)計電路如圖3-11:

圖3-11 A/D轉(zhuǎn)換單元電路圖
3.7 通信單元硬件設(shè)計

MAX485僅有8個管腳,電路設(shè)計比較簡單。

RO引腳接到單片機串口接收引腳RXD(P3.0),DI引腳接到單片機串口發(fā)送引腳TXD(P3.1)。由于MAX485為半雙工通信方式,不能同時發(fā)送和接收數(shù)據(jù),只能通過控制RE和DE引腳的狀態(tài)來進行發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的轉(zhuǎn)換。為了節(jié)省單片機I/O口資源,將RE和DE引腳連在一起,輸入低電平時,MAX485處于接收狀態(tài);輸入高電平時,其處于發(fā)送數(shù)據(jù)狀態(tài)。定義RE和DE連接在一起的網(wǎng)絡(luò)標號為E,接入單片機P1口,用于發(fā)送與接收的轉(zhuǎn)換。A,B端為發(fā)送接收差分信號端,一般需在A,B端之間加匹配電阻,匹配電阻為120Ω。
硬件電路如圖3-13:
圖3-13 串行通信模塊電路圖
3.8 其他外圍電路的設(shè)計

繼電器電路設(shè)計。由于使用單片機I/O口的驅(qū)動電流較弱,不滿足繼電器吸合電流參數(shù)的要求,所以需使用三極管驅(qū)動繼電器吸合。設(shè)計電路如圖3-14。
為了防止電源尖峰脈沖引發(fā)的噪聲干擾以及高頻信號線間的耦合干擾,在電源入口處及芯片頂端或底端,接入去耦電容,以增強系統(tǒng)的穩(wěn)定性。
電源指示燈設(shè)計如圖3-15。
圖3-14 繼電器部分電路圖
圖3-15 電源指示燈電路圖

4系統(tǒng)軟件設(shè)計

4.1 系統(tǒng)軟件

4.1.1 系統(tǒng)軟件編譯開發(fā)環(huán)境

8051系類單片機共擁有111條系統(tǒng)指令,可實現(xiàn)51種基本操作。然而匯編語言指令卻有程序的可讀性低,程序開發(fā)人員的開發(fā)時間長與開發(fā)難度大,程序移植性差等缺點。
C語言是一種編譯型程序設(shè)計語言。它兼顧了多種高級語言的特點,并具備匯編語言的功能。用C語言來編寫目標系統(tǒng)軟件,會大大縮短開發(fā)周期,增加軟件的可讀性,便于改進和擴充。用C語言進行51系列單片機程序設(shè)計是單片機開發(fā)與應(yīng)用的必然趨勢。
KEIL C51開發(fā)工具套件可用于匯編C語言程序、匯編源程序,鏈接和定位目標文件和庫,創(chuàng)建HEX文件以及調(diào)試目標程序。
本設(shè)計使用KEIL C51 μVision3為開發(fā)編譯環(huán)境,使用C語言編寫程序,實現(xiàn)各模塊功能設(shè)計。

4.1.2 系統(tǒng)主程序流程圖

系統(tǒng)主程序的功能主要是完成對單片機的初始化,設(shè)置警戒液位的上下限,實時顯示液位值以及鍵盤掃描等工作。主程序流程圖如圖4-1所示。

4.1.3 系統(tǒng)初始化

該模塊在系統(tǒng)上電開機時將系統(tǒng)端口、數(shù)據(jù)存儲區(qū)、標志位、指針、地址等賦予有含義的值。具體分為以下幾個模塊列表描述。

表4-1 初始化參數(shù)及含義
模塊
變量/端口
初始值
功能
控制端口初始化
adRD/P1.3
1
A/D轉(zhuǎn)換芯片數(shù)據(jù)讀入控制,初始為不讀入
adWR/P1.4
0
A/D轉(zhuǎn)換芯片轉(zhuǎn)換控制,初始為停止
E/P1.5
0
通信接收發(fā)送控制,初始為接收
DIS/P1.6
0
顯示數(shù)據(jù)鎖存控制,初始為保持
RELAY/P1.7
1
繼電器控制,初始狀態(tài)為斷開
波特率發(fā)生器初始化
TMOD
0x22
單片機片內(nèi)定時/計數(shù)器工作在方式二
SCON
0x40
串行口為8位UART工作方式
TH1
0xf4
波特率設(shè)置為4800bps
TL1
0xf4
IE
0
禁止定時器中斷
TR1
1
啟動定時器
REN
1
允許串行口接收數(shù)據(jù)
時間初始化
sec
0x00
初始化系統(tǒng)時間為2011年1月1日
0時0分0秒星期六
其中sec,min,hr,date,mon,day,year
依次為秒、分、時、日、月、星期、年
min
0x00
hr
0x00
date
0x01
mon
0x01
day
0x06
year
0x11
數(shù)據(jù)參數(shù)初始化
xmark
0x7531
數(shù)據(jù)存儲狀態(tài)標志字節(jié)指針
numtab
0x0001
數(shù)據(jù)存儲區(qū)指針
uplq
0xCF
高液位警戒高度,初始值
downlq
0x10
低液位警戒高度,初始值
初始化過程中,調(diào)用A/D轉(zhuǎn)換模塊獲得首次液位數(shù)據(jù),同時將其顯示,完成初始化工作

圖4-1 主程序流程圖
4.1.4 顯示與A/D轉(zhuǎn)換的數(shù)據(jù)處理

系統(tǒng)中,顯示輸出的要求為壓縮BCD碼,而A/D轉(zhuǎn)換輸入的數(shù)據(jù)是8位16進制碼,因此在實現(xiàn)顯示之前需要編碼的轉(zhuǎn)換。對8位A/D轉(zhuǎn)換器而言,其十六進制、相對滿偏電壓比率、相對電壓幅值的關(guān)系對應(yīng)如表4-2:

表4-2 A/D轉(zhuǎn)換幅值數(shù)據(jù)關(guān)系對照表
十六進制
二進制
滿刻度比率
相對電壓幅值Vref=2.5V
高四位
低四位
高四位電壓
低四位電壓
F
1111
15/16
15/256
4.800
0.320
E
1110
14/16
14/256
4.480
0.280
D
1101
13/16
13/256
4.160
0.260
C
1100
12/16
12/256
3.840
0.240
B
1011
11/16
11/256
3.520
0.220
A
1010
10/16
10/256
3.200
0.200
9
1001
9/16
9/256
2.880
0.180
0
1000
8/16
8/256
2.560
0.160
7
0111
7/16
7/256
2.240
0.140
6
0110
6/16
6/256
1.920
0.120
5
0101
5/16
5/256
1.600
0.100
4
0100
4/16
4/256
1.280
0.080
3
0011
3/16
3/256
0.960
0.060
2
0010
2/16
2/256
0.640
0.040
1
0001
1/16
1/256
0.320
0.020
0
0000
0/16
0/256
0.000
0.000

綜上,電壓幅值與液位高度在數(shù)值上是相等的。為了通過LED直觀顯示液位高度,進行轉(zhuǎn)換的思路如下:
設(shè)輸入8位二進制數(shù)據(jù)為的商即為以分米為單位的液位高度數(shù)據(jù),余數(shù)為以厘米為單位的數(shù)據(jù),由于顯示位數(shù)僅為2位,最低位為分米,固使用“二舍三入”的辦法保留分米單位的整數(shù)倍數(shù)據(jù)。為了將這個數(shù)據(jù)轉(zhuǎn)換為為壓縮BCD碼,再將,得到的商左移四位(相當于乘以16)為壓縮BCD碼高四位,余數(shù)為壓縮BCD碼低四位,二者相加,就是最終的結(jié)果。
顯示轉(zhuǎn)換部分程序簡略如下:
uchar dis_transform(uchar num)
{
uchar ac, quotient, play, mid ;
ac = num%5;
quotient = (num-ac)/5;
if(ac>2)
quotient++;
ac=quotient%10;
mid=(quotient-ac)/10;
play=ac+mid*16;
return play;
}

4.1.5 按鍵部分軟件設(shè)計

由于使用的按鍵較少,所以本文采用了獨立式鍵盤,即每個按鍵單獨占用一根口線。在程序查詢方式下,通過I/O端口讀入按鍵狀態(tài),當有按鍵按下時,相應(yīng)的端口變?yōu)榈碗娖剑@樣通過讀入I/O口狀態(tài)判斷是否有按鍵按下。查詢式鍵盤的程序流程圖如下:




下面給出鍵盤掃描的主程序,其分支程序省略。
void judge_key(void)
{uchar Key_value=0;
Key_value=P3&0x3c;   /*讀取鍵值*/
switch(Key_value)
{
case 0x38:delay(30000);   /*調(diào)用延時子程序*/
if(Key_value==(P3&0x3c))  /*進行判斷按鍵是否為干擾*/
{manage_key2();break;}   /*調(diào)用子函數(shù)*/
else break;
……

case 0x1c:delay(30000);
if(Key_value==(P3&0x3c))
{manage_key5();break;}
else break;
default:break;
}
}

4.1.6 顯示模塊的軟件設(shè)計

由于使用了靜態(tài)鎖存顯示,需要對顯示數(shù)據(jù)進行處理后進行鎖存控制。硬件設(shè)計中使用了74LS273鎖存數(shù)據(jù)。它的特點是在ALE輸入信號的下降沿到來時鎖存信號,因此首先置控制引腳高電平,延遲幾個時鐘周期待信號穩(wěn)定,P0口輸出處理后的數(shù)據(jù),同樣延遲幾個時鐘周期待信號穩(wěn)定,控制引腳置低電平,數(shù)據(jù)鎖存,顯示輸出。
液位顯示部分程序簡略如下:
display()
{
DIS=0;
_nop_();
_nop_();
_nop_();
P0=dis_transform(prelq);
_nop_();
_nop_();
_nop_();
DIS=1;
}

4.1.7 A/D轉(zhuǎn)換模塊軟件設(shè)計

A/D轉(zhuǎn)換的控制變量有兩個,即adWR與adRD;上文中已說明了它的功能,故不再重復(fù)。該模塊分為兩個階段,第一階段是為A/D轉(zhuǎn)換啟動控制,通過adWR復(fù)位→延遲→置位完成。第二階段是數(shù)據(jù)的提取過程,由于P0口做輸入時的特性,首先軟件上將P0口寄存器置為0xFF,延遲適當時間后adRD復(fù)位,輸出A/D轉(zhuǎn)換結(jié)果,隨之通過P0口讀入數(shù)據(jù),還原adRD為高,該階段結(jié)束。兩個階段中可加如適當?shù)难舆t,以滿足ADC0804 100ns的轉(zhuǎn)換時間。

4.1.8  電機控制模塊軟件設(shè)計

本設(shè)計采用單片機主控芯片控制繼電器外圍電路,用于驅(qū)動電機的啟動與關(guān)停。其程序流程圖如圖4-3所示。以下是液位檢測與電機控制部分源程序代碼:
check_lq()
{
ad_start();
_nop_();
_nop_();
_nop_();
ad_read();
if(prelq>=uplq && key==1)
{
RELAY=1;
key=0;
makemark(1);
}
else if(prelq<=downlq && key==0)
{
RELAY=0;
key=1;
makemark(0);
}
}















4.1.9 通信協(xié)議及通信模塊軟件設(shè)計

1) 通信協(xié)議
為了使PC上位機與設(shè)備實現(xiàn)有意義的通信,設(shè)計了簡單的通信協(xié)議。
通信波特率設(shè)計為4800bps,過高的波特率在沒有檢糾錯方式的情況下易發(fā)生數(shù)據(jù)的丟失,過低的波特率會使傳輸變慢;8位有效數(shù)據(jù)位;無奇偶校驗位;1位停止位。傳送以字節(jié)為單位,發(fā)送命令與數(shù)據(jù)。通信協(xié)議命令控制字如表4-3。
軟件設(shè)計上,系統(tǒng)以查詢的方式檢測上位機的命令控制字,并及時進入各響應(yīng)函數(shù)予以響應(yīng)。通信檢測流程如圖4-4所示。



表4-3 通信協(xié)議
上位機命令控制字
含   義
下位機命令控制字
含     義
0x00
請求聯(lián)機檢測
0xF0
響應(yīng)聯(lián)機檢測成功
0x01
讀系統(tǒng)時間
0xF1
響應(yīng)寫時間指令,發(fā)送7字節(jié)時間數(shù)據(jù)
0x02
設(shè)置系統(tǒng)時間
0xF2
響應(yīng)度時間指令,接收7字節(jié)時間數(shù)據(jù)
0x03
讀當前液位
0xF3
響應(yīng)讀當前液位指令,發(fā)送1字節(jié)液位數(shù)據(jù)
0x04
讀記錄數(shù)據(jù)
0xF4
響應(yīng)讀記錄數(shù)據(jù)指令,發(fā)送2字節(jié)數(shù)據(jù)量及相應(yīng)數(shù)據(jù)
0x05
讀液位上下限
0xF5
響應(yīng)讀液位上下限指令,發(fā)送2字節(jié)液位上下限數(shù)據(jù)
0x06
設(shè)置液位上下限
0xF6
響應(yīng)設(shè)置液位上下限指令,接收2字節(jié)液位上下限數(shù)據(jù)
0x07
讀當前液位及電機狀態(tài)
0xF7
響應(yīng)讀當前液位及電機狀態(tài)指令,發(fā)送2字節(jié)液位數(shù)據(jù)及電機狀態(tài)

圖4-4 通信檢測流程圖

2)通信模塊的控制
該模塊在控制上設(shè)計兩個函數(shù),一個是發(fā)送函數(shù),另一個是接收函數(shù)。由于采用半雙工的通信方式,需要控制變量E的置位與復(fù)位轉(zhuǎn)換發(fā)送與接收的狀態(tài)。
發(fā)送的過程:置E為1,使系統(tǒng)處于發(fā)送數(shù)據(jù)狀態(tài);將數(shù)據(jù)寫入串行通信緩沖區(qū)SBUF;
等待,直到發(fā)送完畢,將E清0,返回接收狀態(tài)。
接收過程:清零E,使系統(tǒng)處于接收狀態(tài);等待,直到接收完畢,讀串行通信緩沖區(qū)SBUF;繼續(xù)保持接收狀態(tài)。
這兩個子程序在其他函數(shù)需要進行串口通信時調(diào)用即可實現(xiàn)與上位機的串行通信。

4.1.10 時間模塊軟件設(shè)計

DS1302內(nèi)部寄存器的定義直接影響著軟件的設(shè)計,大概可分為時間控制寄存器和內(nèi)部RAM寄存器。其中:
  • CH: 時鐘停止位寄存器2的第7位12/24小時標志
CH=0 振蕩器工作允許bit7=1,12小時模式
CH=1 振蕩器停止bit7=0,24小時模式
  • WP: 寫保護位寄存器2的第5位:AM/PM定義
WP=0 寄存器數(shù)據(jù)能夠?qū)懭?AP=1 下午模式
WP=1 寄存器數(shù)據(jù)不能寫入 AP=0 上午模式
  • TCS: 涓流充電選擇DS:二極管選擇位
TCS=1010 使能涓流充電 DS=01 選擇一個二極管
TCS=其它 禁止涓流充電 DS=10 選擇兩個二極管
DS=00 或11, 即使TCS=1010, 充電功能也被禁止
  • RS: 涓流充電電阻選擇位

表4-4 RS狀態(tài)標志及含義
RS位
電阻
典型值
00
01
R1
2KΩ
10
R2
4KΩ
11
R3
8KΩ

由于DS1302數(shù)據(jù)傳輸方式為串行移位輸入輸出。地址、數(shù)據(jù)的寫操作流程是相同的。地址沒有讀操作。無論是讀還是寫,二者結(jié)構(gòu)類似。讀寫的核心是產(chǎn)生SCLK移位信號與移位,讀操作是將數(shù)據(jù)從DS1302的I/O口移入單片機,寫操作是將數(shù)據(jù)從單片機移入DS1302時鐘芯片。我們最終處理的對象是時間數(shù)據(jù)或狀態(tài)數(shù)據(jù),在獲取數(shù)據(jù)時,首先寫入地址,然后讀取數(shù)據(jù);寫入數(shù)據(jù)時,先寫入地址,再輸出數(shù)據(jù)。完成時間的模塊軟件的設(shè)計。DS1302讀寫程序如下:
ds_read()
{
uchar j;
iodat=0x00;
for(j=8;j>0;j--)
{
iodat=iodat>>1;
odat7=IO_DATA;
_nop_();
SCLK=1;
_nop_();
SCLK=0;
}
}

ds_write(uchar ad)
{
uchar i;
ddat=ad;
for(i=8;i>0;i--)
{
IO_DATA=ddat0;
_nop_();
SCLK=1;
_nop_();
ddat=ddat>>1;
SCLK=0;
}
}

51系列單片機中有片外存儲器讀寫的指令MOVX,無需用戶復(fù)雜的控制、輸入出處操作,故不再陳述。

4.2 上位機軟件設(shè)計

4.2.1 上位機軟件開發(fā)編譯環(huán)境

VC++是Microsoft(微軟)開發(fā)的在Windows平臺下構(gòu)建32位應(yīng)用程序的強大而又復(fù)雜的可視化開發(fā)平臺,它是世界上使用最多的開發(fā)工具之一。VC++的應(yīng)用非常廣泛,從桌面應(yīng)用程序到服務(wù)器端軟件,從系統(tǒng)軟件到應(yīng)用軟件,從單擊程序到分布式應(yīng)用程序,從圖形圖像處理到游戲的開發(fā),VC++無處不在。
目前,在VC++發(fā)展歷程下已有了產(chǎn)生了多個版本。版本的更新帶來了更美觀的操作界面,更人性化的操作方式,增強了某些模塊的功能。同時,面向不同開發(fā)對象推出了多項產(chǎn)品。VC++6.0是Microsoft早期推出的產(chǎn)品,但是其以界面簡潔、占用資源少、操作方便、相關(guān)資料豐富等優(yōu)點,仍為廣大程序開發(fā)人員使用。
本系統(tǒng)上位機軟件使用VC++ 6.0開發(fā)Windows平臺下的應(yīng)用軟件。
上位機軟件設(shè)計要求:
上位機軟件是操作人員與設(shè)計系統(tǒng)交互的一個平臺。系統(tǒng)的大多數(shù)輔助功能通過上位機軟件與系統(tǒng)設(shè)備通信控制完成。上位機軟件在已有的系統(tǒng)軟硬件基礎(chǔ)上有較大的開發(fā)空間,強大功能的上位機軟件是整個系統(tǒng)不可缺少的一部分。因此,此次設(shè)計的上位機軟件具有如下功能:
  • 能夠與系統(tǒng)設(shè)備進行建立通信連接。
  • 能夠?qū)崟r監(jiān)控系統(tǒng)設(shè)備獲取的液位、電機狀態(tài)等參數(shù)。
  • 能夠獲取系統(tǒng)設(shè)備當前液位、系統(tǒng)時間、高低液位警戒線等參數(shù)。
  • 能夠設(shè)置系統(tǒng)設(shè)備液位、系統(tǒng)時間、高低液位警戒線等參數(shù)。
  • 能夠讀取系統(tǒng)設(shè)備記錄的數(shù)據(jù)。
  • 能夠?qū)σ呀?jīng)獲取的數(shù)據(jù)進行顯示、保存、數(shù)據(jù)處理(包括數(shù)值分析及繪圖)。

4.2.2 上位機軟件的界面設(shè)計

直觀、人性的界面設(shè)計能夠為軟件使用者帶來很多的方便,同時也能夠為其留下深刻的印象。界面的設(shè)計與軟件的功能息息相關(guān),具有良好的層次結(jié)構(gòu),使軟件使用者更容易上手。
在滿足上文上位機軟件的要求下,設(shè)計了一個主窗口,四頁標簽子窗口的設(shè)計。主窗口與各個標簽頁的子窗口的相關(guān)功能見表4-5:

表4-5 界面功能描述
標簽
對象
功能
主窗口
關(guān)閉按鈕
用來關(guān)閉程序。
實時液位組框
啟動按鈕按下后用以顯示實時液位。
電機狀態(tài)組框
啟動按鈕按下后用以顯示實時電機開啟/關(guān)閉狀態(tài)。
啟動按鈕
啟動實時監(jiān)控,初始時不可用,待串口打開成功且聯(lián)機成功后變?yōu)榭捎脿顟B(tài)。
標簽一(串口聯(lián)機)
串口號選擇組合框
用以選擇串行口,選擇范圍COM1-COM8
打開串口
在串口號選擇后,使用此按鈕串口硬件建立連接;在串口打開時,該按鈕顯示為 關(guān)閉串口,用來斷開串口的連接。
聯(lián)機檢測按鈕
該按鈕初始時不可用,在打開串口后為可用狀態(tài),用來與系統(tǒng)設(shè)備進行連接,并顯示聯(lián)機狀態(tài)。
標簽二(時間選項)
讀取設(shè)備時間按鈕
該按鈕初始時不可用,在打開串口且聯(lián)機成功后變?yōu)榭捎谩S脕碜x取系統(tǒng)設(shè)備時間并顯示。
設(shè)置系統(tǒng)時間按鈕
該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。用來向系統(tǒng)設(shè)備寫入PC機當前時間。
設(shè)置指定時間按鈕
該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用。用來向系統(tǒng)寫入日期時間系列組合框選定時間。
時間日期系列組合框
選定時間日期,用以設(shè)定指定時間按鈕時間的寫入。設(shè)定范圍為2000年1月1日0時0分至2099年12月31日23時59分之間。
標簽三(液位選項)
讀取當前液位按鈕
該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。讀取系統(tǒng)設(shè)備當前液位及顯示。
讀取液位參數(shù)按鈕
該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。讀取系統(tǒng)設(shè)備當前高低液位警戒線及顯示。
設(shè)置參數(shù)按鈕
該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。設(shè)置系統(tǒng)設(shè)備高低液位警戒線,設(shè)置數(shù)據(jù)由上下液位滑塊提供。
上液位滑塊
確定上液位參數(shù),設(shè)置范圍:大于當前下液位滑塊參數(shù)值,小于5米。
下液位滑塊
確定下液位參數(shù),設(shè)置范圍:小于當前上液位滑塊參數(shù),大于0米。
標簽四(數(shù)據(jù)選項)
讀取數(shù)據(jù)按鈕
該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。讀取系統(tǒng)設(shè)備記錄數(shù)據(jù)。完成后顯示接收記錄數(shù)據(jù)項目數(shù)。
保存按鈕
保存接收數(shù)據(jù)為文本文件,默認文件名為Rec**.txt。(**為數(shù)字,可自行增加)
選擇路徑按鈕
變更文件保存路徑,默認路徑為C:\COMDATA\
數(shù)據(jù)顯示列表框
用以顯示讀取數(shù)據(jù)。
計算耗水量按鈕
使用接收數(shù)據(jù)計算耗水量
繪圖按鈕
使用接收數(shù)據(jù)繪制圖形

界面設(shè)計效果如圖4-5所示。
圖4-5 上位機軟件界面效果圖

4.2.3 上位機串口通信功能的實現(xiàn)

在VC++中,最基本的串口操作是使用Windows API(Application Programming Interface)完成的。Windows 這個多作業(yè)系統(tǒng)除了協(xié)調(diào)應(yīng)用程序的執(zhí)行、分配內(nèi)存、管理資源之外,它同時也是一個很大的服務(wù)中心,調(diào)用這個服務(wù)中心的各種服務(wù)(每一種服務(wù)就是一個函數(shù)),可以幫應(yīng)用程式達到開啟視窗、描繪圖形、使用周邊設(shè)備等目的,由于這些函數(shù)服務(wù)的對象是應(yīng)用程序(Application),簡稱API。通過使用API函數(shù)控制實現(xiàn)串口通信要復(fù)雜一些,但是可以進行深層次的使用。
微軟沒有為串口操作提供相應(yīng)直接的MFC(Microsoft Foundation Classes)類。然而微軟提供了串口編程控件MSComm(Microsoft Communications Control)。MSComm是微軟公司提供的簡化Windows下串行通信編程的ActiveX控件,為應(yīng)用程序提供了通過串行口收發(fā)數(shù)據(jù)的簡便方法。MSComm控件在編程時比較方便,程序員不必去花時間了解較為復(fù)雜的API函數(shù)。它提供一系列標準通信命令的使用接口,利用它可以建立與串口的連接,并可以通過串口連接到其他通信設(shè)備,發(fā)送命令,交換數(shù)據(jù)以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯誤。
在本設(shè)計中,便使用了MSComm控件進行串口編程。
下面就程序中使用的MSComm控件的主要屬性作以說明。
  • CommPort屬性
功能:設(shè)置并返回端口號
說明:串口號設(shè)置返回范圍從1到16。
  • RThreshold屬性
功能:在MSComm控件設(shè)置CommEvent屬性為ComEvRecevie并產(chǎn)生OnComm事件之前,設(shè)置并返回要接受的字符數(shù)。
說明:接收緩沖區(qū)接收到指定字符時差生OnComm事件。當指定字符設(shè)置為零,不產(chǎn)生OnComm事件。
  • Settings屬性
功能:設(shè)置返回波特率、奇偶校驗、數(shù)據(jù)位、停止位參數(shù)。
說明:設(shè)置時以字符串常量或字符串指針傳遞參數(shù)。格式為“BBB,P,D,S”
BBBB為波特率,P為奇偶校驗,D為數(shù)據(jù)位數(shù),S為停止位數(shù)。
  • InPut屬性
功能:從接受區(qū)內(nèi)讀取數(shù)據(jù)。
說明:返回數(shù)據(jù)類型為VARIANT型變量,該屬性在串口沒有打開時不能用,在運行時只讀。
當InputMode屬性為0時,變量中含有String型數(shù)據(jù);
當InputMode屬性為1時,變量中含有Byte型數(shù)據(jù);
  • OutPut屬性
功能:想緩沖區(qū)寫數(shù)據(jù),發(fā)送緩沖區(qū)當前數(shù)據(jù)。
說明:寫入緩沖區(qū)變量類型為VARIANT。發(fā)送二進制數(shù)據(jù)時,將Byte型數(shù)據(jù)放入VARIANT型變量中。
  • PortOpen屬性
功能:打開或關(guān)閉串口,或者返回串口開、關(guān)狀態(tài)
說明:傳入?yún)?shù)為BOOL行,為TRUE時,打開串口;為FALSE時關(guān)閉串口。
串口的使用需要初始化,一般初始化需要以下幾個步驟:
  • 選擇串口號
  • 選擇輸入方式
  • 設(shè)置輸入輸出緩沖區(qū)大小
  • 設(shè)置波特率、奇偶校驗、數(shù)據(jù)位數(shù)、停止位數(shù)參數(shù)
  • 打開串口
  • 設(shè)置接收緩沖區(qū)接收多少數(shù)據(jù)響應(yīng)OnComm事件
  • 設(shè)置當前接受區(qū)長度
  • 先預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)
在串口初始化完成根據(jù)設(shè)置響應(yīng)OnComm事件,在OnComm事件處理函數(shù)中對數(shù)據(jù)進行相應(yīng)的處理。
在此次上位機軟件中OnComm事件處理的思路是這樣的:由于采用的是主從式通信方式,在某個功能按鈕按下后,上位機使用SetOutPut函數(shù)發(fā)送指令,等待系統(tǒng)設(shè)備的響應(yīng),待接收到設(shè)備響應(yīng)時,響應(yīng)OnComm事件,根據(jù)返回的指令設(shè)置下一次響應(yīng)OnComm事件的字符數(shù)或發(fā)送相應(yīng)的數(shù)據(jù)。這樣設(shè)計的優(yōu)點是結(jié)合系統(tǒng)軟件的設(shè)計,在沒有奇偶校驗等差錯控制的情況下,盡量保證發(fā)送、接收數(shù)據(jù)的完整性。避免因系統(tǒng)在數(shù)據(jù)處理時的數(shù)據(jù)丟失。經(jīng)實踐證明,這樣的辦法是可行的。

4.2.4 上位機軟件中的數(shù)據(jù)處理

由于MFC下的編程設(shè)計許多不同的類,不同類中的成員變量與成員函數(shù)參數(shù)的類型不盡相同,因此在實現(xiàn)某些參數(shù)傳遞的過程中不免需要參數(shù)類型的轉(zhuǎn)換。這也是此次上位機軟件設(shè)計的難點之一。
在軟件的編寫過程中設(shè)計了以下幾個類或參數(shù)類型:
CString類:CString是一種很有用的數(shù)據(jù)類型。它們很大程度上簡化了MFC中的許多操作,使得MFC在做字符串操作的時候方便了很多。在軟件中,CString主要用來可視化輸出。
Byte類型:Byte是字節(jié)類型,由于通信過程中有大量的二進制數(shù)據(jù)傳輸,因此Byte類型是必不可少的。
VARIANT類型:使用MSComm控件,在發(fā)送和接收數(shù)據(jù)時,都要用到VARIANT數(shù)據(jù)類型,VARIANT實際上是一種共用體,它由各種類型的的數(shù)據(jù)成員構(gòu)成。
Byte轉(zhuǎn)CString:CString中保存的是字符的ASKII碼,如果直接將Byte強制轉(zhuǎn)換為CString是不行的,因為Byte保存的是二進制數(shù)據(jù)。強制轉(zhuǎn)換的結(jié)果在顯示時將出現(xiàn)亂碼。因此需要自行構(gòu)造轉(zhuǎn)換函數(shù)。由于設(shè)備系統(tǒng)軟件中處理傳輸?shù)臄?shù)據(jù)為壓縮BCD碼,因此,采用移位+48地方法將Byte轉(zhuǎn)換為CString。
Byte轉(zhuǎn)VARIANT:Byte不能直接轉(zhuǎn)換為VARIANT以字符串形式發(fā)送數(shù)據(jù)。這里引入CbyteArray類與COleVariant類間接進行轉(zhuǎn)換,首先使用CbyteArry的成員函數(shù)Add()將Byte依次連接成CbyteArray字符串,使用ColeVariant類將CbyteArray強制轉(zhuǎn)換為VARIANT,進行串行發(fā)送。
VARIANT轉(zhuǎn)Byte:同樣,二者之間不能直接轉(zhuǎn)換,需要引入COleSafeArray類間接進行轉(zhuǎn)換。現(xiàn)將VARIANT強制轉(zhuǎn)換為COleSafeArray,再使用COleSafeArray的GetElement成員函數(shù)將數(shù)據(jù)轉(zhuǎn)換為Byte類型。這種轉(zhuǎn)換在接收數(shù)據(jù)時出現(xiàn)。
解決了類型的轉(zhuǎn)換問題,在發(fā)送、接收、數(shù)據(jù)顯示、數(shù)據(jù)運算等方面便可根據(jù)需要使用相應(yīng)的數(shù)據(jù)類型了。

結(jié)論與展望

此次歷時一學期的設(shè)計研究工作,我受益匪淺。查閱了大量的中英文資料,做了許多驗證性試驗,為最終設(shè)計的完成打下了堅實的基礎(chǔ)。設(shè)計研究的過程也是一個學習的過程,其中使用的許多知識、技術(shù)是大學中未涉及的,這就需要在短時間內(nèi)將這些知識、技術(shù)學以致用。在這里,我將此次設(shè)計中值得注意的地方加以總結(jié)。
以單片機為基礎(chǔ)的應(yīng)用系統(tǒng)的開發(fā)是一個有序的過程,同時也是一個經(jīng)驗積累的過程。一個有豐富開發(fā)經(jīng)驗的開發(fā)人員在硬件方案討論,電路設(shè)計,軟件設(shè)計及調(diào)試的過程中能夠合理有效的開展各個階段的工作,減少錯誤的發(fā)生,縮短研發(fā)周期。因此,多看、多做能夠積累工程人員的經(jīng)驗,提高技能,在產(chǎn)品研發(fā)的過程中能夠有所突破,有所創(chuàng)新。
電子技術(shù)應(yīng)用廣,設(shè)計領(lǐng)域多。在熟悉本職的技術(shù)工作外,開發(fā)設(shè)計人員還需對其他各個行業(yè)有所了解,這樣才能使產(chǎn)品的功能更貼近實際,更合理,更行之有效。
技術(shù)的革新日新月異,為了保證開發(fā)產(chǎn)品成本更低、性能更強,開發(fā)更容易,周期更短,電子電路設(shè)計開發(fā)人員需要不斷地學習掌握新技術(shù),與時俱進。
液位測量監(jiān)控系統(tǒng)的設(shè)計的基本功能的實現(xiàn),說明設(shè)計思路的可行性。然而,在本次設(shè)計中仍有許多不足。
由于時間和精力有限,在上位機軟件設(shè)計上,未對數(shù)據(jù)處理模塊進行進一步的實現(xiàn)與討論。由于專業(yè)知識有限,在此僅提出自己一些淺薄的看法。
先假設(shè)已有5項接收的數(shù)據(jù),如:
設(shè)水箱上下液位間容積為V,水泵單位時間供水量恒定為m。設(shè)5項數(shù)據(jù)相鄰兩項間間隔時間為,第一項至第五項總時間為T。m,V為已知量,t1~t4以及T可通過獲得的數(shù)據(jù)計算得到。設(shè)某段時間內(nèi)平均耗水量為水泵啟動期間時平均耗水量為水泵停止期間平均耗水量為
      
通過記錄的數(shù)據(jù),經(jīng)過計算,便可獲得單位時間內(nèi)平均耗水量。大量的數(shù)據(jù),結(jié)合相應(yīng)的理論算法,重中可以提取出有價值的分析與推測。
與此同時,根據(jù)以上舉例數(shù)據(jù)使用Matlab繪制圖形(這個工作使用VC++編程繪制亦可以完整)如圖5-1:

圖5-1 Matlab繪制圖形
通過圖形,我們可以觀察直線的斜率,直觀的觀察出某一時間段耗水的快慢程度。
當然,這僅僅是一個十分簡單的舉例,計算、繪圖方法不一定科學有效,僅起啟發(fā)思維的作用。
在復(fù)雜的計算分析中,僅在水泵狀態(tài)變化時記錄數(shù)據(jù)往往是不夠的,一項數(shù)據(jù)的內(nèi)容也不夠豐富。我們可在系統(tǒng)程序中,多增加若干個數(shù)據(jù)記錄點記錄數(shù)據(jù)。同時可增加實時高低液位間容積數(shù)據(jù)等內(nèi)容,完善數(shù)據(jù)結(jié)構(gòu)。
盡管系統(tǒng)設(shè)計在始終工作地情況下,沒有考慮現(xiàn)實中萬一掉電的數(shù)據(jù)保護問題,解決這個方法可以擴展大容量FLASH存儲器,即使掉電,已經(jīng)保存的數(shù)據(jù)也不會丟失。
本設(shè)計中沒有加入系統(tǒng)冗余設(shè)計,結(jié)合實際情況,可增加看門狗電路,或使用單片機內(nèi)部看門狗,防止程序跑飛。
人多水少,水資源時空分布不均,水土資源與經(jīng)濟社會發(fā)展布局不相匹配,是我國的基本水情。宏觀上講,通過對液位變化的分析,統(tǒng)計某一地區(qū)用水量,對水資源的統(tǒng)籌調(diào)配是有意義的。微觀上說,根據(jù)統(tǒng)計出數(shù)據(jù)計算某一水箱在一定得統(tǒng)計規(guī)律中最佳的高低警戒線位置,從而減少水泵啟動次數(shù),降低能源消耗,延長水泵受用壽命。
在“十二五”期間,水利政策正在進一步完善,水利基礎(chǔ)建設(shè)正在逐步走向現(xiàn)代化。在我黨科學發(fā)展觀的指導(dǎo)下,新型、環(huán)保、具有可持續(xù)發(fā)展設(shè)計思想的設(shè)備儀器正逐步被人們重視。

致  謝

本文檔是在高文根老師的悉心指導(dǎo)下完成的。導(dǎo)師淵博的專業(yè)知識,嚴謹?shù)闹螌W態(tài)度,精益求精的工作作風,誨人不倦的高尚師德,嚴以律己、寬以待人的崇高風范,樸實無華、平易近人的人格魅力對我影響深遠。本文檔從選題到完成,每一步都是在導(dǎo)師的指導(dǎo)下完成的,傾注了導(dǎo)師大量的心血。在此,謹向?qū)煴硎境绺叩木匆夂椭孕牡母兄x!本文檔的順利完成,離不開各位老師、同學和朋友的關(guān)心和幫助。在此表示深深的感謝!

                                                  作者:
2011 年 06 月 15 日

參考文獻

[1]張毅剛,彭喜元,董繼成.單片機原理及應(yīng)用[M].北京:高等教育出版社,2003.
[2]李書旗,沈金榮.液位測量傳感器系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機測量與控制,2009,17(11):2131-2133.
[3]鄭偉建,夏揚,夏晴.自抗擾控制器在液位控制中的研究[J].計算機仿真,2009,26(10):190-193.
[4]鐘曉強.基于單片機實現(xiàn)的液位控制器設(shè)計[J].現(xiàn)代電子技術(shù),2009,32(2):51-53.
[5]蔡黎.一種基于單片機的水位控制系統(tǒng)設(shè)計[J].儀器儀表用戶,2007,14(4):44-45.
[6]陳霞,白小軍.基于單片機的液位監(jiān)控系統(tǒng)[J].武漢理工大學學報,2007,29(3):3-5.
[7]陳新昌,王萬章,李祥付.單片機在水位控制中的應(yīng)用[J].中國科技信息,2006,(24):89-90,94.
[8]蘇曉龍,王香婷.基于RS-485總線的數(shù)據(jù)采集系統(tǒng)[J].儀表技術(shù)與傳感器,2007,(12).
[9]張寶偉.基于Lab VIEW的液位監(jiān)控系統(tǒng)[D].哈爾濱:哈爾濱工業(yè)大學,2007.
[10]張鳳蘭.液位測量與監(jiān)控系統(tǒng)設(shè)計[D].北京:北方工業(yè)大學,2010.
[11]任開春,涂亞慶.20余種液位測量方法分析[J].工業(yè)儀表與自動化裝置,2003,(5):12-16.
[12]柳軍,等.基于AVR單片機的液面測量監(jiān)控系統(tǒng)的設(shè)計[J].中國醫(yī)療設(shè)備,2009,24(12):27-30.
[13]丁希順.單片微型計算機液位測量系統(tǒng)設(shè)計[J].安陽師范學院學報,2005(2):71-73.
[14]老虎工作室編著.電路設(shè)計與制版:Protel 99SE入門與提高[M].北京:人民郵電出版社,2007.
[15]彭軍.傳感器與檢測技術(shù)[M].西安:西安電子科技大學出版社,2003.
[16]余永權(quán).單片機在控制系統(tǒng)中應(yīng)用[M].北京:電子工業(yè)出版社,2003.
[17]劉鯤,孫春亮.單片機C語言入門[M].北京:人民郵電出版社,2008.
[18]姚振東,朱勇.電容傳感器在液位測量中的應(yīng)用[J].傳感器世界,2000,(9):4-7.
[19] Maurice Wilkes. Progress in Computers [J]. IEEE Trans on PE, Feb 2004,Vol.3(NO.6):470-472.
[20] Jae Hyeong Seo, Cang Ho Choi. A new simplified Space-Vector PWM Method for Three-level-Inverters [J].IEEE Trans on PE, July 2001,Vol.16(NO.4):545-550.

附  錄A系統(tǒng)電路原理圖

附  錄  B外文文獻及譯文

Progress in Computers
Prestige Lecture delivered to IEE, Cambridge, on 5 February 2004
Maurice Wilkes
Computer Laboratory
University of Cambridge
The first stored program computers began to work around 1950. The one we built in Cambridge, the EDSAC was first used in the summer of 1949.
These early experimental computers were built by people like myself with varying backgrounds. We all had extensive experience in electronic engineering and were confident that that experience would stand us in good stead. This proved true, although we had some new things to learn. The most important of these was that transients must be treated correctly; what would cause a harmless flash on the screen of a television set could lead to a serious error in a computer.
As far as computing circuits were concerned, we found ourselves with an embarass de richess. For example, we could use vacuum tube diodes for gates as we did in the EDSAC or pentodes with control signals on both grids, a system widely used elsewhere. This sort of choice persisted and the term families of logic came into use. Those who have worked in the computer field will remember TTL, ECL and CMOS. Of these, CMOS has now become dominant.
In those early years, the IEE was still dominated by power engineering and we had to fight a number of major battles in order to get radio engineering along with the rapidly developing subject of electronics.dubbed in the IEE light current electrical engineering.properly recognised as an activity in its own right. I remember that we had some difficulty in organising a conference because the power engineers’ ways of doing things were not our ways. A minor source of irritation was that all IEE published papers were expected to start with a lengthy statement of earlier practice, something difficult to do when there was no earlier practice
Consolidation in the 1960s
By the late 50s or early 1960s, the heroic pioneering stage was over and the computer field was starting up in real earnest. The number of computers in the world had increased and they were much more reliable than the very early ones . To those years we can ascribe the first steps in high level languages and the first operating systems. Experimental time-sharing was beginning, and ultimately computer graphics was to come along.
Above all, transistors began to replace vacuum tubes. This change presented a formidable challenge to the engineers of the day. They had to forget what they knew about circuits and start again. It can only be said that they measured up superbly well to the challenge and that the change could not have gone more smoothly.
Soon it was found possible to put more than one transistor on the same bit of silicon, and this was the beginning of integrated circuits. As time went on, a sufficient level of integration was reached for one chip to accommodate enough transistors for a small number of gates or flip flops. This led to a range of chips known as the 7400 series. The gates and flip flops were independent of one another and each had its own pins. They could be connected by off-chip wiring to make a computer or anything else.
These chips made a new kind of computer possible. It was called a minicomputer. It was something less that a mainframe, but still very powerful, and much more affordable. Instead of having one expensive mainframe for the whole organisation, a business or a university was able to have a minicomputer for each major department.
Before long minicomputers began to spread and become more powerful. The world was hungry for computing power and it had been very frustrating for industry not to be able to supply it on the scale required and at a reasonable cost. Minicomputers transformed the situation.
The single-chip computer
At each shrinkage the number of chips was reduced and there were fewer wires going from one chip to another. This led to an additional increment in overall speed, since the transmission of signals from one chip to another takes a long time.
Eventually, shrinkage proceeded to the point at which the whole processor except for the caches could be put on one chip. This enabled a workstation to be built that out-performed the fastest minicomputer of the day, and the result was to kill the minicomputer stone dead. As we all know, this had severe consequences for the computer industry and for the people working in it.
From the above time the high density CMOS silicon chip was Cock of the Roost. Shrinkage went on until millions of transistors could be put on a single chip and the speed went up in proportion.
Processor designers began to experiment with new architectural features designed to give extra speed. One very successful experiment concerned methods for predicting the way program branches would go. It was a surprise to me how successful this was. It led to a significant speeding up of program execution and other forms of prediction followed
Equally surprising is what it has been found possible to put on a single chip computer by way of advanced features. For example, features that had been developed for the IBM Model 91.the giant computer at the top of the System 360 range.are now to be found on microcomputers
Murphy’s Law remained in a state of suspension. No longer did it make sense to build experimental computers out of chips with a small scale of integration, such as that provided by the 7400 series. People who wanted to do hardware research at the circuit level had no option but to design chips and seek for ways to get them made. For a time, this was possible, if not easy
Unfortunately, there has since been a dramatic increase in the cost of making chips, mainly because of the increased cost of making masks for lithography, a photographic process used in the manufacture of chips. It has, in consequence, again become very difficult to finance the making of research chips, and this is a currently cause for some concern.
The Semiconductor Road Map
The extensive research and development work underlying the above advances has been made possible by a remarkable cooperative effort on the part of the international semiconductor industry.
At one time US monopoly laws would probably have made it illegal for US companies to participate in such an effort. However about 1980 significant and far reaching changes took place in the laws. The concept of pre-competitive research was introduced. Companies can now collaborate at the pre-competitive stage and later go on to develop products of their own in the regular competitive manner.
The agent by which the pre-competitive research in the semi-conductor industry is managed is known as the Semiconductor Industry Association (SIA). This has been active as a US organisation since 1992 and it became international in 1998. Membership is open to any organisation that can contribute to the research effort.
Every two years SIA produces a new version of a document known as the International Technological Roadmap for Semiconductors (ITRS), with an update in the intermediate years. The first volume bearing the title ‘Roadmap’ was issued in 1994 but two reports, written in 1992 and distributed in 1993, are regarded as the true beginning of the series.
Successive roadmaps aim at providing the best available industrial consensus on the way that the industry should move forward. They set out in great detail.over a 15 year horizon. the targets that must be achieved if the number of components on a chip is to be doubled every eighteen months.that is, if Moore’s law is to be maintained.-and if the cost per chip is to fall.
In the case of some items, the way ahead is clear. In others, manufacturing problems are foreseen and solutions to them are known, although not yet fully worked out; these areas are coloured yellow in the tables. Areas for which problems are foreseen, but for which no manufacturable solutions are known, are coloured red. Red areas are referred to as Red Brick Walls.
The targets set out in the Roadmaps have proved realistic as well as challenging, and the progress of the industry as a whole has followed the Roadmaps closely. This is a remarkable achievement and it may be said that the merits of cooperation and competition have been combined in an admirable manner.
It is to be noted that the major strategic decisions affecting the progress of the industry have been taken at the pre-competitive level in relative openness, rather than behind closed doors. These include the progression to larger wafers.
By 1995, I had begun to wonder exactly what would happen when the inevitable point was reached at which it became impossible to make transistors any smaller. My enquiries led me to visit ARPA headquarters in Washington DC, where I was given a copy of the recently produced Roadmap for 1994. This made it plain that serious problems would arise when a feature size of 100 nm was reached, an event projected to happen in 2007, with 70 nm following in 2010. The year for which the coming of 100 nm (or rather 90 nm) was projected was in later Roadmaps moved forward to 2004 and in the event the industry got there a little sooner.
I presented the above information from the 1994 Roadmap, along with such other information that I could obtain, in a lecture to the IEE in London, entitled The CMOS end-point and related topics in Computing and delivered on 8 February 1996.
The idea that I then had was that the end would be a direct consequence of the number of electrons available to represent a one being reduced from thousands to a few hundred. At this point statistical fluctuations would become troublesome, and thereafter the circuits would either fail to work, or if they did work would not be any faster. In fact the physical limitations that are now beginning to make themselves felt do not arise through shortage of electrons, but because the insulating layers on the chip have become so thin that leakage due to quantum mechanical tunnelling has become troublesome.
There are many problems facing the chip manufacturer other than those that arise from fundamental physics, especially problems with lithography. In an update to the 2001 Roadmap published in 2002, it was stated that the continuation of progress at present rate will be at risk as we approach 2005 when the roadmap projects that progress will stall without research break-throughs in most technical areas “. This was the most specific statement about the Red Brick Wall, that had so far come from the SIA and it was a strong one. The 2003 Roadmap reinforces this statement by showing many areas marked red, indicating the existence of problems for which no manufacturable solutions are known.
It is satisfactory to report that, so far, timely solutions have been found to all the problems encountered. The Roadmap is a remarkable document and, for all its frankness about the problems looming above, it radiates immense confidence. Prevailing opinion reflects that confidence and there is a general expectation that, by one means or another, shrinkage will continue, perhaps down to 45 nm or even less.
However, costs will rise steeply and at an increasing rate. It is cost that will ultimately be seen as the reason for calling a halt. The exact point at which an industrial consensus is reached that the escalating costs can no longer be met will depend on the general economic climate as well as on the financial strength of the semiconductor industry itself.。
Insulating layers in the most advanced chips are now approaching a thickness equal to that of 5 atoms. Beyond finding better insulating materials, and that cannot take us very far, there is nothing we can do about this. We may also expect to face problems with on-chip wiring as wire cross sections get smaller. These will concern heat dissipation and atom migration. The above problems are very fundamental. If we cannot make wires and insulators, we cannot make a computer, whatever improvements there may be in the CMOS process or improvements in semiconductor materials. It is no good hoping that some new process or material might restart the merry-go-round of the density of transistors doubling every eighteen months.
I said above that there is a general expectation that shrinkage would continue by one means or another to 45 nm or even less. What I had in mind was that at some point further scaling of CMOS as we know it will become impracticable, and the industry will need to look beyond it.
Since 2001 the Roadmap has had a section entitled emerging research devices on non-conventional forms of CMOS and the like. Vigorous and opportunist exploitation of these possibilities will undoubtedly take us a useful way further along the road, but the Roadmap rightly distinguishes such progress from the traditional scaling of conventional CMOS that we have been used to.
Advances in Memory Technology
Unconventional CMOS could revolutionalize memory technology. Up to now, we have relied on DRAMs for main memory. Unfortunately, these are only increasing in speed marginally as shrinkage continues, whereas processor chips and their associated cache memory continue to double in speed every two years. The result is a growing gap in speed between the processor and the main memory. This is the memory gap and is a current source of anxiety. A breakthrough in memory technology, possibly using some form of unconventional CMOS, could lead to a major advance in overall performance on problems with large memory requirements, that is, problems which fail to fit into the cache.
Perhaps this, rather than attaining marginally higher basis processor speed will be the ultimate role for non-conventional CMOS.
Shortage of Electrons
Although shortage of electrons has not so far appeared as an obvious limitation, in the long term it may become so. Perhaps this is where the exploitation of non-conventional CMOS will lead us. However, some interesting work has been done.notably by Haroon Amed and his team working in the Cavendish Laboratory.on the direct development of structures in which a single electron more or less makes the difference between a zero and a one. However very little progress has been made towards practical devices that could lead to the construction of a computer. Even with exceptionally good luck, many tens of years must inevitably elapse before a working computer based on single electron effects can be contemplated.

微機發(fā)展簡史
IEEE的文檔 劍橋大學,2004/2/5
莫里斯 威爾克斯
計算機實驗室
劍橋大學

第一臺存儲程序的計算開始出現(xiàn)于1950前后,它就是1949年夏天在劍橋大學,我們創(chuàng)造的延遲存儲自動電子計算機(EDSAC)。
最初實驗用的計算機是由象我一樣有著廣博知識的人構(gòu)造的。我們在電子工程方面都有著豐富的經(jīng)驗,并且我們深信這些經(jīng)驗對我們大有裨益。后來,被證明是正確的,盡管我們也要學習很多新東西。最重要的是瞬態(tài)一定要小心應(yīng)付,雖然它只會在電視機的熒幕上一起一個無害的閃光,但是在計算機上這將導(dǎo)致一系列的錯誤。
在電路的設(shè)計過程中,我們經(jīng)常陷入兩難的境地。舉例來說,我可以使用真空二級管做為門電路,就象在EDSAC中一樣,或者在兩個柵格之間用帶控制信號的五級管,這被廣泛用于其他系統(tǒng)設(shè)計,這類的選擇一直在持續(xù)著直到邏輯門電路開始應(yīng)用。在計算機領(lǐng)域工作的人都應(yīng)該記得TTL,ECL和CMOS,到目前為止,CMOS已經(jīng)占據(jù)了主導(dǎo)地位。
在最初的幾年,IEE(電子工程師協(xié)會)仍然由動力工程占據(jù)主導(dǎo)地位。為了讓IEE 認識到無線工程和快速發(fā)展的電子工程并行發(fā)展是它自己的一項權(quán)利,我們不得不面對一些障礙。由于動力工程師們做事的方式與我們不同,我們也遇到了許多困難。讓人有些憤怒的是,所有的IEE出版的文檔都被期望以冗長的早期研究的陳述開頭,無非是些在早期階段由于沒有太多經(jīng)驗而遇到的困難之類的陳述。
60年代的鞏固階段
60年代初,個人英雄時代結(jié)束了,計算機真正引起了重視。世界上的計算機數(shù)量已經(jīng)增加了許多,并且性能比以前更加可靠。這些我認為歸因與高級語言的起步和第一個操作系統(tǒng)的誕生。分時系統(tǒng)開始起步,并且計算機圖形學隨之而來。
綜上所述,晶體管開始代替正空管。這個變化對當時的工程師們是個不可回避的挑戰(zhàn)。他們必須忘記他們熟悉的電路重新開始。只能說他們鼓起勇氣接受了挑戰(zhàn),盡管這個轉(zhuǎn)變并不會一帆風順。
小規(guī)模集成電路和小型機
很快,在一個硅片上可以放不止一個晶體管,由此集成電路誕生了。隨著時間的推移,一個片子能夠容納的最大數(shù)量的晶體管或稍微少些的邏輯門和翻轉(zhuǎn)門集成度達到了一個最大限度。由此出現(xiàn)了我們所知道7400系列微機。每個門電路或翻轉(zhuǎn)電路是相互獨立的并且有自己的引腳。他們可通過導(dǎo)線連接在一起,作成一個計算機或其他的東西。
這些芯片為制造一種新的計算機提供了可能。它被稱為小型機。他比大型機稍遜,但功能強大,并且更能讓人負擔的起。一個商業(yè)部門或大學有能力擁有一臺小型機而不是得到一臺大型組織所需昂貴的大型機。
隨著微機的開始流行并且功能的完善,世界急切獲得它的計算能力但總是由于工業(yè)上不能規(guī)模供應(yīng)和它可觀的價格而受到挫折。微機的出現(xiàn)解決了這個局面。
單片機
芯片每次的縮小,芯片數(shù)量將減少;并且芯片間的導(dǎo)線也隨之減少。這導(dǎo)致了整體速度的下降,因為信號在各個芯片間的傳輸時間變長了。
漸漸地,芯片的收縮到只剩下處理器部分,緩存都被放在了一個單獨的片子上。這使得工作站被建成擁有當代小型機一樣的性能,結(jié)果搬倒了小型機絕對的基石。正如我們所知道的,這對于計算機工業(yè)和從事計算機事業(yè)的人產(chǎn)生了深遠的影響
自從上述時代的開始,高密度CMOS硅芯片成為主導(dǎo)。隨著芯片的縮小技術(shù)的發(fā)展,數(shù)百萬的晶體管可以放在一個單獨的片子上,相應(yīng)的速度也成比例的增加。
為了得到額外的速度。處理器設(shè)計者開始對新的體系構(gòu)架進行實驗。一次成功的實驗都預(yù)言了一種新的編程方式的分支的誕生。我對此取得的成功感到非常驚奇。它導(dǎo)致了程序執(zhí)行速度的增加并且其相應(yīng)的框架。
同樣令人驚奇的是,通過更高級的特性建立一種單片機是有可能的。例如,為IBM Model 91開發(fā)的新特性,現(xiàn)在在單片機上也出現(xiàn)了。
Murphy定律仍然在中止的狀態(tài)。它不再適用于使用小規(guī)模集成芯片設(shè)計實驗用的計算機,例如7400系列。想在電路級上做硬件研究的人們沒有別的選擇除了設(shè)計芯片并且找到實現(xiàn)它的辦法。一段時間內(nèi),這樣是可能的,但是并不容易。
不幸的是,制造芯片的花費有了戲劇性的增長,主要原因是制造芯片過程中電路印刷版制作成本的增加。因此,為制作芯片技術(shù)追加資金變的十分困難,這是當前引起人們關(guān)注的原因。
半導(dǎo)體前景規(guī)劃
對于以上提到的各個方面,在部分國際半導(dǎo)體工業(yè)部門的精誠合作下,廣泛的研究與開發(fā)工作是可行的。
在以前美國反壟斷法禁止這種行為。但是在1980年,該法律發(fā)生了很大變化。預(yù)競爭概念被引進了該法律。各個公司現(xiàn)在可以在預(yù)言競爭階段展開合作,然后在規(guī)則允許的情況下繼續(xù)開發(fā)各自的產(chǎn)品。
在半導(dǎo)體工業(yè)中,預(yù)競爭研究的管理機構(gòu)是半導(dǎo)體工業(yè)協(xié)會。1972年作為美國國內(nèi)的組織,1998年成為一個世界性的組織。任何一個研究組織都可加入該協(xié)會。
每兩年,SIA修訂一次ITRS(國際半導(dǎo)體科學規(guī)劃),并且逐年更新。1994年在第一卷中引入了“前景規(guī)劃”一詞,該卷由兩個文檔組成,先于1992年,在1993年提交。它被認為是該規(guī)劃的真正開始。
為了推動半導(dǎo)體工業(yè)的向前發(fā)展,后續(xù)的規(guī)劃提供最好的可利用的工業(yè)標準。它們對于15年內(nèi)的發(fā)展做出了詳細的規(guī)劃。要達到的目標是每18個月晶體管的集成度增加一倍,同時每塊芯片的價格下降一半,即Moore定律。
對于某些方面,前面的道路是清楚的。在另一方面,制造業(yè)的問題是可以預(yù)見的并且解決的辦法也是可以知道的,盡管不是所有的問題都能夠解決。這樣的領(lǐng)域在表格中由藍色表示,同時沒有解決辦法的,加以紅色。紅色區(qū)域往往稱為紅色磚墻。
規(guī)劃建立的目標是現(xiàn)實的,同時也是充滿挑戰(zhàn)的。半導(dǎo)體工業(yè)整體上的進步于該規(guī)劃密不可分。這是個令人驚訝的成就,它可以說是合作和競爭共同的價值。
值得注意的是,促進半導(dǎo)體工業(yè)向前發(fā)展的主要的戰(zhàn)略決策是相對開放的預(yù)競爭機制,而不是閉關(guān)鎖國。這也包括大規(guī)模圓晶片取得進展的原因。
1995年前,我開始感覺到,如果達到了不可能使得晶體管體積更小的臨界點時,將發(fā)生什么。懷著這樣的疑惑,我訪問了位于華盛頓的ARPA(美國國防部)指揮總部,在那,我看到1994年規(guī)劃的復(fù)本。我恍然大悟,當圓晶片尺寸在2007年達到100納米時,將出現(xiàn)嚴重的問題,在2010年達到70納米時也如此。在隨后的2004年的規(guī)劃中,當圓晶片尺寸達到100納米時,也做了相應(yīng)的規(guī)劃。不久半導(dǎo)體工業(yè)將發(fā)展到那一步。
從1994年的規(guī)劃中我引用了以上的信息,還有就是一篇提交到IEE的項目為CMOS終結(jié)點的文檔和在1996年2月8號的Computing上討論的一些項目。
我現(xiàn)在的想法是,最終的結(jié)果是表示一個存在可用的電子數(shù)目從數(shù)千減少到數(shù)百。在這樣的情況下,統(tǒng)計波動將成為問題。最后,電路或者不再工作,或者達到了速度的極限。事實上,物理限制將開始讓他們感覺到不能突破電子最終的不足,原因是芯片上絕緣層越來越薄,以致量子理論中隧道效應(yīng)引起了麻煩,導(dǎo)致了滲漏。
相對基礎(chǔ)物理學,芯片制造者面對的問題要多出許多,尤其是電路印刷術(shù)遇到的困難。2001年更新2002年出版的規(guī)劃中,陳述了這樣一種情況,照目前的發(fā)展速度,如果在2005年前在關(guān)鍵技術(shù)領(lǐng)域沒有取得大的突破的話,半導(dǎo)體業(yè)將停止不前。這是對“紅色磚墻”最準確的描述。到目前為止是SIA遇到的最麻煩的問題。2003年的規(guī)劃書強調(diào)了這一點,通過在許多地方加上了紅色,指示在這些領(lǐng)域仍存在人們沒有解決的制造方法問題。
到目前為止,可以很滿意的報道,所遇到的問題到及時找到了解決之道。規(guī)劃書是個非凡的文檔,并且它坦白了以上提到的問題,并表示出了無限的信心。主要的見解反映出了這種信心并且有一個大致的期望,通過某種方式,圓晶體將變的更小,也許到45納米或更小。
然而,花費將以很大的速率增長。也許將成為半導(dǎo)體停滯不前的最終原因。對于逐步增加的花費直到不能滿足,這個精確的工業(yè)上達到一致意見的平衡點,依賴于經(jīng)濟的整體形勢和半導(dǎo)體工業(yè)自身的財政狀況。
最高級芯片的絕緣層厚度僅有5個原子的大小。除了找到更好的絕緣材料外,我們將寸步難行。對于此,我們沒有任何辦法。我們也不得不面對芯片的布線問題,線越來越細小了。還有散熱問題和原子遷移問題。這些問題是相當基礎(chǔ)性的。如果我們不能制作導(dǎo)線和絕緣層,我們就不能制造一臺計算機。不論在CMOS加工工藝上和半導(dǎo)體材料上取得多么大的進步。更別指望有什么新的工藝或材料可以使得半導(dǎo)體集成度每18個月翻一番的美好時光了。
我在上文中說到,圓晶體繼續(xù)縮小直到45納米或更小是個大致的期望。在我的頭腦中,從某點上來說,我們所知道的繼續(xù)縮小CMOS是不可行的,但工業(yè)上需要超越它。
2001年以來,規(guī)劃書中有一部分陳述了非傳統(tǒng)形式CMOS的新興研究設(shè)備。一些精力旺盛的人和一些投機者的探索無疑給了我們一些有益的途徑,并且規(guī)劃書明確分辨出了這些進步,在那些我們曾經(jīng)使用的傳統(tǒng)CMOS方面。
內(nèi)存技術(shù)的進步
非傳統(tǒng)的CMOS變革了存儲器技術(shù)。直到現(xiàn)在,我們?nèi)匀灰揽緿RAM作為主要的存儲體。不幸的是,隨著芯片的縮小,只有芯片外圍速度上的增長——處理器芯片和它相關(guān)的緩存速度每兩年增加一倍。這就是存儲器代溝并且是人們焦慮的根源。存儲技術(shù)的一個可能突破是,使用一種非傳統(tǒng)的CMOS管,在計算機整體性能上將導(dǎo)致一個很大的進步,將解決大存儲器的需求,即緩存不能解決的問題。
也許這個,而不是外圍電路達到基本處理器的速度將成為非傳統(tǒng)CMOS.的最終角色。
電子的不足
盡管目前為止,電子每表現(xiàn)出明顯的不足,然而從長遠看來,它最終會不能滿足要求。也許這是我們開發(fā)非傳統(tǒng)CMOS管的原因。在Cavendish實驗室里,Haroon Amed已經(jīng)作了很多有意義的工作,他們想通過一個單獨電子或多或少的表現(xiàn)出0和1的區(qū)別。然而對于構(gòu)造實用的計算機設(shè)備只取得了一點點進展。也許由于偶然的好運氣,數(shù)十年后一臺基于一個單獨電子的計算機也許是可以實現(xiàn)的。


以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存):
基于單片機的液位控制系統(tǒng)設(shè)計-精品.doc (1.02 MB, 下載次數(shù): 56)


回復(fù)

使用道具 舉報

ID:1019972 發(fā)表于 2022-4-20 11:00 | 顯示全部樓層
誰能根據(jù)樓主提供的這些來畫出仿真圖和代碼學習一下嗎?
回復(fù)

使用道具 舉報

ID:1065638 發(fā)表于 2023-3-14 21:46 | 顯示全部樓層
2590413275 發(fā)表于 2022-4-20 11:00
誰能根據(jù)樓主提供的這些來畫出仿真圖和代碼學習一下嗎?

哥們你有了嗎
回復(fù)

使用道具 舉報

ID:1113285 發(fā)表于 2024-3-21 10:39 | 顯示全部樓層
非常好,資料很詳細,要有代碼就更好了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费av手机在线观看 | 亚洲精品久久久久国产 | 在线观看亚洲专区 | 在线日韩福利 | 国产精品视频久久久久久 | 欧美色综合一区二区三区 | 91视频在线看 | 国产精品美女久久久久久久网站 | 久久国内 | 成人啊啊啊 | 99精品国产一区二区三区 | 一二区视频 | 国产一区二区三区在线 | 欧美日韩精品一区二区三区四区 | 欧美在线视频一区二区 | 九九av | 欧美精品在线一区 | 久久99国产精品 | 日本免费黄色 | 精产国产伦理一二三区 | 91在线视频观看 | 天天躁日日躁狠狠躁2018小说 | 亚州精品天堂中文字幕 | 欧美日韩在线播放 | 69av在线视频 | 国产精品久久久久久婷婷天堂 | 亚洲一区二区在线播放 | 一区二区小视频 | 国产日韩精品在线 | 成av在线 | 精品久久久久久亚洲精品 | 九九热久久免费视频 | 亚洲精品久久区二区三区蜜桃臀 | 全免费a级毛片免费看视频免 | 中文字幕综合在线 | 亚洲一区二区三区四区五区中文 | 免费在线观看黄色av | 波多野结衣中文视频 | 亚洲毛片在线 | 性色av香蕉一区二区 | 日本在线视频一区二区 |