單片機課程設計--空調溫度控制_第1頁
單片機課程設計--空調溫度控制_第2頁
單片機課程設計--空調溫度控制_第3頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、燕山大學課程設計說明書課程名稱單片機原理及應用技術題目空調溫度控制學院係)電氣工程學院年級專業(yè)2011級檢測技術與儀器班學號4學生余焊威指導教師吳希軍教師職稱副教授燕山大學課程設計(論文)任務書院(系):電氣工程學院基層教學單位:儀器科學與工程系學號4學生余焊威專業(yè)(班級)檢測11-1設計題目空調溫度控制設 計 技 術 參 數(shù)利用實驗儀上顯示電路、鍵盤或開關電路、 A/D轉換電路,模擬空 調恒溫控制??梢岳脤嶒瀮x上的電位器模仿溫度變化, 制冷可以用發(fā) 光二極管模擬,也可以控制直流電機模仿壓縮機的運行。 要求可以用鍵 盤或開關設定恒溫溫度,當外界溫度超過設定溫度 1C時,就要啟動加 熱或制冷壓

2、縮機。設 計 要 求顯示電路、鍵盤或開關電路、A/D轉換電路的硬件電路設計; 編制相應的程序。工 作 量設計的容滿足課程設計的教學目的與要求, 設計題目的難度和工作量適 合學生的知識和能力狀況,工作量飽滿。工 作 計 劃查閱資料進行設計準備、設計硬件電路、編制程序,編制程序、驗證設 計、撰寫任務書。參 考 資 料單片微型計算機接口技術及其應用 淑清 國防工業(yè) 單片機原理及應用技術淑清國防工業(yè)單片機應用技術匯編指導教師簽字基層教學單位主任簽字說明:此表一式四份,學生、指導教師、基層教學單位、系部各一份。2014年7月6 日目錄引言 3摘要 4第一章設計說明 51.1 設計要求 51.2設計目的

3、51.3設計過程 5第二章設計總體說明 6第三章各個模塊介紹 73.1總體模塊介紹 73.2 8051單片機介紹 73.3可調模擬輸入電路介紹 83.4 A/D轉換器模塊介紹 93.5 8255與LED顯示介紹 103.6數(shù)碼管與鍵盤工作介紹 12第四章硬件連接 15第五章程序流程圖 16第七章程序設計 19總結 25參考文件 26燕山大學課程設計評審意見表 27溫度是表示物體冷熱程度的物理量,微觀上來講是物體分子熱運動的劇烈程度。溫度只能通過物體隨溫度變化的某些特性來間接測量, 而用來量度物體溫度數(shù)值的標尺叫溫標。 它 規(guī)定了溫度的讀數(shù)起點(零點)和測量溫度的基本單位。國際單位為熱力學溫標(

4、K)。目前國際上用得較多的其他溫標有華氏溫標 (° F)、攝氏溫標(° C)和國際實用溫標。從分子運動 論觀點看,溫度是物體分子運動平均動能的標志。 溫度是大量分子熱運動的集體表現(xiàn), 含有 統(tǒng)計意義。對于個別分子來說,溫度是沒有意義的。在現(xiàn)代社會中,溫度控制不僅應用在工廠生產(chǎn)方面,其作用也體現(xiàn)到了各個方面,隨著人們生活質量的提高,酒店廠房及家庭生活中都會見到溫度控制的影子,溫度控制將更好的服務于社會而今,空調等家用電器隨著生產(chǎn)技術的發(fā)展和生活水平的提高越來越普及,一個 簡單,穩(wěn)定的溫度控制系統(tǒng)能更好的適應市場。摘要在現(xiàn)代自動控制領域中,溫度檢測占據(jù)這至關重要的作用。溫度檢測

5、系統(tǒng)在科研領域、安全監(jiān)控以及人們的日常生活發(fā)揮著無可替代的作用。溫度控制系統(tǒng)正從模擬式向數(shù)字式飛速發(fā)展。本論文概述了空調溫度控制系統(tǒng)的原理及特性,在此基礎上描述了系統(tǒng)研制的理論基礎,溫度采集等部分的電路設計,并對測溫系統(tǒng)的一些主要參數(shù)進行了討論。針對測溫系統(tǒng)溫度采集、接收、處理、顯示部分的總體設計方案進行了論證,進一步介紹了單片機在系統(tǒng)中的應用,分析了系統(tǒng)各部分的硬件及軟件實現(xiàn)。本空調溫度控制系統(tǒng)采用以 MCS51單片機為核心,以控制室溫度穩(wěn)定為目的。 通過單片機 處理經(jīng)A/D轉換后的模擬信號,控制制冷制熱電機的運轉,以達到控制室溫度穩(wěn)定的目的。關鍵字:51單片機溫度控制第一章設計說明1.1設

6、計要求利用實驗儀上顯示電路、鍵盤或開關電路、A/D轉換電路,模擬空調恒溫控制??梢岳脤嶒瀮x上的電位器模仿溫度變化,制冷可以用發(fā)光二極管模擬,也可以控制直流電機模仿壓縮機的運行。要求可以用鍵盤或開關設定恒溫溫度,當外界溫度超過設定溫度1C時,就要啟動加熱或制冷壓縮機。而且要求顯示電路、鍵盤或開關電路、A/D轉換電路的硬件電路設計,編制相應的程序。1.2設計目的溫度是科學技術中最基本的物理量之一,物理、化學、生物等學科都離不開溫度。在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開關量都是常用的主要被控參數(shù)。其中, 溫度控制越來越重要,沒有合適的溫度,許多電子設備就不能正常的工作。由此可見,溫

7、度影響的各方各面,而溫度的控制也顯得日益重要。傳統(tǒng)的人工操作控制溫度,效率低,精度小,誤差大,操作受到很大的人為因素的影響。為了提高工業(yè)生產(chǎn)效率,減小誤差,基于單片機的智能化的溫度控制是主流。現(xiàn)代的智能空調,不僅利用了數(shù)字電路技術和模擬電子技術,而且采用了單片機技術,實現(xiàn)了軟硬件的結合,既完善了空調的功能, 又簡化了空調的控制與操作,不僅滿足了不同用戶對溫度的不同要求,而且能全智能調節(jié)室溫度。單片機是一種集CPU RAM ROM I/O接口和中斷系統(tǒng)等部分于一體的器件,只需要外加電源和晶振就可實現(xiàn)對數(shù)字信息的處理和控制。因此,單片機廣泛用于現(xiàn)代工業(yè)生產(chǎn)控制中。本次課程設計的目的是,圍繞為了熟悉

8、WAVEf發(fā)軟件及在電子信息課程中的應用課程,學習WAVE軟牛的使用,使我們能熟練的應用 WAV軟件實現(xiàn)對80C51單片機的編程,了解程序 開發(fā)過程中用到的一些基礎知識,同時使我們熟悉應用程序開發(fā)過程,使我們從學校學習到參加工作之間有一個良好的過渡,為今后處理相應領域的專業(yè)問題打下堅實的程序基礎。1.3設計過程本設計采用51單片機為控制芯片,用偉福實驗箱上的電位器來模仿溫度傳感器,將電位器輸出的電壓輸入 A/D轉換芯片,再將轉換后的模擬信號輸入單片機,通過單片機擴展的顯像管、LED燈、矩陣鍵盤等來實現(xiàn)其功能。第二章設計總體說明本次單片機課程設計空調溫度控制,采用MCS-51單片機作為控制芯片,

9、 要求利用實驗儀上顯示電路、鍵盤、或開關電路、A/D轉換電路,模擬空調恒溫控制,可以實現(xiàn)鍵位與數(shù)字動態(tài)顯示的一種設定溫度可變的空調溫度控制系統(tǒng)。本系統(tǒng)功能由硬件和軟件兩 大部分協(xié)調完成,硬件部分主要完成電位器對溫度的電壓模擬、溫度的設定、溫度信息的顯示等功能;而軟件主要完成對模擬輸出的溫度信號進行數(shù)字化處理及數(shù)碼顯示管的顯 示控制等功能。電位器通過改變電壓模仿溫度傳感器輸出,經(jīng)A/D轉換變成0-255的數(shù)字信號從而輸入單片機,單片機執(zhí)行運算程序。由于要設定溫度,我們需要用鍵盤或開關輸入溫度數(shù)值,初始設定溫度值由程序寫入,用戶可通過外接鍵盤改變初始設定溫度。單片機對鍵盤進行掃描,確定那個鍵按下。

10、然 后顯像管顯示實際和設定溫度。實際溫度大于設定溫度,則紅燈亮;實際溫度小于設定 溫度,則綠燈亮。根據(jù)以上設計思想,可設計功能如下:利用偉福試驗箱的六位數(shù)碼管,后兩位顯示設 定溫度,初定為10-30攝氏度;第三到第五位顯示實際溫度,初定為-40-50攝氏度。另通過設置鍵盤上的兩個鍵位,實現(xiàn)溫度+1和-1功能,用來調控設定溫度, 初定為NEXTLAST鍵。再利用L1 (紅燈)和L2 (綠燈)來模仿加熱和制冷的電機驅動圖1空調溫度控制系統(tǒng)總系統(tǒng)框圖第三章各個模塊介紹3.1 總體模塊介紹LED燈模仿制本設計共分為四個模塊,分別為溫度測量、按鍵控制、數(shù)碼管溫度顯示、冷和制熱系統(tǒng)。1)溫度測量模塊是以電

11、壓器輸出的電壓模仿溫度傳感器通過A/D轉換后進入單片機進行程序運算。2)按鍵控制模塊是通過鍵盤上 NEXT LAST鍵來升高或降低設定溫度,通過比較與實際 溫度的大小來控制制冷和制熱系統(tǒng)的運行。3)數(shù)碼管溫度顯示模塊用來顯示設定溫度以及實際溫度。4)LED燈模塊用來模仿制冷和加熱電動機的動作。3.2 8051 單片機介紹fi.o fl. 1 Pl.23F13 4 Fl 4 5F1.5& Pl.6 ? Pl. 7 3EST/Yft RKD/F3,0 TKD/F3.1 IWT0/P3.2 ISTT/P3.3 T07P3. A TL/P3.E 函 P3.E W/P3. 7 一JITAL1 y

12、Twr 910n121314151617taVi i 20403933373035343380C5L313D292527262S2423盈2trccTO.Oro. iF0.2PO 3F0.4P0.5FO 6一FO.TEA'/VnAI_E/FRjOGMNP2 7P2.BP2.5一P2.4 一瓏3F2.2F2 1P2 YCG V=5 XTAL1ZZIXTkL2RST/Vra* EA/Wrr*+ FSENh* AEE/PUDGh(80C5t口地址數(shù)總繼口理地址凸a口P3賈陽口圖2 8051單片機引腳圖單片機就是在一塊硅片上集成了微處理器、存儲器和各種輸入輸出接口電路的微型計算機,簡稱單片機。

13、單片機以其較高的性能價格比受到了人們的重視和關注。它的優(yōu)點就是體積小、重量輕、抗干擾能力強、對環(huán)境要求不高、價格低廉、可靠性高、靈活性好、開發(fā)較 為容易。由于單片機具有較高的性能比,國MCS-51系列單片機得到了廣泛的應用。單片機根據(jù)其基本操作處理的位數(shù)可分為4、8、16、32位單片機,應用最為廣泛的是八位單片機。根據(jù)本次設計的實際情況和要求,在本次設計中采用 80C51作為系統(tǒng)的控制芯片。單片機的40個引腳大致可分為 4類:電源、時鐘、控制和 I/O引腳。1. 電源:VCC -芯片電源,接+5V;VSS -接地端;2. 時鐘:XTAL1 XTAL2 -晶體振蕩電路反相輸入端和輸出端。3. 控

14、制線:控制線共有4根,ALE/PROG:地址鎖存允許/片EPROM編程脈沖 ALE功能:用來鎖存 P0 口送出的低8位地址 PROG功能:片有EPR O啲芯片,在EPROM編程期間,此引腳輸入編程脈沖。 PSEN:夕卜ROM讀選通信號。RST/VPD:復位/備用電源。 RST( Reset)功能:復位信號輸入端。 VPD功能:在Vcc掉電情況下,接備用電源。EA/Vpp:夕卜ROM選擇/片EPROM編程電源。 EA功能:外ROM選擇端。 Vpp功能:片有EPROMS芯片,在EPRO編程期間,施加編程電源 Vppo4. I/O 線80C51共有4個8位并行I/O 端口: PO、P1、P2、P3

15、口,共32個引腳。P3 口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。P0 口輸入時需要接上拉電阻才能置1 ;3.3 可調模擬量輸入電路介紹溫度是一個非電量物理量, 需要將之轉化為電信號才能進行后續(xù)的測量和控制。由于電位器電路用于產(chǎn)生可變的模擬量,為此,在此課程設計中,利用了實驗儀器上的電位器來模電仙器模仿溫浚釆樣擬溫度變化,將溫度這個非物理量轉化為電壓信號輸出。電位器結構圖如所示。VCC®工GID圖3電位器示意圖圖4電位器與A/D轉換器連接圖3.4 A/D轉換器模塊介紹A/D轉換電路是將從電位器輸出的模擬電信號轉換為數(shù)字電信號的電路結構。目前A/D轉換器的種類很多

16、,有計數(shù)比較型、逐次逼近型、雙積分型等等。選擇A/D轉換器件主要從 轉換速度、精度和價格上考慮。逐次逼近型A/D轉換器,在精度、速度和價格上都比較適中, 是最常用的A/D轉換器。雙積分 A/D轉換器,具有精度高、抗干擾性好、價格低廉等優(yōu)點, 但轉換速度慢。近年來在微機應用領域中也得到了廣泛的應用。本次設計采用八路模擬輸入通道的逐次逼近型的八位A/D轉換器ADC0809采用ADC0809作為與單片機的接口電路,它的結構比較簡單,轉換速度較高。采用ADC0809作為A/D轉換器具有與單片機連接簡單的優(yōu)點,它是八位的轉換器可以與八位的單片機直接連接,這樣就簡化了系統(tǒng)的連接電路也有利于系統(tǒng)軟件的編寫。

17、是目前國應用最廣泛的 8位通用A/D芯片。ADC0809芯片的接口及其外接電路如下圖所示。DIDWL田ncn址S.關:二All#3路VRDT*'Wild三態(tài)輸出鎖肓器圖5 A/D轉換部結構圖iJ25716HiB1JHl23iJ2523Hl16l'i TTnHI114- IZ120ljAD t 1LAD 11 5"ifiDl14"TfD 3L 7iON&16wee12IIL1b2 345JD7b S一 二£H 2 2 ? 2 2 12N-Eco:A&D-BA&t 1ALLE-MAELEI CG«訂紉A:LJHTJCP

18、RB3INBiniCiL ?!£: in74LSB2ADC0809芯片,部有一個8通道多路開關,它可以根據(jù)地址碼鎖存譯碼后的信號,只選 通8路模擬輸入信號中的一個進行A/D轉換。圖中多路開關可選 8個模擬通道,允許8路模擬量分時輸入,共用一個A/D轉換器進行轉換,這是一種經(jīng)濟的多路數(shù)據(jù)采集方法。地址鎖存與譯碼電路完成 A B C3個地址位進行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉換 結果通過三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,下表為通道選擇表。表1通道選擇表CBA被選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN63

19、.5 8255與LED顯示介紹一、8255介紹51系列單片機沒有專用的對外地址總線和數(shù)據(jù)總線,其P0 口和P2 口既是通用I/O 口,同時P0 口還是分時復用的雙向數(shù)據(jù)總線和低8位地址總線(一般需要加一級鎖存器),而P2 口則是高8位地址總線。在單片機的I/O 口線不夠用的情況下, 可以借助外部器件對 I/O 口進行擴展。8255芯片是可編程并行I/O接口芯片,它具有三個 8位并行口 PA, PB和PC, 個8 位的數(shù)據(jù)口 DOD7 , PC 口分高4位和低4位。高4位可與PA 口合為一組(A組),低4位可 與PB 口合為一組(B組),PC口可按位置位/復位。40條引腳,DIP封裝。引腳圖如圖

20、所示FA2C PAIC 州利cstAl lXLPC*PL4 I rcic l*C5 (KLJIHWCPRIP112E23rlIT" 6 7KQ1 r mJ PA5)l5A6J FTI RI Jil'T IDO】IMJ IM】Db.Plif I咖 )rn<J FR4 KB3* 14 s 7H H M 口 門 FA H-圖8 8255 引腳圖JrF1 2 J- 4 c- _*7一 一p p p p ”F ppp圖9 LED顯示電路PAO丨脫仿加撫電機PA U模仿致冷電機PBO -卩斷PCO-PC7圖10 MCS-51單片機外擴8255A芯片的電路原理圖、LED顯示介紹在此空

21、調溫度控制的設計中,我們用到了發(fā)光二極管 LED,用紅色的燈來表示加熱,用 綠色的燈來表示制冷。 實驗儀上裝有8只發(fā)光二極管及相應驅動電路, 其發(fā)光二極管的電路 原理圖如下示:圖11發(fā)光二極管電路原理圖m中II如鳥邙霑益ulEZ:i淀kkIlILerls匸3.6 數(shù)碼管與鍵盤工作介紹一、鍵盤與數(shù)碼管使用介紹本課設中用到的實驗儀已經(jīng)將LED顯示電路和鍵盤電路集成到一個集成電路中。LED顯示和鍵盤的等效電路如圖12示。顯示控制的位碼由 74HC374輸出,經(jīng)MC1413反向驅動后,做LED的位選通信號。位選通信號也可作為鍵盤列掃描碼,鍵盤掃描的行數(shù)據(jù)從74HC245讀回,74HC374輸出的列掃描

22、碼經(jīng) 74HC245讀入后,用來判斷是否有鍵被按下,以及按下的 是什么鍵。如果沒有鍵按下,由于上拉電阻的作用,經(jīng)74HC245讀回的值為高電平,如果有鍵按下,74HC374輸出的低電平經(jīng)過按鍵被接到74HC245的端口上,這樣從 74HC245讀回的數(shù)據(jù)就會有低位,根據(jù)74HC374輸出的列信號和74HC245讀回的行信號,就可以判斷哪個鍵 被按下。LED顯示的段碼由另一個 74HC374輸出。鍵盤和LED顯示的地址譯碼見圖 5,做鍵盤和LED實驗時,需將 KEY/LED_CS接到相應 的地址譯碼上。位碼輸出的地址為0X002H,段碼輸出的地址為 0X004H,鍵盤行碼讀回的地址為0X001H

23、,此處 X是由KEY/LED C缺定。1l圖12數(shù)碼管與鍵盤連線圖二、矩陣式鍵盤掃描方式本設計采用的是 6X 4矩陣式鍵盤,鍵盤的行線 X0X3通過電阻接+5V,當鍵盤沒有鍵 閉合時,所有的行線和列線斷開,行線X0X3均呈高電平。掃描法是在判定有鍵按下后逐列(或行)置低電平,同時讀入行(或列)狀態(tài),如果行(或列)狀態(tài)出現(xiàn)非全1狀態(tài),這時與狀態(tài)行,列交叉點的鍵就是所按下的鍵。掃描法的特點是逐列(或行)掃描查詢。這時, 相應的行(或列)應有上拉電阻接高電平。當鍵盤上某一鍵閉合時, 該鍵所對應的行線與列線短路,此時該行線的電平將由被短路的列線電平所決定。如果將行線接至單片機的輸入端口,列線接至單片機

24、的輸出端口,則在單片機的控制下使列線 Y0為低電平,其余五根列線 Y1、Y2、Y3 Y4、Y5均為高電平,然后 單片機讀輸入口狀態(tài)(即鍵盤行線狀態(tài)),若X0、XI、X2、X3均為高電平,則 Y0這一列上沒有鍵閉合,如果讀出的行線狀態(tài)不全為高電平,則為低電平的行線和Y0相交的鍵處于閉合狀態(tài)。如果Y0這一列沒有鍵閉合,緊接著使列線Y1為低電平,其余列線為高電平, 用同樣的方法檢查Y1這一列有無鍵閉合,如此類推。CPU對鍵盤的掃描可以采取程序控制的隨機方式,CPU空閑時才掃描鍵盤;也可以采取定時控制方式,每隔一段時間,CPU對鍵盤掃描一次;還可以采用中斷方式,當鍵盤上有鍵閉合時,向CPU青求中斷,C

25、PU響應鍵盤發(fā)出的中斷請求,對鍵盤進行掃描,以識別哪一個 鍵處于閉合狀態(tài),并對鍵輸入信息作相應處理。Z1/74 H 33 74_4-r數(shù)據(jù)總線讀冋行碼(0X002TT)(0X001H)圖13 鍵盤電路圖三、動態(tài)數(shù)碼管掃描方式由于8051單片機本身提供的I/O 口有限,因此我們選擇動態(tài)掃描方式。 所謂動態(tài)顯示,就是單片機定時地對顯示模塊件掃描。在這種方法中,顯示模塊件分時工作,每次只能有一個器件顯示。但由于人視覺的暫留現(xiàn)象,所以仍感覺所有的器件都在顯示。如許多單片機的開發(fā)系統(tǒng)及仿真器上的 6位顯示模塊即采用這類顯示方法。此種顯示方法的優(yōu)點是使用硬件少,因而價格低。但它占用機時長,只要單片機不執(zhí)行

26、顯示程序,就立刻停止顯示。由此可 見,這種顯示將使計算機的開銷增大。掃描方式中在輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫,盡管實際上各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。節(jié)約了電能,節(jié)省了 I/O 口。表2 數(shù)碼管顯示數(shù)字-共陰極字符碼對照表顯示數(shù)字1234共陰極字符碼06H5BH4FH66H顯示數(shù)字5678共陰極字符碼6DH7DH07H7FH顯示數(shù)字90AB共陰極字符碼6FH3FH77H7CH顯示數(shù)字CDEF共陰極字符碼39H5EH79H71Hb1g1期d*圖14八位數(shù)碼管原理圖HE(OsQOlH)HHHe.日日_1K14L

27、3§74BC3M也芮I信(h<C-02H)圖15 數(shù)碼顯示管電路圖第四章硬件連接、地址譯碼插孔譯碼插孔地址圍CSO08000H08FFFHCS109000H09FFFHCS2OAOOOHOAFFFHCS3OBOOOHOBFFFHCS4OCOOOHOCFFFHCS5ODOOOHODFFFHCS6OEOOOHOEFFFHCS7OFOOOHOFFFFH、硬件連線連 線插孔1插孔21CS08255-CS2CS1KET/LED-CS3CS2AD-CS4PA0L15PA1L26INO電位器輸出、主程序總體設計流程圖第五章程序流程圖圖16主程序流程圖、其他各模塊程序流程圖開始圖18鍵盤程序流

28、程圖圖17 A/D轉換程序流程圖第六章程序設計;A/D 0;A/D 255傳感器最低值設定傳感器最高值設定LowTemp equ -40HighTemp equ 50Heatequ 1Coolequ 2LowLimit equ 10HighLimit equ 30ORG 0000H;ljmp Start;程序起始地址為0000H長跳轉到Start主程序段處Delay:;延時函數(shù)mov r7, #0ffhAA: djnz r7,AA;DJNZ命令為寄存器減一不為0則跳轉ret;延時255TestKey:;檢測KEY有沒有被按下函數(shù)mov dptr,#09002h;將鍵盤列地址9002H送入數(shù)據(jù)指

29、針DPTR中mov a, #0;A 清0movx dptr, a;所有列為低電平檢測mov dptr,#09001h;將鍵盤行地址 9001h送入DPTR中,movx a, dptr;9001h中的容送入 A中,按下的鍵為低電平cpl a;累加器取反,按下的鍵為高電平anl a, #0fh; 低四位顯示高電平為按下鍵的行數(shù)ret;從子程序返回KeyTable:;鍵值表db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 0

30、1h, 04h, 07hGetKey:;讀取鍵值mov dptr,#09002h;將立即數(shù)9002H送入DPTR中,鍵盤列地址mov P2, dph; 將DPTF中的高8位送入P2端口mov r0, #Low(09001h);送入立即數(shù),取 9001h低字節(jié)容mov r1, #00100000bmov r2, #6KLoop:;檢測按下鍵的位置mov a, r1; 將R1中的容送入A中cpl a; 累加器取反movx dptr, a; 檢測哪列,哪列為低電平cpl a;累加器取反rr a;累加器循環(huán)右移mov r1, amovx a, r0;行地址容返回給acpl a;累加器取反,高電平的為選

31、中行anl a, #0fh; 立即數(shù)0fH和A中的容與jnz L1; 累加器非0則轉移,有鍵按下djnz r2, KLoop; 寄存器R2減1不為0則:短跳轉到Exit程序段處 檢測到某列r2KLoop程序段 mov r2, #0ffh sjmp ExitL1:;movmov decr1, aa, r2 a累加器A自減1rl arl amovmovmovLpC:rrcr2, a a, r1r1, #4;r2 = (r2_1)*4jc inc djnz Exit:Exitr2r1, LpCa, r2dptr, #KeyTable movc a, a+dptr mov r2, aWaitRelea

32、se:;movmovmov dptr,#09002hmov a,#0 movx dptr, acall Delaycall TestKeyjnz WaitRelease mov a, r2RetReadAD:經(jīng)過進位位的累加器循環(huán)右移如果進位位為1則轉移到程序Exit寄存器R1減1,不為0則轉移到LpC程序段 讀取鍵盤表中值, 鍵值=(列值-1)*4+行值等待釋放未釋放繼續(xù)等待讀A/D值; 將A/D地址A000H送入DPTF中DisplayResult:mov a,51h;A/Djnb acc.7,G0mov 60h, #4Oh ;顯示結果轉換溫度值的顯示地址如果acc.7位為0,為正數(shù) 第一

33、個數(shù)碼管顯示“-”clr a;累加器A清0movx dptr, a5啟動A/D In0 通道m(xù)ov a, #0;A清0djnz acc, $5如果A中的容不為0則在此處一直循環(huán)movx a, dptr5將DPTR中的容送入 A中,讀取A/D的值retReadTemp:mov r1, #05將立即數(shù)0送入寄存器R1中mov r2, #05將立即數(shù)0送入寄存器R2中mov r0, #165將立即數(shù)16送入寄存器r0中RLoop:call ReadAD5調用ReadAD程序段,讀取A/D輸出值add a, r2mov r2, a5將累加器A中的容送入R2中jnc L015如果進位位為0則轉移到L01

34、程序段inc r1;r1寄存器中的容增1L01:djnz r0, RLoop;寄存器R0容減一不為0則轉移,累加16mov a, r25將寄存器R2中的容送入累加器 A中swap a5累加器咼低半字節(jié)交換anl a, #0fh5高四位清零,相當于/16xch a, r1;寄存器與累加器容交換swap a5累加器咼低半字節(jié)交換anl a, #0f0h;立即數(shù)0FH與到累加器A,低四位清零orl a, r1;a = r1r2/16mov b, #(HighTemp-LowTemp);將立即數(shù)(HighTemp-LowTemp)送入寄存器B中mul ab;a 和b相乘,結果低位在 A中,咼位在 B中

35、mov a, b5將B中的容送入A中,相當于右移8位 即/256add a, #LowTemp ;將立即數(shù)LowTemp送入到寄存器 A中mov 51h, a;A/D值轉換為實際溫度送入51h中,ret累加器取反,求原碼運算 跳轉指令dec a cpl a ajmp GoonG0:Goon:mov r0,#60h;mov r1, #6mov r2, #00100000bLoop:mov dptr,#09002hmov a, #0movx dptr, amov a, r0mov dptr,#09004h;movx dptr, a;60hmov dptr,#09002hmov a, r2movx

36、dptr, a;call Delaymovb, #10div ab;累加器A中的容除以寄存器B中的容movdptr, #LEDMAPmovca, a+dptrmov61h, a;實際溫度十位mova, bmovca, a+dptrmov62h, a;實際溫度個位mov63h, #0mova,50h;鍵盤設定溫度地址movb, #10div ab;累加器A中的容除以寄存器B中的容movca, a+dptr;設定溫度十位代碼字節(jié)傳送到累加器mov64h, amova, bmovca, a+dptr;設定溫度個位代碼字節(jié)傳送到累加器mov65h, aret;子程序返回LEDMAP:db 3fh, 0

37、6h, 5bh, 4fh, 66h, 6dh, 7dh, 07h;定義字節(jié)命令db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h;定義字節(jié)命令DisplayLED:;LED顯示數(shù)碼管顯示容地址;數(shù)碼管位選地址;A 清0;外部寄存器置0,松片選信號;將以R0中為地址60h的數(shù)據(jù)傳給A段選地址輸出至段碼地址以顯示第i管顯示6ih的容;調用Delay函數(shù)mov a, r2rr a;累加器循環(huán)右移數(shù)碼管右移顯示inc r0djnz r1, Loop mov dptr,#09002h mov a, #0movx dptr, a;R1減1不為0則轉移,循環(huán)6次釋放位選L02

38、:mov a,51hsetb cmov b,50h inc b subb a, bjc L03mov a, #Coolmov dptr,#08000h movx dptr, a ;sjmp L04retStart:mov sp, #70h;將立即數(shù)70H送入堆棧指針mov a,#082h;將立即數(shù)82H送入累加器A中mov dptr,#08003h;將立即數(shù)8003H送入數(shù)據(jù)指針DPTF中movx dptr, a;將累加器A中的容送入數(shù)據(jù)指針 DPTF中mov 50h, #20;將立即數(shù)20H送入地址50H的存儲器中MLoop:call TestKey;調用TestKey程序檢測是否有鍵按下j

39、nz KeyPressed;累加器非0轉移,有鍵按下調整設定溫度call ReadTemp;調用讀取采樣值程序段call DisplayResult;調用顯示結果程序call DisplayLED;調用LED顯示程序mov a,51h;將立即數(shù)5伯送人累加器A中jb acc.7, LE0;如果直接尋址為為1則轉移,負數(shù)clr c;進位C清零mov b,50h;將立即數(shù)50H送入寄存器Bdec b;寄存器B中的數(shù)自減1subb a, b;累加器A中的數(shù)減去寄存器 B中的容(帶借位)jnc L02;如果進位為0則轉移LE0:mov dptr,#08000h movx dptr, a;將8255PA

40、 口地址8000H送入16位數(shù)據(jù)指針 DPTR;將1送入以DPTR容為地址的外部空間mov a, #Heat;將Heat=1送入累加器A紅燈亮 加熱sjmp L04; 短轉移;將51H為地址的中的容送入累加器A中實際溫度;進位位置1;將以50為地址的中的容送入 B中設定溫度;寄存器B中的數(shù)自加1;累加器A中的容減去寄存器 B中的容比較大小;如果進位位為1則轉移;將Cool=送入累加器A中;將立即數(shù)8000H送入16位數(shù)據(jù)指針中 將累加器A中的容送入08000H地址中短跳轉到L04L03:mov a, #0 mov dptr,#08000h movx dptr, aL04: sjmp MLoopKeyPressed: call GetKey mov b, a xrl a,#15h jnz Key0 mov a,50h xrl a,#LowLimit ; jz Key1 dec 50h;50Hsjmp Key1Key0: mov a, b xrl a,#16h jnz Key1 mov a,50h xrl a,#HighLimit jz Key1 inc 50h;50HKey1:sjmp MLoopEnd短跳轉到MLoop程序段處;KeyPressed 程序段; 調用GetKey程序段;將累加器A中的容送入寄存器 B中;立即數(shù)1

溫馨提示

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

評論

0/150

提交評論