版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、摘要二設計目的和意義1三方案論證和確定23.1系統(tǒng)方案的確定23.2傳感器方案的確定33.3測量顯示方案的確定3四系統(tǒng)工作原理分析4五電路制作和調(diào)試10六附錄16七參考文獻2 7一. 摘要在現(xiàn)今科技高速發(fā)展的時代,各行各業(yè)對控制和測量的要求越來越高,其中, 溫度測量和控制在很多行業(yè)中都有比較重要的使用,尤其在工業(yè)上,如煉鋼時對溫 度高低的控制。要控制好溫度,測量是前提,測量的精度影響著后續(xù)工序的進行, 因此溫度測量的方法和選取就顯得相當重要了。針對各種溫度測量方案的討論分析后,我們組決定以AT89S52為核心,采用DS18B20溫度傳感器進行溫度信號的檢測,并通過LCD液晶顯示測量所得溫度,夕
2、卜加紅外遙控調(diào)節(jié)設置溫度測量的上下限數(shù)值(默認溫度上下限為1OC24C),在所測溫度到達所設上下限數(shù)值時,蜂鳴器啟動報警提示。本報告是我們組所設計的數(shù)字溫度計的說明書,包括方案論證選取、工作原理、所用元件介紹和設計電路原理圖、調(diào)試程序等。二. 設計目的和意義隨著電子技術的高速發(fā)展,對電子方面人才的要求越來越高,不僅要求其具備 相關的專業(yè)理論知識,還要求其具有較強的設計、制作等實踐動手能力。此次課程 設計無疑是對從事測控專業(yè)的人的一次很好的鍛煉和考驗,是培養(yǎng)測控技術的人才 的一次良好的機會,為其提供了一個理論知識和實踐相結(jié)合的平臺。通過本次課程 設計,引導學生結(jié)合所學的測控電路理論知識,思考設計
3、方案,以小組合作方式, 分工完成各個部分,從而掌握相關的測量顯示電路的設計和調(diào)試技術,一方面提高 了學生的實踐動手和協(xié)作能力,另一方面培養(yǎng)了學生綜合運用所學理論知識進行工 程設計的能力。通過此次課程設計,可以培養(yǎng)學生的工程設計能力,包括動手能力、獨立思考 設計能力、解決實際設計過程中遇到的問題以及團隊協(xié)作能力等,為今后的專業(yè)學 習和工程實踐打下堅實的基礎。三. 方案論證和確定3.1系統(tǒng)方案的確定方案一該方案利用AVR單片機對輸入信號進行模數(shù)轉(zhuǎn)換輸出數(shù)字信號控制數(shù)碼管顯示 溫度值。并且可以通過編寫程序?qū)斎胄盘栠M行分段線性化處理,使得測量精度大 大提高,而且該電路無須外接譯碼器,結(jié)構(gòu)簡單。工作框
4、圖如圖1所示:方案二圖1方案一工作框圖該方案以AT89S52為控制器,采用 DS18B20溫度傳感器檢測溫度信號,利用紅工作框圖如圖2所示:經(jīng)過綜合研究分析,考慮整個設圖和成方案方案作框本低,測量溫度方便簡單, 故此次數(shù)字溫度計課程設計選取方案三。3.2傳感器方案的確定方案一該方案采用 AD59QAD590擁有良好的線性關系,靈敏度較高、使用簡單方便。但是這種傳感器的 價格比其他的兩種都貴很多。故不選用。方案二:DS18B20數(shù)字溫度傳感器DS18B20是美國DALLAS半導體公司智能溫度傳感器,他能夠直接讀出被測溫度 并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式從 DS18B
5、20讀出的信息或?qū)懭?DS18B20的信息僅需要一根口線 (單線接口)讀寫,溫度變換功率來 源于數(shù)據(jù)總線,使用 DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。他在測溫精度、 轉(zhuǎn)換時間、傳輸距離、分辨率等方面擁有很大優(yōu)勢,給用戶帶來了更方便的使用和 更令人滿意的效果。經(jīng)過上述二種方案的論證比較,綜合考慮成本、性能等因素,最終選取方案二。3.3測量顯示方案的確定331方案一該方案采用 LED顯示。LED數(shù)碼顯示中每一個像素單元就是一個發(fā)光二極管,如果是單色,一般是紅 色發(fā)光二級管。如果是彩色,一般是三個三原色小二極管組成的一個大二級管。這 些二級管組成的矩陣由數(shù)碼控制實時顯示文字或者圖像,造價相
6、對低廉,組成的顯 像面積大。332方案二該方案采用LCD液晶顯示。液晶顯示器是一種被動式的顯示器,即液晶本身并不發(fā)光,而是利用液晶經(jīng)過處理后能改變光線通過方向的特性,而達到白底黑字或黑底白字顯示的目的。LCD液晶的像素單元是整合在同一塊液晶版當中分隔出來的小方格。通過數(shù)碼控制這些 極小的方格進行顯像。造價高但是顯示非常細膩。經(jīng)過研究分析,選擇方案二。四. 系統(tǒng)工作原理分析本系統(tǒng)由溫度傳感器 DS18B20 AT89S52、LCD顯示電路、軟件構(gòu)成。DS18B20俞出表示攝氏溫度的數(shù)字量,然后用51單片機進行數(shù)據(jù)處理、譯碼、顯示、報警等,系統(tǒng)框圖如圖3所示:圖3系統(tǒng)框圖4.1微控制器原理AT89
7、S52是一個低功耗,高性能 CMOS位單片機,片內(nèi)含 8K Bytes ISP的可反復擦寫100000次的Flash只讀程序存儲器,器件采用ATME公司的高密度、非易失性存儲技術制造,兼容標準 MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,其具有如下特點:40個引腳,8K Bytes Flash片內(nèi)程序存儲器,256 bytes的隨機存取數(shù)據(jù)存儲器,32個外部雙向輸入/輸出口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看 門狗電路,片內(nèi)時鐘振蕩器。單片機引腳如圖4所示:T2/F1 0 ET2EX/P
8、1 I E P1 2 cF1. 3 EFI 4 cH3SI/PI. 5 CMISO/P1. E ESCK/P1. 7 I:rst cNID/P3. 0 匚TXD/F3. 1 ELWTO/'Fa. 2 匚IHI1 3. 3 ET0/F3. 4 CJ1/F3. 5 CWP3,6 匚FS/P3. T CXTAL1 E PBIF GHD C1 40239338437536&35734S339321031113012291S281427152616-2517241$2313202221 V C-: P0. 0 /kDO 口 PO. 1/ADIH PO. 2/kD2 PO. PO. 4/A
9、D4 PO. 5;AE5 PO. GMD6 Pl. 7/AD7 H EA/VPP3 ALE/PROG FESS P2. 7/A15 F2.6/A14 F2. 5/kl33 P2. 4/412B P2. aiu P2. 2/A10 P2. IMS P2 O/AS圖4單片機引腳圖4.2傳感器原理4.2.1DS18B20 簡介DS18B20溫度傳感器是美國 DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,和傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫 度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值 讀數(shù)方式。DS18B20元件圖如圖 5所示:DS18B20的性能特點如下:獨特
10、的單線接口僅需要一個端口引腳進行通信;多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能; 無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5 V;零待機功耗;溫度以9或12位數(shù)字;用戶可定義報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;內(nèi)部結(jié)構(gòu)圖5 DS18B20元件圖DS18B20采用3腳PR- 35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖所示。64位ROM勺結(jié)構(gòu)開始8位是產(chǎn)品類型的編號接著是每個器和控惟一的序號,AL共有48位,最后8位是前面 56位的CR(檢驗碼,這,多個DS18
11、B20可以采用一線進行通信的原因。溫度報警觸發(fā)器64H和TCCM QDon 血傳感器的內(nèi)部存儲器還包括一個高速暫存DS18B20溫L,可通過軟件寫入炷警上卜限度傳感器RAM和一個非易失性的可電擦除的FFRAM高速暫存RA和的結(jié)構(gòu)為8字節(jié)次上包含測得的溫度信息,第3和第"字節(jié)5位時被刷新。第5個的存儲器,TL高勺拷貝結(jié)構(gòu)如圖 高溫觸發(fā)器頭H,是易失的,每1字轉(zhuǎn)換分辨率。DS18B20"字節(jié),為配置寄,工作時寄存器中的分辨率轉(zhuǎn)換為相應精度的溫度數(shù)值。該 口ZZZZ蠱存器,它字節(jié)各位的定義如圖 3所示。低5位一直為VB20DS18B20 出Vd和R 0決定溫度轉(zhuǎn)換的精度位數(shù),來設
12、置分辨率。廠時該位.被設置為匕用戶要去改CRC發(fā)溫度LSBTMR1R011111溫度MSB圖H用戶字節(jié)201 字定義由表1可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換TL用戶字節(jié)2時間越長。因此,在實際使用中要將分辨率和轉(zhuǎn)換時間權(quán)衡配置寄存器考慮。保留R10011R00101分辨率Z位保土1011 C12度最大轉(zhuǎn)向時間/ms保留375187RC 375750V高速暫存RAM的第6、7、表字節(jié)DS留未用,溫度為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的 CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后
13、的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625 C / LSB形式表示。當符號位s = o時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十 進制;當符號位S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計 算十進制數(shù)值。表 2是一部分溫度值對應的二進制溫度數(shù)據(jù)。溫度/ c二進制表示十八進制表示+ 1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191
14、H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90HDS18B20完成溫度轉(zhuǎn)換后,就把測得的部分溫度對應值表中的TH TL字節(jié)內(nèi)容作比 較。若T> TH或TV TL,則將該器件內(nèi)的報警標志位置位,并對主機發(fā)出的報警搜 索命令作出響應。因此,
15、可用多只DS18B2 0同時測量溫度并進行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼( CRC。主機ROM的前 56位來計算CRC®,并和存入 DS18B20的CRC直作比較,以判斷主機收到的 RO嗽 據(jù)是否正確。DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影 響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度 變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還 有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)
16、振蕩器來決定,每次 測量前,首先將-55 C所對應的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中, 計數(shù)器1和溫度寄存器被預置在-55 C所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時, 溫度寄存器的值將加1, 減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到 減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所 測溫度值。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關閉就重復上 述過程,直到溫度寄存器值大致被測溫度值。另外,由于 DS18B20單線通信功
17、能是分時完成的,它有嚴格的時隙概念,因此 讀寫時序很重要。系統(tǒng)對 DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化 DS18B20 (發(fā)復位脈沖發(fā) ROM功能命令宀發(fā)存儲器操作命令宀處理數(shù)據(jù)。測溫原理DS18B20低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器 2的脈沖輸入。當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 C所對應的基數(shù)分別置入減法計數(shù)器1和溫度寄存器
18、中,減法計數(shù)器1和溫度寄存器被預置在-55 C所對應的一個基數(shù)值。減法計數(shù)器 1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法 計數(shù)器1的預置值減到0時溫度寄存器的值將加 1,減法計數(shù)器1的預置將重新被 裝入,減法計數(shù)器 1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循 環(huán)直到減法計數(shù)器 2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的 數(shù)值即為所測溫度。此外,用斜率累加器補償和修正測溫過程中的非線性,其輸出 用于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關閉就重復上述過程,直至溫度寄 存器值達到被測溫度值,4.3溫度數(shù)值分析利用的單片機的一個10 口,讀取DS18B20的溫度
19、高位,溫度低位。由上面的分 析可知:溫度高位的高5位的符號位、低 3位是整數(shù)部分的高四位(整數(shù)部分的最 高位永遠為0),溫度低溫的高四位為整數(shù)部分的低四位,溫度地位的低四位是小數(shù) 部分用以下公式計算:整數(shù)部分=溫度低位/16 +溫度高位X 16小數(shù)部分十分位=(溫度低位&0x0f) X 10/16由于DS18B30的集成度很高,使得設計的原理還是比較簡單,設計的關鍵是了 解DS18B20的時序,準確地獲得溫度高位和溫度低位。五. 電路制作和軟件調(diào)試5.1硬件制作本次設計使用 Protel DXP繪制電路原理圖,生成 PCB圖,然后用雕刻機刻板, 焊接電路元件,最后用程序調(diào)試系統(tǒng)功能。硬
20、件電路主要由單片機最小系統(tǒng)、DS18B20為核心的傳感器電路、液晶顯示電路、報警電路、紅外遙控電路和供電電路組成。單片機最小系統(tǒng):提供一個上電復位高電平,和12MHZ寸鐘振蕩。DS18B20傳感器電路:加電即可工作,DATA端加4.7K電阻作上拉電阻保證有足 夠大的灌拉電流。液晶顯示電路:報警電路:利用 5V蜂鳴器作報警提示。供電電路:利用 7805組成線性穩(wěn)壓電源為整個系統(tǒng)供電。具體電路連接見附錄 SCH電路原理圖,硬件接線正確,單片機能構(gòu)正常工作,硬件調(diào)試成功。5.2軟件調(diào)試首先用Proteus進行仿真,調(diào)試程序,然后在制作好的電路板上調(diào)試程序。測 溫精度可取到小數(shù)點后三位。主程序流程主程
21、序說明:小于 10度,亮黃色LED,表示較涼,開蜂鳴器;大于24度,亮綠色LED,表示溫度較熱,開蜂鳴器; 遙控遠程控制,改變上下限報警溫度。主程序流程圖如圖 8所示:開始圖8主程序流程圖522子程序流程DS18B20工作流程圖如圖 9所示;計算溫度流程圖如圖 10、圖11所示;溫度讀取流程圖如圖 12所示。初始化NY開始調(diào)用顯示子程序發(fā)DS18B20復位命令1F發(fā)跳過ROM命令0.5 S 到?溫度零下?N發(fā)讀取溫度命令Y溫度值取補碼置“一”標志Y初次上電計算小數(shù)位溫度BCD直 圖10計算溫度流程圖讀岀溫度值溫度計UY置“讀取標志,算處L計算整數(shù)位溫度BCD直溫度數(shù)據(jù)移入顯示寄存器圖9 DS1
22、8B20工作流程圖YY9字節(jié)完?YN移入溫度暫存器CRC校驗正?十位數(shù)0 ?百位數(shù)0 ?十位數(shù)顯示符號百位數(shù)不顯示結(jié)束圖11顯示數(shù)據(jù)刷新流程圖結(jié)束百位數(shù)顯示數(shù)據(jù)(不顯示符號)圖12 溫度讀取流程圖六. 附錄6.1課程設計心得體會本次課程設計,我們組成功完成了數(shù)字溫度計的設計、制作和調(diào)試。三天的時 間里,我們分工合作,組長全瑞負責寫程序,我和景存負責電路部分(主要繪制電 路、焊接電路),安榮負責刻板、包裝。最后的調(diào)試工作我們共同參和,遇到了不少 問題,大家從電路、程序中尋找出錯的原因(負責檢查自己負責的那部分,并作相 應修改),經(jīng)過討論、思考找到解決的方法,使得最終用程序調(diào)試電路顯示成功。在這里
23、,很感謝和我共同奮斗的我們組的成員,尤其是景存,在我繪制電路原 理圖和PCB圖時給予我很多幫助。 這次課程設計,我嘗試用Protel DXP繪制電路圖, 因為我們在討論方案是確定了電路制作方面采用刻板方式。雖然以前有學過Protel99,但從未接觸過 DXP所以還是去圖書館借了相關的書籍,邊學邊繪制。這次用 DXP而不用99,主要是考慮到對以后學習FPGA等會有更大的幫助。繪制電路圖的過程中,的確遇到了不少問題。雖然這次設計的電路并不復雜,(主要由單片機最小系統(tǒng)、DS18B20測溫電路、液晶顯示電路、紅外遙控電路、報警電路和供電電路組成),但里面的元件查找和封裝很繁瑣,導入PCB后有些封裝太大
24、,要做相應的替換。通過這次繪制電路,認識了不少元件的各種封裝,更學會了 刻板時用到的相關參數(shù)的設置,例如焊盤、布線等參數(shù)的設置。因為是第一次刻板, 在設置這些參數(shù)時還請教了我們513實驗室的師兄,在這里非常感謝他們給予的幫助。導入PCB后,更頭痛的是布局。剛開始嘗試用自動布局功能,但是出來的效果 不是很理想,有不少跳線,所以還是用手動布局。對應著電路原理圖,初步調(diào)整元 件的位置,在盡量避免線路的交叉。在布局過程中,景存和我一起思考討論布局方 案,可是第一次自動布線后,還是有不少跳線。我們研究自動布線時線路的走向, 討論怎樣移動一下元件的位置能讓這里的跳線消除,讓線路有空間繞過去而不必跳 線。另
25、外結(jié)合刻板的實際(例如雕刻機的刀有些鈍),線的大小和焊盤孔徑的大小的修改也相當考驗我。當安榮把第一塊板刻出來時,發(fā)現(xiàn)線太細,有些幾乎要斷了, 孔徑太小,根本無法鉆孔。就這樣,我結(jié)合師兄給予的建議和實際出來的效果修改 了相關參數(shù),最后終于有所成效。出來自己負責的繪制電路原理圖和 PCB圖外,我還學會了雕刻電路板(例如如 何定位雕刻刀、如何調(diào)整進刀的大小等) ,在電路調(diào)試中更是深有感慨。一個作 品無論大小、復雜或簡單,在軟硬件相結(jié)合的過程中總會出現(xiàn)一些問題,要我們?nèi)?調(diào)試,去檢查,才能使結(jié)果更精確。而且調(diào)試時讓我著實體會到前期電路制作部分 很重要,電路制作得好,會減少調(diào)試中出現(xiàn)問題的可能性。這次課
26、程設計我受益匪淺,也是進實驗室以來的又一次不錯的經(jīng)歷。團隊協(xié)作 做出來的作品,每一部分都不可或缺,既要分工又要合作,這樣才能有更佳的效果。6.2系統(tǒng)電路原理圖6.5程序代碼* *1 rniRAQ* #in elude <reg52.h>#defi ne uchar un sig ned char #defi ne uint un sig ned intsbit rs=P2A7;/液晶使能端口sbit rw=P2A6;sbit e=P2A5;sbit P3_6=P3A6;sbit P1_0=P1A0;sbit P1_ 仁P1A1;/sbit P1_0 = P1A0;/sbit P1_
27、1 = P1A1;void delay_ms(uchar ms) / 延時 uint i,j;for(i=0;i<ms;i+) for(j=0;j<120;j+);void lcd_wcmd(uchar cmd) / 液晶寫指令 rs=0;rw=0;e=0;P0=cmd;e=1;e=0;delay_ms(5);/液晶寫數(shù)據(jù)void lcd_wdat(uchar dat)rs=1;rw=0; e=0; P0=dat; e=1;e=0;delay_ms(5);void lcd_dis(uchar post,uchar *p)lcd_wcmd(0x80 | post); /設置數(shù)據(jù)地址指
28、針顯示while(*p!='0')lcd_wdat(*p+);字符Cuchar code def_char0=0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00; / void lcd_wcgram(uchar adress,uchar tmp)uchar i;for(i=0;i<8;i+)lcd_wcmd(adress+i); lcd_wdat(tmpi);void lcdn ti()delay_ms(15);lcd_wcmd(0x38); 16X2 字符,5X7 點陣,8 位數(shù)據(jù)接口lcd_wcmd(0x38);lcd_wcmd(0x08)
29、;/ 關閉顯示lcd_wcmd(0x01);/ 清屏lcd_wcmd(0x06);/設置光標工作方式lcd_wcmd(0x0c);/開顯示,設置光標顯示方式lcd_wcgram(0x48,def_char0);/ 載入用戶自定義字符sbit DQ=P3A7;/18B20 數(shù)據(jù)管腳/*dsi8b20延遲子函數(shù) (晶振 12MHz )*/void delay_18B20(u nsig ned int i)while(i-);void reset() ucharx=0;DQ = 1;DQ 復位delay_18B20(8);/ 稍做延時DQ = 0;/單片機將DQ拉低delay_18B20(80);
30、/ 精確延時 大于 480usDQ = 1;/拉高總線delay_18B20(14);x=DQ;/稍做延時后 如果x=0則初始化成功 x=1則初始化失敗delay_18B20(20);un sig ned char rbyte()uchar i=0;uchar dat = 0;for (i=8;i>0;i-)DQ = 0; /給脈沖信號dat>>=1;DQ = 1; /給脈沖信號if(DQ)dat|=0x80;delay_18B2 0(4);return(dat);void wbyte(uchar dat)uchar i=0;for (i=8; i>0; i-)DQ =
31、 0;DQ = dat&0x01;delay_18B20(5);DQ = 1;dat>>=1;uchar rTempetuare(uchar tmp)uchar a=O,b=O,temp,decimal;uint uival;reset();wbyte(OxCC); /跳過讀序號列號的操作 wbyte(0x44); /啟動溫度轉(zhuǎn)? reset();wbyte(0xCC); /跳過讀序號列號的操作前兩個就是wbyte(OxBE); /讀取溫度寄存器等(共可讀9個寄存器)溫度a=rbyte();/讀取溫度值低位b=rbyte(); /讀取溫度值高位 temp=b;temp&am
32、p;=OxfO;if(temp) / 負溫if(a=0)a=a+1; /bit7向bit8位產(chǎn)生進位b=b+1;elsea=a+1; b=b; else tmpO='-'tmp0='' temp=(b<<4)|(a>>4); decimal=a&0 xOf; uival=decimal*625;/組合/將小數(shù)點后的數(shù)據(jù)提取出來tmp0=T;tmp1='=' tmp2=0x20; tmp3=temp/100| 0x30; tmp4=temp%100/10 | 0x30; tmp5=temp%100%10 | 0x30
33、; tmp 6=0x2e;tmp7=uival/1000| 0x30;tmp8=uival%1000/100| 0x30;tmp9=uival%1000%100/10 | 0x30; tmp10=uival%1000%100%10 | 0x30; tmp11=0x20;tmp12=0x01; tmp13='0' return temp;空格/取百位/取十位/取個位小數(shù)點/十分位/百分位千分位/萬分位/空格/字符C十進制溫度/*/ #defi ne c(x) (x*110592/120000)sbit lr_Pi n=P32;/紅外數(shù)據(jù)管腳unsigned char lr_Buf
34、4; /用于保存解碼結(jié)果 /:un sig ned int lr_Get_Low()/計數(shù)器1,用于解碼延時TL1=0;TH 仁0;TR1=1;while(!lr_Pin && (TH1 &0x80)=0);TR1=0;return TH1*256+TL1;/=un sig ned int lr_Get_High()TL1=0;TH 仁0;TR1=1;while(lr_Pin && (TH1 &0x80)=0);TR1=0;return TH1*256+TL1;char jia nche()char i,j;uint temp;resta rt:
35、計數(shù)器1,用于解碼延時解碼程序if(temp<c(8500) | temp>c(9500) goto restart;/引導脈沖低電平9000temp=Ir_Get_High();if(temp<c(4000) | temp>c(5000) goto restart;/引導脈沖高電平4500while(Ir_Pi n); temp=lr_Get_Low();4個字節(jié)extern uchar mi nTX; exter n uchar maxTX; uchar storeT14; uchar wen du;void t0ISR() in terrupt 1最小報警溫度/最大報警溫度/實際溫度的顯示長度/T0中斷(50ms),中斷讀溫度for(i=0;i<4;i+)for(j=0;j<8;j+)/每個字節(jié)8位temp=Ir_Get_Low(); if(temp<c(200) | temp>c(800) goto restart; temp=Ir_Get_High();if(temp<c(200) | temp>c(2000) goto re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度三方藝術品投資還款協(xié)議書規(guī)范與范本3篇
- 2025年度智慧社區(qū)物業(yè)管理與智能家居系統(tǒng)合同4篇
- 2025年版校企協(xié)同培養(yǎng)國際化人才合同模板3篇
- 二零二五年度美食街改造升級工程合同4篇
- 2025項目投資協(xié)議補充-項目退出機制3篇
- 2025年度私人土地買賣合同范本:全新設計
- 2025年度二零二五年度大學學生宿舍樓學生社團管理與活動支持承包協(xié)議3篇
- 土木工程施工課件-鋼筋工程
- 2025年度廢舊電池回收處理承包合同樣本4篇
- 2025年度航空航天廠房購置及研發(fā)合作合同4篇
- 公司組織架構(gòu)圖(可編輯模版)
- 1汽輪機跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 禮品(禮金)上交登記臺賬
- 普通高中英語課程標準詞匯表
- 北師大版七年級數(shù)學上冊教案(全冊完整版)教學設計含教學反思
- 2023高中物理步步高大一輪 第五章 第1講 萬有引力定律及應用
- 青少年軟件編程(Scratch)練習題及答案
- 浙江省公務員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學
- 全統(tǒng)定額工程量計算規(guī)則1994
評論
0/150
提交評論