版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 機電控制技術(shù)課程設(shè)計</p><p> 題目: 液位控制系統(tǒng) </p><p><b> 指導(dǎo)教師: </b></p><p> 院 系:機械與動力工程學(xué)院</p><p><b> 姓 名: </b></p><p><b&g
2、t; 學(xué) 號:</b></p><p><b> 其他組員: </b></p><p><b> 目錄</b></p><p> (一)設(shè)計背景-----------------------------------------------------------------3</p&g
3、t;<p> ?。ǘ┰O(shè)計方案的分析與確定-----------------------------------------------4</p><p> 2.1 設(shè)計任務(wù)與要求------------------------------------------------4</p><p> 2.2 系統(tǒng)總體方案的確定-------------------------
4、-----------------5</p><p> ?。ㄈ┯布倪x擇與設(shè)計-----------------------------------------------------7</p><p> 3.1 A/D轉(zhuǎn)換器-------------------------------------------------------7</p><p> 3.
5、2 運算放大電路---------------------------------------------------8</p><p> 3.3存儲器擴展------------------------------------------------------10</p><p> 3.4 LED的連接----------------------------------------
6、-------------13</p><p> 3.5 撥碼盤的設(shè)計-------------------------------------------------14</p><p> 3.6 光電隔離和電機控制電路---------------------------------14</p><p> 3.7 測量液位傳感器的選擇-----------
7、-------------------------14</p><p> ?。ㄋ模┸浖δ艿脑O(shè)計-------------------------------------------------------15</p><p> ?。ㄎ澹┰O(shè)計說明----------------------------------------------------------------29</p&
8、gt;<p> ?。┰O(shè)計小結(jié)----------------------------------------------------------------46</p><p> (七)致謝----------------------------------------------------------------------46</p><p> ?。ò耍﹨⒖嘉墨I-
9、---------------------------------------------------------------47</p><p><b> ?。ㄒ唬┰O(shè)計背景</b></p><p> 單片機作為微型計算機發(fā)展中的一個重要分支,以其可靠性、高性能價格比、低電壓、低能耗等優(yōu)勢,廣泛應(yīng)用于工業(yè)控制等領(lǐng)域,它具有系統(tǒng)結(jié)構(gòu)典型、靈活、通用性強、指令完整豐富,
10、計算機技術(shù)系統(tǒng)化、理論和應(yīng)用精密結(jié)合,外部配件豐富,接口簡單等諸多獨特優(yōu)點,非常適合工業(yè)控制,但在實際應(yīng)用工程中單片機控制系統(tǒng)的控制算法及其實現(xiàn)是應(yīng)用人員在系統(tǒng)設(shè)計中應(yīng)注意的問題,必須根據(jù)實際控制的需要進行研究設(shè)計,設(shè)計方案一定是合理的、可行的。否則,如果很隨意地制定一個方案,而它又存在缺陷和錯誤,那么,后續(xù)工作做得愈多,花的時間愈長,損失也愈大。本文以居民屋頂水箱液位為控制對象,給出了用8031單片機實現(xiàn)的液位控制系統(tǒng)。</p&
11、gt;<p> ?。ǘ┰O(shè)計方案的分析與確定</p><p> 2.1 設(shè)計任務(wù)與要求</p><p> 2.1.1 設(shè)計任務(wù)</p><p> 要求設(shè)計一個以8031單片機為核心的液位控制器,對居民屋頂水箱中的液位進行測量顯示并控制水位在一定高度。</p><p> 2.1.2 設(shè)計要求</p><
12、p> 居民用水作為水箱出口,無規(guī)則;水箱進水受電動水泵控制,當水位低于某給定值時,起動水泵工作,當水位達到給定值時停止水泵工作。</p><p> 當單片機系統(tǒng)故障時,可以手動控制液位,防止居民斷水引起不便。</p><p><b> 操作簡單。</b></p><p> 2.1.3 設(shè)計條件</p><p&g
13、t; 傳感器采用壓力傳感器,水箱最大深度為2米。一般將水位控制在1.6米左右。±10cm認為是合適的。</p><p> 2.1.4 設(shè)計提示</p><p> 顯示的設(shè)計:顯示液位高度需要4位數(shù)碼管,</p><p> 鍵盤的設(shè)計:能設(shè)定液位值,但必須在斷電的情況下能保存該設(shè)定值,最好用撥碼盤。</p><p> 壓力傳
14、感器輸出信號為4-20mA,量程可根據(jù)需要選擇。</p><p> 2.2 系統(tǒng)總體方案的確定</p><p> 2.2.1 系統(tǒng)框圖</p><p> 本次設(shè)計的液位控制系統(tǒng),它通過一個壓力傳感器將液位信號轉(zhuǎn)換成電流信號,再通過運算放大器轉(zhuǎn)化成合適的電壓信號輸送給AD轉(zhuǎn)換器再將數(shù)字信號送單片機,然后單片機將液位值送到數(shù)碼管輸出,居民設(shè)定液位值通過撥碼盤輸入,
15、單片機將設(shè)定值與測量值比較,控制水泵啟停。系統(tǒng)框圖如下圖所示:</p><p> 2.2.2 系統(tǒng)總體方案的初步確定</p><p> 通過對設(shè)計要求的分析,首先初步確定系統(tǒng)的工作流程。系統(tǒng)開機初始化后通過AD轉(zhuǎn)換器讀入液位的測量值。再將液位值用數(shù)碼管顯示,然后從撥碼盤中讀入用戶設(shè)定的液位值,與測量值比較,控制電機動作。然后通過循環(huán)多次調(diào)用液位顯示子程序,達到液位一直顯示的效果,同時也
16、起到了定時的作用,</p><p> 在初步確定系統(tǒng)的工作流程后,根據(jù)設(shè)計的具體要求與工作方式選擇出各部分的具體硬件。然后根據(jù)各部分硬件的性質(zhì)與設(shè)計所要達到的目的,分別完成相應(yīng)的程序。最后,將各程序整合,完成該液位控制系統(tǒng)的設(shè)計。</p><p> 在進行以上設(shè)計的同時,畫出表明各部分之間接線關(guān)系的電路原理圖。</p><p> 2.2.3 系統(tǒng)流程圖<
17、/p><p> 經(jīng)過以上分析可確定系統(tǒng)的流程圖如下:</p><p> 2.2.4 電路原理圖</p><p> 我們用Proteus軟件畫圖,下面是主電路和輔助電路。</p><p> ?。ㄈ┯布倪x擇與設(shè)計</p><p> 3.1 A/D轉(zhuǎn)換器</p><p> A/D轉(zhuǎn)換器選用A
18、DC0809。ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和微機直接接口。其姐妹芯片是ADC0808,可以互相替換。</p><p> ADC0809的內(nèi)部邏輯結(jié)構(gòu):</p><p> ADC0809的內(nèi)部邏輯結(jié)構(gòu)如上圖所示。由上圖可以看出,ADC0809有一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個A/D
19、轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用一個A/D轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖存器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。</p><p><b> 引腳結(jié)構(gòu):</b></p><p> ADC0809采用雙列直插式封裝,共有28條引腳。其引腳結(jié)構(gòu)圖如下圖所示。<
20、/p><p> ?。?)IN0~IN7:8條模擬量通道 </p><p> ADC 0809對輸入模擬量要求:信號單極性,電壓范圍是0~5v,若信號太小,必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。</p><p> ?。?)
21、地址輸入和控制線:4條</p><p> ALE 為地址鎖存允許輸入線,高電平有效。當ALE現(xiàn)為高電平時,地止鎖存與譯碼器將ADDA、ADDB和ADDC三條地址輸入線,用于選通IN0~IN7上的一路模擬量輸入。通道選擇如下表所示。我們只用IN0通道,所以直接將ADDA、ADDB和ADDC接地。</p><p> ?。?)數(shù)字量輸出及控制線:11條</p><p>
22、 START 為轉(zhuǎn)換啟動信號。當START上跳沿時,所有內(nèi)部寄存器清零;下跳沿時,開始進行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,START應(yīng)保持低電平。EOC位轉(zhuǎn)換結(jié)束信號。當EOC為高電平時,表明轉(zhuǎn)換結(jié)束;否則,表明正在進行A/D轉(zhuǎn)換。OE為輸出允許信號,用于控制三態(tài)輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7~D0位數(shù)字數(shù)出線。</p><p> ?。?)電源線
23、及其他:5條</p><p> CLOCK為時鐘輸入信號線。因ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須有外界提供,通常使用頻率為500KHz的時鐘信號。Vcc為+5V電源線。GND為地線。Vref(+)和Vref(-)為參考電壓輸入,參考電壓用來與輸入的模擬信號進行比較,作為逐次逼近的基準。其典型去值:Vref(+)=+5v,Vref(-)=0v.</p><p><b&
24、gt; 接線圖如下圖所示:</b></p><p> 3.2 運算放大電路</p><p> 壓力傳感器把壓力信號轉(zhuǎn)換成模擬電流,當液位從0m變化到1m時,壓力傳感器輸出電流是從4mA到20mA。我們通過一個運算放大電路把4mA到20mA的電流信號轉(zhuǎn)化成0到5V的電壓信號。電路用了三個741芯片,共有三個步驟。</p><p> 第一個步驟:壓力
25、傳感器與一個250Ω的電阻串聯(lián)成回路,</p><p><b> U0=I*R12</b></p><p><b> U1=U0</b></p><p> 第二個步驟:用運算放大器將1到5伏的電壓信號通過減法運算轉(zhuǎn)化成0到-4伏的電壓信號,</p><p> (U1-u)/R5=(u-U2)
26、/R7</p><p> u=12V*R11/(R11+R6)</p><p> 第三個步驟:用一個運算放大器反相,就得到了0到5伏的電壓信號。</p><p> U3=-U2*R9/R2</p><p><b> 3.3 存儲器擴展</b></p><p> 由于本程序用到的數(shù)據(jù)并不多
27、,內(nèi)部RAM已經(jīng)夠用了,所以就沒有擴展外部數(shù)據(jù)存儲器,我們只擴展了4K的外部程序存儲器2732。A8口到A11口接到了P2.0到P2.3,2732的片選段接到了A12上。其中還用到了地址鎖存譯碼器74LS373。</p><p><b> 接線圖如下圖:</b></p><p> 3.4 LED的連接</p><p> 我們用LED數(shù)碼管
28、來顯示液位,用到了4位的數(shù)碼管,第二位顯示小數(shù)點,顯示到小數(shù)點后二位,ABCDEFG和DP八個接口接到了P0口上,數(shù)碼管的選擇端接到了譯碼器74LS139上,這樣可以減少與單片機的連線。譯碼器的片選連在了A14上。數(shù)碼管的顯示是通過動態(tài)掃描的方式。通過A8,A9選擇四個數(shù)碼管,循環(huán)點亮,掃描的頻率很高,給人以連續(xù)顯示的效果。</p><p> 3.5 撥碼盤的設(shè)計</p><p> 我
29、們選擇撥碼盤作為用戶設(shè)定水位的輸入工具,主要是因為撥碼盤使用直觀簡單,穩(wěn)定可靠,易于操作,設(shè)定的數(shù)值斷電仍可保存。撥碼盤示意圖和原理圖如下。</p><p> 上圖是我們撥碼盤的連線圖,我們用到了兩個撥碼盤用來輸入液位的小數(shù)點后一位和兩位。撥碼盤的com端起到片選作用,連到譯碼器上。撥碼盤的1,2,4,8四個接口接到P0口的低四位上。由于在軟件中未找到撥碼盤,故未畫出,只畫出五個接線端。</p>
30、<p> 3.6 光電隔離和電機控制電路</p><p> 為了防止輸出對輸入可能產(chǎn)生的反饋和干擾,采用了光電耦合器MOC3031M,最后通過一個繼電器KM就可以控制電機的啟停。</p><p> 3.7 測量液位傳感器的選擇</p><p> 為了測量液位,我們選擇了TBP-4投入式液位變送器。</p><p> TBP
31、-4投入式液位變送器用途和特點:</p><p> 采用進口芯片,質(zhì)量可靠,液位測量計不受外界大氣壓的影響,具有優(yōu)良的密封劑防腐性能,測量準確,長期穩(wěn)定性好。適用于很多領(lǐng)域。</p><p> 量程規(guī)格我們選擇10mH2O.主要技術(shù)指標如下表:</p><p> 存在的問題是測量的范圍小于量程的五分之一,會影響精度。</p><p>
32、 (四)軟件功能的設(shè)計</p><p><b> 程序如下:</b></p><p><b> ORG 0000H</b></p><p> MAIN: MOV 30H,#00H;RAM區(qū)清零</p><p> MOV 31H,#00H;</p><p> MO
33、V 32H,#00H;</p><p> MOV 33H,#00H;</p><p> MOV 35H,#00H;</p><p> MOV 36H,#00H;</p><p> MOV 37H,#00H;</p><p> MOV 38H,#00H;</p><p>
34、MOV 40H,#00H;</p><p> MOV 41H,#00H;</p><p> MOV 42H,#00H;</p><p> MOV 43H,#00H;</p><p> MOV 44H,#00H;</p><p> ACALL HADC;調(diào)用液位檢測子程序</p>&l
35、t;p> ACALL DISP;調(diào)用顯示當前液位</p><p> ACALL BMP;調(diào)用撥碼盤讀數(shù)子程序</p><p> ACALL CONT;液位控制子程序</p><p> LOOP1:MOV R0,#200;</p><p> LOOP2:MOV R1,#200;</p><p>
36、 ACALL DISP;調(diào)用顯示當前液位</p><p> DJNZ R1,LOOP2;</p><p> DJNZ R0,LOOP1;</p><p><b> AJMP MAIN</b></p><p><b> ;測量液位子程序</b></p><p>
37、 HADC: MOV 31H,#00H;</p><p> MOV 30H,#00H;</p><p> MOV R2,#04H;采樣次數(shù)</p><p> MOV DPTR,#7FF0H;</p><p> HADC0:MOVX @DPTR,A;</p><p> HADC1:JNB P3.2,
38、HADC1;查詢AD轉(zhuǎn)換結(jié)束</p><p> MOVX A,@DPTR;</p><p><b> CLR C;</b></p><p> ADD A,31H;</p><p> MOV 31H,A;</p><p> ADDC 30H,#0;</p><
39、;p> DJNZ R2,TADC0;</p><p> MOV A,31H;</p><p><b> CLR C;</b></p><p><b> RRC A;</b></p><p><b> CLR C;</b></p><
40、p><b> RRC A;</b></p><p> MOV 31H,A;</p><p> MOV A,30H;</p><p><b> RR A;</b></p><p><b> RR A;</b></p><p>
41、ADD A,31H;</p><p> MOV 31H,A;得到平均值,存在31H中</p><p><b> RET</b></p><p><b> ;控制電機子程序</b></p><p> CONT: MOV 32H,31H;液位測量值從31H中取出放入32H</p>
42、;<p> MOV A,32H;</p><p><b> CLR C;</b></p><p> MOV 33H,43H;液位設(shè)定值從43H中取出放入33H</p><p> SUBB A,33H;</p><p> JC CONT1;若液位偏低,跳轉(zhuǎn),液位偏高則繼續(xù)執(zhí)行</p&g
43、t;<p><b> CLR C;</b></p><p> SUBB A,#6;偏差值與5cm相比較</p><p> JC CONT2;過高則Cy=0,繼續(xù),否則跳轉(zhuǎn)</p><p> SETB P1.0;關(guān)電動機</p><p> SJMP CONT2;</p><
44、;p> CONT1:CPL A;液位偏低情況</p><p><b> CLR C;</b></p><p> SUBB A,#6;偏差值與5cm相比較</p><p> JC CONT2;過低則Cy=0,繼續(xù),否則跳轉(zhuǎn)</p><p> CLR P1.0;開電動機</p><
45、p> CONT2:RET;</p><p> ;撥碼盤讀數(shù)轉(zhuǎn)化子程序</p><p> BMP:MOV R1, #40H ;存放單元首址</p><p> MOV R2, #DCH ;讀第一個撥碼盤數(shù),小數(shù)點后第二位</p><p><b> MOV A, R2</b></p>
46、<p><b> MOV P2, A</b></p><p><b> MOV A, P0</b></p><p> ANL A, #OFH</p><p> MOV @R1, A</p><p><b> INC R1</b></p>&l
47、t;p> MOV R2, #DDH ;讀第二個撥碼盤數(shù),小數(shù)點后第一位</p><p><b> MOV A, R2</b></p><p><b> MOV P2, A</b></p><p><b> MOV A, P0</b></p><p> AN
48、L A, #0FH</p><p> MOV @R1, A</p><p><b> INC R1</b></p><p> MOV R2, #DEH ;讀第三個撥碼盤數(shù),整數(shù)部分</p><p><b> MOV A, R2</b></p><p><b
49、> MOV P2, A</b></p><p><b> MOV A, P0</b></p><p> ANL A, #0FH </p><p> MOV @R1, A</p><p><b> CLR C</b></p><p><b&
50、gt; SUBB A,#2</b></p><p><b> JC BMP1</b></p><p> MOV @R1,#2;如果整數(shù)部分大于1,則默認為2m</p><p><b> DEC R1</b></p><p> MOV @R1,#0</p><
51、;p><b> DEC R1</b></p><p> MOV @R1,#0</p><p> BMP1:MOV A,42H</p><p> MOV B,#100</p><p><b> MUL AB</b></p><p><b> MOV
52、43H,A</b></p><p><b> MOV A,41H</b></p><p><b> MOV B,#10</b></p><p><b> MUL AB</b></p><p><b> ADD A,43H</b><
53、/p><p><b> ADD A,40H</b></p><p> MOV 43H,A;存放0到200間的液位設(shè)定值</p><p> ;43H*255/200</p><p> ;43H+43H/4+43H/40</p><p> MOV A, 43H</p><p
54、><b> CLR C</b></p><p><b> RRC A</b></p><p><b> CLR C</b></p><p><b> RRC A</b></p><p><b> ADD A,43H</b&g
55、t;</p><p><b> MOV 44H,A</b></p><p><b> MOV A,43H</b></p><p><b> MOV B,#40</b></p><p><b> DIV AB</b></p><p
56、><b> ADD A,43H</b></p><p><b> ADD A,44H</b></p><p> MOV 43H,A;液位設(shè)定值存在43H中</p><p><b> RET</b></p><p> ;液位顯示數(shù)碼管子程序(約50個機器周期)&
57、lt;/p><p> DISP:MOV 35H,31H;液位測量值從31H中取出放入35H中</p><p> MOV A,35H;</p><p> MOV B,#200;</p><p><b> MUL AB;</b></p><p> MOV 36H,B;高位</p&
58、gt;<p> MOV 37H,A;低位</p><p> ADD A,36H;</p><p> MOV 38H,B;</p><p> ADDC 38H,#0;</p><p> ADD A,#01H;</p><p> ADDC 38H,#0;(35H)*200/255的商&
59、lt;/p><p> MOV A,38H;</p><p> MOV B,#100;</p><p> DIV AB;A,B對應(yīng)百位和十個位</p><p> ;X*200/255</p><p> ;Y=X*200=256*36H+37H</p><p> ;Y/255=36H+
60、(36H+37H)/255</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV P2,#B0H;</p><p> MOV P0,A;</p><p><b> NOP</b></p><p>
61、;<b> NOP</b></p><p><b> NOP</b></p><p> MOV P2,#B1H;</p><p> MOV P0,80H;</p><p><b> NOP</b></p><p><b> NO
62、P</b></p><p><b> NOP</b></p><p><b> MOV A,B</b></p><p> MOV B,#10;</p><p> DIV AB;A,B對應(yīng)十位和個位</p><p> MOVC A,@A+DPTR<
63、;/p><p> MOV P2,#B2H;</p><p> MOV P0,A;</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p&g
64、t;<b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#B3H;</p><p> MOV P0,A;</p><p><b> NOP</b></p><p><b> NOP<
65、/b></p><p><b> NOP</b></p><p><b> RET</b></p><p> TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p><b> ?。ㄎ澹┦褂谜f明</b></
66、p><p> 一、本產(chǎn)品適用于居民用屋頂水箱,水位高度不能超過兩米。</p><p> 二、本產(chǎn)品有自動調(diào)節(jié)水位和手動調(diào)節(jié)水位兩種功能。可以通過按鈕SA在兩種功能之間進行切換。</p><p><b> 三、在自動模式下:</b></p><p> 1.用戶設(shè)定的水位值通過撥碼盤輸入。輸入單位是厘米。</p&g
67、t;<p> 2.水箱水位顯示在數(shù)碼管上,顯示數(shù)據(jù)的單位是米。</p><p> 3.實際水位和設(shè)定水位之間的差值一般不大于10cm。</p><p> 四、在手動模式下:按動按鈕SB2開啟水泵,向水箱注水,按動按鈕SB1停止向水箱注水。</p><p><b> ?。┰O(shè)計小結(jié)</b></p><p&
68、gt; 本次的機電課程設(shè)計,在得到參考題目之后,我們小組就進行了比較長時間的周密準備,對于題目的選取進行了多次的討論。最后根據(jù)本次課程的重點內(nèi)容,我們選取用單片機實現(xiàn)的液位控制系統(tǒng)作為本次設(shè)計的題目。</p><p> 在確定題目之后,我們首先對總體設(shè)計方案進行了考慮。這里,我們設(shè)計單片機每隔一定的時間采集一次數(shù)據(jù)并處理數(shù)據(jù)實現(xiàn)電機啟停。為了實現(xiàn)這個時間間隔,我們想到了兩種方法,一種是通過定時器中斷的方式來實
69、現(xiàn)。還有一種通過循環(huán)多次調(diào)用數(shù)據(jù)顯示子程序,利用執(zhí)行子程序花掉的時間來實現(xiàn)定時間隔。我們小組成員分別采用了不同的方法。我采用了第二種方法。在設(shè)計中有一些細節(jié)問題,例如傳感器輸出的電流信號怎樣轉(zhuǎn)變成合適的電壓信號,怎樣實現(xiàn)光電隔離,我們一起討論,解決了這些問題。</p><p> 然后,我們對設(shè)計的硬件進行了設(shè)計。主體單片機芯片,我參考設(shè)計要求,需用8031芯片。在液位測量實現(xiàn)上,我們選用傳感器AD590以及08
70、09芯片,作為液位的采樣以及讀取。同時,我們還選用了LED數(shù)碼管以及撥碼盤等部件。在整體硬件規(guī)劃好之后,我們開始了硬件電路圖的繪制。這里,我們使用的是Proteus軟件來實現(xiàn)。由于原來對該軟件了解不多,所以在軟件的應(yīng)用上面也下了很大的苦功夫。在電路的設(shè)計中,怎樣合理的接線也是一個很大的問題,我們不斷地進行了修改,才得到了最后的結(jié)果。</p><p> 在完成硬件電路圖以后,我們開始了軟件的設(shè)計。對于軟件的基本設(shè)
71、想是:先編寫好主程序,主程序調(diào)用數(shù)據(jù)采集,數(shù)據(jù)顯示,電機控制等子程序。再分別編寫各個子程序。在大家的努力下,通過查閱了很多資料,我們最終成功的完成了軟件的設(shè)計。至此,課程設(shè)計基本完成了。</p><p> 在這次設(shè)計中,我們相互學(xué)習(xí),共同努力,收益良多。對于單片機的知識加深了理解,在實際的應(yīng)用中鍛煉了解決問題的能力,更重要的是學(xué)到了只要不放棄努力,任何困難都能克服的人生哲理。這對與我們今后成長為合格的工程師是大
72、有裨益的。</p><p><b> (七)致謝</b></p><p> 首先要感謝張銀橋老師這一個學(xué)期以來在這門課程上對我們的指導(dǎo)與幫助,張老師上課富有激情的講解引發(fā)了我對單片機的興趣,幫我們加深了對單片機的了解。另外,感謝小組的另外兩名成員,大家的共同合作與努力使這次課程設(shè)計任務(wù)得以圓滿完成。</p><p><b> ?。?/p>
73、八)參考文獻</b></p><p> 1.王顯正 《機電控制技術(shù)》 上海交通大學(xué)機械工程系</p><p> 2.楊居義 《單片機課程設(shè)計指導(dǎo)》 清華大學(xué)出版社</p><p> 3. 楊居義 《單片機原理與工程應(yīng)用》 清華大學(xué)出版社</p><p> 4. 李朝青 《Proteus入門實用教程》 北
74、京航空航天大學(xué)出版社</p><p> 5. 劉迎春 《傳感器原理設(shè)計與應(yīng)用》 國防科技大學(xué)出版社</p><p> 6. 沈紅衛(wèi) 《單片機應(yīng)用系統(tǒng)設(shè)計實例與分析》 北京航空航天大學(xué)出版社</p><p> 附錄:硬件定時程序:</p><p><b> ORG 0000H</b></p>
75、<p><b> AJMP MAIN</b></p><p><b> ORG 000BH</b></p><p><b> AJMP TT0</b></p><p><b> ORG 0100H</b></p><p> MAIN:
76、 MOV 30H,#00H;RAM區(qū)清零</p><p> MOV 31H,#00H;</p><p> MOV 32H,#00H;</p><p> MOV 33H,#00H;</p><p> MOV 35H,#00H;</p><p> MOV 36H,#00H;</p>&l
77、t;p> MOV 37H,#00H;</p><p> MOV 38H,#00H;</p><p> MOV 40H,#00H;</p><p> MOV 41H,#00H;</p><p> MOV 42H,#00H;</p><p> MOV TMOD,#01H;T0工作在方式1<
78、;/p><p> LP: MOV TL0,#0B0H;置定時器初值(定時時間50ms)</p><p> MOV TH0,#3CH</p><p> SETB TR0;啟動定時器0</p><p> MOV IE,#82H;允許定時器0中斷</p><p> MOV R5,#40;置2s循環(huán)次數(shù)<
79、;/p><p> LOOP: ACALL DISP</p><p><b> SJMP LOOP</b></p><p> TT0: MOV TL0,#0B0H;重置T0初值</p><p> MOV TH0,#3CH;</p><p> DJNZ R5,LPP;2s到否,不到返回&l
80、t;/p><p> ACALL HADC;調(diào)用液位檢測子程序</p><p> ACALL DISP;調(diào)用顯示當前液位</p><p> ACALL BMP;調(diào)用撥碼盤讀數(shù)子程序</p><p> ACALL CONT;液位控制子程序</p><p><b> AJMP LP</b>
81、</p><p><b> LPP: RETI</b></p><p><b> ;測量液位子程序</b></p><p> HADC: MOV 31H,#00H;</p><p> MOV 30H,#00H;</p><p> MOV R2,#04H;采樣次
82、數(shù)</p><p> MOV DPTR,#7FF0H;</p><p> HADC0:MOVX @DPTR,A;</p><p> HADC1:JNB P3.2,HADC1;查詢AD轉(zhuǎn)換結(jié)束</p><p> MOVX A,@DPTR;</p><p><b> CLR C;</b&
83、gt;</p><p> ADD A,31H;</p><p> MOV 31H,A;</p><p> ADDC 30H,#0;</p><p> DJNZ R2,TADC0;</p><p> MOV A,31H;</p><p><b> CLR C;&l
84、t;/b></p><p><b> RRC A;</b></p><p><b> CLR C;</b></p><p><b> RRC A;</b></p><p> MOV 31H,A;</p><p> MOV A,30
85、H;</p><p><b> RR A;</b></p><p><b> RR A;</b></p><p> ADD A,31H;</p><p> MOV 31H,A;得到平均值,存在31H中</p><p><b> RET</b
86、></p><p><b> ;控制電機子程序</b></p><p> CONT: MOV 32H,31H;液位測量值從31H中取出放入32H</p><p> MOV A,32H;</p><p><b> CLR C;</b></p><p> M
87、OV 33H,42H;液位設(shè)定值從42H中取出放入33H</p><p> SUBB A,33H;</p><p> JC CONT1;若液位偏低,跳轉(zhuǎn),液位偏高則繼續(xù)執(zhí)行</p><p><b> CLR C;</b></p><p> SUBB A,#13;偏差值與5cm相比較</p>&
88、lt;p> JC CONT2;過高則Cy=0,繼續(xù),否則跳轉(zhuǎn)</p><p> SETB P1.0;關(guān)電動機</p><p> SJMP CONT2;</p><p> CONT1:CPL A;液位偏低情況</p><p><b> CLR C;</b></p><p>
89、 SUBB A,#13;偏差值與5cm相比較</p><p> JC CONT2;過低則Cy=0,繼續(xù),否則跳轉(zhuǎn)</p><p> CLR P1.0;開電動機</p><p> CONT2:RET;</p><p> ;撥碼盤讀數(shù)轉(zhuǎn)化子程序</p><p> BMP:MOV R1, #40H ;
90、存放單元首址</p><p> MOV R2, #BCH ;讀第一個撥碼盤數(shù),小數(shù)點后第二位</p><p><b> MOV A, R2</b></p><p><b> MOV P2, A</b></p><p><b> MOV A, P0</b></
91、p><p> ANL A, #OFH</p><p> MOV @R1, A</p><p><b> INC R1</b></p><p> MOV R2, #BEH ;讀第二個撥碼盤數(shù),小數(shù)點后第一位</p><p><b> MOV A, R2</b><
92、;/p><p><b> MOV P2, A</b></p><p><b> MOV A, P0</b></p><p> ANL A, #0FH</p><p> MOV @R1, A</p><p> MOV A, 41H</p><p>
93、<b> MOV B,#51</b></p><p><b> MUL AB</b></p><p><b> CLR C</b></p><p><b> RRC A</b></p><p><b> ADD A,40H</b&
94、gt;</p><p><b> ADD A,40H</b></p><p><b> MOV 42H,A</b></p><p><b> MOV A,40H</b></p><p><b> CLR C</b></p><p
95、><b> RRC A</b></p><p><b> ADD A,42H</b></p><p> MOV 42H,A;液位設(shè)定值存在42H中</p><p><b> RET</b></p><p> ;液位顯示數(shù)碼管子程序</p><
96、;p> DISP:MOV P2,#B0H;</p><p> MOV P0,06H;</p><p><b> NOP</b></p><p> MOV P2,#B1H;</p><p> MOV P0,80H;</p><p><b> NOP</b&g
97、t;</p><p> MOV 35H,31H;液位測量值從31H中取出放入35H中</p><p> MOV A,35H;</p><p> MOV B,#100;</p><p><b> MUL AB;</b></p><p> MOV 36H,B;高位</p>
98、;<p> MOV 37H,A;低位</p><p> ADD A,36H;</p><p> MOV 38H,B;</p><p> ADDC 38H,#0;</p><p> ADD A,#01H;</p><p> ADDC 38H,#0;(35H)*100/255的商<
99、;/p><p> MOV A,38H;</p><p> MOV B,#10;</p><p> DIV AB;A,B對應(yīng)十位和個位</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV P2,#B2H;</
100、p><p> MOV P0,A;</p><p><b> NOP</b></p><p><b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2,#B3H;</p><p> MO
101、V P0,A;</p><p><b> NOP</b></p><p><b> RET</b></p><p> TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p><b> 程序解釋:</b></
102、p><p><b> *100/255</b></p><p><b> *20/51</b></p><p><b> X*100/255</b></p><p> Y=X*100=256*36H+37H</p><p> Y/255=36H+(
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計——單片機控制步進電機控制系統(tǒng)設(shè)計
- 單片機溫度控制系統(tǒng)課程設(shè)計
- 單片機水位控制系統(tǒng)課程設(shè)計
- 冷庫單片機控制系統(tǒng)課程設(shè)計
- 課程設(shè)計--單片機溫度控制系統(tǒng)
- 單片機的控制系統(tǒng)課程設(shè)計
- 單片機課程設(shè)計-- 基于單片機的電梯控制系統(tǒng)
- 單片機的控制系統(tǒng)課程設(shè)計
- 單片機課程設(shè)計(溫度控制系統(tǒng))
- 單片機課程設(shè)計--基于單片機的水位控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計--基于單片機的水位控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計--溫度控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計(洗衣機控制系統(tǒng))
- 單片機課程設(shè)計--步進電機控制系統(tǒng)
- 《單片機課程設(shè)計》---水塔水位控制系統(tǒng)
- 單片機課程設(shè)計--水塔水位控制系統(tǒng)
- 單片機課程設(shè)計--智能車燈控制系統(tǒng)
- 單片機水溫控制系統(tǒng)課程設(shè)計
- 單片機課程設(shè)計--單片機控制的交通燈控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計--基于51單片機的溫度控制系統(tǒng)設(shè)計
評論
0/150
提交評論