




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 PAGE- 30 - / NUMPAGES301 緒論單片機應(yīng)用發(fā)展迅速而廣泛。在過程控制中,單片機既可作為主計算機,又可作為分布式計算機控制系統(tǒng)中的前端機,完成模擬量的采集和開關(guān)量的輸入、處理和控制計算,然后輸出控制信號。單片機廣泛用于儀器儀表中,與不同類型的傳感器相結(jié)合,實現(xiàn)諸如電壓、功率、頻率、濕度、流量、速度、厚度、壓力、溫度等物理量的測量;在家用電器設(shè)備中,單片機已廣泛用于電視機、錄音機、電冰箱、電飯鍋、微波爐、洗衣、高級電子玩具、家用防盜報警等各種家電設(shè)備中。在計算機網(wǎng)絡(luò)和通信、醫(yī)用設(shè)備、工商、金融、科研、教育、國防、航空航天等領(lǐng)域都有著十分廣泛的應(yīng)用。隨著科技的發(fā)展,液位測量技
2、術(shù)趨于智能化、微型化、可視化。本設(shè)計思想是用單片機做下位機,PC機做上位機,單片機和PC機相結(jié)合對水箱液位進行測量和監(jiān)控。該設(shè)計要求具有一定的智能化,可操作性和穩(wěn)定性好。11 課題背景與研究意義在工農(nóng)業(yè)生產(chǎn)中,常常需要測量液體液位。隨著國家工業(yè)的迅速發(fā)展,液位測量技術(shù)被廣泛應(yīng)用到石油、化工、醫(yī)藥、食品等各行各業(yè)中。低溫液體(液氧、液氮、液氬、液化天然氣與液體二氧化碳等)得到廣泛的應(yīng)用,作為貯存低溫液體的容器要保證能承受其載荷;在發(fā)電廠、煉鋼廠中,保持正常的鍋爐汽包水位、除氧器水位、汽輪機凝氣器水位、高、低壓加熱器水位等,是設(shè)備安全運行的保證;在教學(xué)與科學(xué)研究中,也經(jīng)常碰到需要進行液位控制的實驗
3、裝置。12 國外研究現(xiàn)狀與發(fā)展液位測量的方法比較多,依據(jù)測量方式的不同可分為接觸式與非接觸式兩種類型。接觸式測量法接觸式測量法是指測量用傳感器直接與容器存儲液體相接觸,從而獲得測量參數(shù)的方法。本方法所使用的電容通常由兩塊圓柱形極板或一個探極與罐壁構(gòu)成。當(dāng)液位不同時,電容器的介電常數(shù)就不同,故電容量也不同。在此基礎(chǔ)上可以把電容量轉(zhuǎn)化為電壓、相移、頻率、脈寬等物理量,再進行測量。電容式液位測量裝置通常結(jié)構(gòu)簡單、靈敏度高、穩(wěn)定性好、動態(tài)響應(yīng)快,適合于惡劣的工作環(huán)境,生產(chǎn)成本也不高;但電容液位測量器需要考慮溫度補償,且介質(zhì)的成分、水分、溫度、密度等不確定變化因素直接影響測量結(jié)果的準(zhǔn)確性,另外檢測電路比
4、較復(fù)雜,尤其是檢測微小電容量的變化。非接觸式測量法非接觸式測量法包括超聲波法、調(diào)制型光學(xué)法、微波法等。其特點是測量手段并不采用浮子之類的固態(tài)物,而是利用聲、光、射線、磁場等的能量。液位傳感器不和被測介質(zhì)接觸,不受被測介質(zhì)影響,也不影響被測介質(zhì),故適用圍廣泛。特別是接觸式測量裝置不能適用的特殊場合,如高粘度、強腐蝕性、污染性強,易結(jié)晶的介質(zhì)。光纖測量法光纖液位檢測是近年來出現(xiàn)的一種新技術(shù)。根據(jù)光導(dǎo)纖維中光在不同介質(zhì)中傳輸特性的改變對液位進行測量。光纖液位測量有以下優(yōu)點:精度高、靈敏度好、抗電磁干擾、耐腐蝕、電絕緣性好、檢測現(xiàn)場無電、光路有抗擾性以與便于與計算機連接,便于與光纖傳輸系統(tǒng)組成網(wǎng)絡(luò)等。
5、目前,市面上進行液位測量的儀表種類繁多,但是同時具有測量、監(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ù)警提供可靠的支持。13 本課題主要研究容利用單片機設(shè)計一個水位控制系統(tǒng),要求選擇合適的水位傳感
6、器與電磁閥,當(dāng)設(shè)定完水位后,系統(tǒng)根據(jù)水位情況控制電磁閥的開啟和關(guān)斷。具體要求如下:1、設(shè)計單片機工作電源模塊與其復(fù)位電路2、選擇合適的水位傳感器,單片機通過相應(yīng)的調(diào)理電路采集當(dāng)前水位值,設(shè)計相應(yīng)的電磁閥控制電路,根據(jù)水位情況控制器開啟和關(guān)斷3、通過鍵盤設(shè)置其預(yù)定水位4、畫出電路方框圖,敘述主要模塊的功能與他們之間的控制關(guān)系和數(shù)據(jù)傳輸,利用Visio軟件繪制軟件流程圖5、編制相應(yīng)的控制程序,并用C語言或匯編語言對軟件進行編譯。并能通過調(diào)試。6、利用protel進行原理圖繪制,并利用Proteus進行仿真2 系統(tǒng)設(shè)計方案2.1 系統(tǒng)設(shè)計方案比較對于水位進行控制的方式有很多,而應(yīng)用較多的主要有2種,
7、一種是簡單的機械式控制裝置控制,一種是復(fù)雜的控制器控制方式。兩種方式的實現(xiàn)如下: (1)簡單的機械式控制方式。其常用形式有浮標(biāo)式、電極式等,這種控制形式的優(yōu)點是結(jié)構(gòu)簡單,成本低廉。存在問題是精度不高,不能進行數(shù)值顯示,另外很容易引起誤動作,且只能單獨控制,與計算機進行通信較難實現(xiàn)。 (2)復(fù)雜控制器控制方式。這種控制方式是通過安裝在水泵出口管道上的壓力傳感器,把出口壓力變成標(biāo)準(zhǔn)工業(yè)電信號的模擬信號,經(jīng)過前置放大、多路切換、AD變換成數(shù)字信號傳送到單片機,經(jīng)單片機運算和給定參量的比較,進行PID運算,得出調(diào)節(jié)參量;經(jīng)由DA變換給調(diào)壓變頻調(diào)速裝置輸入給定端,控制其輸出電壓變化,來調(diào)節(jié)電機轉(zhuǎn)速,以達
8、到控制水位的目的。本設(shè)計利用單片機設(shè)計一個水位控制系統(tǒng),要求選擇合適的水位傳感器與電磁閥,當(dāng)設(shè)定完水位后,系統(tǒng)根據(jù)水位情況控制電磁閥的開啟和關(guān)斷。2.2 系統(tǒng)設(shè)計總框圖電機控制模塊A/D轉(zhuǎn)換模塊按鍵與顯示模塊時間模塊存儲模塊通信模塊單片機主控模塊 圖2-SEQ 圖2- * ARABIC1系統(tǒng)總體框圖2.3 硬件設(shè)計方案2.3.1 工作原理基于單片機實現(xiàn)的水位控制器是以AT89C51芯片為核心,由鍵盤、數(shù)碼顯示、AD轉(zhuǎn)換、傳感器,電源和控制部分等組成。工作過程如下:當(dāng)水位發(fā)生變化時,引起連接在水位底部軟管管的空氣氣壓變化,氣壓傳感器在接收到軟管的空氣氣壓信號后,即把變化量轉(zhuǎn)化成電壓信號;該信號經(jīng)
9、過運算放大電路放大后變成幅度為05 V標(biāo)準(zhǔn)信號,送入AD轉(zhuǎn)換器,AD轉(zhuǎn)換器把模擬信號變成數(shù)字信號量,由單片機進行實時數(shù)據(jù)采集,并進行處理,根據(jù)設(shè)定要求控制輸出,同時數(shù)碼管顯示液位高度。通過鍵盤設(shè)置液位高、低和限定值以與強制報警值。該系統(tǒng)控制器特點是直觀地顯示水位高度,可任意控制水位高度。2.3.2 主控模塊設(shè)計方案單片機作為主控模塊,使得在對單片機選型上有了較大的空間。單片機在30多年的發(fā)展歷程中,形成了多公司、多系列、多型號“百家爭鳴”的局面。因而,選擇一個合適的單片機有時真的不太容易,要考慮的方面太多。大致總結(jié)出以下幾點:1) 單片機的基本參數(shù)。例如速度、程序存儲器容量、I/O引腳數(shù)量等。
10、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.83.6V電壓圍工作。8) 供貨渠道暢通。9) 價格。10) 燒錄器價格,能否ISP(在線系統(tǒng)編程)。11) 仿真器。12) 單片機匯編語言支持。13) 資料盡量豐富。14) 抗干擾性能好。15) 和其他外設(shè)芯片放在一起
11、的綜合考慮。單片機采用由Atmel公司生產(chǎn)的雙列40腳AT89C51芯片,如圖22所示。其中,P0口用于AD轉(zhuǎn)換和顯示;P1口連接一個35的鍵盤;P2口用于控制電磁閥和水泵動作;P3口用于上、下限指示燈,報警指示燈以與用于讀寫控制和中斷等。 圖2-2 AT89C51的管腳圖 2.3.3 鍵盤顯示模塊設(shè)計方案鍵盤顯示電路主要是實現(xiàn)水位設(shè)定值的輸入和顯示實時水位的功能。鍵盤接口與其軟件的設(shè)計任務(wù)主要包括:是否有鍵按下的檢測并判斷鍵值,有操作則進行延時去消抖,并根據(jù)鍵值計算出調(diào)整量送執(zhí)行機構(gòu)開啟進水或排水閥,進行一系列的動作處理和執(zhí)行。本系統(tǒng)采用4行4列的16鍵行列式鍵盤,占用單片機P1口的8個端口
12、。顯示采用4位LED數(shù)碼顯示當(dāng)前水位測量值。2.3.4 A/D轉(zhuǎn)換模塊設(shè)計方案ADC0809是M美國國家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D轉(zhuǎn)換器。其部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。是目前國應(yīng)用最廣泛的8位通用A/D芯片。1、主要特性(1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。(2)具有轉(zhuǎn)換起??刂贫恕#?)轉(zhuǎn)換時間為100s(時鐘為640kHz時),130s(時鐘為500kHz時)(4)單個5V電源供電(5)模擬輸入電壓圍05V,不需零點和滿刻度校準(zhǔn)。(6)工作溫度圍為-4085攝氏度(7)
13、低功耗,約15mW。2、部結(jié)構(gòu)和外部引腳ADC0809的部結(jié)構(gòu)和外部引腳分別如下兩圖所示。部各部分的作用和工作原理在部結(jié)構(gòu)圖中已一目了然,在此就不再贅述,下面僅對各引腳定義分述如下:(1)IN0IN78路模擬輸入,通過3根地址譯碼線ADDA、ADDB、ADDC來選通一路。(2)D7D0A/D轉(zhuǎn)換后的數(shù)據(jù)輸出端,為三態(tài)可控輸出,故可直接和微處理器數(shù)據(jù)線連接。8位排列順序是D7為最高位,D0為最低位。(3)ADDA、ADDB、ADDC模擬通道選擇地址信號,ADDA為低位,ADDC為高位。地址信號與選道對應(yīng)關(guān)系如表11.3所示。(4)VR(+)、VR(-)正、負參考電壓輸入端,用于提供片DAC電阻網(wǎng)
14、絡(luò)的基準(zhǔn)電壓。在單極性輸入時,VR(+)=5V,VR(-)=0V;雙極性輸入時,VR(+)、VR(-)分別接正、負極性的參考電壓。(5)ALE地址鎖存允許信號,高電平有效。當(dāng)此信號有效時,A、B、C三位地址信號被鎖存,譯碼選通對應(yīng)模擬通道。在使用時,該信號常和START信號連在一起,以便同時鎖存通道地址和啟動A/D轉(zhuǎn)換。(6)STARTA/D轉(zhuǎn)換啟動信號,正脈沖有效。加于該端的脈沖的上升沿使逐次逼近寄存止,重新從頭開始轉(zhuǎn)換器清零,下降沿開始A/D轉(zhuǎn)換。如正在進行轉(zhuǎn)換時又接到新的啟動脈沖,則原來的轉(zhuǎn)換進程被中。地址選道ADDCADDBADDA000011110011001101010101IN0
15、IN1IN2IN3IN4IN5IN6IN7 圖23 ADC0809外部引腳圖7)EOC轉(zhuǎn)換結(jié)束信號,高電平有效。該信號在A/D轉(zhuǎn)換過程中為低電平,其余時間為高電平。該信號可作為被CPU查詢的狀態(tài)信號,也可作為對CPU的中斷請求信號。在需要對某個模擬量不斷采樣、轉(zhuǎn)換的情況下,EOC也可作為啟動信號反饋接到START端,但在剛加電時需由外電路第一次啟動。(8)OE輸出允許信號,高電平有效。當(dāng)微處理器送出該信號時,ADC0808/0809的輸出三態(tài)門被打開,使轉(zhuǎn)換結(jié)果通過數(shù)據(jù)總線被讀走。在中斷工作方式下,該信號往往是CPU發(fā)出的中斷請求響應(yīng)信號。2.3.5 電機控制模塊設(shè)計方案選用繼電器作為電機控制
16、的元件。繼電器是一種電子控制器件,它具有控制系統(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)定地工作。而對于線圈所加的工作電壓,一般不要超過額定工作電
17、壓的1.5倍,否則會產(chǎn)生較大的電流而把線圈燒毀。4) 釋放電流。是指繼電器產(chǎn)生釋放動作的最大電流。當(dāng)繼電器吸合狀態(tài)的電流減小到一定程度時,繼電器就會恢復(fù)到未通電的釋放狀態(tài)。這時的電流遠遠小于吸合電流。5) 觸點切換電壓和電流。是指繼電器允許加載的電壓和電流。它決定了繼電器能控制電壓和電流的大小,使用時不能超過此值,否則很容易損壞繼電器的觸點。根據(jù)以上的參數(shù),結(jié)合設(shè)計的演示性,選用額定工作電壓120VAC/24VDC,工作電流3A,控制電壓5VDC的小型繼電器。3 硬件電路設(shè)計3.1 AT89S52硬件設(shè)計AT89S52引腳定義與功能介紹如圖3-1。圖3- SEQ 圖3- * ARABIC 1
18、AT89S52引腳與網(wǎng)絡(luò)標(biāo)號P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有部上拉電阻。在FLASH編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流(IIL)。此
19、外,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口是一個具有部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用
20、。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的容。在FLASH編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流(
21、IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。表3-1 端口引腳第二功能端口號第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INTO(外中斷0)P3.3INT1(外中斷1)P3.4TO(定時/計數(shù)器0)P3.5T1(定時/計數(shù)器1)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。RST復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。ALE/PROG當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地
22、址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位L
23、B1被編程,復(fù)位時部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行部程序存儲器的指令。FLASH存儲器編程時,該引腳加上12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放大器和部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。為了便于接下來的說明,單片機各管腳網(wǎng)絡(luò)標(biāo)號定義如圖3-1。根據(jù)電路設(shè)計規(guī)和AT89S52芯片手冊,設(shè)計時鐘電路與復(fù)位電路如圖3-2:圖3-SEQ 圖3- * ARABIC2 復(fù)位電路與時鐘電路圖中網(wǎng)絡(luò)標(biāo)號RST連接單片機RST引腳,具有上電復(fù)位與手動復(fù)位的功能;XTAL1與XTAL2連接單片機XT
24、AL1和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),當(dāng)有按鍵按下時,相應(yīng)的I/O端口變?yōu)榈碗娖?,而未被按下的按鍵在上拉電阻作用下為高電平,這
25、樣通過讀I/O口的狀態(tài)判斷是否有按鍵按下。系統(tǒng)按鍵電路如圖3-3所示。下圖中,S2S5便是控制顯示用的按鍵。其作用就是通過按動它們實現(xiàn)對高低警戒液位的設(shè)置。具體來說,S3、S4分別實現(xiàn)數(shù)字的增一與減一,S2、S5則作為高低警戒液位的模式選擇和確認鍵。圖3- SEQ 圖3- * ARABIC 3系統(tǒng)按鍵電路3. 3顯示單元硬件設(shè)計在顯示單元上,使用了74LS273帶公共時鐘復(fù)位八位觸發(fā)器與74LS47共陽極BCD顯示譯碼驅(qū)動芯片。兩個芯片的管腳圖如圖3-4:圖3- SEQ 圖3- * ARABIC 474LS273與74LS47引腳圖3. 4存儲單元硬件設(shè)計存儲模塊的硬件設(shè)計比較簡單,由于AT8
26、9S52單片機為數(shù)據(jù)線與低8位地址線復(fù)用,需要使用地址鎖存芯片74LS373。上文中已敘述,使用32KRAM作為存儲芯片,因此選用與51系列兼容的62256隨機數(shù)據(jù)存儲器。該模塊中使用的兩個芯片管腳功如圖3-6:在62256中,A0A14管腳為地址總線,共15位,尋址圍可達到32kB;I/O0I/O7為8位三態(tài)雙向數(shù)據(jù)接口;Vcc,Vss為電源和地;CS是片選接口,低電平有效;OE/WE分別是讀選通和寫選通數(shù)據(jù)輸入輸入線,低電平有效。圖3- SEQ 圖3- * ARABIC 6 62256引腳圖圖3-SEQ 圖3- * ARABIC7存儲的單元電路3. 5 時間單元硬件設(shè)計DS1302因其較小
27、的體積,占用I/O口資源少等特點,是常用的時間芯片。此次設(shè)計采用DIP-8封裝,管腳功能如圖3-8:圖3-SEQ 圖3- * ARABIC8 DS1302引腳圖其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中電壓較大者供電。當(dāng)Vcc2大于Vcc10.2V時,Vcc2供電,當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源接口,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳輸。RST輸入有兩種功能:首先RST接通控制邏輯,允許地址/命令序列送入移位
28、寄存存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果傳送過程中RST置為低電平,則會終止此次傳輸,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端。SCLK始終是輸入端,用來輸入串行時鐘信號。根據(jù)DS1302的特點,設(shè)計電路如圖3-9:圖3- SEQ 圖3- * ARABIC 9時間單元電路在實際應(yīng)用中,起控制、輸入輸出的三個端口上拉較弱,容因產(chǎn)生信號串?dāng)_,因此加上了上拉電阻與單片機P1口相連,加強信號的穩(wěn)
29、定性;為了保證時鐘的可靠性,在Vcc1上使用了CR2032紐扣電池作為備用電源,輸出電壓為3V,從而保證了系統(tǒng)掉電狀態(tài)下,時鐘能夠繼續(xù)保持運行。3. 6A/D轉(zhuǎn)換單元硬件設(shè)計A/D轉(zhuǎn)換模塊是系統(tǒng)中較為重要的一部分,由于涉與到模擬部分,A/D轉(zhuǎn)換器的結(jié)構(gòu)較為復(fù)雜。圖3- SEQ 圖3- * ARABIC 10 ADC0804引腳圖根據(jù)以上參數(shù)分析,設(shè)計電路如圖3-11:圖3- SEQ 圖3- * ARABIC 11 A/D轉(zhuǎn)換單元電路圖3. 7通信單元硬件設(shè)計MAX485僅有8個管腳,電路設(shè)計比較簡單。圖3- SEQ 圖3- * ARABIC 12 MAX485引腳圖RO引腳接到單片機串口接收引
30、腳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ò)標(biāo)號為E,接入單片機P1口,用于發(fā)送與接收的轉(zhuǎn)換。A,B端為發(fā)送接收差分信號端,一般需在A,B端之間加匹配電阻,匹配電阻為120。硬件電路如圖3-13:圖3- SEQ 圖3- * ARABIC 13串行通信模塊電路圖3. 8其他外圍電路的設(shè)計繼電器
31、電路設(shè)計。由于使用單片機I/O口的驅(qū)動電流較弱,不滿足繼電器吸合電流參數(shù)的要求,所以需使用三極管驅(qū)動繼電器吸合。設(shè)計電路如圖3-14。為了防止電源尖峰脈沖引發(fā)的噪聲干擾以與高頻信號線間的耦合干擾,在電源入口處與芯片頂端或底端,接入去耦電容,以增強系統(tǒng)的穩(wěn)定性。電源指示燈設(shè)計如圖3-15。圖3- SEQ 圖3- * ARABIC 14 繼電器部分電路圖 3- SEQ 圖3- * ARABIC 15 電源指示燈電路圖4 軟件程序設(shè)計4.1 系統(tǒng)主程序流程圖系統(tǒng)主程序的功能主要是完成對單片機的初始化,設(shè)置警戒液位的上下限,實時顯示液位值以與鍵盤掃描等工作。主程序流程圖如圖4-1所示。開始CPU初始化
32、參數(shù)設(shè)定是否有按鍵采樣子程序顯示實時液位數(shù)據(jù)處理子程序控制電機啟停按鍵處理是否 圖41 主程序流程圖4.2 顯示與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:十六進制二進制滿刻度比率相對電壓幅值Vref=2.5V高四位低四位高四位電壓低四位電壓F111115/1615/2564.8000.320E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/1612
33、/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.200910019/169/2562.8800.180010008/168/2562.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/2560.00
34、00.000 表4-2 A/D轉(zhuǎn)換幅值數(shù)據(jù)關(guān)系對照表顯示轉(zhuǎn)換部分程序簡略如下:uchar dis_transform(uchar num)uchar ac, quotient, play, mid ;ac = num%5;quotient = (num-ac)/5;if(ac2)quotient+;ac=quotient%10;mid=(quotient-ac)/10;play=ac+mid*16;return play;4.3 系統(tǒng)主程序ORG 0000HAJMP MAINORG 0060HMAIN: MOV P1, #FFH ; P1 P3口初始化置1MOV P3,#FFHJNB P1.3
35、 , AVT ; 若手動在自動位置,跳到自動模式程序AJMP MEN ; 否則轉(zhuǎn)到手動模式子程序ENDAUT: NOP(空命令)JNB P1.2 , LG ; 水位高LG P1.1 LD , ; 水位沒低LDCLR P3.1 ; 水位低報警 P1.0, LDD ; 水位未低低LDDCLR P3.0 ; 水位低低報警JNB 3.1 P1.6, Y1 ; M1已啟動Y1CLR P1.4 ; 否則啟動M1Y1:JNB P1.7 ,Y2 ; M2已啟動Y2 CLR P1.5 ; 否則啟動M2Y2:ACALL DELAY ; 延時1分鐘 AJMP AUT ; 返回自動模式LDD: JNB P1.6 ,Y
36、3 ; 單獨運行M1(LDD水位LD)CLR P1.4Y3: P1.7 Y2 SETB P1.5 AJMP Y2 LG:CLR P3.2 ; 水位高報警 LD: AJMP MAIN ; 返回主程序5 總結(jié)作為一名電氣的大四學(xué)生,在即將畢業(yè)之際,通過做這次課程設(shè)計是很有意義的,而且也是必要的。在做這次課程設(shè)計的過程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計資料了。為了讓自己的設(shè)計更加完善,查閱這方面的實際資料是十分必要的,也是必不可少的。其次,在這次課程設(shè)計中,我們運用了以前學(xué)過的專業(yè)課知識,如:proteus仿真、匯編語言、模擬和數(shù)字電路知識等。雖然過去我從未獨立應(yīng)用過他們,但在學(xué)習(xí)的過程中帶著問題去
37、學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計的又一收獲。最后,要做好一個課程設(shè)計,就必須做到:在設(shè)計程序之前,對所用單片機的部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機有哪些資源;要有一個清晰的思路和一個完整的軟件流程圖;在設(shè)計程序時,不能妄想一次將整個程序設(shè)計好,反復(fù)修改、不斷改進是程序設(shè)計的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,這樣為資料的保留和交流提供了方便;在設(shè)計中遇到的問題要記錄,以免下次遇到同樣的問題。在這次的課程設(shè)計中,我真正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單片機更是如此,程序只有在經(jīng)常寫與讀的過程中才能提高,這就是這次課程設(shè)計的最大收獲。附 錄 系
38、統(tǒng)軟件源代碼#include #include #define uchar unsigned charuchar hostmark;uchar idata sec,min,hr,date,mon,day,year;uchar idata uplq,downlq,numm,prelq,xdat,key;uchar xdata * idata numtab;uchar xdata * idata xmark;uchar idata num1,num2;int tab;uchar bdata iodat;uchar bdata ddat;sbit iodat7=iodat7;sbit ddat0=d
39、dat0;sbit SCLK=P10;sbit IO_DATA=P11;sbit RST=P12;sbit adRD=P13;sbit adWR=P14;sbit E=P15;sbit DIS=P16;sbit RELAY=P17;/*延遲子程序*yanshi()int i,j;for(i=0;i120;i+)for(j=0;j2)quotient+;ac=quotient%10;mid=(quotient-ac)/10;play=ac+mid*16;return play;/液位顯示*display()DIS=0;_nop_();_nop_();_nop_();_nop_();_nop_()
40、;P0=dis_transform(prelq);_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DIS=1;/*/DS1302讀寫*ds_read()uchar j;iodat=0 x00;for(j=8;j0;j-)iodat=iodat1;iodat7=IO_DATA;_nop_();SCLK=1;_nop_();SCLK=0;ds_write(uchar ad)uchar i;ddat=ad;for(i=8;i0;i-)IO_DATA=ddat0;_nop_();SCLK=1;_nop_();ddat=ddat1;SCLK=0;/讀取時間
41、*uchar ds_gettime(uchar gadd) RST=0;_nop_();SCLK=0;_nop_();RST=1;ds_write(gadd);IO_DATA=1;ds_read();RST=0;return iodat; /設(shè)置時間*ds_settime(uchar sadd,uchar sdat)RST=0;_nop_();SCLK=0;_nop_();RST=1;ds_write(sadd);ds_write(sdat);RST=0;/*/*ad轉(zhuǎn)換模塊*ad_start() /啟動 adWR=0;_nop_();_nop_();_nop_();_nop_();_nop_
42、();_nop_();adWR=1;_nop_();_nop_();_nop_();ad_read() /讀取P0=0 xff;/adWR=0;_nop_();_nop_();adRD=0;_nop_();_nop_();prelq=P0;_nop_();_nop_();adRD=1;adWR=1;getalltime() /讀所有時間sec=ds_gettime(0 x81 );min=ds_gettime(0 x83 );hr=ds_gettime(0 x85 );date=ds_gettime(0 x87 );mon=ds_gettime(0 x89 );day=ds_gettime(0
43、 x8b );year=ds_gettime(0 x8d );/*/*初始化*sp_init()TMOD=0 x22;SCON=0 x40;TH1=0 xf4;TL1=0 xf4;PCON=0 x80;IE=0;TR1=1;REN=1;port_init()adRD=1;adWR=0;E=0;DIS=0;RELAY=1;data_init()xmark=0 x7531;if(*xmark!=0 xf0)xmark=0 x0000;*xmark=0;numtab=0 x0001;xmark=0 x7531;*xmark=0 xf0;num1=0;num2=0;ad_start();_nop_()
44、;_nop_();_nop_();ad_read();key=0;uplq=0 x0af;downlq=0 x96;getalltime();ds_init()if(ds_gettime(0 xc1)!=0 xaa) sec=0 x00;min=0 x00;hr=0 x00;date=0 x01;mon=0 x01;day=0 x04;year=0 x09;ds_settime(0 x90,0 xab);ds_settime(0 x80,sec);ds_settime(0 x82,min);ds_settime(0 x84,hr);ds_settime(0 x86,date);ds_setti
45、me(0 x88,mon);ds_settime(0 x8a,day);ds_settime(0 x8c,year);ds_settime(0 xc0,0 xaa);main_init()port_init();sp_init();ds_init();data_init();display();/*/串口通信*uchar receive()/接收int tmp; E=0; while(!RI); tmp=SBUF; RI=0; E=0; return tmp;send(uchar dd) /發(fā)送E=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();SBUF=dd;while(!TI);TI=0;E=0;/*/通信子程序*sp_connection()send(0 xF0);sp_readtime()getalltime
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省泰州市2025屆高三第一次調(diào)研測試語文試題及答案解析
- 2025年黨章黨紀(jì)黨史黨建知識競賽多項選擇題庫及答案(共180道題)
- 應(yīng)聘銷售簡歷個人
- 長租房委托協(xié)議
- 山西省2024-2025學(xué)年高三下學(xué)期2月開學(xué)摸底考試物理試題(原卷版+解析版)
- 2025年度按揭購車信用保險合作協(xié)議范本
- 物流行業(yè)智能調(diào)度與配送優(yōu)化方案
- 品牌推廣策略實施指南
- 生態(tài)旅游開發(fā)居間合同
- 中醫(yī)護理學(xué)(第5版)課件 第4章 病因
- 標(biāo)準(zhǔn)作業(yè)指導(dǎo)書模板(SOP)
- 傳統(tǒng)文化寫作課件高中英語人教新課標(biāo)必修三
- 變壓器產(chǎn)權(quán)移交單協(xié)議書
- 教師師德考核表
- 歐派終端培訓(xùn)銷售篇
- 《式微》課件完整版
- 甘蔗種植技術(shù)
- 第11課《核舟記》-部編版語文八年級下冊
- 護理基礎(chǔ)知識1000題
- 馬工程-公共財政概論-課程教案
- 千年菩提路解說詞
評論
0/150
提交評論