版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中北大學信息商務學院課 程 設 計 說 明 書學 生 姓 名: 齊揚 學 號: 10050644x36 學 生 姓 名: 趙亮 學 號: 10050644x38 學 生 姓 名: 高飛 學號: 10050644x40 學 院: 信息商務學院 專 業(yè): 電子信息工程 題 目:專業(yè)綜合實踐之單片機部分: 基于單片機的電子密碼鎖的設計王浩全指導教師: 職稱: 教授 2014 年 1 月 10 日中北大學信息商務學院課程設計任務書 2013/2014 學年第 1 學期學 院: 信息與通信工程學院 專 業(yè): 電子信息工程 學 生 姓 名: 齊揚 學 號: 10050644x36 學 生 姓 名: 趙亮
2、學 號: 10050644x38 學 生 姓 名: 高飛 學號: 10050644x40 課程設計題目: 專業(yè)綜合實踐之單片機信息處理部分: 基于單片機的溫度顯示電路的設計 起 迄 日 期: 2013年12 月3 0 日2014年1月 10 日 課程設計地點: 5院樓 201,510 實驗室 指 導 教 師: 王浩全 系 主 任: 王浩全 下達任務書日期: 2013 年 12 月30日課 程 設 計 任 務 書1設計目的:本課程設計主要針對電子信息工程專業(yè)課程體系設置的要求,安排的一種綜合性的課程設計。一方面為了培養(yǎng)學生在查閱資料、復習、學習知識的基礎上,進行包括機、電系統(tǒng)的設計、計算、仿真、
3、編程、調試等多個環(huán)節(jié)的綜合能力培養(yǎng);另一方面,也是對學生進行畢業(yè)設計前的一次大型練兵,進一步培養(yǎng)學生獨立地分析、解決實際問題的實際能力。另外還培養(yǎng)學生用專業(yè)的、簡潔的文字,清晰的圖表來表達自己設計思想的能力。2設計內容和要求(包括原始數(shù)據(jù)、技術參數(shù)、條件、設計要求等):單片機選用89c51檢測范圍-55-+125度-10-+85度范圍內精度為0.5度三位顯示3設計工作任務及工作量的要求包括課程設計計算說明書(論文)、圖紙、實物樣品等:(1)提供核心器件的工作原理與應用介紹;(2)提供用protel設計的電路原理圖,印刷板電路圖;(3)提供用multisim、maxplus、proteus、me
4、dwin、keilc等軟件對電路的仿真、編程與分析;(4)提供符合規(guī)定要求的課程設計說明書;(5)提供參考文獻不少于15篇,且必須是相關的參考文獻; 課 程 設 計 任 務 書4主要參考文獻:l 要求按國標gb 771487文后參考文獻著錄規(guī)則書寫,例:1 傅承義,陳運泰,祁貴中.地球物理學基礎.北京:科學出版社,1985 (5篇以上)5設計成果形式及要求:(1)電路原理圖、程序、仿真結果、pcb圖;(2)課程設計說明書;6工作計劃及進度:2013年12月 30 日 2014年1 月 1 日:查閱資料;2014年:1 月 2 日 1 月 7 日:方案設計、實驗驗證;1 月 8 日 1 月 9
5、日:完成課程設計說明書; 1 月 10 日:答辯。系主任審查意見: 簽字: 年 月 日設計說明書應包括以下主要內容: (1)封面:課程設計題目、班級、姓名、指導教師、時間 (2)設計任務書 (3)目錄 (4)設計方案簡介 (5)設計條件及主要參數(shù)表 (6)設計主要參數(shù)計算 (7)設計結果 (8)設計評述,設計者對本設計的評述及通過設計的收獲體會 (9)參考文獻 目錄1前言.12設計任務及要求.1 2.1設計任務.1 3設計方案及器材選用分析.2 3.1設計總體方案.2 3.1.1方案的總體設計框圖.3 3.2器材選用分析.3 3.2.1ds18b20溫度傳感器.3 3.2.2溫度傳感器原理圖及
6、pcb圖.9 3.2.3溫度傳感器仿真程序.11 3.3軟件流程圖.15 3.3.1主程序.15 3.3.2讀溫子程序.16 3.3.3溫度轉換子程序.16 3.3.4計算溫度子程序.174硬件電路的設計.17 4.1protues軟件介紹.17 4.1.1protues軟件.17 4.1.2主控制電路at89c51原理圖.18 4.2protues進行仿真.194.2.1protues仿真圖.194.2.2 ds18b20顯示程序.214.2.3pcb圖及3d圖.295總結.316參考文獻.31 前言本次課程設計,就是用單片機實現(xiàn)溫度控制,傳統(tǒng)的溫度檢測大多以熱敏電阻為溫度傳感器,但熱敏電阻
7、的可靠性差,測量溫度準確率低,而且必須經過專門的接口電路轉換成數(shù)字信號才能由單片機進行處理。本次采用ds18b20數(shù)字溫度傳感器來實現(xiàn)基于51單片機的數(shù)字溫度計的設計。傳統(tǒng)的溫度計有反應速度慢、讀數(shù)麻煩、測量精度不高、誤差大等缺點而下面利用集成溫度傳感器ad590設計并制作了一款基于at89c51的4位數(shù)碼管顯示的數(shù)字溫度計,其電路簡單,軟硬件結構模塊化,易于實現(xiàn)。 該數(shù)字溫度計利用ad590集成溫度傳感器及其接口電路完成溫度的測量并轉換成模擬電壓信號,經由模數(shù)轉換器adc0804轉換成單片機能夠處理的數(shù)字信號,然后送到單片機at89c51中進行處理變換,最后將溫度值顯示在d4、d3、d2、d
8、1共4位七段碼led顯示器上。系統(tǒng)以at89c51單片機為控制核心,加上ad590測溫電路、adc模數(shù)轉換電路、4位溫度數(shù)據(jù)顯示電路以及外圍電源、時鐘電路等組成。2設計任務及要求2.1設計任務本次采用ds18b20數(shù)字溫度傳感器來實現(xiàn)基于51單片機的數(shù)字溫度計的設計。該數(shù)字溫度計利用ad590集成溫度傳感器及其接口電路完成溫度的測量并轉換成模擬電壓信號,經由模數(shù)轉換器adc0804轉換成單片機能夠處理的數(shù)字信號,然后送到單片機at89c51中進行處理變換,最后將溫度值顯示在d4、d3、d2、d1共4位七段碼led顯示器上。系統(tǒng)以at89c51單片機為控制核心,加上ad590測溫電路、adc模數(shù)
9、轉換電路、4位溫度數(shù)據(jù)顯示電路以及外圍電源、時鐘電路等組成。3課程設計方案及器材選用分析3.1設計總體方案本數(shù)字溫度計設計采用智能溫度傳感器ds18b20作為檢測元件,測溫范圍為-55c至+125c,最大分辨率可達0.0625c。ds18b20可以直接讀出被測量的溫度值,而采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點。按照系統(tǒng)設計功能的要求,確定系統(tǒng)由三個模塊組成:主控制器stc89c51,溫度傳感器ds18b20,驅動顯示電路??傮w電路框圖如下:3.1.1總體方案的設計框圖溫度計電路設計總體設計方框圖如圖3.2所示,控制器采用單片機at89s51,溫度傳感器采用ds
10、18b20,用3位led數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。ds18b20 采用3 腳pr-35 封裝或8 腳soic 封裝。主控制器:單片機at89s51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產品的設計使用系統(tǒng)可用二節(jié)電池供電。顯示電路:顯示電路采用3位共陽led數(shù)碼管,從p3口rxd,txd串口輸出段碼。3.2器材選用分析3.2.1ds18b20溫度傳感器1. ds18b20的特點本設計的測溫系統(tǒng)采用芯片ds18b20,ds18b20是dallas公司的最新單線數(shù)字溫度傳感器,它的體積更小,適用電壓更寬,更經濟。實現(xiàn)方法簡介ds18b2
11、0采用外接電源方式工作,一線測溫一線與stc89c51連接,測出的數(shù)據(jù)放在寄存器中,將數(shù)據(jù)經過bcd碼轉換后送到led顯示。 ds18b20內部結構主要由四部分組成:64位光刻rom,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器th和tl,高速暫存器。64位光刻rom是出廠前被光刻好的,它可以看作是該ds18b20的地址序列號。不同的器件地址序列號不同。 64位rom的結構開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的crc檢驗碼,這也是多個ds18b20可以采用一線進行通信的原因。溫度報警觸發(fā)器和,可通過軟件寫入戶報警上下限。ds18b20溫度傳感器的內部存儲
12、器還包括一個高速暫存ram和一個非易失性的可電擦除的eeram。高速暫存ram的結構為字節(jié)的存儲器,結構如圖2-3-2所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)th和tl的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內容用于確定溫度值的數(shù)字轉換分辨率。ds18b20工作時寄存器中的分辨率轉換為相應精度的溫度數(shù)值。該字節(jié)各位的定義如下圖所示。低5位一直為1,tm是工作模式位,用于設置ds18b20在工作模式還是在測試模式,ds18b20出廠時該位被設置為0,用戶要去改動,r1和0決定溫度轉換的精度位數(shù),來設置分辨率。圖3.5 ds18b20的字節(jié)定義ds18b20
13、高速暫存器共9個存存單元,如表所示:表3-1 ds18b20的引腳分布圖序號 寄存器名稱 作 用 序號 寄存器名稱 0 溫度低字節(jié) 以16位補碼形式存放 4、5 保留字節(jié)1、2 1 溫度高字節(jié) 6 計數(shù)器余值 2 th/用戶字節(jié)1 存放溫度上限 7 計數(shù)器/ 3 hl/用戶字節(jié)2 存放溫度下限 8 crc 以12位轉化為例說明溫度高低字節(jié)存放形式及計算:12位轉化后得到的12位數(shù)據(jù),存儲在18b20的兩個高低兩個8位的ram中,二進制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于
14、0.0625才能得到實際溫度。 高8位 s s s s s 26 25 24 低8位 23 22 21 20 2-1 2-2 2-3 2-4 表3-2 ds18b20的字節(jié)存放表由下圖可以看到,dsl8820的內部存儲器是由8個單元組成,其中第0、1個存放測量溫度值,第2、3分別存放報警溫度的上下限值,第4單元為配置單元,5、6、7單元在dsl8820這里沒有被用到。對于第4個寄存器,用戶可以設置溫度轉換精度,系統(tǒng)默認12bit轉換精度,相當于十進制的00625,其轉換時間大約為750磷。具體見表2-4-1。圖3.6 內部存儲器結構圖表3-3 溫度精度配置r1r0轉換精度(16進制)轉換精度(
15、十進制)轉換時間009bit0.593.75ms0110bit0.25187.5ms1011bit0.125375ms1112bit0.0625750ms 由可見,ds18b20溫度轉換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。高速暫存ram的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當ds18b20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出
16、該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當符號位s0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位s1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表2-4-2是一部分溫度值對應的二進制溫度數(shù)據(jù)。表3-4 溫度精度配置溫度/二進制表示十六進制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00
17、100008h00000 0000 0000 10000000h-0.51111 1111 1111 0000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90hds18b20完成溫度轉換后,就把測得的溫度值與ram中的th、tl字節(jié)內容作比較。若tth或ttl,則將該器件內的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只ds18b20同時測量溫度并進行報警搜索。在64位rom的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(crc)。主機rom的前
18、56位來計算crc值,并和存入ds18b20的crc值作比較,以判斷主機收到的rom數(shù)據(jù)是否正確。ds18b20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預置在55所對應的一個基數(shù)值。減法計數(shù)器
19、1對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。 另外,由于ds18b20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作按協(xié)議進行。操作協(xié)議為:初使化ds18b20(發(fā)復位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令
20、處理數(shù)據(jù)。 由于ds18b20采用的“一線總線”結構,所以數(shù)據(jù)的傳輸與命令的通訊只要通過微處理器的一根雙向io口就可以實現(xiàn)。dsl8b20約定在每次通信前必須對其復位。 圖3.7 復位時序圖 本文中有at89s52提供,trstl的最小時延為,然后釋放總線,檢查dsl8b20的返回信號,看其是否已準備接受其他操作,其中tpdhigh時間最小為,最長不能超過,否則認為ds18b20沒有準備好,主機應繼續(xù)復位,直到檢測到返回信號變?yōu)榈碗娖綖橹?。?-5 ds18b20的rom操作指令操作指令33h55hcchf0hech含義讀rom匹配rom跳過rom搜索rom報警搜索rom表3-6 ds18b2
21、0的存儲器操作指令操作指令4ehbeh48h44hd8hb4h含義寫讀內部復制溫度轉換重新調出讀電源主機一旦檢測到ds18b20的存在,根據(jù)ds18b2的工作協(xié)議,就應對rom進行操作,接著對存儲器操作,最后進行數(shù)據(jù)處理。在ds18b20中規(guī)定了5條對rom的操作命令。主機在發(fā)送完rom操作指令之后,就可以對ds18b20內部的存儲器進行操作,同樣ds18b20規(guī)定了6條操作指令。 ds18b20的讀、寫時序圖見圖3.8。圖3.8 ds18b20的讀寫時序圖2. ds18b20的使用方法由于ds18b20采用的是1wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對at89s51單片機
22、來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對ds18b20芯片的訪問。由于ds18b20是在一根i/o線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求。ds18b20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。對于ds18b20的讀時序分為讀0時序和讀1時序兩個過程。對于ds
23、18b20的讀時隙是從主機把單總線拉低之后,在15秒之內就得釋放單總線,以讓ds18b20把數(shù)據(jù)傳輸?shù)絾慰偩€上。ds18b20在完成一個讀時序過程,至少需要60us才能完成。ds18b20的寫時序,對于ds18b20的寫時序仍然分為寫0時序和寫1時序兩個過程,對于ds18b20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證ds18b20能夠在15us到45us之間能夠正確地采樣io總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內就得釋放單線3.2.2溫度傳感器設計原理圖及pcb圖溫度傳感器仿真圖溫度傳感器仿真pcb圖3.2.3溫度傳感器仿真程
24、序#include #include #define uchar unsigned char #define uint unsigned int sbit dq=p27; uchar t; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f; void delay1(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void delay(uint n)/廷遲時間為(24+n*16)us int i; for(i=0;in;i+); /* void init
25、() bit flag=1; while (flag) while (flag) dq = 1; _nop_(); dq = 0; delay(50); dq = 1; delay(3); flag = dq; delay(10); flag = dq; dq=1; /* 兩個初始換 都可以 /*/ void init() dq=1; delay(0); dq=0; delay(50); /廷遲24+50*16=824us dq=1; delay(3); /48us delay(10); /184us dq=1; void write(uchar date) uint i; for (i=0;
26、 i= 1; /右移一位 uchar read() uint i, value=0; dq=1; _nop_(); /一個機器周期:(1/11.0952(即晶振頻率)*12=1.085us for (i=0; i1; /15us 之內必須讀完一位 dq = 0; /設i=0 :value=0101 0101 1 得到:0010 1010 _nop_(); / 讀到的dq=1,0010 10101000 0000=1010 1010 _nop_(); / i=1: value=01010101 dq = 1; /讀到的dq=0, value=01010101 _nop_(); /i=2: val
27、ue=0010 1010 _nop_(); if (dq) /先讀最低位 value|=0x80; delay(2); / 56us dq=1; return(value); void display(uchar num) uchar a,b; a=num/10; b=num%10; p0=tablea; p2=0xfe; delay1(5); p2=0xff; delay1(5); p0=tableb; p2=0xfd; delay1(5); p2=0xff; delay1(5); uchar read_wen_du() uchar hb,lb,temp; init(); / 復位 writ
28、e(0xcc); / 跳過rom 即不必讀64位序列號的rom write(0x44); / 啟動溫度轉換 init(); write(0xcc); / 跳過rom 即不必讀64位序列號的rom write(0xbe); / 讀命令 lb=read(); / 低八位 1011 1010 hb=read(); / 高八位 1111 1010 hb=hb4; / (lb&0xf0)=1011 0000 4 :0000 1011 +hb :1010 1011 temp=hb; return temp; / 返回溫度值 void main() while(1) t=read_wen_du(); dis
29、play(t); 3.3軟件流程圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.3.1主程序主程序的主要功能是負責溫度的實時顯示、讀出并處理ds18b20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內測量一次被測溫度,其程序流程見圖7所示。3.3.2讀溫子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時需進行crc校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖8示3.3.3溫度轉換子程序溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序
30、延時法等待轉換的完成。溫度轉換命令子程序流程圖如上圖,圖3.14所示3.3.4計算溫度子程序計算溫度子程序將ram中讀取值進行bcd碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖3.15所示4硬件電路的設計4.1protues軟件介紹4.1.1protues軟件protel99 se 5共分5個模塊,分別是原理圖設計、pcb設計(包含信號完整性分析)、自動布線器、原理圖混合信號仿真、pld設計。 以下介紹一些protel99se的部分最新功能: l 可生成30多種格式的電氣連接網絡表; l 強大的全局編輯功能; l 在原理圖中選擇一級器件,pcb中同樣的器件也將被選中; l 同時運行原
31、理圖和pcb,在打開的原理圖和pcb圖間允許雙向交叉查找元器件、引腳、網絡 l 既可以進行正向注釋元器件標號(由原理圖到pcb),也可以進行反向注釋(由pcb到原理圖),以保持電氣原理圖和pcb在設計上的一致性; l 滿足國際化設計要求(包括國標標題欄輸出,gb4728國標庫); * 方便易用的數(shù)?;旌戏抡妫嫒輘pice 3f5); l 支持用cupl語言和原理圖設計pld,生成標準的jed下載文件; * pcb可設計32個信號層,16個電源-地層和16個機加工層; l 片機文件、測試點報告等; l 經過充分驗證的傳輸線特性和仿真精確計算的算法,信號完整性分析直接從pcb啟動; l 反射和串
32、擾仿真的波形顯示結果與便利的測量工具相結合; 4.1.2主控制電路at89c51原理圖圖5.16主電路原理圖圖5.17 數(shù)碼管連線圖5.18 系統(tǒng)報警電路圖5.19電路的pcb圖4.2protues進行仿真程序編寫完以后,我們先對其進行仿真,初步驗證電路圖和程序的可行性和正確性。4.2.1protues仿真圖4.2.2 ds18b20顯示程序#include #define uint unsigned int#define uchar unsigned char /宏定義sbit p34=p24;sbit p35=p25;sbit p36=p26;sbit dp=p07;sbit p37=p2
33、7;sbit dq=p22; /定義ds18b20總線i/osbit set=p31; /定義選擇報調整警溫度上限和下限(1為上限,0為下限)/*p3.2和p3.3為調整溫度報警增加鍵和減少鍵*/sbit ling=p20; /定義響鈴signed char m; /溫度值全局變量bit sign=0; /外部中斷狀態(tài)標志signed char shangxian=38; /上限報警溫度,默認值為38signed char xiaxian=6; /下限報警溫度,默認值為5uchar code leddata=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x8
34、0,0x90,0xff,0xbf;/*延時子程序*/void delay(uint i) while( i- );/*初始化ds18b20*/void init_ds18b20(void) unsigned char x=0; dq=1; delay(8); /稍做延時 dq=0; /單片機將dq拉低 delay(80); /精確延時,大于480us dq=1; /拉高總線 delay(14); x=dq; /稍做延時后,如果x=0則初始化成功,x=1則初始化失敗 delay(20);/*讀一個字節(jié)*/unsigned char readonechar(void) unsigned char
35、i=0; unsigned char dat=0; for (i=8;i0;i-) dq=0; / 給脈沖信號 dat=1; dq=1; / 給脈沖信號 if(dq) dat|=0x80; delay(4); return(dat);/*寫一個字節(jié)*/void writeonechar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) dq=0; dq=dat&0x01; delay(5); dq=1; dat=1; void tmpchange(void) /發(fā)送溫度轉換命令 init_ds18b20(); writeonecha
36、r(0xcc); /跳過讀序號列號的操作 writeonechar(0x44); /啟動溫度轉換/*讀取溫度*/unsigned int readtemperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; tmpchange(); init_ds18b20(); writeonechar(0xcc); /跳過讀序號列號的操作 writeonechar(0xbe); /讀取溫度寄存器 a=readonechar(); /讀低8位 b=readonechar(); /讀高8位 t=b;
37、tshangxian | mxiaxian) ling=1; /溫度不在范圍內報警 else ling=0;p34=0;p35=0;p36=0;p37=0; p0 =leddatad; /顯示小數(shù)點后兩位 p34=1;p35=0;p36=0;p37=0; delay(300);p34=0;p35=0;p36=0;p37=0; p0 =leddatac; /顯示小數(shù)點后一位p34=0;p35=1;p36=0;p37=0; delay(300);p34=0;p35=0;p36=0;p37=0; p0 =leddatab; /顯示個位dp=0;p34=0;p35=0;p36=1;p37=0; del
38、ay(300);p34=0;p35=0;p36=0;p37=0; p0 =leddataa; /顯示十位p34=0;p35=0;p36=0;p37=1; delay(300);p34=0;p35=0;p36=0;p37=0; /關閉顯示disptiaozheng() uchar f,g,j,k; f=shangxian/10; g=shangxian%10; j=xiaxian/10; k=xiaxian%10;p34=0;p35=0;p36=0;p37=0; p0 =0xc0; /顯示0p34=1;p35=0;p36=0;p37=0; delay(200);p34=0;p35=0;p36=0;p3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 華師大版數(shù)學七年級上冊《2.13 有理數(shù)的混合運算》聽評課記錄2
- 《兩漢的科技和文化》名師聽課評課記錄(新部編人教版七年級上冊歷史)
- 陜教版道德與法治九年級下冊9.2《做負責公民》聽課評課記錄
- 現(xiàn)場安全方案協(xié)議書(2篇)
- 人教部編版八年級下冊道德與法治1.2《治國安邦的總章程》 聽課評課記錄
- 小學數(shù)學-五年級下冊-1-1觀察物體(聽評課記錄)
- 部編版八年級歷史上冊《第17課 中國工農紅軍長征》表格式聽課評課記錄
- 中圖版歷史七年級下冊第12課《影響世界的宋元科技成就》聽課評課記錄
- 魯教版歷史六年級上冊第8課《大變革的時代》聽課評課記錄
- 五年級上冊數(shù)學聽評課記錄《5.5 分數(shù)基本性質》(4)-北師大版
- 工業(yè)機器人編程語言:Epson RC+ 基本指令集教程
- 2024年同等學力申碩統(tǒng)考英語卷
- 2023.05.06-廣東省建筑施工安全生產隱患識別圖集(高處作業(yè)吊籃工程部分)
- 2023年漢中市人民政府國有資產監(jiān)督管理委員會公務員考試《行政職業(yè)能力測驗》歷年真題及詳解
- 2024年上海高考數(shù)學真題試題(原卷版+含解析)
- JTG 3362-2018公路鋼筋混凝土及預應力混凝土橋涵設計規(guī)范
- 八年級下冊歷史思維導圖
- 電動汽車用驅動電機系統(tǒng)-編制說明
- 江蘇卷2024年高三3月份模擬考試化學試題含解析
- 2024年四川省成都市新都區(qū)中考英語一診試卷(含解析)
- 醫(yī)療器械物價收費申請流程
評論
0/150
提交評論