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