【正文】
his system structure is simple, antijamming ability, suits under the adverse circumstance carries on the scene temperature survey, has the widespread application prospect.This design first determines the goal, after that is each function module design and the corresponding procedure pilation, again carries on the simulation on the Proteus software, several passes through the pilation, the revision, the panel carries on the examination in the monolithic integrated circuit development, the process observation experiment phenomenon and the result, this design meets the design requirements.Key words: Monolithic integrated circuit。這些電路能在軟件的控制下準(zhǔn)確、迅速、高效地完成程序設(shè)計者事先規(guī)定的任務(wù)。用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。如當(dāng)某器件的連線設(shè)計好后,其地址也就被確定了,當(dāng)器件的功能被確定下來后,其控制字也就被確定了。 可以任意設(shè)置上下限溫度的報警功能;178。 熱電偶電路圖此系統(tǒng)主要包括對A/D0809的數(shù)據(jù)采集,溫度的顯示等,此外還包括復(fù)位,啟動等電路,其系統(tǒng)框圖如下所示: 熱電偶溫差電路測溫系統(tǒng)的系統(tǒng)框圖由于本設(shè)計是測溫電路,可以使用熱敏電阻()之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。復(fù)位電路采用上電結(jié)合按鈕復(fù)位。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。若T>TH或T<TL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機(jī)發(fā)出的報警搜索命令作出響應(yīng)。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。 DS18B20與單片機(jī)的接口電路框圖本系統(tǒng)設(shè)計時為了達(dá)到盡可能多的使用各項器件,共設(shè)計了四個按鍵,三個獨立按鍵,另一個采用了4*4矩陣式鍵盤中的一個,采用查詢方式。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、通訊等。溫度轉(zhuǎn)換命令子程序流程圖如下:發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束 溫度轉(zhuǎn)換流程圖 計算溫度子程序計算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運算,并進(jìn)行溫度值正負(fù)的判定。正確認(rèn)識測試是非常重要的,測試目標(biāo)決定了試也是有價值的,完整的測試是評定測試質(zhì)量的一種。通過學(xué)習(xí)各種以前沒有接觸過的軟件,加強(qiáng)了自己對各種軟件的了解,可謂受益匪淺。程序只有在經(jīng)常寫與讀的過程中才能提高。沒有老師的用心授課以及他教導(dǎo)的熱誠,我應(yīng)還是一名門外漢,站在單片機(jī)設(shè)計的門口,卻不知如何進(jìn)入。 //1602使能引腳sbit RW=P2^6。 for(i=0。 0x01。 E = 1。 delay(1)。)* 輸入 : 行,列,需要輸入1602的數(shù)據(jù)* 輸出 : 無***********************************************************************/void L1602_char(uchar hang,uchar lie,char sign){ uchar a。 if(hang == 1) a = 0x80。 p++。 return(deceive_ready)。}/********************************************************************* 名稱 : write_bit()* 功能 : 向DS18B20寫一位* 輸入 : bitval(要對DS18B20寫入的位值)* 輸出 : 無***********************************************************************/void write_bit(uchar bitval){DQ=0。 i8。 temp = temp amp。 delay(2)。 write_byte(jump_ROM)。0x0f。 table[1]=temp%10+0x30。 }}/*****************************中斷函數(shù),對溫度上限調(diào)整******************/void alert2()interrupt 0{ ulong m。 table1[1]=max/10+0x30。 L1602_init()。 delay(200)。 L1602_string(2,1,low=)。 if(P1==0x77) { min。 while(P1==0x77)。 table1[0]=min%10+0x30。 delay(200)。 L1602_init()。 L1602_char(2,7,table1[0])。 } if(P1==0x77) delay(200)。 L1602_string(1,1,warning)。 L1602_char(2,4,table[0])。 table[2]= temp/10%10+0x30。 TMPH = read_byte()。 EA=1。i0。 i8。 receive_data = 0。 i++)。 deceive_ready = DQ。) break。}/********************************************************************* 名稱 : L1602_string(uchar hang,uchar lie,uchar *p)* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示ab cd ef ,調(diào)用該函數(shù)如下 L1602_string(1,5,ab cd ef。}/********************************************************************* 名稱 : L1602_char(uchar hang,uchar lie,char sign)* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符顯示b ,調(diào)用該函數(shù)如下 L1602_char(1,5,39。 delay(1)。 E = 0。 i8。min=10。sbit P12=P1^2。此次的任務(wù)是數(shù)字溫度計的設(shè)計,而在此之前已經(jīng)有很多人研究過了,我們要參考他們的想法,擔(dān)有些地方我們也要勇敢的跳出他們的框架,結(jié)合我們的實際情況進(jìn)行分析設(shè)計,思想不局限于前人。在本次的課程設(shè)計過程中,我發(fā)現(xiàn)了很多的問題,譬如單片機(jī)課程設(shè)計的重點在于軟件算法的設(shè)計,因此需要很巧妙的程序算法。(5)按下調(diào)整下限按鍵,進(jìn)入下限調(diào)節(jié)界面,通過調(diào)節(jié)加減按鍵,可以對溫度下限進(jìn)行調(diào)節(jié)通過以上測試,設(shè)計符合預(yù)期要求。 成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。 主程序發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗9字節(jié)完?CRC校驗正?確?移入溫度暫存器結(jié)束 NNYY啟動系統(tǒng)初始化DS18B20跳過ROM發(fā)出溫度轉(zhuǎn)換命令并讀取溫度值顯示溫度值溫度是否超過上下限聲音報警YN 圖 主程序圖 讀溫度流程圖 讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進(jìn)行CRC校驗,校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。 報警電路四 系統(tǒng)的軟件設(shè)計整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。采用寄生電源供電方式時VDD端接地。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。當(dāng)符號位S=0時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位S=1時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計算十進(jìn)制數(shù)值。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。 DS18B20的內(nèi)部結(jié)構(gòu)DS18B20采用3腳PR-35封裝或8腳SOIC封裝。STC89C52單片機(jī)的RST端外部有兩種操作方式:上電自動復(fù)位和按鍵手動復(fù)位。通過將參考終點保持在抑制溫度并測量該電壓,便可推斷出檢測結(jié)點的溫度,數(shù)據(jù)采集部分則由帶有A/D通道的單片機(jī),在將隨被測溫度變化的電壓或者電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)處理,在顯示電路上,就可以將被測溫度顯示出來。 ℃;178。這里所說的開發(fā)過程[3]并不是一般書中所說的從任務(wù)分析開始,我們假設(shè)已設(shè)計并制作好硬件,下面就是編寫軟件的工作。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。所以新世紀(jì)的工科大學(xué)生既要掌握通用微機(jī),又要掌握“單片機(jī)”。本設(shè)計首先是確定目標(biāo),其后是各個功能模塊的設(shè)計和相應(yīng)程序的編寫,再在Proteus軟件上進(jìn)行仿真,幾經(jīng)編寫,修改,仿真。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。當(dāng)今微型計算機(jī)技