




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系網(wǎng)站刪除2002級電子技術(shù)專業(yè)課程設(shè)計(jì)設(shè)計(jì)題目:貯水水管液位與水泵控制裝置摘要本單片機(jī)系統(tǒng)設(shè)計(jì)的目的是應(yīng)用單片機(jī)控制技術(shù),以89S52單片機(jī)為核心控制水箱的水位,通過水位信號的采集模塊采集信號,單片機(jī)對信號進(jìn)行處理,控制水泵的啟停,并實(shí)現(xiàn)了報(bào)警和手動、自動切換功能。用數(shù)碼管顯示液位高度與體積,并可以實(shí)現(xiàn)液面高度自動調(diào)整(液面高度可以人為的調(diào)整).該系統(tǒng)操作方便、性能良好,比較符合家禽用水系統(tǒng)控制的需要。本文還詳細(xì)的給出了相關(guān)的硬件框圖和軟件流程圖,并編制了該匯編語言程序.關(guān)鍵詞:單片機(jī) 水泵驅(qū)動模塊 顯示屏 信號采集模塊ABSTRACTThis task is to control the water level of tank by micro-controller, the micro-controller always inspect the water level. And then control the water pump to add the water to tank. The digital led gives the water level and vol. the system should easy to operate, easy to use. adapt to family animal drink automatically. This article illustrate how to design hardware and software. At the same time, it also gives their drawing and script. KEYWORDS: Micro-controller pump drive digital tube signal aquire. 目 錄第一章 方案論證11、 控制單元的選擇12、信號產(chǎn)生方案的選擇13、水泵的選擇24、顯示方案25、聲光報(bào)警電路設(shè)計(jì)26、水泵工作但無水供出方案的選擇3第二章 硬件設(shè)計(jì)41、系統(tǒng)總體設(shè)計(jì)42、系統(tǒng)各模塊電路設(shè)計(jì)7第三章 系統(tǒng)軟件設(shè)計(jì)9第四章 測試方法與實(shí)驗(yàn)數(shù)據(jù)13第五章 收獲和總結(jié)15附件一 AT89C2051控制程序16附件二 AT89S52單片機(jī)數(shù)據(jù)采集、轉(zhuǎn)換及顯示程序19附件三 電路PCB圖24第一章 方案論證根據(jù)題目的設(shè)計(jì)要求,本設(shè)計(jì)主要實(shí)現(xiàn)水泵在液位下限時(shí)給水管補(bǔ)水,液位到達(dá)上限的時(shí)候停止供水,并在高于上限或低于下限的時(shí)候發(fā)出聲光報(bào)警。同時(shí)顯示水位的高度。其系統(tǒng)方案框圖如圖1所示。為實(shí)現(xiàn)各模塊功能,提出了幾種設(shè)計(jì)方案并進(jìn)行論證。控制器模塊AT89S52AT89C2051水泵驅(qū)動模塊聲光報(bào)警模塊擴(kuò)展模塊旋鈕輸入信號產(chǎn)生模塊顯示模塊信號采集調(diào)理模塊 圖1 系統(tǒng)方案圖 Fig-1 the system plan diagram 1、 控制單元的選擇方案一:采用16位單片機(jī)SPCE061A作為的控制中。SPCE061A具有豐富的資源:RAM,ROM,空間大、指令周期短 運(yùn)算速度快等特點(diǎn),尤其是可以進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算,精度很高,但16位的匯編語言較為復(fù)雜。方案二:采用ATMEL89S52型8位單片機(jī)作為顯示控制系統(tǒng),同時(shí)考慮到芯片的擴(kuò)展對系統(tǒng)穩(wěn)定性能會造成一定影響,因此另外采用AT89C2051對水泵進(jìn)水進(jìn)行控制。這兩種芯片價(jià)格便宜,功能強(qiáng)大,在本設(shè)計(jì)中其運(yùn)算速度足以達(dá)到要求,同時(shí)其片內(nèi)的ROM及RAM容量足以滿足要求。綜合各方面考慮,最終選擇了第二套方案2、信號產(chǎn)生方案的選擇方案一:采用觸點(diǎn)式開關(guān)產(chǎn)生信號,具體為:在水箱外用一根小的透明管與水箱連通,透明管內(nèi)置浮子,浮子通過一根線使滑輪與滑動觸點(diǎn)相連接,通過水箱液面高度的變化使浮子帶動移動觸點(diǎn)開關(guān)運(yùn)動。移動觸點(diǎn)開關(guān)與固定觸點(diǎn)接觸時(shí)輸出高電平,通過觸點(diǎn)的移動,將產(chǎn)生一系列的脈沖信號,反饋給單片機(jī)后,單片機(jī)對信號進(jìn)行計(jì)數(shù)判斷,然后控制水泵。但由于觸點(diǎn)在相互接觸時(shí),產(chǎn)生的信號出現(xiàn)抖動,影響單片機(jī)對信號的計(jì)數(shù),從而導(dǎo)致控制精度不高。 方案二 :采用滑動變阻器產(chǎn)生信號。在滑動變阻器上裝一個(gè)滑輪,在一個(gè)比較重的小鐵球和有浮性的膠球用一根線連接,將其裝在滑輪上。通過液面高度的變化,在浮力的作用下,帶動小球浮動,從而引起滑動變阻器阻值變化?;瑒幼冏杵髯柚档淖兓瘜⒁鹌潆妷鹤兓?,將此信號輸入到單片機(jī)AT89C2051后,進(jìn)而由單片機(jī)控制水泵的運(yùn)轉(zhuǎn)和啟停。綜合各方面,最終選擇了第二套方案。3、水泵的選擇方案一:用直流12V電壓驅(qū)動的雨刮水泵。其工作的電壓底,出水量少,而水管的體積很大,要使水貯滿水管需要很長的時(shí)間。而且泵水的高度也有點(diǎn)難以達(dá)到水管的高度要求。方案二:用交流220V電壓驅(qū)動的JP022型8W的小型水泵。其出水量合適,泵水的高度也能達(dá)到設(shè)計(jì)的要求。綜上分析,選擇方案二。4、顯示方案方案一:采用LCD液晶顯示器。LCD液晶顯示器即能顯示數(shù)字又能顯示文字,功能很大的,但其價(jià)格要比較貴,且控制較為困難。方案二:采用四位一體DG-E40561IP共陽數(shù)碼管。這種數(shù)碼管外形小、結(jié)構(gòu)簡單、使用方便,本設(shè)計(jì)只要用一個(gè)四位一體的數(shù)碼管就可以實(shí)現(xiàn)顯示要求。綜合各項(xiàng)因素,選擇方案二。5、聲光報(bào)警電路設(shè)計(jì)方案一:報(bào)警電路由電壓比較器LM339、固態(tài)繼電器、蜂鳴器、發(fā)光二極管和旋扭式可調(diào)電阻等組成。電壓比較器LM339從傳感器采集到的電壓值與設(shè)置的上限報(bào)警值比較再通過從輸出管輸出。(1)當(dāng)傳感器采集到的信號電壓比設(shè)置的上限電壓值高時(shí),輸出管飽和,輸出管截止,相當(dāng)于輸出端接低電平。(2)當(dāng)設(shè)置的上限報(bào)警值比傳感器采集到的信號電壓高時(shí),輸出管截止,相當(dāng)于輸出端開路。通過電源驅(qū)動,蜂鳴器發(fā)出聲音報(bào)警信號,同時(shí)使發(fā)光二極管發(fā)出光報(bào)警信號。方案二:采用語音芯片,在超過水位上下限時(shí)能夠通過語音進(jìn)行報(bào)警,其人機(jī)交互友好,但控制復(fù)雜,成本較高。綜合各項(xiàng)因素,選擇方案一。6、水泵工作但無水供出方案的選擇方案一:在出水口處加入一觸點(diǎn),若有水流出則觸點(diǎn)導(dǎo)通,此時(shí)信號將輸入給單片機(jī)使其識別。此種方案安裝簡單,但其是否導(dǎo)通受水的導(dǎo)電性影響。方案二:在出水口位置安裝一水流開關(guān),在有水流出時(shí),開關(guān)斷開;無水流出時(shí),開關(guān)閉合以提供給單片機(jī)一開關(guān)信號。綜合各項(xiàng)因素考慮,選擇方案二。第二章 硬件設(shè)計(jì)1、系統(tǒng)總體設(shè)計(jì)系統(tǒng)電路連接及硬件資源分配,本系統(tǒng)硬件電路連接圖見圖2。AT89S52 旋鈕傳感器模塊數(shù)碼管顯示模塊聲光報(bào)警裝置 水流開關(guān)旋 鈕水泵控制模塊AT89C2051 圖2 系統(tǒng)電路原理圖 Fig-2 the diagram of the system circuit theory本系統(tǒng)信號產(chǎn)生模塊時(shí)刻檢測水位的高低,并把這個(gè)信號通過ADC0809轉(zhuǎn)換為數(shù)字信號后輸送給單片機(jī),系統(tǒng)中的旋鈕可以修改極限的上下限,極限值決定是否應(yīng)該啟動水泵給儲液罐加水或停止供水,水泵功率為10W,通過單片機(jī)控制繼電器的斷閉得以實(shí)現(xiàn)。數(shù)碼管顯示模塊時(shí)刻顯示水位、容積和極限值的大小。本系統(tǒng)的電路圖如圖3所示。精品文檔圖3 系統(tǒng)電路連接圖Fig-3 the diagram of the system circuit2、系統(tǒng)各模塊電路設(shè)計(jì)(1) 電源電路本系統(tǒng)中采用外部開關(guān)電源直接供電方式,所提供電壓為5V,電流為0.5A。 (2) 晶振電路所選擇AT89S52單片機(jī)的晶振頻率應(yīng)低于33MHZ,考慮到在程序設(shè)計(jì)中指令時(shí)間計(jì)算的便利,我們采用12MHz晶振,一個(gè)機(jī)器周期為1s。(3)顯示電路設(shè)計(jì)本系統(tǒng)中,利用DG-E40561IP共陽數(shù)碼管來顯示水位的高度和體積及上下限的水位高度。LED顯示電路由自制液位傳感器采集信號,后輸入ADC0809經(jīng)過A/D轉(zhuǎn)換后,從單片機(jī)AT89S52的P0口輸入,由單片機(jī)進(jìn)行BCD碼轉(zhuǎn)換后,顯示水位值。由單片機(jī)的P1口控制四位LED數(shù)碼管顯示當(dāng)前水位及設(shè)定的上下限。(4) 報(bào)警模塊設(shè)計(jì)本系統(tǒng)采用旋鈕式可調(diào)電阻進(jìn)行水位上下限的控制,并通過LM339對輸入的水位進(jìn)行判斷,若過高或過低,則通過發(fā)光二極管和蜂鳴器進(jìn)行聲光報(bào)警。(5)水泵控制模塊電路本設(shè)計(jì)采用的是220V的JP022小型水泵,由于其工作的電壓高,故在電路中用歐姆龍G3MB-202P固態(tài)繼電器對其220V電路進(jìn)行控制。當(dāng)水位處于高低水位之間時(shí),水泵工作。繼電器在單片機(jī)控制下,處于常閉狀態(tài)。若水位過高或過低,則繼電器控制220V電路斷開,如下圖4所示。圖4 繼電器控制原理Fig-4 the controlled theory of the relay(6) 模數(shù)轉(zhuǎn)換電路設(shè)計(jì)本系統(tǒng)模數(shù)轉(zhuǎn)換電路原理為:從ADC0809端模擬輸入信號地址線(23-25)可決定對哪一路模擬輸入作為A/D轉(zhuǎn)換22腳鎖址控制,當(dāng)輸入為高電平時(shí),對地址信號進(jìn)行鎖存:6腳為測試控制,當(dāng)輸入一個(gè)寬電平脈沖時(shí),就開始A/D轉(zhuǎn)換:7腳 為A/D轉(zhuǎn)換結(jié)束的標(biāo)志,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),7腳輸出高電平:9腳為A/D數(shù)據(jù)輸出允許控制,當(dāng)OE腳為高電平時(shí)A/D轉(zhuǎn)換數(shù)據(jù)從端口輸出:10腳為0809的時(shí)鐘輸入端,利用單片機(jī)30腳的六分頻晶振信號再通過4024二分頻得到。(7)供水水位不足報(bào)警電路設(shè)計(jì)為防止出現(xiàn)供水水位不足但水泵仍工作的現(xiàn)象,在系統(tǒng)設(shè)計(jì)當(dāng)中加入了報(bào)警裝置,該裝置的設(shè)計(jì)為:在水管的出水口處,加入一水流開關(guān),當(dāng)水泵工作且有水流出時(shí),開關(guān)斷開,警告燈滅;水泵工作而無水流出時(shí)時(shí),警告燈亮,系統(tǒng)處于報(bào)警狀態(tài)。第三章 系統(tǒng)軟件設(shè)計(jì)軟件設(shè)計(jì)是本系統(tǒng)的重要組成部分,因顯示功能與控制功能由不同的單片機(jī)控制,為此程序設(shè)計(jì)分為兩部分,考慮到匯編語言對顯示控制編譯的便利性以及Keil C語言對運(yùn)算編譯的便利性,系統(tǒng)使用匯編語言對AT89S52進(jìn)行編程,使用Keil C語言對AT89C2051進(jìn)行編程(程序詳見附件一與附件二)。本系統(tǒng)的軟件設(shè)計(jì)共分為六個(gè)部分,分別為初始化程序設(shè)計(jì)部分、主程序設(shè)計(jì)部分、顯示主程序設(shè)計(jì)部分、摸數(shù)轉(zhuǎn)換測量子程序部分、水泵啟??刂撇糠帧⒐┧徊蛔銏?bào)警部分等組成。(1) 初始化程序系統(tǒng)上電時(shí),將70H72H內(nèi)存單元清零,P2口置零。(2) 主程序在剛上電時(shí),因70H72H內(nèi)存單元的數(shù)據(jù)為0,則每一通道的數(shù)碼管顯示值都為000。當(dāng)進(jìn)行一次測量的A/D轉(zhuǎn)換值。每個(gè)通道的數(shù)碼管顯示時(shí)間在1s左右。主程序在調(diào)用顯示程序和測試程之間循環(huán)。(3) 控制程序當(dāng)設(shè)置好水位的上限和下限值后,單片機(jī)將不斷檢測水位狀態(tài),若發(fā)現(xiàn)水位到達(dá)最低水位,則使繼電器閉合,啟動水泵電機(jī),同時(shí)聲光報(bào)警。若發(fā)現(xiàn)水位到達(dá)最高水位,則使繼電器斷開,停止水泵工作,同時(shí)聲光報(bào)警,如圖5所示。(4) 數(shù)轉(zhuǎn)換測量子程序模數(shù)轉(zhuǎn)換測量子程序是用來控制對ADC0809 八路模擬輸入電壓的A/D轉(zhuǎn)換,并將對應(yīng)的數(shù)值移入70H72H內(nèi)存單元,其程序流程如圖6所示。 (5)顯示子程序采用動態(tài)掃描法實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示。測量所得的A/D轉(zhuǎn)換數(shù)據(jù)放在70H72H內(nèi)存單元中。測量數(shù)據(jù)在顯示時(shí)需經(jīng)過轉(zhuǎn)換成為十進(jìn)制BCD碼放在76H79H中,其中7BH存放通道標(biāo)志數(shù)。寄存器R3用來作3路循環(huán)控制,R0用作顯示數(shù)據(jù)地址指針,其流程圖如7所示到最低水位否Y開 始初 始 化超過最高水位否聲光報(bào)警NYN水泵停止工作水泵工作有水泵出否聲光報(bào)警NY圖5水泵控制流程圖Fig-5 the flow chart of the pump controlling開 始啟 動 測 試數(shù)模轉(zhuǎn)換結(jié)束?P3.7=1?取數(shù)據(jù)(P2.5=1)0809地址加1取 上 限 值取 下 限 值地址數(shù)小于3?結(jié) 束圖6 數(shù)模轉(zhuǎn)換測量程序流程圖YN Fig-6 the flow chart of the A/D transverse measurement 開 始初始化調(diào)用顯示子程序調(diào)用A/D轉(zhuǎn)換子程序圖7 顯示流程圖Fig-7 the flow chart of the monitoring(6)系統(tǒng)軟件抗干擾程序?yàn)榉乐挂螂姶鸥蓴_而造成程序的“跑飛”,在程序設(shè)計(jì)當(dāng)中加入了軟件陷阱,既每段程序后加入兩個(gè)空操作NOP,若程序“跑飛”則程序被軟件陷阱捕獲,被抗干擾程序處理,返回復(fù)位狀態(tài),重新啟動系統(tǒng)。第四章 測試方法與實(shí)驗(yàn)數(shù)據(jù)1、測試儀器萬用表、51系列仿真器、8051仿真頭、89C2051仿真頭以及SUPERPRO/Z編程器。2、 硬件調(diào)試注意事項(xiàng)(1)硬件調(diào)試時(shí),可先檢查印制板及焊接的質(zhì)量是否符合要求,有無虛焊點(diǎn)及線路間有無短路、斷路。然后用萬用表測試或通電檢測,檢查無誤后,可通電檢查數(shù)碼顯示器亮度情況。(2)LM339與單片機(jī)相連的只有4根線,很容易檢查,主要檢查其與管腳是否連接好。3、軟件調(diào)試軟件調(diào)試是在WAVE G6000軟件模擬器下進(jìn)行,源程序編譯及仿真調(diào)試應(yīng)分段或以子程序?yàn)閱挝恢饌€(gè)進(jìn)行,最后結(jié)合硬件實(shí)時(shí)調(diào)試。子程序調(diào)試包括:(1)ADC0809信號采集程序;(2)顯示液位高度子程序;(3)聲光報(bào)警程序; 本系統(tǒng)使用偉福V5/S仿真器進(jìn)行程序仿真,在仿真過程中,因仿真頭對輸入電壓有非常嚴(yán)格的要求,因此必須嚴(yán)格檢查仿真頭40腳輸入電壓是否超過5V,程序仿真成功后方可燒入單片機(jī)。4、測試結(jié)果分析(1)啟停水位及報(bào)警水位的測試分析經(jīng)過實(shí)驗(yàn),本設(shè)計(jì)小組選取了10cm、25cm、35cm等水位進(jìn)行測試,實(shí)驗(yàn)結(jié)果表明:在10-25cm間,顯示誤差小于0.5cm。在35cm時(shí)誤差為1 cm。測試通過(2)液位小于10cm時(shí)自動啟停水泵測試本小組首先將水箱中的水全部排除,系統(tǒng)通電后,水泵自動進(jìn)水,同時(shí)蜂鳴器報(bào)警,指示燈閃亮,表明水位低于10cm。測試通過(3)液位在高于上限值報(bào)警測試本小組選擇40cm水位報(bào)警,測試結(jié)果表明,當(dāng)水位到達(dá)40cm時(shí),聲光報(bào)警裝置啟動,誤差值在1cm以內(nèi)。(4)液位在高于上限時(shí)停水測試本小組選擇了35cm和40cm兩個(gè)位置作為上限高度,實(shí)驗(yàn)結(jié)果表明在兩個(gè)位置,系統(tǒng)能實(shí)現(xiàn)自動停水功能,誤差在1cm以內(nèi)。(5)顯示測試本小組選擇了10cm、25cm、35cm以及40cm四個(gè)位置進(jìn)行顯示,測試結(jié)果表明:此四個(gè)位置所顯示值誤差小于0.5cm。測試通過(6)電機(jī)工作但液位不變化報(bào)警測試本小組首先使水泵工作,在系統(tǒng)正常工作后,將水管拔除,系統(tǒng)報(bào)警。將水管接好后,報(bào)警解除。由于所采用的ADC0809為8位,其計(jì)時(shí)精度相對設(shè)計(jì)要求而言已經(jīng)足夠,測量水位高度較為準(zhǔn)確,誤差在1cm以內(nèi)。第五章 收獲和總結(jié)經(jīng)過緊張的四三聯(lián)單天的奮力拼搏,與小組其他成員通力協(xié)作,團(tuán)結(jié)互助,終于完成了實(shí)驗(yàn)項(xiàng)目。首先,我們小組全體成員感謝主持本次競賽的主委會和全體評審老師以及我們的輔導(dǎo)老師,謝謝你們給了我們一個(gè)提高自己和展現(xiàn)自己的舞臺,讓我們在以后的人生中更加自信和堅(jiān)定?;叵脒@四天三夜,短暫而充實(shí),就我們而言,我們在許多方面都有了明顯進(jìn)步和收獲,無論是拼搏精神還是團(tuán)隊(duì)精神都是對我一生都是一筆豐富的財(cái)富。所以這次競賽無論能否取得成功,我們都不會有遺憾,我們會繼續(xù)發(fā)揚(yáng)這四天三夜的精神,在以后的日子里更加努力地提高自己、充實(shí)自己。同時(shí),我們希望在這四天三夜的努力有所肯定,希望我們能站在領(lǐng)獎(jiǎng)臺上。參考文獻(xiàn)1胡漢才.單片機(jī)原理及其接口技術(shù)M.北京:清華大學(xué)出版社,19962徐愛鈞,彭秀華.單片機(jī)高級C51應(yīng)用程序設(shè)計(jì)M.北京:電子工業(yè)出版社,20003李建忠.單片機(jī)原理及應(yīng)用M.西安:西安電子科技大學(xué)出版社,19994李群芳.單片微型計(jì)算機(jī)與接口技術(shù)M北京:電子工業(yè)出版社,20015樓然苗,李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例M.北京:北京航空航天大學(xué)出版社,2003附件一 AT89C2051控制程序#include #include #include #include #include /*/#define uchar unsigned char#define uint unsigned int#define ulong unsigned long/*/*定義全局變量*/sbit JS=P17; /點(diǎn)火線通斷繼電器控制口sbit CS=P16; /過限蜂鳴器報(bào)警控制口sbit SB=P15; /發(fā)動機(jī)啟動信號輸入口sbit XB=P14; /發(fā)動機(jī)冷卻水水位傳感器輸入口輸出sbit SX=P30; /發(fā)動機(jī)水溫傳感器輸入口sbit XX=P31; /發(fā)動機(jī)機(jī)油壓力傳感器輸入口sbit YBJ=P32;uchar BB=0;/*/*延時(shí)程序*/ void delay() /延時(shí)25秒 uchar i,j; for(i=0;i100;i+) for(j=0;j100;j+); /*IO口初始化*/void ioini() JS=1; CS=1; SB=1; XB=1; /MD=0; /SW=0;/*/*主函數(shù)*/void main() ioini(); /端口初始化 do #pragma ASM MOV P3,#0FFH #pragma ENDASM if(XX=1) while(!SX) #pragma ASM MOV P3,#0FFH #pragma ENDASM JS=0;BB=1; if(XX=1) XB=0; delay(); delay(); XB=1; delay(); delay(); else/JS=1; if(SX=1) SB=0; delay(); SB=1; delay(); #pragma ASM MOV P3,#0FFH #pragma ENDASMif(BB=1&YBJ=1) CS=0;else CS=1; else JS=1; BB=0; if(XX=1) XB=0; delay(); delay(); XB=1; delay(); delay(); if(SX=1) SB=0; delay(); SB=1; delay(); while(1);/*結(jié)束*/附件二 AT89S52單片機(jī)數(shù)據(jù)采集、轉(zhuǎn)換及顯示程序70H-72H存放采樣值,76H-79H存放顯示數(shù)據(jù),依次為個(gè)位、十位、百位、通道標(biāo)志;*;* *;* 主程序和中斷程序入口 *;* *;*ORG 0000H ;程序執(zhí)行開始地址LJMP START ;跳至START執(zhí)行ORG 0003H ;外中斷0中斷入口地址RETI ;中斷返回(不開中斷)ORG 000BH ;定時(shí)器T0中斷入口地址RETI ;中斷返回(不開中斷)ORG 0013H ;外中斷1中斷入口地址RETI ;中斷返回(不開中斷)ORG 001BH ;定時(shí)器T1中斷入口地址RETI ;中斷返回(不開中斷)ORG 0023H ;串行口中斷入口地址RETI ;中斷返回(不開中斷)ORG 002BH ;定時(shí)器T2中斷入口地址RETI ;中斷返回(不開中斷);*;* *;* 初始化程序中的各變量 *;* *;*CLEARMEMIO: CLR A ; MOV P2,A ;P2口置0 MOV R0,#70H ;內(nèi)存循環(huán)清0(70H-79H) MOV R2,#06H ;LOOPMEM: MOV R0,A ; INC R0 ; DJNZ R2,LOOPMEM ; MOV A,#0FFH ; MOV P0,A ;P0、P1、P3端口置1 MOV P1,A ; MOV P3,A ; NOP NOP LJMP ERR RET ;子程序返回;*;* *;* 主 程 序 *;* *;*START: LCALL CLEARMEMIO ;初始化MAIN: SETB P3.4; LCALL DISPLAY ;顯示數(shù)據(jù)一次 LCALL TEST ;測量一次 LCALL CON ;控制水泵動作 AJMPMAIN ;返回MAIN循環(huán) NOP ;PC值出錯(cuò)處理 NOP ;空操作 NOP ;空操作 LJMPSTART ;重新復(fù)位起動;DISPLAY: MOV R3,#03H ;3路信號循環(huán)顯示控制 MOV R0,#70H ;顯示數(shù)據(jù)初址(70H-72H) MOV 76H,#00H ;顯示通道路數(shù)(0-3)DISLOOP1: MOV A,R0 ;顯示數(shù)據(jù)轉(zhuǎn)為三位十進(jìn)制BCD碼存入SUBB A,#16HRRC A MOV B,#100 ;76H、77H、78H顯示單元內(nèi) DIV AB ;顯示數(shù)據(jù)除100 MOV 75H,A ;商入7AH MOV A,#10 ;A放入數(shù)10 XCH A,B ;余數(shù)與數(shù)10交換 DIV AB ;余數(shù)除10 MOV 74H,A ;商入79H MOV 73H,B ;余數(shù)入78H MOV R2,#0FFH ;每路顯示時(shí)間控制 4MS*255DISLOOP2: LCALL DISP ;調(diào)四位LED顯示程序 DJNZ R2,DISLOOP2 ;每路顯示時(shí)間控制 INC R0 ;顯示下一路 INC 76H ;通道顯示數(shù)值加1 DJNZ R3,DISLOOP1 ;3路顯示未完轉(zhuǎn)DISLOOP1再循環(huán) NOP NOP LJMP ERR RET ;3路顯示完子程序結(jié)束; LED共陽顯示子程序,顯示內(nèi)容在78H-7BH,數(shù)據(jù)在P1輸出,列掃描在P3.0-P3.3口DISP: MOV R1,#73H ;賦顯示數(shù)據(jù)單元首址 MOV R5,#0FEH ;掃描字PLAY: MOV P1,#0FFH ;關(guān)顯示 MOV A,R5 ;取掃描字 ANL P3,A ;開顯示 MOV A,R1 ;取顯示數(shù)據(jù) MOV DPTR,#TAB ;取段碼表首址 MOVC A,A+DPTR ;查顯示數(shù)據(jù)對應(yīng)段碼 MOV P1,A ;段碼放入P1口 LCALL DL1MS ;顯示1MS INC R1 ;指向下一地址 MOV A,P3 ;取P3口掃描字 JNB ACC.3,ENDOUT ;四位顯示完轉(zhuǎn)ENDOUT結(jié)束 RL A ;掃描字循環(huán)左移 MOV R5,A ;掃描字放入R5暫存 MOV P3,#0FFH ;顯示暫停 AJMP PLAY ;轉(zhuǎn)PLAY循環(huán)ENDOUT: MOV P3,#0FFH ;顯示結(jié)束,端口置1 MOV P1,#0FFH ; NOP NOP LJMP ERRRET ;子程序返回;LED數(shù)碼顯示管用共陽段碼表,分別對應(yīng)0-9,最后一個(gè)是熄滅符TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH; 1MS延時(shí)子程序,LED顯示用DL1MS: MOVR6,#19H ;DL1: MOVR7,#19HDL2: DJNZ R7,DL2 DJNZ R6,DL1 RET;模數(shù)轉(zhuǎn)換測量子程序TEST: CLR A ;清累加器A MOV P2,A ;清P2口 MOV R0,#70H ;轉(zhuǎn)換值存放首址 MOV R7,#03H ;轉(zhuǎn)換8次控制 LCALL TESTART ;啟動測試WAIT: JB P3.7,MOVD ;等A/D轉(zhuǎn)換結(jié)束信號后轉(zhuǎn)MOVD AJMP WAIT ;P3.7為
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教學(xué)反思如何促進(jìn)學(xué)生主動學(xué)習(xí)試題及答案
- 幼兒園數(shù)學(xué)問題解決試題及答案
- 新能源汽車的政策導(dǎo)向分析試題及答案
- 月基礎(chǔ)理論試題及答案
- 2025年入黨培訓(xùn)測試題及答案(一)
- 物流金融服務(wù)在供應(yīng)鏈金融創(chuàng)新中的應(yīng)用場景與風(fēng)險(xiǎn)控制研究
- 絞車運(yùn)輸工試題及答案
- 工業(yè)催化考試題及答案
- 教育大數(shù)據(jù)在2025年教育行業(yè)數(shù)據(jù)驅(qū)動戰(zhàn)略規(guī)劃中的應(yīng)用研究
- 環(huán)境監(jiān)測面試真題及答案
- 中國醫(yī)療器械發(fā)展史
- 2024企業(yè)網(wǎng)絡(luò)安全意識培訓(xùn)
- 蘇科版八年級數(shù)學(xué)下冊題型突破提高類型五、反比例函數(shù)與一次函數(shù)結(jié)合求不等式解集與面積(原卷版+解析)
- 揚(yáng)州酒店行業(yè)分析
- 護(hù)理亞??乒ぷ鲄R報(bào)
- 動態(tài)血糖管理-動態(tài)血糖監(jiān)測CGM
- 2023年江蘇無錫市初中學(xué)業(yè)水平考試地理試卷真題(答案詳解)
- GB/T 4744-2013紡織品防水性能的檢測和評價(jià)靜水壓法
- GB/T 24267-2009建筑用阻燃密封膠
- 2022年陜西省高中學(xué)業(yè)水平考試政治題(原題)
- 一帶一路論文參考文獻(xiàn)(70個(gè)范例參考),參考文獻(xiàn)
評論
0/150
提交評論