智能溫度測(cè)量?jī)x表課程設(shè)計(jì)報(bào)告_第1頁(yè)
智能溫度測(cè)量?jī)x表課程設(shè)計(jì)報(bào)告_第2頁(yè)
智能溫度測(cè)量?jī)x表課程設(shè)計(jì)報(bào)告_第3頁(yè)
智能溫度測(cè)量?jī)x表課程設(shè)計(jì)報(bào)告_第4頁(yè)
智能溫度測(cè)量?jī)x表課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告課 程: 智能測(cè)量?jī)x表 題 目: 智能測(cè)量?jī)x表 學(xué)生姓名: XXXXXX 專業(yè)年級(jí): 2009 自動(dòng)化 指導(dǎo)教師: XXXXXX XXXX 信 息 與 計(jì) 算 科 學(xué) 系2013年3月25日智能測(cè)量?jī)x表本次課程設(shè)計(jì)中智能溫度測(cè)量?jī)x表所采用的溫度傳感器為L(zhǎng)M35DZ。其輸出電壓與攝氏溫度成線性比例關(guān)系,無(wú)需外部校準(zhǔn),在0100溫度范圍內(nèi)精度為0.40.75。,輸出電壓與攝氏溫度對(duì)應(yīng),使用極為方便。靈敏度為10.0mV/,重復(fù)性好,輸出阻抗低,電路接口簡(jiǎn)單和方便,可單電源和正負(fù)電源工作。是一種得到廣泛使用的溫度傳感器。本次課程設(shè)計(jì)的主要目的在于讓學(xué)生把所學(xué)到的單片機(jī)原理、電子線路設(shè)計(jì)、

2、傳感器技術(shù)與原理、過(guò)程控制、智能儀器儀表、總線技術(shù)、面向?qū)ο蟮某绦蛟O(shè)計(jì)等相關(guān)專業(yè)課程的內(nèi)容系統(tǒng)的總結(jié),并能有效的使用到項(xiàng)目研發(fā)中來(lái),做到學(xué)以致用。課程設(shè)計(jì)的內(nèi)容主要分為三個(gè)部分,即使用所學(xué)編程語(yǔ)言(C或者匯編)完成單片機(jī)方面的程序編寫、使用VB或VC語(yǔ)言完成PC機(jī)人機(jī)界面設(shè)計(jì)(也可以用C+API實(shí)現(xiàn))、按照課程設(shè)計(jì)規(guī)范完成課程設(shè)計(jì)報(bào)告。目錄1 課程設(shè)計(jì)任務(wù)和要求311 設(shè)計(jì)任務(wù)322 設(shè)計(jì)要求32系統(tǒng)硬件設(shè)計(jì)321 STC12C5A60S2單片機(jī)A/D轉(zhuǎn)換簡(jiǎn)介322 LM35DZ簡(jiǎn)介723 硬件原理圖設(shè)計(jì)73系統(tǒng)軟件設(shè)計(jì)1031 設(shè)計(jì)任務(wù)1032 程序代碼1033 系統(tǒng)軟件設(shè)計(jì)調(diào)試174系統(tǒng)上

3、位機(jī)設(shè)計(jì)1841 設(shè)計(jì)任務(wù)1842 程序代碼1843 系統(tǒng)上位機(jī)軟件設(shè)計(jì)調(diào)試215系統(tǒng)調(diào)試與改善2251 系統(tǒng)調(diào)試2252 系統(tǒng)改善226系統(tǒng)設(shè)計(jì)時(shí)常見問(wèn)題舉例與解決辦法247總結(jié)251. 課程設(shè)計(jì)任務(wù)和要求1.1課程設(shè)計(jì)任務(wù)本次課程設(shè)計(jì)要求設(shè)計(jì)出智能化溫度測(cè)量?jī)x表,要求該測(cè)量?jī)x表能夠?qū)⑺鶞y(cè)得的溫度數(shù)據(jù)和當(dāng)前電機(jī)設(shè)備的運(yùn)行狀況遠(yuǎn)傳給上位機(jī)。儀表測(cè)量范圍為0-100;測(cè)量精度為1;可以進(jìn)行溫度整定,比如,溫度30,啟動(dòng)壓縮機(jī)外設(shè);溫度20,關(guān)閉壓縮機(jī)外設(shè);要求上位機(jī)和下位機(jī)都能顯示溫度值和電機(jī)設(shè)備的運(yùn)行狀態(tài)并且都能獨(dú)立控制溫度數(shù)據(jù)采集狀態(tài)和電機(jī)設(shè)備的運(yùn)行狀態(tài);通訊方式可以采用RS232C或485

4、。上位機(jī)要求人機(jī)界面在保證簡(jiǎn)單實(shí)用的基礎(chǔ)上做的美觀。 1.2課程設(shè)計(jì)要求(1)利用所學(xué)專業(yè)課相關(guān)知識(shí)合理的選擇器材,使用Protel99se繪制出硬件原理圖。(2)使用C語(yǔ)言或者匯編語(yǔ)言完成下位機(jī)程序驅(qū)動(dòng),并且要盡量保證系統(tǒng)的穩(wěn)定性和可靠性以及實(shí)用性。(3)使用VB或VC語(yǔ)言或用C+API( 應(yīng)用程序接口調(diào)用)實(shí)現(xiàn)上位機(jī)人機(jī)界面的設(shè)計(jì),要求上位機(jī)發(fā)送的命令下位機(jī)能及時(shí)的給予響應(yīng),并且上位機(jī)能夠?qū)崟r(shí)準(zhǔn)確的顯示下位機(jī)所上傳數(shù)據(jù)以及電機(jī)設(shè)備的運(yùn)行狀態(tài)。(4)按照課程設(shè)計(jì)規(guī)范撰寫課程設(shè)計(jì)報(bào)告。2. 系統(tǒng)硬件設(shè)計(jì)2.1 STC12C5A60S2單片機(jī)A/D轉(zhuǎn)換簡(jiǎn)介STC12C5A60S2單片機(jī)集成有8路

5、10位高速模數(shù)轉(zhuǎn)換器(ADC),速度可達(dá)到250KHz(25萬(wàn)次/秒,可做溫度檢測(cè)、壓力檢測(cè)、電池電壓檢測(cè)、按鍵掃描、頻譜檢測(cè)等。STC12C5A60S2單片機(jī)片內(nèi)集成8通道10位模數(shù)轉(zhuǎn)換器(ADC)。ADC輸入通道與P1口復(fù)用,上電復(fù)位后P1口為弱上拉型I/O口,用戶可以通過(guò)軟件設(shè)置將8路中的任何一路設(shè)置為A/D轉(zhuǎn)換,不需作為A/D 使用的口可繼續(xù)作為I/O口使用。2.1.1 模數(shù)轉(zhuǎn)換器的結(jié)構(gòu)圖STC12C5A60S2單片機(jī)的模數(shù)轉(zhuǎn)換器由多路選擇開關(guān)、比較器、逐次比較寄存器、10位ADC、轉(zhuǎn)換結(jié)果寄存器(ADC_RES和ADC_RESL)以及ADC控制寄存器ADC_CONTR構(gòu)成。如圖2-1

6、所示。圖2-1 STC12C5A單片機(jī)內(nèi)部A/D轉(zhuǎn)換結(jié)構(gòu)圖2.1.2 模數(shù)轉(zhuǎn)換器的參考電壓STC12C5A60S2單片機(jī)A/D轉(zhuǎn)換模塊的參考電壓源是輸入工作電壓Vcc,所以一般不用外接參考電壓源。如三端穩(wěn)壓電路7805的輸出電壓是5V,但實(shí)際電壓可能是4.88V到4.96V,如果用戶需要的精度比較高,可在應(yīng)用產(chǎn)品出廠前將實(shí)際測(cè)出的工作電壓值記錄在單片機(jī)內(nèi)部的EEPROM里面,以供程序校正使用。如果Vcc不穩(wěn)定(例如電池供電的系統(tǒng)中,電池電壓常常在5.3V-4.2V之間漂移), 則需要在8路A/D轉(zhuǎn)換的一個(gè)通道外接一個(gè)穩(wěn)定的參考電壓源,來(lái)計(jì)算出此時(shí)的工作電壓Vcc,再計(jì)算出其他幾路A/D轉(zhuǎn)換通道

7、的電壓。例如,可在ADC轉(zhuǎn)換通道的第七通道外接一個(gè) 1.25V的基準(zhǔn)參考電壓源,由此求出此時(shí)的工作電壓Vcc,再計(jì)算出其它幾路A/D轉(zhuǎn)換通道的電壓。2.1.3 與ADC相關(guān)的寄存器1、 P1口模擬功能控制寄存器P1ASF(地址為9DH,復(fù)位值為00H)P10ASFP11ASFP12ASFP13ASFP14ASFP15ASFP16ASFP17ASF位名稱D0D1D2D3D4D5D6D7位號(hào)如果要使用相應(yīng)口的模擬功能,需將P1ASF特殊功能寄存器中的相應(yīng)位置為1。如,若要使用P1.6的模擬量功能,則需要將P16ASF設(shè)置為1。(注意,P1ASF寄存器不能位尋址,可以使用匯編語(yǔ)言指令ORL P1AS

8、F, #40H,也可以使用C語(yǔ)言語(yǔ)句P1ASF |= 0x40;)2、 ADC控制寄存器ADC_CONTR(地址為BCH,復(fù)位值為00H)CHS0CHS1CHS2ADC_STARTADC_FLAGSPEED0SPEED1ADC_POWER位名稱D0D1D2D3D4D5D6D7位號(hào)1)ADC_POWER:ADC電源控制位。0:關(guān)閉ADC電源。1:打開ADC電源。 2)SPEED1、SPEED0:ADC轉(zhuǎn)換速度控制位。3)ADC_FLAG:A/D轉(zhuǎn)換結(jié)束標(biāo)志位。A/D轉(zhuǎn)換完成后,ADC_FLAG = 1,要由軟件清0。不管A/D轉(zhuǎn)換完成后由該位申請(qǐng)產(chǎn)生中斷,還是由軟件查詢?cè)摌?biāo)志位判斷A/D轉(zhuǎn)換是否

9、結(jié)束,當(dāng)A/D轉(zhuǎn)換完成后,ADC_FLAG = 1,一定要軟件清0。4)ADC_START:A/D轉(zhuǎn)換啟動(dòng)控制位,ADC_START=1,開始轉(zhuǎn)換;ADC_START=0,停止轉(zhuǎn)換。5)CHS2、CHS1、CHS0:模擬輸入通道選擇,如表2-1所示。表2-1 模擬通道選擇表CHS2CHS1CHS0Analog Channel Select (模擬輸入通道選擇)000選擇 P1.0 作為A/D輸入來(lái)用001選擇 P1.1 作為A/D輸入來(lái)用010選擇 P1.2 作為A/D輸入來(lái)用011選擇 P1.3 作為A/D輸入來(lái)用100選擇 P1.4 作為A/D輸入來(lái)用101選擇 P1.5 作為A/D輸入來(lái)

10、用110選擇 P1.6 作為A/D輸入來(lái)用111選擇 P1.7 作為A/D輸入來(lái)用程序中需要注意的事項(xiàng):由于是2套時(shí)鐘,所以,設(shè)置ADC_CONTR控制寄存器后,要加4個(gè)空操作延時(shí)才可以正確讀到ADC_CONTR寄存器的值,原因是設(shè)置ADC_CONTR控制寄存器的語(yǔ)句執(zhí)行后,要經(jīng)過(guò)4個(gè)CPU時(shí)鐘的延時(shí),其值才能夠保證被設(shè)置進(jìn)ADC_CONTR控制寄存器。3、 A/D轉(zhuǎn)換結(jié)果寄存器ADC_RES、ADC_RESL特殊功能寄存器ADC_RES(地址為BDH,復(fù)位值為00H)和ADC_RESL(地址為BEH,復(fù)位值為00H)用于保存A/D轉(zhuǎn)換結(jié)果。A/D轉(zhuǎn)換結(jié)果存儲(chǔ)格式由輔助寄存器AUXR1(地址為

11、A2H,復(fù)位值為00H)中的ADRJ控制,ADRJ是AUXR1中的D2位。(1)當(dāng)ADRJ=0時(shí),10位A/D轉(zhuǎn)換結(jié)果的高8位放在ADC_RES寄存器,低2位放在ADC_RESL寄存器。存儲(chǔ)格式如下:(2)當(dāng)ADRJ=1時(shí),10位A/D轉(zhuǎn)換結(jié)果的最高2位放在ADC_RES寄存器的低2位,低8位放在ADC_RESL寄存器。存儲(chǔ)格式如下:模/數(shù)轉(zhuǎn)換結(jié)果計(jì)算公式如下:ADRJ = 0時(shí),取10位結(jié)果 (ADC_RES7:0,ADC_RESL1:0) = 1024 Vin / VccADRJ = 0時(shí),取8位結(jié)果 ADC_RES7:0 = 256 Vin / VccADRJ = 1時(shí),取10位結(jié)果 (

12、ADC_RES1:0,ADC_RESL7:0) = 1024 Vin / VccVin為模擬輸入通道輸入電壓,Vcc為單片機(jī)實(shí)際工作電壓,用單片機(jī)工作電壓作為模擬參考電壓。4、 與A/D轉(zhuǎn)換中斷有關(guān)的寄存器中斷允許控制寄存器IE中的EADC位(D5位)用于開放ADC中斷,EA位(D7位)用于開放CPU中斷;中斷優(yōu)先級(jí)寄存器IP中的PADC位(D5位)和IPH中的PADCH位(D5位)用于設(shè)置A/D中斷的優(yōu)先級(jí)。在中斷服務(wù)程序中,要使用軟件將A/D中斷標(biāo)志位ADC_FLAG(也是A/D轉(zhuǎn)換結(jié)束標(biāo)志位)清0。2.2 LMDZ35簡(jiǎn)介TS-LM35溫度傳感器是由LM35CZ/DZ 集成電路溫度傳感器

13、外加金屬套密封組裝而成,其輸出電壓與攝氏溫度成線性比例關(guān)系,無(wú)需外部校準(zhǔn),在-55+150溫度范圍內(nèi)精度為0.40.75。,輸出電壓與攝氏溫度對(duì)應(yīng),使用極為方便。靈敏度為10.0mV/,重復(fù)性好,輸出阻抗低,電路接口簡(jiǎn)單和方便,可單電源和正負(fù)電源工作。是一種得到廣泛使用的溫度傳感器。LM35技術(shù)特性: 溫度范圍:LM35DZ 0100;LM35CZ -40110 在攝氏溫度下直接校準(zhǔn) 線性刻度系數(shù): +10.0mV/ 精度:0.5 (在25) 工作電壓為430V 功耗:小于60uA 自熱效應(yīng)小于0.08 非線性:0。25 輸出阻抗:0.1/1mA 輸出電壓:+6V-1.0V適合于遠(yuǎn)程應(yīng)用 輸出

14、電流 10mA:2.3 硬件原理圖設(shè)計(jì)該系統(tǒng)硬件原理圖可大體分為這幾個(gè)模塊: 串行通信模塊、模擬信號(hào)處理模塊、4*7LED顯示模塊以及電源模塊等。1、 串行通信模塊原理圖如下:本通信過(guò)程采用RS232方式進(jìn)行,由于單片機(jī)中的UART和電腦串口RS232的區(qū)別僅在于電平的不同,電腦串口采用232電平,而單片機(jī)UART則采用TTL電平,如果不進(jìn)行電平轉(zhuǎn)換,單片機(jī)跟電腦串口就不能進(jìn)行直接通信,RS232是UART的一種就意味著通信協(xié)議的格式是一樣的,只要電平統(tǒng)一了,兩者之間就可以直接通信,此處應(yīng)用了MAX232這一芯片,MAX232對(duì)兩者之間通信的數(shù)據(jù)沒有任何作用,僅僅是中介而已,而其只是負(fù)責(zé)將兩者

15、之間的電平進(jìn)行統(tǒng)一,使兩者之間沒有通信障礙。另外,MAX232芯片采用單+5V電源供電,僅需幾個(gè)外接電容即可完成從TTL到RS232電平的轉(zhuǎn)換,共兩路。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DP9插頭;DP9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。2、 模擬信號(hào)處理模塊原理圖如下:

16、此處,我們處理采集到的模擬量電壓信號(hào)是采用了LM324集成運(yùn)算放大器管腳排列圖見圖2-2。LM324系列由四個(gè)獨(dú)立的帶有差動(dòng)輸入的,高增益,內(nèi)部頻率補(bǔ)償運(yùn)算放大器,其中專為從單電源供電的電壓范圍經(jīng)營(yíng)。從分裂電源的操作也有可能和低電源電流消耗是獨(dú)立的電源電壓的幅度。與單電源應(yīng)用場(chǎng)合的標(biāo)準(zhǔn)運(yùn)算放大器相比,它們有一些顯著優(yōu)點(diǎn)。該四放大器可以工作在低到3.0伏或者高到32伏的電源下,靜態(tài)電流為MC1741的靜態(tài)電流的五分之一。共模輸入范圍包括負(fù)電源,因而消除了在許多應(yīng)用場(chǎng)合中采用外部偏置元件的必要性。每一組運(yùn)算放大器可用圖1所示的符號(hào)來(lái)表示,它有5個(gè)引出腳,其中“+”、“-”為兩個(gè)信號(hào)輸入端,“V+”

17、、“V-”為正、負(fù)電源端,“Vo”為輸出端。兩個(gè)信號(hào)輸入端中,Vi-(-)為反相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的位相反;Vi+(+)為同相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的相位相同。圖2-2 LM324集成運(yùn)算放大器管腳排列圖此模擬量處理模塊設(shè)計(jì)的使用起來(lái)比較靈活,圖中左邊的兩路放大器都設(shè)計(jì)成了電壓跟隨器的形式,這樣就減少了輸入信號(hào)的損失。我們可以將傳感器所測(cè)得標(biāo)準(zhǔn)電壓信號(hào)或者電流信號(hào)通過(guò)P9或者P10接入(也可以使用杜邦線通過(guò)J7或者J8接入信號(hào))LM324的其中一路放大器,然后再經(jīng)過(guò)第二級(jí)放大使得處理后的電壓信號(hào)輸出到J9。做此課程設(shè)計(jì)時(shí)我們采用的是LM35DZ溫度測(cè)

18、量傳感器,我們把它的輸出信號(hào)連接到J8的2腳,由此出輸入我們的采集到的信號(hào)。我們將上面的一路放大器的輸入調(diào)至零,然后再經(jīng)過(guò)后一級(jí)放大器,將兩者之差放大5倍。3、 4*7LED顯示模塊原理圖如下:由圖中可以看出,我們將數(shù)碼管的斷碼端接到了單片機(jī)的P2口,控制端接到了P0口的低四位。圖中Q2、Q3、Q4、Q5為開關(guān)型三極管此處用作數(shù)碼管的選通控制。3. 系統(tǒng)軟件設(shè)計(jì)3.1程序代碼根據(jù)下位機(jī)軟件設(shè)計(jì)任務(wù)的要求,我們可以把程序代碼分為一下幾個(gè)模塊:初始化模塊、按鍵掃描模塊、A/D轉(zhuǎn)換數(shù)據(jù)獲取模塊、串行口通信模塊、運(yùn)算處理模塊、延時(shí)模塊等。其中初始化模塊包括程序當(dāng)中使用的變量的初始化和串行口通信方式初始

19、化還有A/D轉(zhuǎn)換模塊的初始化,按鍵掃描模塊是用于按鍵控制系統(tǒng)時(shí)用來(lái)響應(yīng)按鍵被按下時(shí)的,A/D轉(zhuǎn)換數(shù)據(jù)獲取模塊部分可以用查詢方式,也可以使用中斷的方式實(shí)現(xiàn),串行口通信模塊用來(lái)接收上位機(jī)發(fā)送來(lái)的命令,以控制和監(jiān)測(cè)系統(tǒng)狀態(tài),運(yùn)算處理模塊包括多字節(jié)之間的加減乘除運(yùn)算,延時(shí)模塊用于程序中一小段時(shí)間的等待。匯編語(yǔ)言編寫的程序代碼如下:$ INCLUDE (STC12C5A.INC);定義變量千百十個(gè)QIAN EQU 60HBAI EQU 61HSHI EQU 62HGEWEI EQU 63HTEMPMH EQU 64H TEMPML EQU 65H COUNT EQU 66H TEMPMMH EQU 67

20、HTEMPMML EQU 68HORG 0000HLJMP MAINORG 0023HLJMP TONGXINORG 002BHLJMP ADC_ISR ORG 0080HMAIN: LCALL MAIN_INIT LCALL UART1_INIT LCALL ADC_INITAAA: LCALL SCANFKEYV LCALL DISPLAY SJMP AAAMAIN_INIT: MOV SP,#70H MOV QIAN,#00H MOV BAI,#00H MOV SHI,#00H MOV GEWEI,#00H MOV COUNT,#00H MOV KEYVALUE,#00H MOV TEM

21、PMH,#00H MOV TEMPML,#00H MOV TEMPMMH,#00H MOV TEMPMML,#00H RETUART1_INIT: MOV AUXR,#11H MOV BRT,#0FDH MOV SCON,#50H MOV PCON,#00H SETB EASETB ESRETSCANFKEYV: MOV P1,#0FFHMOV A,P1CJNE A,#0FDH,KEYS2LCALL DELAY10MSMOV A,P1CJNE A,#0FDH,KEYS2SETB EADCSJMP NOKEYKEYS2:CJNE A,#0EFH,KEYS3LCALL DELAY10MSMOV A

22、,P1CJNE A,#0EFH,KEYS3CLR EADCSJMP NOKEYKEYS3:CJNE A,#0DFH,KEYS4LCALL DELAY10MSMOV A,P1CJNE A,#0DFH,KEYS4CLR P0.4CLR EAMOV R7,#04HA21: MOV A,#01HMOV SBUF,AJNB TI,$CLR TIDJNZ R7,A21SETB EASJMP NOKEYKEYS4:CJNE A,#0BFH,NOKEYLCALL DELAY10MSMOV A,P1CJNE A,#0BFH,NOKEYSETB P0.4CLR EA MOV R7,#04HA22: MOV A,#

23、02HMOV SBUF,AJNB TI,$CLR TIDJNZ R7,A22SETB EASJMP NOKEYNOKEY:RETADC_INIT: MOV P1ASF,#01HMOV ADC_RES,#00HMOV ADC_RESL,#00HMOV AUXR1,#04HMOV ADC_CONTR,#088HLCALL DELAY10MS;SETB EADCRETTONGXIN: CLR RIMOV A,SBUFCJNE A,#46H,COMPENDSETB EADCCOMPEND:CJNE A,#47H,STAR1CLR EADCSTAR1: CJNE A,#51H,STAR2 CLR P0.

24、4STAR2: CJNE A,#03H,END1CLR P0.5END1: CJNE A,#54H,END2SETB P0.4END2: CJNE A,#04,OUTTONGXINSETB P0.5OUTTONGXIN:RETIADC_ISR: PUSH PSWPUSH ACCINC COUNTANL ADC_CONTR,#0EFHMOV TEMPMH,ADC_RESMOV TEMPML,ADC_RESLCLR CMOV A,TEMPMMLADD A,TEMPMLMOV TEMPMML,A MOV A,TEMPMMHADDC A,TEMPMHMOV TEMPMMH,A MOV A,COUNTC

25、JNE A,#20H,OUT0MOV COUNT,#00HMOV R6,TEMPMMHMOV R7,TEMPMMLMOV R4,#00HMOV R5,#20HLCALL DBDIVMOV TEMPMH,5FHMOV TEMPML,5CH MOV TEMPMMH,#00H MOV TEMPMML,#00HLCALL CONVERT MOV R7,#4MOV R0,#60HSENDTEMP: MOV A,R0MOV SBUF,AJNB TI,$CLR TIINC R0DJNZ R7,SENDTEMPMOV R4,#240A12:DJNZ R4,A11SJMP OUT0A11: LCALL SCAN

26、FKEYVLCALL DISPLAYSJMP A12OUT0:ORL ADC_CONTR,#08HPOP ACCPOP PSWRETI CONVERT: MOV R2,TEMPMH MOV R3,TEMPML MOV R6,#03H MOV R7,#0E8H LCALL DBMUL MOV R3,56H MOV R4,57H MOV R5,58H MOV R2,#04H MOV R1,#00H LCALL TDSDIV MOV R6,5BH MOV R7,5AH MOV R4,#03H MOV R5,#0E8H LCALL DBDIV MOV QIAN,5CH MOV R6,5DH MOV R

27、7,5EH MOV R4,#00H MOV R5,#64H LCALL DBDIV MOV BAI,5CH MOV R6,5DH MOV R7,5EH MOV R4,#00H MOV R5,#0AH LCALL DBDIV MOV SHI,5CH MOV GEWEI,5EHOUT: RET DBMUL: MOV A,R3 MOV B,R7 MUL AB XCH A,R7 MOV R5,B MOV B,R2 MUL AB ADD A,R5 MOV R4,A CLR A ADDC A,B MOV R5,A MOV A,R6 MOV B,R3 MUL AB ADD A,R4 XCH A,R6 XCH

28、 A,B ADDC A,R5 MOV R5,A MOV F0,C MOV A,R2 MUL AB ADD A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,F0 ADDC A,B MOV R4,A MOV 56H,R7 MOV 57H,R6 MOV 58H,R5 MOV 59H,R4 RET TDSDIV: CLR C MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 TDSDIV_LOOP: CLR C MOV A,R3 SUBB A,R1 MOV R3,A MOV A,R4 SUBB A,R2 MOV R4,A MOV A,R5 SUBB A,#0

29、 MOV R5,A JC TDSDIV_END _INC_SHANG: CLR C MOV A,30H ADDC A,#1 MOV 30H,A MOV A,31H ADDC A,#0 MOV 31H,A MOV A,32H ADDC A,#0 MOV 32H,A LJMP TDSDIV_LOOP TDSDIV_END: CLR C MOV A,R1 ADDC A,R3 MOV A,R2 ADDC A,R4 MOV R3,30H MOV R4,31H MOV 5AH,R3 MOV 5BH,R4 RET DBDIV: CLR C CLR A MOV R2,A MOV R3,A MOV B,#10H

30、LOOP: MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A CLR C MOV A,R3 SUBB A,R5 PUSH ACC MOV A,R2 SUBB A,R4 JBC CY,LOOP0 MOV R2,A POP ACC MOV R3,A SETB C SJMP LOOP1LOOP0: POP ACCLOOP1: DJNZ B,LOOP MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R2

31、 MOV R4,A MOV A,R3 MOV R5,A MOV 5CH,R7 MOV 5DH,R4 MOV 5EH,R5 MOV 5FH,R6 RETDISPLAY: MOV DPTR, #TABLE MOV A,GEWEI MOVC A,A+DPTR MOV P2,A CLR P0.0 LCALL DELAY10MS SETB P0.0 MOV A,SHI MOVC A,A+DPTR ORL A,#80H MOV P2,A CLR P0.1 LCALL DELAY10MS SETB P0.1 MOV A,BAI MOVC A,A+DPTR MOV P2,A CLR P0.2 LCALL DE

32、LAY10MS SETB P0.2 MOV A,QIAN MOVC A,A+DPTR MOV P2,A CLR P0.3 LCALL DELAY10MS SETB P0.3 RET DELAY10MS: MOV R6,#10D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETDELAY100MS: MOV R6,#200D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH, ; 0 1 2 3 4 5 DB 7DH,07H 7FH,6FH,00H,40H, ; 6 7 8 9

33、 + - END 3.3 系統(tǒng)軟件設(shè)計(jì)調(diào)試程序代碼編寫完成以后再開發(fā)環(huán)境中編譯看是否通過(guò),如檢查到有錯(cuò)誤編譯系統(tǒng)就會(huì)報(bào)錯(cuò),然后再根據(jù)提示進(jìn)行修改,至沒有錯(cuò)誤時(shí),再重新編譯文件并生成.hex文件。將此文件燒錄到STC12C5A60S2單片機(jī)中,連接好硬件電路,給系統(tǒng)上電。觀察四位共陰極數(shù)碼管上面是否顯示出我們想要顯示的溫度數(shù)據(jù),如不能再修改程序代碼,重新編譯,重新燒錄程序,觀察結(jié)果此過(guò)程重復(fù)進(jìn)行,直到所采集溫度數(shù)據(jù)能在數(shù)碼管上面穩(wěn)定顯示并且準(zhǔn)確度較高。此模塊疏通后再加入串行通信部分代碼,首先用串口助手測(cè)試數(shù)據(jù)的收發(fā),看單片機(jī)與上位機(jī)之間能否正常收發(fā)數(shù)據(jù),如不能修改代碼,再編譯、燒錄、觀察,直到數(shù)據(jù)收發(fā)正常為止。最后將按鍵掃描部分加入,調(diào)試方法同上,直到

溫馨提示

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

評(píng)論

0/150

提交評(píng)論