版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于1-wrie串行總線應(yīng)用系統(tǒng)的設(shè)計課程設(shè)計報告專 業(yè): 電子科學(xué)與技術(shù) 班 級: 0902 姓 名: xxx 指導(dǎo)教師: xxxxx 二0一二年 十 月 十八 日目錄一、設(shè)計任務(wù)31.1設(shè)計題目及要求31.2 設(shè)計思路3二、設(shè)計方案42.1 單片的選擇42.2 溫度傳感器的選擇42.3 顯示器的選擇52.4 設(shè)計方案5三、電路設(shè)計53.1 AT89S51單片機的特殊功能部件53.2 DS18B20的工作原理63.3 硬件電路設(shè)計及其分析73.4 DS18B20測溫流程及軟件設(shè)計10四、心得體會19五、參考書目19第一部分 設(shè)計任務(wù)1.1設(shè)計題目及要求設(shè)計制作一個DS18B20溫度計。1利用
2、單總線完成對DS18B20的初始化操作。2利用4位數(shù)碼顯示實時環(huán)境溫度3增加2個按鍵,分別用于實現(xiàn)啟動測溫和關(guān)閉(停止)測溫功能。4硬件方面需要9V轉(zhuǎn)5V穩(wěn)壓電路。1.2 設(shè)計思路溫度計電路設(shè)計總體設(shè)計方框圖如圖1所示,控制器采用單片機AT89S51,溫度傳感器采用DS18B20,用2位LED數(shù)碼管傳送數(shù)據(jù)實現(xiàn)溫度顯示。主 控 制 器LED顯 示溫 度 傳 感 器單片機復(fù)位時鐘振蕩報警點按鍵調(diào)整整圖1總體設(shè)計方框圖第二部分 設(shè)計方案2.1單片機的選擇采用AT89S51單片機。中央微處理器 AT89S51: AT89S51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(
3、In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80S51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,
4、看門狗(WDT)電路,片內(nèi)時鐘振蕩器。2.2溫度傳感器的選擇采用數(shù)字單片智能溫度傳感器DS18B20。 DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO92小體積封裝形式;溫度測量范圍為55125,可編程為9位12位A/D轉(zhuǎn)換精度,測溫分辨率可達0.0625,被測溫度用符號擴展的16位數(shù)字量方式串行輸出,其工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。DS18B20支持“一線總線”接口,測量溫度范圍為 -55+125,在
5、-10+85范圍內(nèi),精度為0.5。DS18B20的精度較差為±0.2 ?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量。如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3V5.5V的電壓范圍,使系統(tǒng)設(shè)計更靈活、方便。由于DS18B20將溫度傳感器、信號放大調(diào)理、A/D轉(zhuǎn)換、接口全部集成于一芯片,與單片機連接簡單、方便,與AD590相比是更新一代的溫度傳感器,所以溫度傳感器采用DS18B20。2.3顯示器的選擇采用傳統(tǒng)的七段數(shù)碼LED顯示器。LED數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之
6、一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。2.4設(shè)計方案采用數(shù)字溫度芯片DS18B20 測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)
7、的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度時,最大線形偏差小于1 攝氏度。DS18B20 的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器AT89S51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對多DS18B20控制工作,還可以與PC 機通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程
8、技術(shù)及外圍功能電路的配合使用都很成熟。第三部分 電路設(shè)計3.1 AT89S51單片機的特殊功能部件(1)定時/計數(shù)器AT89S51有兩個16位可編程定時/計數(shù)器T0和T1,它們分別有兩個獨立的8位寄存器THx和TLx構(gòu)成,通過編程設(shè)置可以實現(xiàn)4種工作方式。(2)中斷系統(tǒng) 51單片機具備較完善的中斷功能,有2個外部中斷、2個內(nèi)部定時器中斷和1個串行口中斷,可以實現(xiàn)不同的控制要求,并具有兩級的優(yōu)先級。 (3)時鐘振蕩電路 51內(nèi)置一個振蕩器和時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,常用頻率為6MHZ、11.0592MHZ、12MHZ。振蕩器實際上是一個高增益反相器,使用時需外接一個晶振和兩個相
9、匹配的電容。 3.2 DS18B20的工作原理DS18B20的測溫原理如圖3-1所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預(yù)置在-55 所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計
10、數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計數(shù)器 1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖2中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達到被測溫度值。另外,由于DS18B20單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20 (發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲
11、器操作命令處理數(shù)據(jù)。 圖3-1DS18B20的測溫原理3.3 硬件電路設(shè)計及其分析 硬件電路由總控制器電路、DS18B20測溫電路、LED動態(tài)顯示電路組成。 (1)總控制器總控制器有電源電路、時鐘電路、復(fù)位電路三部分構(gòu)成。時鐘電路對單片機系統(tǒng)而言是必需的。由于單片機內(nèi)部是由各種各樣的數(shù)字邏輯器件(如觸發(fā)器寄存器存儲器等)構(gòu)成,這些數(shù)字器件的工作必須按時間順序完成,這種時間順序就稱為時序。時鐘電路就是提供單片機內(nèi)部各種操作的時間基準(zhǔn)的電路,沒有時鐘電路單片機就無法工作。此次設(shè)計中,我們采用由由內(nèi)部方式產(chǎn)生時鐘的方法形成時鐘電路。內(nèi)部方式:在XTAL1和XTAL2端外接石英晶體作定時元件,內(nèi)部反相
12、放大器自激振蕩,產(chǎn)生時鐘。時鐘發(fā)生器對振蕩脈沖二分頻,即若石英頻率fosc6MHz,則時鐘頻率3MHZ,因此,時鐘是一個雙相信號,由P1相和P2相構(gòu)成。fosc可在2MHZ12MHZ選擇。小電容可以取30PF左右。XTAL1和XTAL2為片內(nèi)振蕩電路輸入線,這兩個端子用來外接石英晶體和微調(diào)電容。在石英晶體的兩個管腳加交變電場時,它將會產(chǎn)生一定頻率的機械變形,而這種械振動又會產(chǎn)生交變電場,上述物理現(xiàn)象稱為壓電效應(yīng)。一般情況下,無論是機械振動的振幅,還是交變電場的振幅都非常小。但是,當(dāng)交變電場的頻率為某一特定值時,振幅驟然增大,產(chǎn)生共振,稱之為壓電振蕩。這一特定頻率就是石英晶體的固有頻率(諧振頻率
13、)。即用來連接單片機內(nèi)OSC的定時反饋回路。石英晶振起振后要能在XTAL2線上輸出一個3V左右的正弦波,以便使單片機片內(nèi)的OSC電路按石英晶振相同頻率自激振蕩。通常OSC輸出時鐘頻率f為0.5MHz16MHz,典型值為12MHz或者11.0592MHz。電容C3和C4可以幫助起振,典型值為30pF,調(diào)節(jié)它們可以達到微調(diào)f的目的。時鐘電路和單片機的連接如圖3-2所示。圖3-2時鐘電路與單片機的連接圖復(fù)位電路的設(shè)計,單片機在開機時都需要復(fù)位,以便中央處理CPU以及其他功能部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。單片機的復(fù)位后是靠外部電路實現(xiàn)的, 在時鐘電路工作后,只要在單片機的RST引
14、腳上出現(xiàn)24個時鐘振蕩脈沖(2個機器周期)以上的高電平,單片機便可實現(xiàn)初始化狀態(tài)復(fù)位。單片機的RST引腳是復(fù)位信號的輸入端。單片機時鐘頻率為12MHz,則復(fù)位脈沖寬度至少應(yīng)該為2s,復(fù)位電路如圖3-3所示圖3-3單片機復(fù)位電路(2)DS18B20測溫電路DS18B20 最大的特點是單總線數(shù)據(jù)傳輸方式,DS18B20 的數(shù)據(jù)I/O 均由同一條線來完成。DS18B20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時, VDD 和GND 均接地, 他在需要遠程溫度探測和空間受限的場合特別有用, 原理是當(dāng)1 W ire 總線的信號線DQ 為高電平時, 竊取信號能量給DS18
15、B20 供電, 同時一部分能量給內(nèi)部電容充電, 當(dāng)DQ為低電平時釋放能量為DS18B20 供電。但寄生電源方式需要強上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到E2PROM 時) , 同時芯片的性能也有所降低。因此, 在條件允許的場合, 盡量采用外供電方式。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接5K左右的上拉電。在這里采用前者方式供電。DS18B20與芯片連接電路如圖。外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強,而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系統(tǒng)。站長推薦大家在開發(fā)中使用外部電源供電方式,畢竟比寄生電源方式只多接一
16、根VCC引線。在外接電源方式下,可以充分發(fā)揮DS18B20寬電源電壓范圍的優(yōu)點,即使電源電壓VCC 降到3V 時,依然能夠保證溫度量精度。(3)LED動態(tài)顯示電路數(shù)碼管由8個發(fā)光二極管(以下簡稱字段)構(gòu)成,通過不同的組合可用來顯示數(shù)字0 9、字符A F、H、L、P、R、U、Y、符號“-”及小數(shù)點“.”。采用4位共陽極數(shù)碼管。共陽極數(shù)碼管的8個發(fā)光二極管的陽極(二極管正端)連接在一起。通常,公共陽極接高電平(一般接電源),其它管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸出端為低電平時,則該端所連接的字段導(dǎo)通并點亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通
17、電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。將數(shù)碼管公共極COM接到+5V,段選段接單片機P0口(當(dāng)單片機P0口高電平輸出時,要接上拉電阻以增大驅(qū)動能力),位選端加三極管驅(qū)動接單片機P2口。數(shù)碼管與單片機的接口電路如圖4-4中所示。系統(tǒng)總電路圖:3.4 DS18B20測溫流程及軟件設(shè)計初始化DS18B20 (發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)復(fù)位時序:復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待1660 微秒左右,后發(fā)出60240 微秒的存在低脈沖,主CPU 收到此信號表示成功.主機發(fā)送(Tx)-復(fù)位脈沖(最短為480s 的低
18、電平信號)。接著主機便釋放此線并進入接收方式(Rx)??偩€經(jīng)過4.7K的上拉電阻被拉至高電平狀態(tài)。在檢測到I/O 引腳上的上升沿之后,DS18B20 等待1560s,并且接著發(fā)送脈沖(60240s 的低電平信號)。然后以存在復(fù)位脈沖表示DS18B20 已經(jīng)準(zhǔn)備好發(fā)送或接收,然后給出正確的ROM 命令和存儲操作命令的數(shù)據(jù)。DS18B20 通過使用時間片來讀出和寫入數(shù)據(jù),時間片用于處理數(shù)據(jù)位和進行何種指定操作的命令。它有寫時間片和讀時間片兩種:寫時間片:當(dāng)主機把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時,產(chǎn)生寫時間片。有兩種類型的寫時間片:寫1 時間片和寫0 時間片。所有時間片必須有60 微秒的持續(xù)期,在
19、各寫周期之間必須有最短為1微秒的恢復(fù)時間.讀時間片:從DS18B20 讀數(shù)據(jù)時,使用讀時間片。當(dāng)主機把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時產(chǎn)生讀時間片。數(shù)據(jù)線在邏輯低電平必須保持至少1 微秒;來自DS18B20 的輸出數(shù)據(jù)在時間下降沿之后的15 微秒內(nèi)有效。為了讀出從讀時間片開始算起15微秒的狀態(tài),主機必須停止把引腳驅(qū)動拉至低電平。在時間片結(jié)束時,I/O 引腳經(jīng)過外部的上拉電阻拉回高電平,所有讀時間片的最短持續(xù)期為60 微秒,包括兩個讀周期間至少1s 的恢復(fù)時間。一旦主機檢測到DS18B20 的存在,它便可以發(fā)送一個器件ROM 操作命令。所有ROM 操作命令均為8位長。所有的串行通訊,讀寫每一個
20、bit 位數(shù)據(jù)都必須嚴(yán)格遵守器件的時序邏輯來編程,同時還必須遵守總線命令序列,對單總線的DS18B20 芯片來說,訪問每個器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行ROM 命令;最后就是執(zhí)行功能命令(ROM 命令和功能命令后面以表格形式給出)。如果出現(xiàn)序列混亂,則單總線器件不會響應(yīng)主機。當(dāng)然,搜索ROM命令和報警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化?;趩慰偩€上的所有傳輸過程都是以初始化開始的,初始化過程由主機發(fā)出的復(fù)位脈沖和從機響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機知道,總線上有從機,且準(zhǔn)備就緒。在主機檢測到應(yīng)答脈沖后,就可以發(fā)出ROM 命令。這些命令與各個從機設(shè)備的唯一6
21、4 位ROM 代碼相關(guān)。在主機發(fā)出ROM命令,以訪問某個指定的DS18B20,接著就可以發(fā)出DS18B20支持的某個功能命令。這些命令允許主機寫入或讀出DS18B20便箋式RAM、啟動溫度轉(zhuǎn)換。主機首先發(fā)出一個復(fù)位脈沖,信號線上的DS18B20 器件被復(fù)位。接著主機發(fā)送ROM命令,程序開始讀取單個在線的芯片ROM編碼并保存在單片機數(shù)據(jù)存儲器中,把用到的DS18B20 的ROM 編碼離線讀出,最后用一個二維數(shù)組保存ROM 編碼。系統(tǒng)工作時,把讀取了編碼的DS18B20 掛在總線上。發(fā)溫度轉(zhuǎn)換命令,再總線復(fù)位。然后就可以從剛才的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對應(yīng)的度值了
22、。在主機初始化過程,主機通過拉低單總線至少480us,來產(chǎn)生復(fù)位脈沖。接著,主機釋放總線,并進入接收模式。當(dāng)總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測到上升沿后,延時1560us,接著通過拉低總線60240us,以產(chǎn)生應(yīng)答脈沖。寫時序均起始于主機拉低總線,產(chǎn)生寫1 時序的方式:主機在拉低總線后,接著必須在15us之內(nèi)釋放總線。產(chǎn)生寫0 時序的方式:在主機拉低總線后,只需在整個時序期間保持低電平即可(至少60us)。在寫字節(jié)程序中的寫一個bit 位的時候,沒有按照通常的分別寫0時序和寫1 時序,而是把兩者結(jié)合起來,當(dāng)主機拉低總線后在15us 之內(nèi)將要寫的位c 給DO:如果c 是高電平滿
23、足15us 內(nèi)釋放總線的要求,如果c是低電平,則DOc這條語句仍然是把總線拉在低電平,最后都通過延時58us 完成一個寫時序(寫時序0或?qū)憰r序1)過程。寫時間時序:當(dāng)主機把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙,寫1 時間隙和寫0 時間隙。所有寫時間隙必須最少持續(xù)60s,包括兩個寫周期至少1s 的恢復(fù)時間。I/O線電平變低后,DS18B20 在一個15s 到60s 的窗口內(nèi)對I/O 線采樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機要生成一個寫時間隙,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時間隙開始后的15s 內(nèi)允許數(shù)據(jù)線拉到高電平。主機要生成一個寫0
24、時間隙,必須把數(shù)據(jù)線拉到低電平并保存60s。每個讀時隙都由主機發(fā)起,至少拉低總線1us,在主機發(fā)起讀時序之后,單總線器件才開始在總線上發(fā)送0 或1。所有讀時序至少需要60us。讀時間時序:當(dāng)從DS18B20 讀數(shù)據(jù)時,主機生成讀時間隙。當(dāng)主機把數(shù)據(jù)從高電平拉到低電平時,寫時間隙開始,數(shù)據(jù)線必須保持至少1s;從DS18B20輸出的數(shù)據(jù)在讀時間隙的下降沿出現(xiàn)后15s 內(nèi)有效。因此,主機在讀時間隙開始后必須把I/O 腳驅(qū)動拉為的電平保持15s,以讀取I/O 腳狀態(tài)。、在讀時間隙的結(jié)尾,I/O 引腳將被外部上拉電阻拉到高電平。所有讀時間隙必須最少60s,包括兩個讀周期至少1s的恢復(fù)時間。 圖3-6讀D
25、S18B20流程圖 圖3-7寫DS18B20流程圖系統(tǒng)總程序設(shè)計:(1)數(shù)字溫度計工作主要分為溫度采集、溫度轉(zhuǎn)化、數(shù)據(jù)處理、顯示這幾部分。單片機對與DS18B20主要完成對溫度的檢測和補償,通過AT89S51單片機對DS18B20芯片的控制和數(shù)據(jù)傳輸,查詢當(dāng)前的DS18B20溫度采集和轉(zhuǎn)換是否完成是關(guān)鍵,并且完成對轉(zhuǎn)換后的數(shù)據(jù)的讀取。(2)系統(tǒng)總程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x
26、82,0xf8,0x80,0x90,/090x40,0x89,0x24,0x30,0x19,0x12,0x02,0x88,0x00,0x10,/10190xbf,/20符號-0xff,/不顯示;/ds18b20與單片機連接口sbit DQ=P32;uchar data disdata5;/存放溫度值uint tvalue;/溫度值uchar tflag;/溫度正負(fù)標(biāo)志/*顯示程序*/void delay(uint k)/延時1毫秒(不夠精確的)unsigned int i,j; for(i=0;i<k;i+) for(j=0;j<100;j+);/LCD顯示函數(shù) void weix
27、uan() if(tvalue<0)/負(fù)數(shù)處理disdata0=20;tvalue-;tvalue-;tvalue=tvalue;tvalue=tvalue%1000; disdata1=tvalue/100;/獲取十位if(disdata1=0)disdata1=21; tvalue=tvalue%100; disdata2=tvalue/10;/獲取個位再 disdata2+=10;/加入小數(shù)點,查表可得出有小數(shù)點的排在后10位,所以加10 disdata3=tvalue%10;/獲取小數(shù)第一位else /正數(shù)的處理disdata0=tvalue/1000;/顯示百位if(disda
28、ta0=0)disdata0=21;/判斷溫度為正溫度且沒有上百,前面不顯示,查表第12是空tvalue=tvalue%1000; disdata1=tvalue/100; /顯示十位if(disdata0=21&&disdata1=0) /百位和十位同時為0 則不顯示 disdata1=21;tvalue=tvalue%100;disdata2=tvalue/10;/獲取個位再disdata2+=10;/加入小數(shù)點,查表可得出有小數(shù)點的排在后10位,所以加10disdata3=tvalue%10;/獲取小數(shù)第一位void display(uchar *lp,uchar lc)
29、/顯示 uchar i;/定義變量P0=0x00;/端口2為輸出P2=0xf7;/將P2口的輸出1111 0111,對應(yīng)第一個數(shù)碼管for(i=0;i<lc;i+)/循環(huán)顯示P0=tablelpi;/查表法得到要顯示數(shù)字的數(shù)碼段delay(5);delay(5);delay(5);P0=0x00;/清0端口,準(zhǔn)備顯示下位P2>>=1;/下一位數(shù)碼管if(i=3)break;/*ds1820程序*/void delay_18B20(uint i)/延時1微秒 while(i-);/*ds1820復(fù)位*/void ds1820rst() DQ = 1; /DQ復(fù)位 delay_18B20(4); /延時 DQ = 0; /DQ拉低 delay_18B20(100); /精確延時大于480us DQ = 1; /拉高 delay_18B20(40); /*從ds18b20中讀數(shù)據(jù)*/uchar ds1820rd() uchar i=0; uchar dat=0; for(i=8;i>0;i-) DQ = 0; /給脈沖信號 dat>>=1; DQ = 1; /給脈沖信號 if(DQ) dat|
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度工業(yè)自動化系統(tǒng)產(chǎn)業(yè)分析報告
- 2025年度餐飲服務(wù)業(yè)臨時工招聘服務(wù)協(xié)議3篇
- 2025年度個人家政服務(wù)外包合同8篇
- 2025年度高端酒店裝飾材料及家具采購協(xié)議3篇
- 2024運輸企業(yè)與司機簽訂智能調(diào)度勞務(wù)合同3篇
- 二零二五年度棉布行業(yè)綠色制造與技術(shù)創(chuàng)新合同2篇
- 鐵軌安全檢測 課程設(shè)計
- 2025年度考古發(fā)掘現(xiàn)場測繪合同3篇
- 2025年油氣儲罐保溫隔熱材料供應(yīng)合同4篇
- 二零二五版廣西校園宿舍二零二五年度租賃合同2篇
- 中小銀行上云趨勢研究分析報告
- 機電安裝工程安全培訓(xùn)
- 遼寧省普通高中2024-2025學(xué)年高一上學(xué)期12月聯(lián)合考試語文試題(含答案)
- 洗浴部前臺收銀員崗位職責(zé)
- 青海原子城的課程設(shè)計
- 常州大學(xué)《新媒體文案創(chuàng)作與傳播》2023-2024學(xué)年第一學(xué)期期末試卷
- 麻醉蘇醒期躁動患者護理
- 英語雅思8000詞匯表
- 小學(xué)好詞好句好段摘抄(8篇)
- JT-T-1059.1-2016交通一卡通移動支付技術(shù)規(guī)范第1部分:總則
- 《茶藝文化初探》(教學(xué)設(shè)計)-六年級勞動北師大版
評論
0/150
提交評論