數(shù)字溫度計-單片機課設(shè)(真實的匯編程序和proteus仿真)_第1頁
數(shù)字溫度計-單片機課設(shè)(真實的匯編程序和proteus仿真)_第2頁
數(shù)字溫度計-單片機課設(shè)(真實的匯編程序和proteus仿真)_第3頁
數(shù)字溫度計-單片機課設(shè)(真實的匯編程序和proteus仿真)_第4頁
數(shù)字溫度計-單片機課設(shè)(真實的匯編程序和proteus仿真)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

微機原理課程設(shè)計報告溫度計姓名:WW學(xué)號:班級:電氣1005學(xué)院:電氣工程學(xué)院合作者:WY上課教師:楊少兵指導(dǎo)老師:王健強時間:2013年3月20日微機原理課程設(shè)計成績評定表姓名學(xué)號10291150課程設(shè)計題目:溫度計課程設(shè)計答辯或提問記錄:成績評定依據(jù):課程設(shè)計預(yù)習(xí)報告及方案設(shè)計情況(30%):課程設(shè)計考勤情況(15%):課程設(shè)計調(diào)試情況(30%):課程設(shè)計總結(jié)報告與答辯情況(25%):最終評定成績(以優(yōu)、良、中、及格、不及格評定)指導(dǎo)教師簽字:2013年3月20日

微機原理課程設(shè)計任務(wù)書學(xué)生姓名:指導(dǎo)教師:王健強一、課程設(shè)計題目:數(shù)字溫度計選用溫度傳感器AD590實現(xiàn)溫度采集、攝氏溫度顯示,溫度精度達到0.1度,測量范圍零下10度到零上100度。

二、課程設(shè)計要求1.根據(jù)具體設(shè)計課題的技術(shù)指標(biāo)和給定條件,獨立進行方案論證和電路設(shè)計,要求概念清楚、方案合理、方法正確、步驟完整;2.查閱有關(guān)參考資料和手冊,并能正確選擇有關(guān)元器件和參數(shù),對設(shè)計方案進行仿真;3.完成預(yù)習(xí)報告,報告中要有設(shè)計方案,設(shè)計電路圖,還要有仿真結(jié)果;4.進實驗室進行編程和電路調(diào)試,邊調(diào)試邊修正方案;5.撰寫課程設(shè)計報告——最終的電路圖、調(diào)試過程中遇到的問題和解決問題的方法。三、進度安排1.時間安排序號內(nèi)容學(xué)時安排(天)1方案論證和系統(tǒng)設(shè)計12完成電路仿真,寫預(yù)習(xí)報告13電路調(diào)試24寫設(shè)計總結(jié)報告與答辯1合計5設(shè)計調(diào)試地點:電氣樓4062.執(zhí)行要求課程設(shè)計共多個選題,每組不得超過2人,要求學(xué)生在教師的指導(dǎo)下,獨力完成所設(shè)計的詳細電路(包括計算和器件選型)。嚴(yán)禁抄襲,嚴(yán)禁兩篇設(shè)計報告雷同。摘要隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。本文主要介紹了一個基于STC89C52單片機的測溫系統(tǒng),詳細描述了利用溫度傳感器AD590開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,對各部分的電路也一一進行了介紹,該系統(tǒng)可以方便的實現(xiàn)實現(xiàn)溫度采集和顯示。它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。AD590、ADC0832與STC89C52結(jié)合實現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣環(huán)境下進行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。關(guān)鍵詞:單片機;溫度檢測;溫度傳感器;數(shù)字顯示;模數(shù)轉(zhuǎn)換AbstractWiththeprogressanddevelopmentofthetimes,theMicrocontrollertechnologyhasspreadtothewaywelive,work,researchinvariousfields,hasbecomearelativelymaturetechnology,thispaperdescribesaTemperatureMeasurementSystemBasedonSTC89C52detaileddescriptionoftheuseoftemperaturesensorAD590temperaturemeasurementsystemdevelopmentprocess,focusingonthehardwareconnectionofthesensorundertheSCM,softwareprogramming,aswellasthemodulesystemprocessescarriedoutadetailedanalysisofthevariouspartsofthecircuitareintroducedonebyone,thesystemiseasytoachieveacquisitionanddisplayoftemperature.itisveryconvenienttouse,withhighprecision,widerange,highsensitivity,smallsize,lowpowerconsumption,suitableinourdailylifeandwork,thetemperaturemeasurementinagriculturalproduction,canalsobeusedasatemperaturetheprocessingmoduleisembeddedintheothersystems,astheauxiliaryexpansionofotherprimarysystem.AD590,ADC0832andSTC89C52mostsimpletemperaturedetectionsystem,thesystemissimple,stronganti-jammingcapability,suitableforharshenvironmentsspottemperaturemeasurement,thereisawiderangeofapplicationprospects.Keywords:Microcontroller;temperaturedetection;temperaturesensor;digitaldisplay;analog-to-digitalconversion目錄1緒論················································71.1研究的目的及意義1.2主要研究方向和要求2方案設(shè)計············································92.1基本元器件管腳圖與功能表2.2設(shè)計思路和原理2.3方案設(shè)計和選擇3基于Proteus仿真設(shè)計································173.1仿真電路設(shè)計3.2仿真總結(jié)3.3仿真結(jié)果與分析4匯編編程與元件的安裝及調(diào)試·························194.1匯編語言簡介4.2溫度計實驗程序4.3實物顯示效果5基于Protel99se設(shè)計PCB印制電路····················265.1ProtelPCB圖繪制6課程設(shè)計總結(jié)········································276.1課程設(shè)計過程中遇到的問題及解決途徑6.2課程設(shè)計體會與心得7參考文獻············································288附錄················································29附錄1:元器件清單附錄2:wave6000簡介第一章緒論1.1研究目的及意義隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活提供更好的更方便的設(shè)施就需要從單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展?,F(xiàn)代社會對各種信息參數(shù)的準(zhǔn)確度和精確度的要求都有了幾何級的增長,而如何準(zhǔn)確而又迅速的獲得這些參數(shù)就需要受制于現(xiàn)代信息基礎(chǔ)的發(fā)展水平。在三大信息信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計算機技術(shù))中,傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器技術(shù),在我國各領(lǐng)域已經(jīng)引用的非常廣泛,可以說是滲透到社會的每一個領(lǐng)域,人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實時測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個發(fā)展階段:①傳統(tǒng)的分立式溫度傳感器②模擬集成溫度傳感器③智能集成溫度傳感器。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的,它是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)(ATE)的結(jié)晶,特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU)。社會的發(fā)展使人們對傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機的基礎(chǔ)上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展,并朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。本文將介紹智能集成溫度傳感器AD590的結(jié)構(gòu)特征及控制方法,并對以此傳感器,STC89C52單片機為控制器構(gòu)成的數(shù)字溫度測量裝置的工作原理及程序設(shè)計作了詳細的介紹。與傳統(tǒng)的溫度計相比,其具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,輸出溫度采用數(shù)字顯示,主要用于對測溫要求比較準(zhǔn)確的場所,或科研實驗室使用。該設(shè)計控制器使用STC公司的STC89C52單片機,測溫傳感器使用AD公司AD590,用數(shù)碼管來實現(xiàn)溫度顯示.1.2主要研究方向和要求方向:溫度采集和轉(zhuǎn)換技術(shù)研究+數(shù)字電路技術(shù)研究+模擬放大顯示技術(shù)研究要求:1.用AD590與電阻組成的溫度采集電路產(chǎn)生變化的電壓信號;2.ADC0832和運算放大器組成模數(shù)轉(zhuǎn)換電路產(chǎn)生0-255數(shù)字信號;3.最后經(jīng)過單片機算法處理輸出攝氏溫度顯示,溫度精度達到0.1度,測量范圍零下10度到零上100度;4.器件:功率集成電路+分立元件;5.仿真設(shè)計,程序編寫與硬件調(diào)試。第二章系統(tǒng)方案設(shè)計基本元器件管腳圖與功能表(1)溫度傳感器AD590<1>AD590是美國模擬器件公司生產(chǎn)的單片集成兩端感溫電流傳感器,是一種已經(jīng)IC化的溫度感測器,它會將溫度轉(zhuǎn)換為電流。其規(guī)格如下:a、度每增加1℃,它會增加1μA輸出電流b、可測量范圍-55℃至150℃c、供電電壓范圍+4V至+30V,可以承受44V正向電壓和20V反向電壓,因而器件即使反接也不會被損壞;<2>AD590管腳圖及元件符號<3>AD590工作原理AD590相當(dāng)于一個溫度控制的恒流源,輸出電流大小只與溫度有關(guān),且與溫度成正比。只需一個精密電阻,就可以將電流(溫度)信號轉(zhuǎn)化為電壓信號,總的靈敏度系數(shù)通過該電阻設(shè)定。AD590的溫度系數(shù)是1μA/K,即溫度每增加1K,它會增加1μA輸出電流。其輸出電流是以絕對溫度零度-273℃為基準(zhǔn),每增加1℃,它會增加1μA輸出電流,因此0℃到100℃時AD590輸出電流為273μA到373μA。<4>電流-電壓轉(zhuǎn)換電路電壓-電流轉(zhuǎn)換電路圖中,AD590輸出端輸出電流,經(jīng)過10K的電阻,轉(zhuǎn)換為電壓值。OP07為一射極跟隨器,A=1,用于提高輸入阻抗。兩個二極管用于隔離干擾。電流-電壓轉(zhuǎn)換公式如下:AD590的靈敏度:經(jīng)過10K電阻后:具體溫度-電壓值對應(yīng)如下表攝氏溫度/℃AD590電流/μA經(jīng)10KΩ電壓/V0273.22.73210283.22.83220293.22.93230303.23.03240313.23.13250323.23.23260333.23.332100373.23.732(2)模擬轉(zhuǎn)數(shù)字ADC0832ADC0832為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達256級,可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。芯片轉(zhuǎn)換時間僅為32μS,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗,以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強。通過DI數(shù)據(jù)輸入端,可以輕易的實現(xiàn)通道功能的選擇。CS片選使能,低電平芯片使能,CH0模擬輸入通道0,CH1模擬輸入通道1,GND芯片參考0電位(地),DI數(shù)據(jù)信號輸入,選擇通道控制,DO數(shù)據(jù)信號輸出,轉(zhuǎn)換數(shù)據(jù)輸出,CLK芯片時鐘輸入,Vcc/REF電源輸入及參考電壓輸入。引腳功能說明:引腳功能說明:CS_片選使能,低電平芯片使能。CH0模擬輸入通道0,或作為IN+/-使用。CH1模擬輸入通道1,或作為IN+/-使用。GND芯片參考0電位(地)。DI數(shù)據(jù)信號輸入,選擇通道控制。DO數(shù)據(jù)信號輸出,轉(zhuǎn)換數(shù)據(jù)輸出。CLK芯片時鐘輸入。Vcc/REF電源輸入及參考電壓輸入(復(fù)用)輸入格式配置位選擇通道號CH0CH1CH0CH1差分LL+-LH-+單端HL+HH+當(dāng)ADC0832未工作時其CS輸入端應(yīng)為高電平,此時芯片禁用,CLK和DO/DI的電平可任意。當(dāng)要進行A/D轉(zhuǎn)換時,須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時芯片開始轉(zhuǎn)換工作,同時由處理器向芯片時鐘輸入端CLK輸入時鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號。在第1個時鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號。在第2、3個脈沖下沉之前DI端應(yīng)輸入2位數(shù)據(jù)用于選擇通道功能,當(dāng)此2位數(shù)據(jù)為“1”、“0”時,只對CH0進行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“1”、“1”時,只對CH1進行單通道轉(zhuǎn)換。到第3個脈沖的下沉之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數(shù)據(jù)輸出DO進行轉(zhuǎn)換數(shù)據(jù)的讀取。從第4個脈沖下沉開始由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位DATA7,隨后每一個脈沖下沉DO端輸出下一位數(shù)據(jù)。直到第11個脈沖時發(fā)出最低位數(shù)據(jù)DATA0,一個字節(jié)的數(shù)據(jù)輸出完成。也正是從此位開始輸出下一個相反字節(jié)的數(shù)據(jù),即從第11個字節(jié)的下沉輸出DATA0。隨后輸出8位數(shù)據(jù),到第19個脈沖時數(shù)據(jù)輸出完成,也標(biāo)志著一次A/D轉(zhuǎn)換的結(jié)束。最后將CS置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進行處理就可以了。本次實驗中我們使用CH1通道輸入模擬信號,因此實驗中控制ADC0832的時序圖如下:(3)單片機STC89C52STC89C52管腳圖:VCC:供電電壓。

GND:接地。

P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。

P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。

P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。

P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。

P3口也可作為AT89C51的一些特殊功能口,如下表所示:

口管腳備選功能

P3.0RXD(串行輸入口)

P3.1TXD(串行輸出口)

P3.2/INT0(外部中斷0)

P3.3/INT1(外部中斷1)

P3.4T0(記時器0外部輸入)

P3.5T1(記時器1外部輸入)

P3.6/WR(外部數(shù)據(jù)存儲器寫選通)

P3.7/RD(外部數(shù)據(jù)存儲器讀選通)

P3口同時為閃爍編程和編程校驗接收一些控制信號。

RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。

ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。

PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。

EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。(4)八雙向總線發(fā)送器\接收器(3態(tài))74HC24574HC245總線驅(qū)動器,典型的TTL型三態(tài)緩沖門電路,其作用為,信號功率放大。74HC245管腳圖:74HC245引腳定義:第1腳DIR,為輸入輸出端口轉(zhuǎn)換用,DIR=“1”高電平時信號由“A”端輸入“B”端輸出,DIR=“0”低電平時信號由“B”端輸入“A”端輸出。第2~9腳“A”信號輸入輸出端,A1=B1、、、、、、A8=B8,A1與B1是一組,如果DIR=“1”O(jiān)E=“0”則A1輸入B1輸出,其它類同。如果DIR=“0”O(jiān)E=“0”則B1輸入A1輸出,其它類同。第11~18腳“B”信號輸入輸出端,功能與“A”端一樣。第19腳OE,使能端,若該腳為“1”A/B端的信號將不導(dǎo)通,只有為“0”時A/B端才被啟用,該腳也就是起到開關(guān)的作用。第10腳GND,電源地;第20腳VCC,電源正極。實驗過程中我們使用的為從“A”到“B”傳輸數(shù)據(jù)。(5)數(shù)碼管LED數(shù)碼管中各段發(fā)光二極管的伏安特性和普通二極管類似,只是正向壓降較大,正向電阻也較大。在一定范圍內(nèi),其正向電流與發(fā)光亮度成正比。由于常規(guī)的數(shù)碼管起輝電流只有1~2mA,最大極限電流也只有10~30mA,所以它的輸入端在5V電源或高于TTL高電平(3.5V)的電路信號相接時,一定要串加限流電阻,以免損壞器件。2.2設(shè)計思路和原理1.基本設(shè)計思路(1)本實驗要求溫度計的范圍-10℃~100℃,并且顯示一位小數(shù),所以我們需要四個LED,前兩個顯示溫度的整數(shù)部分,第三個顯示小數(shù)部分,最后一個顯示符號。根據(jù)給出的元件,我們用AD590做溫度傳感器,可以把絕對溫度轉(zhuǎn)換成電壓電流信號。(2)把得到的電壓電流信號輸入ADC0832以后得到數(shù)字信號,即為要采樣接收的數(shù)據(jù),根據(jù)要求,所測溫度為-10℃~100℃,則溫度每變化一攝氏度輸出電壓變化10mv,又根據(jù)0度時輸出電壓為2.73V得出電壓的變化范圍是2.63V-3.73V。0度采集到的數(shù)據(jù)為:2.73*255/5=139100度采集到的數(shù)據(jù)為:3.73*255/5=190(3)那么實際的溫度計算公式為:(采集到的數(shù)據(jù)-139)*5*100/255。溫度為正時:高八位放在B中,除以10得到的商為十位數(shù),余數(shù)為各位;低八位放在A中,除以10,商為第一位小數(shù)。溫度為負(fù)值:高八位的數(shù)小于10放在個位數(shù)字,十位數(shù)顯示符號,得到的低八位放在A中,,除以10,商為第一位小數(shù)。由此就得到了所要顯示的溫度。(4)第一個LED的字形地址偏移量放在20H,將20H送入P0.5;第二個LED的字形地址偏移量放在21H,將21H送入P0.4;第三個LED的字形地址偏移量放在22H,將22H送入P0.3;第四個LED的字形地址偏移量放在23H,將23H送入P0.2。電路板連接如下圖:10k10kΩ電阻8051單片機ADC08324個數(shù)碼顯示管AD590由此得到的整體框架圖為:ADAD采樣數(shù)值轉(zhuǎn)化循環(huán)八位數(shù)據(jù)初始化溫度顯示2.3方案設(shè)計和選擇(1)溫度采集處理模塊(2)數(shù)據(jù)算法處理輸出模塊第三章基于Proteus仿真設(shè)計3.1仿真電路設(shè)計3.2仿真總結(jié)用Proteus仿真模擬電路的效果總體來說是非常不錯的,但也存在一些軟件的不足之處,比如說沒有AD590這個器件,需要用一個滑動變阻器來代替。相比之前自己做的仿真,我覺得本次實驗讓我最大的收獲就是學(xué)會了編寫輸入芯片程序可以在仿真上大概查到程序的一些顯示錯誤。不用自己每天占著學(xué)院的電腦苦苦嘗試。本次實驗仿真的制作還是很順利的,調(diào)試的過程最令人痛苦。3.3仿真結(jié)果與分析(1)零下溫度顯示(2)零上溫度顯示第四章匯編編程與元件的安裝及調(diào)試4.1匯編語言介紹本次設(shè)計軟件采用匯編語言進行編程。匯編語言是一種功能很強的程序設(shè)計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。匯編語言,作為一門語言,對應(yīng)于高級語言的編譯器,需要一個“匯編器”來把匯編語言原文件匯編成機器可執(zhí)行的代碼。高級的匯編器如MASM,TASM等等為我們寫匯編程序提供了很多類似于高級語言的特征,比如結(jié)構(gòu)化、抽象等。在這樣的環(huán)境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經(jīng)類同于高級語言?,F(xiàn)在的匯編環(huán)境已經(jīng)如此高級,即使全部用匯編語言來編寫windows的應(yīng)用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在于編寫高效且需要對機器硬件精確控制的程序。匯編語言直接同計算機的底層軟件甚至硬件進行交互,它具有如下一些優(yōu)點:(1)能夠直接訪問與硬件相關(guān)的存儲器或I/O端口;(2)能夠不受編譯器的限制,對生成的二進制代碼進行完全的控制;(3)能夠?qū)﹃P(guān)鍵代碼進行更準(zhǔn)確的控制,避免因線程共同訪問或者硬件設(shè)備共享引起的死鎖;(4)能夠根據(jù)特定的應(yīng)用對代碼做最佳的優(yōu)化,提高運行速度;(5)能夠最大限度地發(fā)揮硬件的功能。同時還應(yīng)該認(rèn)識到,匯編語言是一種層次非常低的語言,它僅僅高于直接手工編寫二進制的機器指令碼,因此不可避免地存在一些缺點:(1)編寫的代碼非常難懂,不好維護;(2)很容易產(chǎn)生bug,難于調(diào)試;(3)只能針對特定的體系結(jié)構(gòu)和處理器進行優(yōu)化。4.2溫度計實驗程序:AD0832DI BIT P3.0;偽指令A(yù)D0832DO BIT P3.1AD0832CLK BIT P3.2AD0832CS BIT P3.3LED1 EQU 20H;第一個LED的字形地址偏移量放在20HLED2 EQU 21H;第二個LED的字形地址偏移量放在21HLED3 EQU 22H;第三個LED的字形地址偏移量放在22HLED4 EQU 23H;第四個LED的字形地址偏移量放在23HORG0000HLJMPMAINORG0030HMAIN:MOVSP,#6FHMOVR4,#5;顯示五次程序H:LCALLADC0832;調(diào)用AD轉(zhuǎn)換程序LCALLDELAYLCALLBCD;調(diào)用數(shù)值轉(zhuǎn)換程序LP:LCALLDISPLAY;調(diào)用顯示程序DJNZR4,LPSJMPHADC0832:SETBAD0832DI;初始化通道選擇,起始信號,DI高電平CLRAD0832CLK;時鐘低電平NOP;一個是12個機器周期NOPCLRAD0832CS;拉低/CS端NOPNOPSETBAD0832CLK;拉高CLK端NOPNOPCLRAD0832CLK;拉低CLK端,形成下降沿SETBAD0832DINOPNOPSETBAD0832CLK;拉高CLK端NOPNOPCLRAD0832CLK;拉低CLK端,形成下降沿2CLRAD0832DI;1-0選擇1通道NOPNOPSETBAD0832CLK;拉高CLK端NOPNOPCLRAD0832CLK;拉低CLK端,形成下降沿3SETBAD0832DINOPNOPMOVR5,#8;準(zhǔn)備送下后8個時鐘脈沖AD1:MOVC,AD0832DO;第四個脈沖下沉后開始接收數(shù)據(jù)MOVACC.0,CRLA;左移一次SETBAD0832CLKNOPNOPCLRAD0832CLK;形成一次時鐘脈沖NOPNOPDJNZR5,AD1;循環(huán)7次MOVC,AD0832DO;接收數(shù)據(jù)MOVACC.0,CSETBAD0832CS;拉高/CS端CLRAD0832CLK;拉低CLK端SETBAD0832DO;拉高數(shù)據(jù)端,回到初始狀態(tài)ADDA,#10;參數(shù)調(diào)整MOV30H,A;數(shù)據(jù)放在30HRETBCD:CLRCSUBBA,#139;與0攝氏度作判斷JNCABOVE0;有借位往下執(zhí)行,沒有借位跳轉(zhuǎn)ABOVE0BELLOW0:MOVA,#139;(139-x)*5SUBBA,30HMOVB,#51MULABMOVB,#10MULABMOVR1,AMOVA,BMOVB,#10DIVABMOVLED1,#0AH;最高位顯示負(fù)號MOVLED2,B;顯示個位MOVA,R1MOVB,#26DIVABMOVLED3,A;顯示第一位小數(shù)MOVLED4,#0BHRETABOVE0:MOVB,#05H;(x-139)*5MULABMOVB,#64HMULABMOVR1,A;低八位給R1MOVA,B;高八位給AMOVB,#0AHDIVABMOVLED1,A;顯示十位MOVLED2,B;顯示個位MOVA,R1MOVB,#1AH;x/26把0-255的數(shù)轉(zhuǎn)換為0-9的數(shù)DIVABMOVLED3,A;顯示第一位小數(shù)MOVLED4,#0BHRETDISPLAY:;顯示子程序SETBP0.3SETBP0.4SETBP0.5MOVDPTR,#TABMOVA,20H;LED1MOVCA,@A+DPTR;查字形表MOVP2,A;P2口作字形,P0口做字位CLRP0.5;開LCALLDELAYSETBP0.5;關(guān)MOVDPTR,#TABMOVA,21H;LED2:個位MOVCA,@A+DPTR;查字形表MOVP2,ASETBP2.7CLRP0.4LCALLDELAYSETBP0.4MOVDPTR,#TABMOVA,22H;LED3:第一位小數(shù)MOVCA,@A+DPTR;查字形表MOVP2,ACLRP0.3ACALLDELAYSETBP0.3MOVDPTR,#TABMOVA,23H;LED4:符號MOVCA,@A+DPTR;查字形表MOVP2,ACLRP0.2ACALLDELAYSETBP0.2RETDELAY: MOVR7,#10;延時1msLP1: MOVR6,#50LP2: DJNZR6,LP2DJNZR7,LP1RETTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H,63HRETEND4.3實物顯示效果第五章基于Protel99se設(shè)計PCB印制電路5.1ProtelPCB圖繪制第六章課程設(shè)計總結(jié)與建議6.1課程設(shè)計過程中遇到的問題及解決途徑序號遇到的問題解決途徑1不清楚實物連接圖肉眼觀察以及用萬用表測量畫出電路圖2不了解AD590的具體參數(shù)通過上網(wǎng)查找相關(guān)資料3不會編寫ADC0832啟動和數(shù)據(jù)傳送程序上網(wǎng)查找資料并分析它的時序圖,最后參考相關(guān)例子改編成功4不會控制小數(shù)點的顯示詢問老師得知可以直接置1得到,不用重新編寫字形表5顯示總是抖動在AD轉(zhuǎn)換后增加一個延時后再處理6顯示示數(shù)在不同仿真器頭下發(fā)生突變成80多度坑了一上午,各種軟硬件檢驗,結(jié)果換臺電腦好了,發(fā)現(xiàn)是仿真器頭壞了7燒錄單片機芯片里發(fā)現(xiàn)顯示有一位不亮換了一塊單片機芯片解決掉,原因不明,可能是原來的芯片壞了6.2課程設(shè)計體會與心得單片機課設(shè)使我學(xué)到了很多,在做實驗之前,我們查找了很多相關(guān)的資料,認(rèn)真的閱讀了課本,并且在網(wǎng)上也認(rèn)真的翻閱了很多的資料,了解了各種原器件的工作原理以及控制過程,準(zhǔn)備工作做了很多,但是在調(diào)試的過程中還是遇到了很多的問題,比如說溫度達不到要求的高度和準(zhǔn)確度,還有溫度顯示不穩(wěn)定,總是閃動等,并且在實驗中由于操作不慎導(dǎo)致芯片燒壞,但是經(jīng)過我們請教老師和同學(xué),以及自己不斷地調(diào)試檢查,最終把這些問題解決了,這次的單片機課程設(shè)計不僅加深了對單片機基礎(chǔ)知識的理解與記憶,還鍛煉了自己的動手調(diào)試能力和實際操作能力,做到了理論與實際有效的相結(jié)合。通過這次課程設(shè)計,我對ADC0832的結(jié)構(gòu)有了全面的認(rèn)識,也對運用匯編語言編程的能力和整體掌握有了大幅度的提升。而此次課設(shè)對我最大的提高在于對未知知識的搜集、掌握和運用過程。如溫度傳感器是輸出電流的,A/D轉(zhuǎn)換是用ADC0832的,他們之間需要用10kΩ電阻作相應(yīng)轉(zhuǎn)換。最關(guān)鍵的就在于對ADC0832的掌握。因為單片機課上主要講授了ADC0809,所以我們上網(wǎng)查到相關(guān)芯片的資料,得知ADC0832的數(shù)字量輸出與AD0809的并行輸出不同,是串行輸出的,所以應(yīng)該將其輸出量在P3.1口輸入到單片機。而且它的選口、輸輸出都要在外部輸入的時鐘下降沿的時候讀寫,時鐘信號還需要外部給定,所以它的CLK口要與P3.2口相連。ADC0832在數(shù)據(jù)傳輸前要在Din中輸入起停位和配置位,以設(shè)定ADC0832的工作模式,這三位數(shù)據(jù)也可通過移位輸入。由于ADC0832的輸入在CH0口,輸出為單端輸出,所以配置位為10(B)。有了總體思路后我們開始著手分塊編寫程序,編譯無誤后就到實驗室進行了實驗仿真。不管之前怎樣全面思考,實驗過程中還是會出現(xiàn)意想不到的問題。實驗過程中AD590輸出的電流變化范圍沒有設(shè)計的那么大,即使將1kΩ電位器調(diào)到最大也不能將顯示的室溫調(diào)至準(zhǔn)確。所以我們對程序進行了進一步修改,將輸入的數(shù)值做了一定比例的放大,并做了一些誤差調(diào)整,最終實現(xiàn)了室溫時顯示21-26度,用打火機烤AD590之后最大顯示數(shù)值度能超過100(即在99.99之后又從0.00開始顯示),最終做出的溫度計量程為0℃到100℃左右??偟膩碚f,這樣的課設(shè)總是比較有趣,富有挑戰(zhàn)性而又不枯燥,非常吸引人,對我個人來說試一次絕佳的鍛煉機會,既能進一步鞏固專業(yè)知識,增強專業(yè)基礎(chǔ),又能提高動手能力,使自己對實驗調(diào)試的方法更加熟練。如果以后還能有機會接觸此類實驗的話,我一定會倍加珍惜的。最后,感謝老師給了我們這個提高和鍛煉自己的機會,同時感謝老師百忙之中給我們指點和驗收,謝謝老師。參考文獻:[1]胡漢才,單片機原理及其接口技術(shù),清華大學(xué)出版社

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論