基于單片機(jī)的水位控制系統(tǒng)方案_第1頁
基于單片機(jī)的水位控制系統(tǒng)方案_第2頁
基于單片機(jī)的水位控制系統(tǒng)方案_第3頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 PAGE PAGE 7 / 42緒論又可作為分布式計(jì)算機(jī)控制系統(tǒng)中的前端機(jī),完成模擬量的采集和開關(guān)量的 輸入、處理和控制計(jì)算,然后輸出控制信號(hào)。單片機(jī)廣泛用于儀器儀表中, 與不同類型的傳感器相結(jié)合,實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、流量、速 度、厚度、壓力、溫度等物理量的測量;在家用電器設(shè)備中,單片機(jī)已廣泛 用于電視機(jī)、錄音機(jī)、電冰箱、電飯鍋、微波爐、洗衣、高級電子玩具、家 用防盜報(bào)警等各種家電設(shè)備中。在計(jì)算機(jī)網(wǎng)絡(luò)和通信、醫(yī)用設(shè)備、工商、金 融、科研、教育、國防、航空航天等領(lǐng)域都有著十分廣泛的應(yīng)用。隨著科技的發(fā)展,液位測量技術(shù)趨于智能化、微型化、可視化。本設(shè)計(jì) 思想是用單片機(jī)做下位機(jī), PC

2、機(jī)做上位機(jī),單片機(jī)和 PC位進(jìn)行測量和監(jiān)控。該設(shè)計(jì)要求具有一定的智能化,可操作性和穩(wěn)定性好。課題背景與研究意義在工農(nóng)業(yè)生產(chǎn)中,常常需要測量液體液位。隨著國家工業(yè)的迅速發(fā)展,液位測量技術(shù)被廣泛應(yīng)用到石油、化工、醫(yī)藥、食品等各行各業(yè)中。低溫液體(液氧、液氮、液氬、液化天然氣與液體二氧化碳等)得到廣泛的應(yīng)用,作為貯存低溫液體的容器要保證能承受其載荷;在發(fā)電廠、煉鋼廠中,保持正常的鍋爐汽包水位、除氧器水位、汽輪機(jī)凝氣器水位、高、低壓加熱器水位等,是設(shè)備安全運(yùn)行的保證;在教學(xué)與科學(xué)研究中,也經(jīng)常碰到需要進(jìn)行液位控制的實(shí)驗(yàn)裝置。國外研究現(xiàn)狀與發(fā)展型。接觸式測量法數(shù)的方法。為電壓、相移、頻率、脈寬等物理量,

3、再進(jìn)行測量。檢測電路比較復(fù)雜,尤其是檢測微小電容量的變化。非接觸式測量法非接觸式測量法包括超聲波法、調(diào)制型光學(xué)法、微波法等。其特點(diǎn)是測量手段并不采用浮子之類的固態(tài)物,而是利用聲、光、射線、磁場等的能量。液位傳感器不和被測介質(zhì)接觸,不受被測介質(zhì)影響,也不影響被測介質(zhì),故適用圍廣泛。特別是接觸式測量裝置不能適用的特殊場合,如高粘度、強(qiáng)腐蝕性、污染性強(qiáng),易結(jié)晶的介質(zhì)。光纖測量法光纖液位檢測是近年來出現(xiàn)的一種新技術(shù)。根據(jù)光導(dǎo)纖維中光在不同介質(zhì)中傳輸特性的改變對液位進(jìn)行測量。光纖液位測量有以下優(yōu)點(diǎn):精度高、靈敏度好、抗電磁干擾、耐腐蝕、電絕緣性好、檢測現(xiàn)場無電、光路有抗擾性以與便于與計(jì)算機(jī)連接,便于與光

4、纖傳輸系統(tǒng)組成網(wǎng)絡(luò)等。目前,市面上進(jìn)行液位測量的儀表種類繁多,但是同時(shí)具有測量、監(jiān)控、數(shù)據(jù)記錄如江河湖海、城市用水等方面,大量數(shù)據(jù)長時(shí)間,多網(wǎng)點(diǎn)的采集記錄分析具有普遍的意義。液位的變化分析,有助于人們進(jìn)一步對自然環(huán)境、天氣變化甚至是災(zāi)害預(yù)警提供可靠的支持。本課題主要研究容設(shè)定完水位后,系統(tǒng)根據(jù)水位情況控制電磁閥的開啟和關(guān)斷。具體要求如下:1、設(shè)計(jì)單片機(jī)工作電源模塊與其復(fù)位電路2、選擇合適的水位傳感器,單片機(jī)通過相應(yīng)的調(diào)理電路采集當(dāng)前水位值,設(shè)計(jì)相應(yīng)的電磁閥控制電路,根據(jù)水位情況控制器開啟和關(guān)斷3、通過鍵盤設(shè)置其預(yù)定水位4用Visio軟件繪制軟件流程圖5、編制相應(yīng)的控制程序,并用C語言或匯編語言

5、對軟件進(jìn)行編譯。并能通過調(diào)試。6、利用protel進(jìn)行原理圖繪制,并利用Proteus進(jìn)行仿真系統(tǒng)設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)方案比較對于水位進(jìn)行控制的方式有很多,而應(yīng)用較多的主要有 2 種,一種是簡單的機(jī)械式控制裝置控制,一種是復(fù)雜的控制器控制方式。兩種方式的實(shí)現(xiàn)如下:優(yōu)點(diǎn)是結(jié)構(gòu)簡單,成本低廉。存在問題是精度不高,不能進(jìn)行數(shù)值顯示,另外很容易引起誤動(dòng)作,且只能單獨(dú)控制,與計(jì)算機(jī)進(jìn)行通信較難實(shí)現(xiàn)。復(fù)雜控制器控制方式。這種控制方式是通過安裝在水泵出口管道上的壓力傳感器,把出口壓力變成標(biāo)準(zhǔn)工業(yè)電信號(hào)的模擬信號(hào),經(jīng)過前置放大、多路切換、DPIDDA2.2總框圖A/D 轉(zhuǎn)換模塊A/D 轉(zhuǎn)換模塊存儲(chǔ)模塊通信模塊按鍵

6、與顯示模塊單片機(jī)主控模塊通信模塊按鍵與顯示模塊時(shí)間模塊電機(jī)控制模塊時(shí)間模塊電機(jī)控制模塊圖 2-1 系統(tǒng)總體框圖硬件設(shè)計(jì)方案工作原理基于單片機(jī)實(shí)現(xiàn)的水位控制器是以 AT89C51 芯片為核心,由鍵盤、數(shù)碼顯示、AD0 5VAD,AD地顯示水位高度,可任意控制水位高度。主控模塊設(shè)計(jì)方案單片機(jī)作為主控模塊,使得在對單片機(jī)選型上有了較大的空間。單片機(jī)在 30 多年的發(fā)展歷程中,形成了多公司、多系列、多型號(hào)“百家爭鳴”的局面。因而,選擇一個(gè)合適的單片機(jī)有時(shí)真的不太容易,要考慮的方面太多。大致總結(jié)出以下幾點(diǎn):單片機(jī)的基本參數(shù)。例如速度、程序存儲(chǔ)器容量、I/O引腳數(shù)量等。RT(實(shí)時(shí)時(shí)鐘EEPROM擴(kuò)展RAM

7、、CAN接口、I2C接口、SPI接口、USB接口。Flash和OTP(一次性可編程)。封裝:DIP(雙列直插),PLCC(PLCC有對應(yīng)插座)還是貼片。工作溫度圍,工業(yè)級還是商業(yè)機(jī)。功耗。工作電壓圍。例如設(shè)計(jì)電視機(jī)遙控器,2節(jié)干電池供電 ,至少應(yīng)該能1.83.6V電壓圍工作。供貨渠道暢通。價(jià)格。燒錄器價(jià)格,能否ISP(在線系統(tǒng)編程)。仿真器。單片機(jī)匯編語言支持。資料盡量豐富??垢蓴_性能好。和其他外設(shè)芯片放在一起的綜合考慮。單片機(jī)采用由 Atmel 公司生產(chǎn)的雙列40腳 AT89C51芯片,如圖22所示。其中,P0口用于 AD 轉(zhuǎn)換和顯示;P1口連接一個(gè)35的鍵盤;P2口用于控制電磁閥和水泵動(dòng)作

8、;P3口用于上、下限指示燈,報(bào)警指示燈以與用于讀寫控制和中斷等。圖2-2 AT89C51的管腳圖鍵盤顯示模塊設(shè)計(jì)方案4行4列的16鍵行列式鍵盤,占用單片機(jī)P1口的8口。顯示采用4LEDA/DADC0809MCMOS8888A/D81、主要特性(1)88A/D8具有轉(zhuǎn)換起停控制端。8 / 42100s(640kHz),130s(500kHz)單個(gè)5V05V,不需零點(diǎn)和滿刻度校準(zhǔn)。工作溫度圍為-408515mW2、部結(jié)構(gòu)和外部引腳ADC0809在部結(jié)構(gòu)圖中已一目了然,在此就不再贅述,下面僅對各引腳定義分述如下:(1)ININ83ADDADDADD07通一路。ABCDA/D70理器數(shù)據(jù)線連接。8 位

9、排列順序是 D 為最高位,D 為最低位。70ADDADDABCAC地址信號(hào)與選道對應(yīng)關(guān)系如表 11.3 所示。(4)V (+)、V (-)正、負(fù)參考電壓輸入端,用于提供片DAC 電阻網(wǎng)絡(luò)的基RR(-)=0VVRRRR接正、負(fù)極性的參考電壓。(5)ALE地址鎖存允許信號(hào),高電平有效。當(dāng)此信號(hào)有效時(shí),A、B、C 三位地址信號(hào)被鎖存,譯碼選通對應(yīng)模擬通道。在使用時(shí),該信號(hào)常和STARTA/D(6)STARTA/D逐次逼近寄存止,重新從頭開始轉(zhuǎn)換器清零,下降沿開始A/D換時(shí)又接到新的啟動(dòng)脈沖,則原來的轉(zhuǎn)換進(jìn)程被中。地址地址ADD00選道CADDBADDA0001ININ019 / 42010IN201

10、1IN3100IN4101IN5110IN6111IN7圖 23 ADC0809 外部引腳圖7)EOCA/DCPUCPUSTART(8)OE輸出允許信號(hào),高電平有效。當(dāng)微處理器送出該信號(hào)時(shí), ADC0808/0809 的輸出三態(tài)門被打開,使轉(zhuǎn)換結(jié)果通過數(shù)據(jù)總線被讀走。在中斷作方式下,該信號(hào)往往是CPU發(fā)出的中斷請求響應(yīng)信號(hào)。電機(jī)控制模塊設(shè)計(jì)方案選用繼電器作為電機(jī)控制的元件。繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。繼電器

11、主要產(chǎn)品技術(shù)參數(shù):型號(hào)不同,可以是交流電壓,也可以是直流電壓。10 / 42直流電阻。是指繼電器中線圈的直流電阻,可以通過萬能表測量。吸合電流。是指繼電器能夠產(chǎn)生吸合動(dòng)作的最小電流。在正常使用時(shí),給作電壓,一般不要超過額定工作電壓的1.5倍,否則會(huì)產(chǎn)生較大的電流而把線圈燒毀。釋放電流。是指繼電器產(chǎn)生釋放動(dòng)作的最大電流。當(dāng)繼電器吸合狀態(tài)的電吸合電流。觸點(diǎn)切換電壓和電流。是指繼電器允許加載的電壓和電流。它決定了繼電根據(jù)以上的參數(shù),結(jié)合設(shè)計(jì)的演示性,選用額定工作電壓120VAC/24VDC,工作電流3A,控制電壓5VDC的小型繼電器。11 / 42硬件電路設(shè)計(jì)AT89S52 硬件設(shè)計(jì)AT89S52引

12、腳定義與功能介紹如圖3-1。圖 3-1 AT89S52 引腳與網(wǎng)絡(luò)標(biāo)號(hào)P0口口是一個(gè)8位漏極開路的雙向I/O8個(gè)邏輯電平。對P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存12 / 42 PAGE PAGE 14 / 42儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有部上拉電阻。在FLASH編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1口:P1口是一個(gè)具有部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTLP1時(shí),部上拉電阻把端口拉高,此時(shí)可以作為輸入口此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外

13、部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/ 計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下所示:在FLASH編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。引腳號(hào)第二功能:P1.0/T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出P1.1/T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制) P1.5 MOSI(在系統(tǒng)編程用)P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用)P2口:P2口是一個(gè)具有部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTLP2時(shí),部上拉電阻把端口拉高,此時(shí)可以作為輸入口在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX

14、 DPTR) 口使用很強(qiáng)的部上拉發(fā)送18 位地址(如MOVX RI)P2口輸出P2鎖存器的容。在FLASH 編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3口:P3口是一個(gè)具有部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTLP3時(shí),部上拉電阻把端口拉高,此時(shí)可以作為輸入口P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。表3-1 端口引腳第二功能P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6P3.7第二功能RXD(TXD(0) INT11) TO(/T1(/WR(RD(此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。

15、 RST使單片機(jī)復(fù)位。ALE/PROG當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí), ALE(地址鎖存允許) 輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALEFLASH輸入編程脈沖(PROG)。PSEN程序儲(chǔ)存允許( PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。EA/VPP 外部訪問允許, 欲使CPU 僅訪問外部程序存

16、儲(chǔ)器( 地址為端必須保持低電平(接地)LB1EAEA端為高電平(Vcc端儲(chǔ)器的指令。FLASH存儲(chǔ)器編程時(shí),該引腳加上12V的編程允許電源Vpp必須是該器件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放大器和部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。為了便于接下來的說明,單片機(jī)各管腳網(wǎng)絡(luò)標(biāo)號(hào)定義如圖3-1。根據(jù)電路設(shè)計(jì)規(guī)和AT89S52芯片手冊,設(shè)計(jì)時(shí)鐘電路與復(fù)位電路如圖3-2:圖 3-2 復(fù)位電路與時(shí)鐘電路圖中網(wǎng)絡(luò)標(biāo)號(hào)RST連接單片機(jī)RST與XTAL2連接單片機(jī)XTAL1和XTAL2引腳,且并聯(lián)兩個(gè)30pF匹配電容使晶振起振。由于單片機(jī)P0口作普通I/O口時(shí)不能輸出

17、高電平,因此需接上拉電阻,實(shí)際電路中,使用8*10K電阻作為上拉電阻。15 / 42按鍵設(shè)計(jì)I/O口上,通過程序掃描查詢方式實(shí)現(xiàn)與單片機(jī)系統(tǒng)交互的。在程序查I/OI/O端口變?yōu)榈碗娖?,而未被按下的按鍵在上拉電阻作用下為高電平,這樣通過讀I/O口的狀態(tài)判斷是否有按鍵按下。系統(tǒng)按鍵電路如圖3-3所示。下圖中,S2S5便是控制顯示用的按鍵。其作用就是通過按動(dòng)它們實(shí)現(xiàn)對高低S4S5低警戒液位的模式選擇和確認(rèn)鍵。圖 3-3 系統(tǒng)按鍵電路16 / 423. 3 顯示單元硬件設(shè)計(jì)74LS273帶公共時(shí)鐘復(fù)位八位觸發(fā)器與74LS47共陽極顯示譯碼驅(qū)動(dòng)芯片。兩個(gè)芯片的管腳圖如圖3-4:3-474LS27374L

18、S473. 4 存儲(chǔ)單元硬件設(shè)計(jì)AT89S52874LS37332KRAM5162256該模塊中使用的兩個(gè)芯片管腳功如圖 3-6:62256,A0A1415Vcc,Vss 選接口, 低電平有效; 和寫選通數(shù)據(jù)輸入輸入管腳為地址總線,共I/O0I/O78為電源和地;CSOE/WE 分別是讀選通線,低電平有效。圖 3-5 62256 引腳圖17 / 42圖 3-6 存儲(chǔ)的單元電路3. 5時(shí)間單元硬件設(shè)計(jì)DS1302I/ODIP-83-8:圖 3-7 DS1302 引腳圖其中Vcc1DS1302由Vcc1或Vcc2Vcc2大于Vcc10.2V Vcc2小于Vcc1由Vcc1X1和X2是振蕩源接口,外

19、接32.768kHzRST是復(fù)位/RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳輸。RST輸入有兩種功能:首先RST接通控制邏輯,允許地址/命令序列送入RST為高電18 / 42平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果傳送過程中RSTI/OVcc2.5V 之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。SCLKDS1302 的特點(diǎn),設(shè)計(jì)電路如圖3-9:圖 3-8 時(shí)間單元電路在實(shí)際應(yīng)用中,起控制、輸入輸出的三個(gè)端口上拉較弱,容因產(chǎn)生信號(hào)串?dāng)_, 因此加上了上拉電阻與單片機(jī)P1口相連,加強(qiáng)信號(hào)的穩(wěn)定性;為了保證時(shí)鐘的可靠性,在Vcc1上使用了CR203

20、2紐扣電池作為備用電源,輸出電壓為3V,從而保證了系統(tǒng)掉電狀態(tài)下,時(shí)鐘能夠繼續(xù)保持運(yùn)行。3. 6A/D 轉(zhuǎn)換單元硬件設(shè)計(jì)A/D轉(zhuǎn)換模塊是系統(tǒng)中較為重要的一部分,由于涉與到模擬部分,A/D轉(zhuǎn)換器的結(jié)構(gòu)較為復(fù)雜。19 / 42圖 3-9 ADC0804 引腳圖根據(jù)以上參數(shù)分析,設(shè)計(jì)電路如圖3-11:R410kVCCR812C4AD_WR34U9CS 2019RD WRRD WRCLK ININTRCLK DB0 DB1DB2Vin(+)DB3Vin(-)DB4A GNDDB5VrefDB6D GNDDB717AD1516R5AD2kS21SW-SPDT150pF610k789R61015AD314

21、AD413AD512AD611AD721JP2 JP1kR71k3-10 A/DADC08043. 7 通信單元硬件設(shè)計(jì)MAX485僅有8個(gè)管腳,電路設(shè)計(jì)比較簡單。圖 3-11 MAX485 引腳圖圖 3-11 MAX485 引腳圖20 / 42RORX(P3.DITX(P3.1MAX485REDEREDE入高電平時(shí),其處于發(fā)送數(shù)據(jù)狀態(tài)。定義REDEE,接P1A,B120。硬件電路如圖3-13:圖 3-12 串行通信模塊電路圖3. 8 其他外圍電路的設(shè)計(jì)繼電器電路設(shè)計(jì)。由于使用單片機(jī)I/O口的驅(qū)動(dòng)電流較弱,不滿足繼電器吸合電流參數(shù)的要求,所以需使用三極管驅(qū)動(dòng)繼電器吸合。設(shè)計(jì)電路如圖3-14。入

22、口處與芯片頂端或底端,接入去耦電容,以增強(qiáng)系統(tǒng)的穩(wěn)定性。21 / 42電源指示燈設(shè)計(jì)如圖3-15。圖3-13 繼電器部分電路圖3-14電源指示燈電路圖軟件程序設(shè)計(jì)系統(tǒng)主程序流程圖時(shí)顯示液位值以與鍵盤掃描等工作。主程序流程圖如圖4-1所示。22 / 42 PAGE PAGE 40 / 42開始開始CPU 初始化參數(shù)設(shè)定是是否有按鍵按鍵處理否采樣子程序顯示實(shí)時(shí)液位數(shù)據(jù)處理子程序控制電機(jī)啟停圖 41 主程序流程圖顯示與A/D轉(zhuǎn)換的數(shù)據(jù)處理BCDA/D轉(zhuǎn)換輸入的數(shù)據(jù)是8位168位A/D轉(zhuǎn)換器而言,其十六進(jìn)制、相對滿偏電壓比率、相對電壓幅值的關(guān)系對應(yīng)如表4-2:滿刻度比率滿刻度比率相對電壓幅值Vref=

23、2.5V十六進(jìn)制二進(jìn)制高四位低四位高四位電壓低四位電壓F111115/1615/2564.8000.320E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/1612/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.

24、100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/2560.0000.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

25、-ac)/10; play=ac+mid*16; return play;系統(tǒng)主程序ORG 0000H AJMP MAIN ORG 0060HMAIN: MOVP1, #FFH;P1 P31MOVP3,#FFHJNB P1.3 , AVT;若手動(dòng)在自動(dòng)位置,跳到自動(dòng)模式程序AJMPMEN;否則轉(zhuǎn)到手動(dòng)模式子程序ENDAUT:NOP(空命令)JNBP1.2 , LG;水位高LGP1.1LD ,;水位沒低LDCLRP3.1;水位低報(bào)警P1.0, LDD;水位未低低LDDCLRP3.0;水位低低報(bào)警JNB 3.1P1.6,Y1;M1 已啟動(dòng)Y1CLR P1.4;否則啟動(dòng) M1Y1:JNB P1.7

26、,Y2;M2 已啟動(dòng)Y2CLR P1.5;否則啟動(dòng) M2Y2:ACALLDELAY ;延時(shí) 1 分鐘AJMPAUT;返回自動(dòng)模式LDD: JNBP1.6 ,Y3;M1(LDD水位LD)CLR P1.4Y3:P1.7Y2SETBP1.5AJMPY2LG:CLRP3.2;水位高報(bào)警LD:AJMPMAIN;返回主程序總結(jié)作為一名電氣的大四學(xué)生,在即將畢業(yè)之際,通過做這次課程設(shè)計(jì)是很有意義的,而且也是必要的。在做這次課程設(shè)計(jì)的過程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計(jì)資料了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的實(shí)際資料是十分必要的, 也是必不可少的。其次,在這次課程設(shè)計(jì)中,我們運(yùn)用了以前學(xué)過的專業(yè)課知識(shí)

27、,如: proteus 仿真、匯編語言、模擬和數(shù)字電路知識(shí)等。雖然過去我從未獨(dú)立應(yīng)用過他們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的又一收獲。最后,要做好一個(gè)課程設(shè)計(jì),就必須做到:在設(shè)計(jì)程序之前,對所用單片機(jī)的部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,這樣為資料的保留和交流提供了方便;在設(shè)計(jì)中遇到的問題要記錄,以免下次遇到同樣的問題。在這次的課程設(shè)計(jì)中,我真正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,讀的過程中才能

28、提高,這就是這次課程設(shè)計(jì)的最大收獲。附錄系統(tǒng)軟件源代碼#include #include #define uchar unsigned charuchar hostmark;ucharsec,min,hr,date,mon,day,year; ucharuplq,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;

29、 sbit ddat0=ddat0;sbitSCLK=P10;uchar ac,quotient,play,mid;sbitIO_DATA=P11;ac=num%5;sbitRST=P12;quotient=(num-ac)/5;sbitadRD=P13;if(ac2)sbitadWR=P14;quotient+;sbitE=P15;ac=quotient%10;sbitDIS=P16;mid=(quotient-ac)/10;sbitRELAY=P17;play=ac+mid*16;/*延遲子程序* yanshi()return play;/液位顯示int i,j;*for(i=0;i120

30、;i+)display()for(j=0;j0;i-)/*/DS1302* ds_read()uchar j; iodat=0 x00; for(j=8;j0;j-)IO_DATA=ddat0;_nop_(); SCLK=1;_nop_(); ddat=ddat1; SCLK=0;iodat=iodat1; iodat7=IO_DATA;_nop_(); SCLK=1;_nop_(); SCLK=0;/讀取時(shí)間*uchar ds_gettime(uchar gadd)RST=0;_nop_();SCLK=0;_nop_();RST=1;ds_write(gadd);adWR=0;IO_DATA

31、=1;_nop_();ds_read();_nop_();RST=0;_nop_();return iodat;_nop_();_nop_();/設(shè)置時(shí)間*_nop_();ds_settime(uchar sadd,ucharsdat)adWR=1;_nop_();RST=0;_nop_();_nop_();_nop_();SCLK=0;_nop_();ad_read()/讀取RST=1;ds_write(sadd);P0=0 xff;ds_write(sdat);/ adWR=0;RST=0;_nop_();_nop_();/*adRD=0;/*ad轉(zhuǎn)換模塊*_nop_();ad_start

32、()/啟動(dòng)_nop_();prelq=P0;SCON=0 x40;_nop_();TH1=0 xf4;_nop_();TL1=0 xf4;adRD=1;PCON=0 x80;adWR=1;IE=0;TR1=1;getalltime()/讀所有時(shí)間REN=1;sec=ds_gettime(0 x81 );port_init()min=ds_gettime(0 x83 );hr=ds_gettime(0 x85 );adRD=1;date=ds_gettime(0 x87 );adWR=0;mon=ds_gettime(0 x89 );E=0;day=ds_gettime(0 x8b );DIS=

33、0;year=ds_gettime(0 x8d );RELAY=1;/*/*初始化data_init()*sp_init()xmark=0 x7531;if(*xmark!=0 xf0)TMOD=0 x22;xmark=0 x0000;if(ds_gettime(0 xc1)!=0 xaa)*xmark=0;numtab=0 x0001;sec=0 x00;xmark=0 x7531;min=0 x00;*xmark=0 xf0;hr=0 x00;num1=0;date=0 x01;num2=0;mon=0 x01;day=0 x04;ad_start();year=0 x09;_nop_()

34、;ds_settime(0 x90,0 xab);_nop_();ds_settime(0 x80,sec);_nop_();ds_settime(0 x82,min);ad_read();ds_settime(0 x84,hr);key=0;ds_settime(0 x86,date);uplq=0 x0af;ds_settime(0 x88,mon);downlq=0 x96;ds_settime(0 x8a,day);getalltime();ds_settime(0 x8c,year);ds_settime(0 xc0,0 xaa);ds_init()main_init()port_i

35、nit();_nop_();sp_init();_nop_();ds_init();_nop_();data_init();_nop_();display();_nop_();_nop_();/*SBUF=dd;/串口通信*while(!TI);uchar receive()/接收TI=0;E=0;int tmp;E=0;/*while(!RI);/通信子程序*tmp=SBUF;sp_connection()RI=0;E=0;send(0 xF0);return tmp;sp_readtime()send(uchar dd)/發(fā)送getalltime();E=1;send(0 xF1);_nop_();send(sec);send(min); send(hr); send(date); send(mon); send(day); send(year);sp_settime()send(0 xf2);_nop_();_nop_();_nop_();_nop_();_nop_();_nop

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論