




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目 錄第一章 自動化工程訓練設(shè)計的目的意義11.1 設(shè)計目的11.2 課程在教學計劃中的地位和作用1第二章 空氣濕度測量與報警系統(tǒng)軟硬件設(shè)計任務32.1 設(shè)計內(nèi)容及要求32.2 課程設(shè)計的要求3第三章 總體設(shè)計方案53.1 總體設(shè)計思想5 3.2 總體設(shè)計流程圖6第四章 硬件設(shè)計7 4.1 硬件設(shè)計概要7 4.1.1濕度采樣電路7 4.1.2 驅(qū)動器接線84.2 所用到的芯片及其各自功能說明8 4.2.1 芯片列表84.2.2 8032的功能簡介9 4.2.3 adc0809的功能簡介94.2.4 8279的功能簡介114.2.5 lcd的功能簡介124.2.6 濕度傳感器12第五章 軟件設(shè)計
2、145.1 系統(tǒng)模塊145.2 各模塊介紹14第六章 系統(tǒng)調(diào)試及使用說明18 6.1 系統(tǒng)調(diào)試18 6.2 使用說明18第七章 收獲、體會19參考文獻20附錄21第一章 課程設(shè)計的目的、意義1.1 設(shè)計目的通過微控制器的硬件和軟件的學習,使學生對單片機系統(tǒng)有一個全面、深刻的了解,能夠熟練掌握芯片的工作原理和使用方法,從硬件和軟件兩方面的基礎(chǔ)上對所學知識進行應用,對在課程設(shè)計過程中遇到的問題進行相關(guān)處理并分析結(jié)果,使學生能夠在實際應用的過程中掌握軟、硬件應用的精華部分,能夠進行相對獨立的程序設(shè)計和硬件設(shè)計,本質(zhì)上實現(xiàn)了微控制器技術(shù)課程的教學目的。此次設(shè)計主要能夠完成對空氣濕度的測量監(jiān)控和數(shù)據(jù)處理
3、以及顯示報警功能的實現(xiàn),可以通過鍵盤輸入?yún)?shù)來設(shè)置系統(tǒng)得目標值和報警值,通過lcd來顯示當前相對濕度值和鍵盤輸入的目標值、報警值。當當前相對濕度值達到某種程度時,作出對應得驅(qū)動和報警。1.2 課程在教學計劃中的地位和作用 計算機是當今發(fā)展最快的領(lǐng)域,隨著計算機技術(shù)的發(fā)展,與其遙相呼應的微控制器的發(fā)展也是驚天地泣鬼神,正是這種軟、硬件的更新?lián)Q代,對學生學習微控制器技術(shù)這門課程和掌握相關(guān)的硬件知識變得更加重要,做到學以致用,使所學習的知識有助于今后的工作和學習,有必要將課堂上學習的理論和實踐的結(jié)合,使學生能夠真正的獨立完成一項有一定知識架構(gòu)的課程設(shè)計,如何自己思考相關(guān)的問題,如何去查資料并通過資料
4、匯總得出相關(guān)結(jié)論,如何去學習新的東西,如何去了解我們生活中智能儀器的相關(guān)知識,以及在應用的過程中制定相應的問題的解決方案并通過不斷實踐來提高學生分析問題和解決問題的能力。 因為單片機在日常生活中的可見性和普遍性,使得這次課程設(shè)計主要是以生活中常見的電子電器為參考作出設(shè)計,例如:空調(diào)系統(tǒng),洗衣機系統(tǒng),溫度監(jiān)控系統(tǒng),濕度監(jiān)控系統(tǒng)。這些在日常生活中使用十分普遍的電器,在課程設(shè)計中我們可以從原理上,從內(nèi)在的運算認識到理論對實踐的重要性以及實踐來源于理論的意義。對一個系統(tǒng)成功的設(shè)計出來后的喜悅感讓我們對微控制器的積極性充分的調(diào)動起來了。 所以說在這個經(jīng)世致用的中南大學和創(chuàng)新型社會下,課程設(shè)計是必不可少,
5、更是重中之重,意義重大性是不可忽視的。第二章 空氣濕度測量與報警系統(tǒng)軟 硬件設(shè)計任務2.1 設(shè)計內(nèi)容及要求設(shè)計出具有a/d采樣、鍵盤輸入?yún)?shù)設(shè)置的空氣濕度檢測、處理、顯示和報警,并且可在線鍵盤參數(shù)設(shè)置、定時檢測、顯示和喇叭與燈光報警的空氣濕度測量與報警系統(tǒng)。2.2 課程設(shè)計的要求2.2.1 課程設(shè)計的基本要求如下:1)掌握單片微控制器硬件結(jié)構(gòu)和工作原理、中斷與定時系統(tǒng)等基本概念和原理;2)熟悉8/16位單片微控制器(8x51/196系列)的主要功能單元和指令系統(tǒng);3)利用微控制器的接口技術(shù)進行簡單的測控及自動化應用系統(tǒng)設(shè)計;2.2.2 課程設(shè)計的具體要求如下1) 濕度采樣 由于濕度傳感器的濕度
6、檢測轉(zhuǎn)換并提供0-5v的信號輸入,因此課程設(shè)計要求a/d多路采樣電位器的輸入電壓,0-5v轉(zhuǎn)換為00-0ffh數(shù)字信號,并存儲計算顯示.同時通過雙通道采樣同一個電位器的輸入求平均值來保證采樣的精度和顯示值的穩(wěn)定性.在此同時,增加第三通道獨立采集,比較兩種情況。2) 報警處理 鍵盤輸入濕度的目標值和報警值,對采樣進來的當前信號轉(zhuǎn)換成數(shù)字信號后,與目標值和報警值做比較:(1)若當前值低與目標值,則屬于干燥狀態(tài),亮綠燈燈;此時,應啟動加濕器。(2)若當前值高于目標值同時低于報警值,則屬于正常狀態(tài),亮黃燈;(3)若當前值高于報警值,則屬于高濕度危險狀態(tài),兩紅燈,同時喇叭報警,并啟動干燥器。(3) 鍵盤
7、輸入和顯示 通過鍵盤輸入的參數(shù)(目標值和報警值)同時進行顯示,對當前采樣值進行動態(tài)顯示,并可在線修改參數(shù)。第三章 總體設(shè)計方案3.1 總體設(shè)計思想總體設(shè)計思想分為以下六點: 1) 定義53h,63h,73h分別為目標值,報警值,當前值的存儲區(qū).首先調(diào)用一次顯示程序,靜態(tài)顯示”請同時輸入目標值和報警值,按功能鍵確定”,將輸入的十進制值分別送到53h和63h,在p3.2有一個脈沖輸入時,重新進入鍵盤掃描程序,否則完成鍵盤輸入功能,并可在線修改參數(shù);2) 通過ad轉(zhuǎn)換將輸入的電壓信號轉(zhuǎn)換為數(shù)字信號并調(diào)用數(shù)制轉(zhuǎn)換程序,將16進制的當前值轉(zhuǎn)換為十進制的三位數(shù),同時存儲在73h,完成信號檢測和數(shù)制轉(zhuǎn)換功能
8、; 3) 對轉(zhuǎn)換后的當前值和輸入的目標值,報警值做比較,運算后,根據(jù)不同的比較結(jié)果,改變,p1.1,p1.2,p1.3,p1.4,p1.5的狀態(tài),完成比較功能; 4) 將當前采樣值,鍵盤輸入的目標值和報警值分別顯示在lcd對應的位置上,完成顯示功能; 5) 根據(jù)3)中的改變情況,分別驅(qū)動紅黃綠燈以及喇叭,p1.4,p1.5分別接干燥器和加濕的驅(qū)動器,完成報警功能. 6) 作適當延時,在返回到ad轉(zhuǎn)換階段 之前,判斷p3.2的電位,若收到一脈沖,則此時開始重新初始化,進入鍵盤掃描程序,若沒檢測到,則繼續(xù)采樣重新掃描完成定時檢測功能.總體設(shè)計思想就為這樣的不斷循環(huán),其中因為p1.4,p1.5的存在
9、有一定的反饋控制,但是由于實驗要求中并沒作要求,因此,軟件程序中對p1.4,p1.5的改變,以及硬件電路中對p1.4,p1.5的驅(qū)動接線并沒有在實驗室實現(xiàn)。 3.2 總體設(shè)計流程圖程序流程圖如圖3.1開始初始化及初始顯示掃描鍵盤,鍵盤輸入程序啟動ad雙通道采樣采樣值轉(zhuǎn)換采樣值與設(shè)定值比較輸出顯示程序報警驅(qū)動處理程序需要修改參數(shù)?是否圖3.1 程序流程圖第四章 硬件設(shè)計4.1 硬件設(shè)計概要4.1.1:濕度采樣電路:濕度采樣電路用高分子濕度傳感器chr01為復合型電阻型濕度敏感部件,其復阻抗與空氣相對濕度成指數(shù)關(guān)系,直流阻抗(普通數(shù)字萬用表測量)幾乎為無窮大,與傳統(tǒng)意義上的電阻有空氣中水分子參與膜
10、感濕中的離子導電,由于水分子為極性分子,在直流電存在的情況下,會電離,分解,從而影響導電與元件的壽命,所以要求采用交流電路對傳感器進行供電。濕度傳感器由于其必須的激勵通過交流電來實現(xiàn),及不同溫度特性下阻抗不同的特性,決定了其在ad采樣電路中必須采用動態(tài)采樣的方法,并同時采樣溫度信號。具體電路示意圖4.1如下: 圖4.1濕度采樣電路參數(shù)設(shè)計: r0采樣電阻的阻值通常建議在3050k,側(cè)重高濕測量,采樣電阻阻值可降低到20k,低濕阻值可提高到100k。 在信號的正周期內(nèi)的中間段進行采樣,直接通過分壓法采集,注意采樣時間,通過電壓采樣后得到v0,計算如下:rx=r0*(v-v0)/v0同時檢測當前溫
11、度t,通過查閱濕度傳感器z/rh/t數(shù)據(jù)表,在不同溫度下rx的值推算出當前的相對濕度rh%。不同單片機可能得到的數(shù)據(jù)會有所不同,可通過軟件進行矯正。4.1.2 報警驅(qū)動接線p1.1接紅燈p1.2接黃燈p1.3接綠燈p1.4可同時接喇叭和干燥驅(qū)動器p1.5接加濕驅(qū)動器4.2 所用到的芯片及其各自功能說明4.2.1 芯片列表(如表4.1)表4.1芯片列表芯片名稱規(guī)格數(shù)量備注8032 1片八位單片機adc08091片八位模數(shù)轉(zhuǎn)換芯片74ls1641片74ls022片四2輸入或非門82791片可編程鍵盤/顯示接口lcd1片液晶顯示器濕度傳感器chr011片4.2.2 8032的功能簡介8031單片機采
12、用40腳雙列直插式封裝結(jié)構(gòu),引腳配置如圖4.3所示。圖4.3 80c32引腳圖4.2.3 adc0809的功能簡介 圖4.4 ad0809芯片圖adc0809是采樣頻率為8位的、以逐次逼近原理進行模數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8個單斷模擬輸入信號中的一個進行a/d轉(zhuǎn)換。1主要特性1)8路8位ad轉(zhuǎn)換器,即分辨率8位。 2)具有轉(zhuǎn)換起??刂贫?。 3)轉(zhuǎn)換時間為100s4)單個5v電源供電 5)模擬輸入電壓范圍05v,不需零點和滿刻度校準。 6)工作溫度范圍為-4085攝氏度 7)低功耗,約15mw。 2內(nèi)部結(jié)構(gòu) adc0809是cmos單片型
13、逐次逼近式ad轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖1322所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型da轉(zhuǎn)換器、逐次逼近 3外部特性(引腳功能) adc0809芯片有28條引腳,采用雙列直插式封裝,如圖1323所示。下面說明各引腳功能。 in0in7:8路模擬量輸入端。2-12-8:8位數(shù)字量輸出端。adda、addb、addc:3位地址輸入線,用于選通8路模擬輸入中的一路ale:地址鎖存允許信號,輸入,高電平有效。 start: ad轉(zhuǎn)換啟動信號,輸入,高電平有效。eoc: ad轉(zhuǎn)換結(jié)束信號,輸出,當ad轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 oe:數(shù)據(jù)輸出允許信號,輸
14、入,高電平有效。當ad轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。clk:時鐘脈沖輸入端。要求時鐘頻率不高于640khz。 ref(+)、ref(-):基準電壓。 vcc:電源,單一5v。gnd:地。adc0809的工作過程是:首先輸入3位地址,并使ale=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。start上升沿將逐次逼近寄存器復位。下降沿啟動 ad轉(zhuǎn)換,之后eoc輸出信號變低,指示轉(zhuǎn)換正在進行。直到ad轉(zhuǎn)換完成,eoc變?yōu)楦唠娖剑甘綼d轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當oe輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)
15、字量輸出到數(shù)據(jù)總線上。4.2.4 8279的功能簡介8279可按其功能分為:鍵盤功能塊;顯示功能塊;控制功能塊;與cpu接口功能塊控制功能塊包括 控制和定時寄存器,定時和控制,掃描計數(shù)器三部分,它主要用來控制鍵盤和顯示功能塊工作.控制和定時寄存器:用于存貯來自cpu的編程命令,cpu對8279編程以確定鍵盤與顯示器工作方式和其它工作條件時,先把命令控制數(shù)據(jù)放到數(shù)據(jù)總線上,然后使a0=1,wr=0cs=0,并在wr上升沿把命令鍵存在控制和定時寄存器中,并經(jīng)譯碼,建立適當?shù)墓δ?定時和控制:它含基本的定時計數(shù)器,第一個計數(shù)器是一個分頻系數(shù)為2-31的前置定時器,分頻系數(shù)可由程序預置,使內(nèi)部頻率為1
16、00khz,從而能給出5.1ms鍵盤掃描時間和10.3ms反跳時間,其它計數(shù)器將此基本頻率分頻后,提供適當?shù)陌存I掃描.行掃描.鍵盤陣列掃描.以及顯示器掃描次數(shù). 掃描計數(shù)器:掃描計數(shù)器有兩種工作方式,在編碼工作方式時,計數(shù)器提供一種二進制計數(shù),通過管腳sl0-sl3輸出后經(jīng)外部譯碼才能提供給鍵盤和顯示器的掃描作用,在譯碼工作方式時,掃描計數(shù)器對最低二位進行譯碼,sl0-sl3輸出4選1的譯碼信號,作為顯示器和鍵盤的譯碼掃描. 鍵盤功能塊包括:返回緩沖器,鍵盤反跳及控制,8x8 fifo傳感器ram,fifo/傳感器ram狀態(tài).4.2.5 lcd的功能簡介 圖4.5 lcd連線圖4.2.6 濕度
17、傳感器高分子濕度傳感器chr01、02系列為新一代復合型電阻型濕度敏感部件,其復阻抗與空氣相對濕度成指數(shù)關(guān)系,直流阻抗(普通數(shù)字萬用表測量)幾乎為無窮大,與傳統(tǒng)意義上的電阻有空氣中水分子參與膜感濕中的離子導電,由于水分子為極性分子,在直流電存在的情況下,會電離,分解,從而影響導電與元件的壽命,所以要求采用交流電路對傳感器進行供電。對濕度傳感器而言,頻率與阻抗之間存在一定的關(guān)系,對于測量30%-80%rh范圍,頻率的變化對傳感器影響并不明顯,在單片機軟件編程的實際應用時,需要通過將傳感器置于濕度發(fā)生裝置中(例如恒溫恒濕箱)進行實測,通過軟件對最終的誤差進行修正,此項修正基本上可以彌補頻率變化所產(chǎn)
18、生的誤差以及其他誤差。濕度傳感器阻抗變化與溫度的關(guān)系見規(guī)格書中的數(shù)據(jù)表,先檢測溫度,然后按查表法對進行濕度檢測。如果濕度精度要求不是特別嚴格的情況,(從數(shù)據(jù)處理簡易的法則來說),可以推算濕度傳感器溫度系數(shù)為-0.4%rh/,公式為: h(t)=h (25) - 0.4*(t 25)例如,以實測阻抗按25的數(shù)據(jù)表讀數(shù),例如在35時讀到的阻抗為30k,按25表格,相對濕度為60%rh,此時按公式計算的實際濕度應為56%rh。最后的問題是在生產(chǎn)過程中,由于濕度傳感器的原因或其他原因,總會遇到實際值與測量值之間存在誤差的情況,在單片機功能允許的情況下,建議通過軟件做最后的修正,主要采用跳線(jump)
19、的方法對示值進行修正,安排一個io,做加/減運算符號定義,其余2-4個io,用于定義加/減的值,例如1,2,3,可以修正正負6%rh的示值偏差。第五章 軟件設(shè)計5.1 系統(tǒng)模塊5.1.1模塊初始顯示output2鍵盤掃描及鍵盤輸入inputad采集 adstart進制轉(zhuǎn)換 conver輸入數(shù)據(jù)比較 compare采樣輸出 output報警以及相應控制 control延時 delay5.2 模塊介紹 5.2.1 初始靜態(tài)顯示 每個字的大小設(shè)置為1616,因次可顯示四行,每行顯示8個字。第一行為“ 歡迎使用 ”;第二行為“請連續(xù)輸入目標濕”;第三行為“度值和報警濕度值”;第四行不顯示,為空白。5.
20、2.2 8279鍵盤輸入連續(xù)輸入2組十進制數(shù),第一組目標值,低于目標值則環(huán)境干燥,第二組為報警值,高于報警值則環(huán)境潮濕,在兩數(shù)之間范圍內(nèi)適度正常。5.2.3 ad數(shù)據(jù)采集 由于0809是采樣頻率為8位的、以逐次逼近原理進行模數(shù)轉(zhuǎn)換的器件,所采集的數(shù)為00至ff,要轉(zhuǎn)換為10進制時需要采集結(jié)果經(jīng)過數(shù)制轉(zhuǎn)換。需要采集結(jié)果與0.4相乘,此時出現(xiàn)較小誤差。在出現(xiàn)余數(shù)時在對余數(shù)成0.4,至小數(shù)點后一位截至。子程序adstsradstar: ;ad轉(zhuǎn)換lcall delaymov a,#00h ; 0通道 mov dptr,#9000hmovx dptr,alcall delaymovx a,dptrlc
21、all delaymov b,#02hdiv abmov 70h,amov a,#01h ;1通道m(xù)ov dptr,#9000hmovx dptr,alcall delaymovx a,dptrlcall delaymov b,#02hdiv abmov 71h,amov b,70hadd a,bmov 72h,a ;取二者平均值mov b,#5div abmov 79h,bmov b,#2mul abmov 73h,a ;100(64h)mov a,79hmov b,#4mul abmov b,#10div abadd a,73h;100+1mov 73h,amov 7ah,bmov b,#
22、100div abmov 74h,a ;百位mov a,bmov b,#10div abmov 75h,a ;十位mov a,bmov 76h,a ;個位mov a,7ahmov 78h,aret5.2.4輸入數(shù)據(jù)比較 compare compare: mov b,53h 目標值儲存區(qū) mov a,#100 clr c subb a,b jnc comp1 mov a,#15h mov 50h,a mov a,#22h mov 51h,a mov 52h,acomp1: mov b,63h 報警值儲存區(qū) mov a,#100 clr c subb a,b jnc comp2 mov a,#15
23、h mov 60h,a mov a,#22h mov 61h,a mov 62h,acomp2: mov b,73h 當前值儲存區(qū) mov a,#100 clr c subb a,b jnc comp3 mov a,#01h mov 74h,a mov a,#0h mov 75h,a mov 76h,a mov 78h,acomp3: mov b,53h mov a,63h clr c subb a,b jnc comp4 mov a,#15h mov 50h,a mov a,#22h mov 51h,a mov 52h,acomp4:ret此子程序是用來檢測輸入格式是否正確,比如目標值不能超
24、過報警值,而這都不能超過100,如果出現(xiàn)這幾種情況,出錯的地方會有error顯示在lcd上。5.2.5采樣輸出 output 此輸出就是把當前值實時顯示出來,因為程序是進入的一個循環(huán),ad不停的采樣,這樣數(shù)據(jù)實時更新。需要修改參數(shù)時只需至p3.2一個脈沖,程序跳轉(zhuǎn)到8279初始化那,往下運行。5.2.6報警以及相應控制 control (1)若當前值低與目標值(下限),則屬于干燥狀態(tài),亮綠(黃)燈燈;此時,應啟動加濕器。(2)若當前值高于目標值(下限)同時低于報警值,則屬于正常狀態(tài),亮黃(綠)燈;(3)若當前值高于報警值,則屬于高濕度危險狀態(tài),兩紅燈,同時喇叭報警,并啟動干燥器。第六章 系統(tǒng)調(diào)
25、試及使用說明6.1 系統(tǒng)調(diào)試經(jīng)過三周的不斷調(diào)試更改再調(diào)試,最終得到了完整的成功的一個濕度測量控制系統(tǒng)。在次過程中遇到了各種各樣的問題,也采取了不同的處理方法。例如:根據(jù)要求的在線鍵盤輸入,我們一開始將input作為子程序放入循環(huán)中,結(jié)果出現(xiàn)每次循環(huán)都得進行一次鍵盤輸入才能夠繼續(xù)下面的ad采樣以及其他的顯示報警子程序,顯然這樣不符合要求和不符合現(xiàn)實。經(jīng)過討論調(diào)試,修改為鍵盤輸入放在主程序中,在開始初始化顯示好進行一次鍵盤輸入,然后通過p3.2的開關(guān)脈沖量的判斷,若p3.2有一個脈沖輸入,則跳到主程序最開始重新進行鍵盤輸入,否則只進行ad采樣轉(zhuǎn)換顯示和報警處理。 我們最終完成后出現(xiàn)一個問題,當ad
26、0809采集通道什么都不接時,指示燈會紅黃綠等一直不停地閃爍,開始我以為是自己開始并未給存儲地址初始化,當我們給那個地址(43h)分別賦值為00h,0ffh時還會出現(xiàn)這種情況,最后在與老師的討論中了解到,由于手拿接線來回搖晃時,會產(chǎn)生感應電壓,是采集的數(shù)不穩(wěn)定。6.2 使用說明1) 運行程序進入系統(tǒng)監(jiān)測狀態(tài)后,lcd液晶顯示“歡迎使用 請連續(xù)輸入濕度目標值和報警值(按f2確認并退出)”。2) 通過鍵盤進行參數(shù)設(shè)置,例如輸入050、080后按f2功能鍵確認。3) 進行ad采樣、轉(zhuǎn)換、比較、顯示、報警處理。lcd畫面顯示:濕度檢測系統(tǒng),當前濕度值為xx.xx%,目標值為 50%,報警值為100%。
27、xx.xx%為當前濕度相對值。并隨濕度變化而改變。4) 若xx.xx50,則亮綠燈;50xx.xx100,亮紅燈并喇叭報警。當當前值xx.xx改變時,以上處理狀態(tài)跟隨而變。5) 需要參數(shù)重新設(shè)置,則給予開關(guān)p3.2一個脈沖(課程設(shè)計中以開關(guān)的一次1和一次0的給予),重新返回到1)步。 第七章 收獲、體會這次課程設(shè)計在周周內(nèi)完成一個系統(tǒng)的設(shè)計,時間還是比較充裕的。在這段時間里,我解決很多在課堂上在老師那發(fā)現(xiàn)不了的問題,學習到了一個系統(tǒng)的成功不僅僅是需要會編程,更需要的是怎么樣從一堆錯誤一堆問題中逐一排除,找到解決的辦法。這一點我體會是十分深刻。例如:前面提到的鍵盤輸入導致每次循環(huán)都得進行一次參數(shù)
28、設(shè)置的問題,經(jīng)過每一個子程序的單獨運行,發(fā)現(xiàn)都可以正常運行,但融合到一起就出現(xiàn)問題了。單步運行,也沒發(fā)現(xiàn)問題,一個一個子程序的屏蔽,找到了鍵盤輸入的問題。于是解決辦法就如前說產(chǎn)生出來了。此外,對于lcd顯示,鍵盤輸入和ad采樣的模塊組合,以及雙通道采樣保證精度也讓我了解到,理論上的東西不經(jīng)過實踐自己是很難理解透的,“知道并不等于會用”這句話正是最好的說明。參考文獻1 王秋爽 曾昭龍.單片機開發(fā)基礎(chǔ)與經(jīng)典設(shè)計實例.北京:機械工業(yè)出版社,2008.12 林伸茂.8051單片機.北京:人民郵電出版社,2004.5附錄(附源程序)源程序如下:org 0100hmain: ;主程序output2: ;初
29、始靜態(tài)顯示mov dptr,#8000hmov a,#00hmovx dptr,a ;寫數(shù)據(jù)mov a,#00hmovx dptr,ainc dptrmov a,#42hmovx dptr,a ;寫指令lcall dy;設(shè)置圖形顯示起始地址mov dptr,#8000hmov a,#10hmovx dptr,amov a,#00hmovx dptr,ainc dptrmov a,#43hmovx dptr,alcall dymov a,#0a7h ;設(shè)置圖形顯示范圍movx dptr,alcall dymov a,#80hmovx dptr,alcall dy;選擇or模式mov a,#9bh
30、movx dptr,alcall dy;文本關(guān),圖形開mov dptr,#8000hmov a,#00hmovx dptr,amov a,#00hmovx dptr,amov a,#24hinc dptrmovx dptr,alcall dy;設(shè)置起始地址mov a,#0b0hmovx dptr,amov r0,#00h;開始數(shù)據(jù)自動寫qss0: ;顯示歡迎使用mov a,r2mov dptr,#chi5movc a,a+dptrmov dptr,#8000hmovx dptr,ainc r2djnz r0,qss0mov r0,#00hmov r2,#00hqss1: ;顯示請連續(xù)輸入設(shè)置值
31、mov a,r2mov dptr,#chi6movc a,a+dptrmov dptr,#8000hmovx dptr,ainc r2djnz r0,qss1mov r0,#00hmov r2,#00hqss2: ;顯示度值和報警濕度值mov a,r2mov dptr,#chi7movc a,a+dptrmov dptr,#8000hmovx dptr,ainc r2djnz r0,qss2mov r0,#00hmov r2,#00hqss3: ;空白mov a,r2mov dptr,#chi8movc a,a+dptrmov dptr,#8000hmovx dptr,ainc r2djnz
32、r0,qss3;取數(shù)據(jù)mov dptr,#8001hmov a,#0b2hmovx dptr,alcall dyinput:ha7s: mov sp,#53h ;初始化8279 mov dptr,#0b001h mov a,#00h movx dptr,a mov a,#32h movx dptr,a mov a,#0dfh movx dptr,aha7s1: movx a,dptr ;顯示p jb acc.7,ha7s1 mov dptr,#0b000h mov a,#0c8h movx dptr,a inc dptr mov a,#80h movx dptr,aha7s2: mov 30h
33、,#80h ;鍵掃程序 mov 31h,#40h mov r1,#50hha7s3: mov dptr,#0b001h ;數(shù)字鍵連續(xù)輸入六位及顯示 movx a,dptr anl a,#07h cjne a,#00h,ha7s4 ajmp ha7s3ha7s4: mov dptr,#0b000h movx a,dptr mov b,a mov r3,#00h mov dptr,#keytabha7s5: mov a,#00h movc a,a+dptr cjne a,b,ha7s6 ajmp ha7saha7s6: inc dptr inc r3 mov a,r3 jb acc.4,ha7s3
34、 ajmp ha7s5ha7sa: mov a,30h mov dptr,#0b001h movx dptr,a mov a,r3 mov r1,a mov r0,31h mov r0,a inc 31h mov dptr,#cdata movc a,a+dptr mov dptr,#0b000h movx dptr,a inc 30h inc r1 cjne r1,#53h,con mov r1,#60hcon: mov a,30h cjne a,#86h,ha7sb ljmp jiaha7sb: ajmp ha7s3jia: mov dptr,#0b001h ;功能鍵掃描 movx a,d
35、ptr anl a,#07h cjne a,#00h,jia3 ajmp jiajia3: mov dptr,#0b000h movx a,dptr mov b,aha7s7: mov dptr,#keytab1ha7s8: mov a,#00h movc a,a+dptr cjne a,b,ha7s9 ajmp kha7s9: inc dptr ajmp ha7s8k: ljmp loop0keytab: db 0c1h,0c8h,0c9h,0d0h,0d8h,0e0h,0c2h,0cah,0d1h,0d9h db 0dah,0c3h,0cbh,0d2h,0d3h,0dbhkeytab1:d
36、b 0e3h,0e2h,0e1hcdata:db 0ch,9fh,4ah,0bh,99h,29h,28h,8fh,08h,09h,88h,38h db 6ch,1ah,68h,0e8hloop0: mov 40h,#80h ;清顯示程序q1: mov a,40h mov dptr,#0b001h movx dptr,a mov a,#0ffh mov dptr,#0b000h movx dptr,a inc 40h mov a,40h cjne a,#86h,q1 ajmp main1q2: jb p3.2,q3 ajmp main1q3: ljmp inputmain1: lcall ads
37、tar ;啟動ad轉(zhuǎn)換 lcall conver ; 十進制轉(zhuǎn)換 lcall compare ; 采樣值與設(shè)置值做比較 lcall output ; 采樣值輸出 lcall delay ; 延時 lcall delay lcall delay lcall delay lcall delaycontrol:mov a,73h ;根據(jù)比較結(jié)果作出判斷 mov b,63h clr c subb a,b laba: setb p1.0 jc okgetbaojing: ;紅燈亮(高于報警值,處于危險狀態(tài)) setb p1.1 clr p1.2 clr p1.3 setb p1.4 lcall dela
38、y clr p1.4 lcall delay lcall delay djnz 20h,laba ajmp man1okget: mov a,73h mov b,53h clr c subb a,b jc lowerhigher: clr p1.1 setb p1.2 clr p1.3 ;黃燈亮(高于目標值低于報警值) ajmp man1lower: clr p1.1 clr p1.2 ;綠燈亮(低于目標值) setb p1.3man1: mov a,43h mov b,63h clr c subb a,b setb p1.0 jc okbaojin: ;紅燈亮(高于報警值,處于危險狀態(tài)) s
39、etb p1.5 clr p1.6 clr p1.7 ajmp man2ok: mov a,43h mov b,53h clr c subb a,b jc q4 clr p1.5 setb p1.6 clr p1.7 ;黃燈亮(高于目標值低于報警值) ajmp man2q4: clr p1.5 clr p1.6 ;綠燈亮(低于目標值) setb p1.7man2: ljmp q2compare: mov b,53h mov a,#100 clr c subb a,b jnc comp1 mov a,#15h mov 50h,a mov a,#22h mov 51h,a mov 52h,acom
40、p1: mov b,63h mov a,#100 clr c subb a,b jnc comp2 mov a,#15h mov 60h,a mov a,#22h mov 61h,a mov 62h,acomp2: mov b,73h mov a,#100 clr c subb a,b jnc comp3 mov a,#01h mov 74h,a mov a,#0h mov 75h,a mov 76h,a mov 78h,acomp3: mov b,53h mov a,63h clr c subb a,b jnc comp4 mov a,#15h mov 50h,a mov a,#22h mo
41、v 51h,a mov 52h,acomp4:retadstar: ;ad開始轉(zhuǎn)換lcall delaymov a,#00hmov dptr,#9000hmovx dptr,alcall delaymovx a,dptrlcall delaymov b,#02hdiv abmov 70h,amov a,#01hmov dptr,#9000hmovx dptr,alcall delaymovx a,dptrlcall delaymov b,#02hdiv abmov 71h,amov b,70hadd a,bmov 72h,a ;平均值mov b,#5div abmov 79h,bmov b,#
42、2mul abmov 73h,a ;100(64h) mov a,79hmov b,#4mul ab mov b,#10 div abadd a,73h;100+1mov 73h,amov 7ah,bmov b,#100div abmov 74h,a ;百位mov a,bmov b,#10div abmov 75h,a ;十位mov a,bmov 76h,a ;個位mov a,7ahmov 78h,a mov a,#02h 多加通道,用來觀察比較 mov dptr,#9000h movx dptr,a lcall delay movx a,dptr lcall delay mov b,#5 d
43、iv ab mov b,#2 mul ab mov 43h,a retdelay:mov r6,#02hdelay2:mov r7,#0ffhdelay1:djnz r7,delay1 djnz r6,delay2 retconver: ;做調(diào)整mov 53h,52hmov a,51hmov b,#10mul abadd a,53hmov 53h,amov a,50hmov b,#100mul abadd a,53hmov 53h,amov 63h,62hmov a,61hmov b,#10mul abadd a,63hmov 63h,amov a,60hmov b,#100mul abadd
44、 a,63hmov 63h,a retoutput: ;輸出程序mov dptr,#8000hmov a,#80hmovx dptr,a ;寫數(shù)據(jù)mov a,#00hmovx dptr,ainc dptrmov a,#42hmovx dptr,a ;寫指令lcall dy;設(shè)置圖形顯示起始地址mov dptr,#8000hmov a,#00hmovx dptr,a ;寫數(shù)據(jù)mov a,#00hmovx dptr,ainc dptrmov a,#40hmovx dptr,a;寫指令lcall dy;設(shè)置文本顯示起始地址mov dptr,#8000hmov a,#10hmovx dptr,amov
45、 a,#00hmovx dptr,ainc dptrmov a,#41hmovx dptr,alcall dymov dptr,#8000hmov a,#10hmovx dptr,amov a,#00hmovx dptr,ainc dptrmov a,#43hmovx dptr,alcall dy;設(shè)置圖形顯示范圍mov a,#0a7hmovx dptr,alcall dy mov a,#80hmovx dptr,alcall dy;選擇or模式mov a,#9chmovx dptr,alcall dy; 文本開,圖形開mov dptr,#8000hmov a,#00hmovx dptr,amov a,#00hmovx dptr,amov a,#24hinc dptrmovx dptr,alcall dy;設(shè)置文本區(qū)指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車工藝設(shè)計核心要點解析
- 社區(qū)團購的現(xiàn)狀與未來趨勢分析
- 大學生國慶假期安全教育指南
- 裝配式建筑行業(yè)發(fā)展前景
- 義務教育數(shù)學課程標準培訓
- 陜西銅川公開招聘農(nóng)村(村務)工作者筆試題含答案2024年
- 甘肅隴南公開招聘農(nóng)村(村務)工作者筆試題含答案2024年
- 幼兒感恩教育:從“小愛”到“大愛”的成長階梯
- 四年級夢想課程教學工作計劃
- 浙江臺州公開招聘農(nóng)村(村務)工作者筆試題含答案2024年
- GB 7718-2025食品安全國家標準預包裝食品標簽通則
- 2025年高考歷史總復習世界近代史專題復習提綱
- 2025-2030中國蜂蜜行業(yè)營銷渠道與多元化經(jīng)營效益預測研究報告
- 內(nèi)蒙古匯能集團筆試題庫
- 產(chǎn)后保健知識課件
- 氧化反應工藝安全操作規(guī)程
- 子宮肌瘤病例討論
- 門窗安裝施工方案07785
- 2025年應急管理普法知識競賽題(附答案)
- 土壤氡檢測方案
- 氧化鎵雪崩光電探測器的研究進展
評論
0/150
提交評論