智能溫度測量儀表課程設(shè)計報告_第1頁
智能溫度測量儀表課程設(shè)計報告_第2頁
智能溫度測量儀表課程設(shè)計報告_第3頁
智能溫度測量儀表課程設(shè)計報告_第4頁
智能溫度測量儀表課程設(shè)計報告_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

8、匯編語言指令ORL P1ASF, #40H,也可以使用C語言語句P1ASF |= 0x40;)2、 ADC控制寄存器ADC_CONTR(地址為BCH,復(fù)位值為00H)CHS0CHS1CHS2ADC_STARTADC_FLAGSPEED0SPEED1ADC_POWER位名稱D0D1D2D3D4D5D6D7位號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)換完成后由該位申請產(chǎn)生中斷,還是由軟件查

9、詢該標(biāo)志位判斷A/D轉(zhuǎn)換是否結(jié)束,當(dāng)A/D轉(zhuǎn)換完成后,ADC_FLAG = 1,一定要軟件清0。4)ADC_START:A/D轉(zhuǎn)換啟動控制位,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輸入來用001選擇 P1.1 作為A/D輸入來用010選擇 P1.2 作為A/D輸入來用011選擇 P1.3 作為A/D輸入來用100選擇 P1.4 作為A/D輸入來用101選擇

10、 P1.5 作為A/D輸入來用110選擇 P1.6 作為A/D輸入來用111選擇 P1.7 作為A/D輸入來用程序中需要注意的事項:由于是2套時鐘,所以,設(shè)置ADC_CONTR控制寄存器后,要加4個空操作延時才可以正確讀到ADC_CONTR寄存器的值,原因是設(shè)置ADC_CONTR控制寄存器的語句執(zhí)行后,要經(jīng)過4個CPU時鐘的延時,其值才能夠保證被設(shè)置進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é)果存儲格式由

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

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

13、Z/DZ 集成電路溫度傳感器外加金屬套密封組裝而成,其輸出電壓與攝氏溫度成線性比例關(guān)系,無需外部校準(zhǔn),在-55+150溫度范圍內(nèi)精度為0.40.75。,輸出電壓與攝氏溫度對應(yīng),使用極為方便。靈敏度為10.0mV/,重復(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-

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

15、中介而已,而其只是負責(zé)將兩者之間的電平進行統(tǒng)一,使兩者之間沒有通信障礙。另外,MAX232芯片采用單+5V電源供電,僅需幾個外接電容即可完成從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、

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

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

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

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

20、H TEMPMMH EQU 67HTEMPMML 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 KEYVA

21、LUE,#00H MOV TEMPMH,#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,KEYS3LCAL

22、L DELAY10MSMOV A,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,

23、#04HA22: MOV A,#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,#5

24、1H,STAR2 CLR P0.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 TEMPMM

25、H,A MOV A,COUNTCJNE 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 OUT

26、0A11: LCALL SCANFKEYVLCALL 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

27、MOV R6,5DH MOV R7,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

28、,R4 XCH A,R6 XCH 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 MO

29、V A,R5 SUBB A,#0 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

30、 R3,A MOV B,#10HLOOP: 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 M

31、OV R6,A MOV A,R2 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 C

32、LR P0.2 LCALL DELAY10MS 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,00

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

溫馨提示

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

評論

0/150

提交評論