版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1緒論1.1設(shè)計(jì)背景隨著新技術(shù)的不斷開(kāi)發(fā)與應(yīng)用,近年來(lái)單片機(jī)發(fā)展十分迅速,一個(gè)以微機(jī)應(yīng)用為主的新技術(shù)革命浪潮正在蓬勃興起,單片機(jī)的應(yīng)用已經(jīng)滲透到電力、冶金、化工、建材、機(jī)械、食品、石油等各個(gè)行業(yè)。傳統(tǒng)的溫度采集方法不僅費(fèi)時(shí)費(fèi)力,而且精度差,單片機(jī)的出現(xiàn)使得溫度的采集和數(shù)據(jù)處理問(wèn)題能夠得到很好的解決。溫度是工業(yè)對(duì)象中的一個(gè)重要的被控參數(shù)。然而所采用的測(cè)溫元件和測(cè)量方法也不相同;產(chǎn)品的工藝不同,控制溫度的精度也不相同。因此對(duì)數(shù)據(jù)采集的精度和采用的控制方法也不相同。傳統(tǒng)的控制方式以不能滿足高精度,高速度的控制要求,如溫度控制表溫度接觸器,其主要缺點(diǎn)是溫度波動(dòng)范圍大。由于他主要通過(guò)控制接觸器的通斷時(shí)間
2、比例來(lái)達(dá)到改變加熱功率的目的,受儀表本身誤差和交流接觸器的壽命限制,通斷頻率很低。近幾年來(lái)快速發(fā)展了多種先進(jìn)的溫度控制方式,如:PID控制,模糊控制,神經(jīng)網(wǎng)絡(luò)及遺傳算法控制等。這些控制技術(shù)大大的提高了控制精度,不但使控制變得簡(jiǎn)便,而且使產(chǎn)品的質(zhì)量更好,降低了產(chǎn)品的成本,提高了生產(chǎn)效率。本設(shè)計(jì)使用單片機(jī)作為核心進(jìn)行控制。單片機(jī)具有集成度高,通用性好,功能強(qiáng),特別是體積小,重量輕,耗能低,可靠性高,抗干擾能力強(qiáng)和使用方便等獨(dú)特優(yōu)點(diǎn),在數(shù)字、智能化方面有廣泛的用途。1.2國(guó)內(nèi)外現(xiàn)狀Forpersonaluseonlyinstudyandresearch;notforcommercialuse溫度計(jì)在
3、國(guó)內(nèi)各行各業(yè)的應(yīng)用雖然已經(jīng)十分廣泛,但從國(guó)內(nèi)生產(chǎn)的溫度計(jì)來(lái)講,總體發(fā)展水平仍然不高,同日本、美國(guó)、德國(guó)等先進(jìn)國(guó)家相比,仍然有著較大的差距。溫度計(jì)測(cè)溫技術(shù)的關(guān)鍵在于溫度傳感器。目前,國(guó)際上新型溫度傳感器正從模擬式向數(shù)字式、由集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展,同時(shí)具有抑制串模干擾能力強(qiáng)、分辨力高、線性度好、成本低等優(yōu)點(diǎn)。隨著我國(guó)四個(gè)現(xiàn)代化和經(jīng)濟(jì)發(fā)展,我國(guó)在科技和生產(chǎn)各領(lǐng)域都取得了飛速的發(fā)展和進(jìn)步,發(fā)展以溫度傳感器為載體的溫度測(cè)量技術(shù)具有重大意義。傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量高居各種傳感器之首。溫度傳感器的發(fā)展大致經(jīng)歷了以下三個(gè)階
4、段:傳統(tǒng)的分立式溫度傳感器(含敏感元件);模擬集成溫度傳感器/控制器;數(shù)字溫度傳感器。溫度傳感器的發(fā)展現(xiàn)狀:溫度傳感器使用范圍廣,數(shù)量多,居各種傳感器之首,其發(fā)展大致經(jīng)歷了以下3個(gè)階段: 傳統(tǒng)的分立式溫度傳感器(含敏感元件)熱電偶傳感器,主要是能夠進(jìn)行非電量和電量之間轉(zhuǎn)換。 模擬集成溫度傳感器/控制器。集成傳感器是采用硅半導(dǎo)體集成工藝制成的,因此亦稱硅傳感器或單片集成溫度傳感器。 智能溫度傳感器。它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)(ATE_)的結(jié)晶。智能溫度傳感器內(nèi)部包含溫度傳感器、A/D傳感器、信號(hào)處理器、存儲(chǔ)器(或寄存器)和接口電路1。從國(guó)內(nèi)外來(lái)看工業(yè)生產(chǎn)控制中用數(shù)字溫度計(jì)可清晰顯示
5、溫度來(lái)防止元?dú)饧Щ驌p壞等不必要的非人為損失,對(duì)做好車(chē)間機(jī)器維修與保養(yǎng)起很重要的作用。溫度是一般工業(yè)領(lǐng)域最容易碰到的檢測(cè)參數(shù),如環(huán)境溫度的檢測(cè),工業(yè)工藝溫度參數(shù)的檢測(cè),設(shè)備的溫度保護(hù)檢測(cè)等,而市場(chǎng)上專(zhuān)用的、通用的各類(lèi)溫控儀產(chǎn)品也比較豐富。國(guó)內(nèi)外的溫度檢測(cè)儀器的發(fā)展水平主要體現(xiàn)在儀器的智能化水平、測(cè)量的文的范圍、測(cè)量的精度以及儀器的功耗等技術(shù)指標(biāo)上,目前國(guó)內(nèi)的溫度測(cè)量,在精度上很少有高于o.ir的。近年來(lái)溫度計(jì)正處在傳統(tǒng)型向新型溫度計(jì)轉(zhuǎn)型的發(fā)展階段,新型溫度計(jì)的特點(diǎn)是微型化、數(shù)字化、智能化、多功能化、系統(tǒng)化,他不僅促進(jìn)了傳統(tǒng)產(chǎn)業(yè)的改造。而且可導(dǎo)致建立新型工業(yè),是21世紀(jì)新的經(jīng)濟(jì)增長(zhǎng)的。1.3
6、本課題研究方法及內(nèi)容1.3.1 研究方法本課題的研究方法是利用單片機(jī)和數(shù)字溫度傳感器DS18B20設(shè)計(jì)一臺(tái)數(shù)字溫度計(jì)。單片機(jī)作為主控制器,數(shù)字溫度傳感器DS18B20作為測(cè)溫元件,傳感器DS18B20可以讀取被測(cè)量溫度值,進(jìn)行轉(zhuǎn)換,從而用4位共陰極LED數(shù)碼管來(lái)顯示轉(zhuǎn)換后的溫度值。1.3.2研究?jī)?nèi)容本課題的主要研究?jī)?nèi)容如下:i溫度測(cè)試基本范圍ori00Co2. 精度為0.5C。3. LED液晶顯示。4. 可以設(shè)定溫度的上下限報(bào)警功能。5. 實(shí)現(xiàn)報(bào)警提示。2系統(tǒng)方案設(shè)計(jì)2.1方案選擇方案一:使用熱敏電阻之類(lèi)的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,就可以用單
7、片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái),這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路。此方案數(shù)據(jù)處理比較麻煩,且容易產(chǎn)生信號(hào)失真。方案二:使用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的。所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。而且此方案電路比較簡(jiǎn)單,軟件設(shè)計(jì)也比較容易實(shí)現(xiàn)。從以上兩種方案很容易看出方案二電路比較簡(jiǎn)單,軟件設(shè)計(jì)容易實(shí)現(xiàn),故實(shí)本設(shè)計(jì)中采用方案二。方案二可以只用一根線實(shí)現(xiàn)信號(hào)的雙向傳輸,具有接簡(jiǎn)單容易擴(kuò)展等優(yōu)點(diǎn),DS18B20可以直接溫度轉(zhuǎn)換為串行數(shù)字信號(hào),供單片機(jī)進(jìn)行處理,
8、具有低功耗、商性能、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。2.1系統(tǒng)的總體設(shè)計(jì)方案本設(shè)計(jì)采用STC89C52RC單片機(jī)實(shí)現(xiàn)。單片機(jī)軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制。而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。既可以單獨(dú)對(duì)多DS18B20控制工作,還可以與PC機(jī)通信。另外STC89C52RC在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。單總線數(shù)字溫度計(jì)DS182o采用基板專(zhuān)利技術(shù)來(lái)測(cè)量溫度,溫度傳感器及各種數(shù)字轉(zhuǎn)換電路都集成在一起,由總線串行輸出測(cè)量值(9位二進(jìn)制編碼)。測(cè)溫范圍從-55-+125C,還可以讀內(nèi)部計(jì)數(shù)器,獲得較高的分辨率。同時(shí)還可以進(jìn)行上、下限溫度的
9、設(shè)定和報(bào)警等。本課題主要研究如何利用DS18B20智能溫度傳感器實(shí)時(shí)顯示溫度,并將其與LED顯示鍵盤(pán)合并使用,制成一個(gè)能實(shí)時(shí)顯示溫度的數(shù)字溫度計(jì)。本設(shè)計(jì)將利用DS18B20智能溫度傳感器和單片小系統(tǒng),設(shè)計(jì)一個(gè)數(shù)字溫度采集系統(tǒng)。并設(shè)計(jì)一個(gè)人機(jī)接口電路:鍵盤(pán)采用獨(dú)立按鍵(功能自定義),顯示器采用共陰極4位LED顯示。系統(tǒng)的總體設(shè)計(jì)方案框圖如圖2.1所示系統(tǒng)調(diào)試圖2.1系統(tǒng)總體設(shè)計(jì)方案框圖按照系統(tǒng)設(shè)計(jì)功能的要求,系統(tǒng)主要由單片機(jī)、溫度傳感器DS18B20、LED數(shù)碼顯示管和PC機(jī)組成。系統(tǒng)的硬件電路主要由復(fù)位電路、測(cè)溫電路、顯示電路、晶振電路和報(bào)警電路組成,系統(tǒng)總體結(jié)構(gòu)方框圖如圖2.2所示。<
10、><>單片機(jī)七復(fù)位電路心按鍵設(shè)置,晶振電路*圖2.2系統(tǒng)總體結(jié)構(gòu)框圖3硬件設(shè)計(jì)3.1 STC89C52RC芯片功能簡(jiǎn)介3.1.1 STC89C52RC芯片簡(jiǎn)介STC89C52RC是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低電、高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容23.1.2引腳功能STC89C52RC芯片的引腳圖如圖3.1所示:T2/P1.0T2EX/P1.1Pl.2Pl.
11、3Pl.4Pl.5Pl.6Pl.7RSTRXD/P3.0TXD/F3.1INTO/P3.2INT1/P3.3TO/P3.4T1/P3.5翌P3.6RD/P3.7XTAL2XTAL1VSS01234678911111PDIP401516171819206543212222220987643333543210987333333222vccPO.O/ADOPO.1/AD1PO.2/AD2PO.3/AD3PO.4/AD4PO.5/AD5PO.6/AD6PO.7/AD7EAALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/AUP2.2/A1OP2.1/A9
12、P2.0/A8圖3.1STC89C52引腳圖STC89C52RC的引腳功能如下 主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源GND(Pin20):接地線 外接晶振引腳(2根)XTAL1(Pin19):片內(nèi)振蕩電路的輸入端XTAL2(Pin20):片內(nèi)振蕩電路的輸出端 控制引腳(4根)RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位ALE/PR0G(Pin30):地址鎖存允許信號(hào)PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。
13、可編程輸入/輸出引腳(32根)STC89C52單片機(jī)有4組8位的可編程I/O口,分別位PO、Pl、P2、P3口,每個(gè)口有8位(8根引腳),共32根。PO(Pin39_Pin32):8位雙向I/O線,名稱為P0.0_P0.7Pl(Pin1_Pin8):8位準(zhǔn)雙向I/O線,名稱為P1.0_P1.7P2(Pin21_Pin28):8位準(zhǔn)雙向I/O線,名稱為P2.0_P2.7P3(Pin10_Pin17):8位準(zhǔn)雙向I/O線,名稱為P3.0_P3.7STC89C52主要功能如表3-1所示。表3-1STC89C52主要功能主要功能特性兼容MCS51指令系統(tǒng)8K可反復(fù)擦寫(xiě)FlashROM32個(gè)雙向I/O口
14、256x8bit內(nèi)部RAM3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24MHz2個(gè)串行中斷可編程UART串行通道2個(gè)外部中斷源共6個(gè)中斷源2個(gè)讀寫(xiě)中斷線3級(jí)加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能1.時(shí)鐘電路STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時(shí)鐘電路如圖3.2(a)所示,在RXD和TXD引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.212MHz之間選擇,電容值在5_30pF之間選擇,電容值的
15、大小可對(duì)頻率起微調(diào)的作用。外部方式的時(shí)鐘電路如圖3.2(b)所示,RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無(wú)特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無(wú)特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。(a)內(nèi)部方式時(shí)鐘電路(b)外部方式時(shí)鐘電路圖3.2時(shí)鐘電路2.復(fù)位及復(fù)位電路(1) 復(fù)位操作復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H
16、,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)。除PC之外,復(fù)位操作還對(duì)其他些寄存器有影響,它們的復(fù)位狀態(tài)如表3-2所示3。表3-2些寄存器的復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTCONOOHACCOOHTLOOOHPSWOOHTHOOOHSP07HTL1OOHDPTR0000HTH1OOHP0-P3FFHSCONOOHIPOXOOOOOOBSBUF不定IEOXOOOOOOBPCONOXOOOOOOBTMODOOH(2) 復(fù)位信號(hào)及其產(chǎn)生RST引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)
17、是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即二個(gè)機(jī)器周期)以上。若使用頗率為6MHz的晶振,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)4us才能完成復(fù)位操作。產(chǎn)生復(fù)位信號(hào)的電路邏輯如圖3.3所示:不得用于商業(yè)用途圖3.3復(fù)位信號(hào)的電路邏輯圖整個(gè)復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(hào)(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位操作有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式4。上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的,其電路如圖3.4(a)所示。這佯,只要電源Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)
18、自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過(guò)使復(fù)位端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的,其電路如圖3.4(b)所示;而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來(lái)實(shí)現(xiàn)的,其電路如圖3.4(c)所示:(a)上電復(fù)位(b)按鍵電平復(fù)位圖3.4復(fù)位電路(c)按鍵脈沖復(fù)位上述電路圖中的電阻、電容參數(shù)適用于6MHz晶振,能保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。3.2 復(fù)位電路設(shè)計(jì)復(fù)位電路有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的,只要電源VCC的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,
19、即接通電源就成了系統(tǒng)的復(fù)位初始化。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過(guò)使復(fù)位端經(jīng)電阻與VCC電源接通而實(shí)現(xiàn)的,而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來(lái)實(shí)現(xiàn)的。本系統(tǒng)的復(fù)位電路采用上電復(fù)位方式。復(fù)位電路圖如圖3.5所示:圖3.5復(fù)位電路圖3.3 晶振電路設(shè)計(jì)對(duì)于每個(gè)系統(tǒng)工程的晶振電路,都是用于單片機(jī)工作所需要的時(shí)鐘信號(hào),單片機(jī)只有在時(shí)鐘信號(hào)的控制下,其各部件之間才能協(xié)調(diào)一致工作,時(shí)鐘信號(hào)控制著計(jì)算機(jī)的工作節(jié)奏。在單片機(jī)的TXAL1、TXAL12、之間跨接晶體振蕩器和微調(diào)電容,可以和單片機(jī)內(nèi)部的振蕩器構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,這就是單片機(jī)的晶振電路。這種方式稱之為
20、內(nèi)部的時(shí)鐘源方式。電容C1和C2的主要作用是幫助振蕩器起振,且振蕩器大小對(duì)振蕩頻率有微調(diào)作用,在80C51系列中電容的大小30皮法。另外,振蕩器的頻率只要由石英晶振的頻率來(lái)決定本次設(shè)計(jì)選用12MHz。本系統(tǒng)的晶振電路如圖3.6所示:圖3.6晶振電路3.4 DS18B20芯片簡(jiǎn)介3.4.1芯片簡(jiǎn)介(1) 適應(yīng)電壓范圍更寬,電壓范圍:3.0V5.5V,在寄生電源方式下可由數(shù)據(jù)線供電。(2) 獨(dú)特的單線接方式,DS18B20在與微處理器連接時(shí)僅需要一條線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。(3) DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)
21、。(4) 測(cè)溫范圍55C_+125C,在-10C+85C時(shí)精度為土0.5C。(5) 可編程的分辨率為9_12位,對(duì)應(yīng)的可分辨溫度分別為0.5C、0.25C、0.125C和0.0625C,可實(shí)現(xiàn)高精度測(cè)溫。(6) 在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。(7) 測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。8)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作5。僅供個(gè)人參考342DS18B20的外形和內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)如圖3.7所
22、示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20外形及管腳排列如圖3.8和表3-3所示5。VDDDALLASDSIJIBZfl圖3.7DS18B20的內(nèi)部結(jié)構(gòu)NCNCNCGND表3-3DS18B20引腳定義:序號(hào)名稱引腳功能描述1GND地信號(hào)2DQ數(shù)據(jù)輸入/輸出引腳。開(kāi)漏單總線接引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。(1) 64位ROMROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個(gè)DS18B20的64位序列號(hào)均不相同。
23、64位ROM的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。ROM的作用是使每一個(gè)DS18B20都各不相同,DS18B20中的溫度傳感器完成對(duì)溫度的測(cè)量,用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625C/LSB形式表達(dá),其中S為符號(hào)位。DS18B20溫度值格式表4-4如下所示。ROM中的64位序列號(hào)是出廠前被光刻好的,他可以看作是該DS18B20的地址序列碼,每個(gè)DS18B20的64位序列號(hào)均不相同。64位ROM的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。DS18B20中溫度
24、傳感器完成對(duì)溫度的側(cè)量,用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625C/LSB形式表達(dá),其中S為符號(hào)位。DS18B20溫度值格式表3-4如下所示。這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。例如十25.0625C的數(shù)字輸出為0191H,-25.0625C的數(shù)字輸出為FF6FH15Byte2322212021222324bit15bit14bit13bit
25、12bit11bit10bit9bit8ByteSSSSS262524表3-4DS18B20溫度值格式表LSMSbit7bit6bit5bit4bit3bit2bit1bit0(2)高低溫報(bào)警觸發(fā)器TH和TLDS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。(3)配置寄存器該字節(jié)各位的意義如下表3-5所示。表3-5配置寄存器結(jié)構(gòu)TMR1R011111低五位一直都是“1”,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。R1和
26、R0用來(lái)設(shè)置分辨率,如下表3-6所示(DS18B20出廠時(shí)被設(shè)置為12位)。表3-6溫度分辨率設(shè)置表R1R0分辨率溫度最大轉(zhuǎn)換時(shí)間009位93.75ms0110位187.5ms1011位375ms1112位750ms(4)高速暫存器高速暫存器是一個(gè)9字節(jié)的存儲(chǔ)器。開(kāi)始兩個(gè)字節(jié)包含被測(cè)溫度的數(shù)字量信息;第3、4、5字節(jié)分別是TH,TL、配置寄存器的臨時(shí)拷貝,每一次上電復(fù)位時(shí)被刷新;第6、7、8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來(lái)保證通信正確。高速暫存器RAM結(jié)構(gòu)圖如下表3-7所示。表3-7DS18B20暫存寄存器分布寄存器內(nèi)容字節(jié)地址溫度值低位(LSByt
27、e)0溫度值高位(MSByte)1高溫限值(TH)2低溫限值(TL)3配置寄存器4保留5保留6保留7CRC校驗(yàn)值8343DS18B20的工作時(shí)序DS18B20的一線工作協(xié)議流程是:初始化-ROM操作指令一存儲(chǔ)器操作指令一數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,如圖3.9(a)(b)(c)所示6。主機(jī)寫(xiě)“0”吋隙*66usTx120us主機(jī)寫(xiě)“1”吋隙咱1us<txcc315iDS18SMINT320采樣TMAX>j_usus15ds#B2miNTY0采樣MAX円15Us=30us15ius30lLS|VCC1-WireBusGND圖3.9(b)寫(xiě)時(shí)序主機(jī)控制DS18B2
28、0完成任何操作之前必須先初始化,即主機(jī)發(fā)一復(fù)位脈沖(最短為480us的低電平),接著主機(jī)釋放總線進(jìn)入接收狀態(tài),DS18B20在檢測(cè)到I/O引腳上的上升沿之后,等待15-60us然后發(fā)出存在脈沖(60-240us的低電平)。寫(xiě)時(shí)間片:將數(shù)據(jù)從高電平拉至低電平,產(chǎn)生寫(xiě)起始信號(hào)。在15us之內(nèi)將所需寫(xiě)的位送到數(shù)據(jù)線上,在15us到60us之間對(duì)數(shù)據(jù)線進(jìn)行采樣,如果采樣為高電平,就寫(xiě)1,如果為低電平,寫(xiě)o就發(fā)生。在開(kāi)始另一個(gè)寫(xiě)周期前必須有l(wèi)us以上的高電平恢復(fù)期。讀時(shí)間片:主機(jī)將數(shù)據(jù)線從高電平拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號(hào)。主機(jī)在讀時(shí)間片下降沿之后15us內(nèi)完成讀位。每
29、個(gè)讀周期最短的持續(xù)期為60us,各個(gè)讀周期之間也必須有1us以上的高電平恢復(fù)期。3.4.4 DS18B20與單片機(jī)的典型接設(shè)計(jì)圖3.10以MCS-51系列單片機(jī)為例,畫(huà)出了DS18B20與微處理器的典型連接。圖3.10(a)中DS18B20采用寄生電源方式,其VDD和GND端均接地,圖3.10(b)中DS18B20采用外接電源方式,其VDD端用3V_5.5V電源供電6圖3.10電源工作方式圖3.4.5 DS18B20的各個(gè)ROM命令(1) ReadROM33H這個(gè)命令允許總線控制器讀到DS18B20的8位系列編碼,惟一的序列號(hào)的8位CRC碼。只有在總線上存在單只DS18B20的時(shí)候才能用這個(gè)命
30、令。如果總線上有不止一個(gè)從機(jī),當(dāng)所有從機(jī)試圖同時(shí)傳送信號(hào)時(shí)就會(huì)發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路連在一起形成“與”的效果)。(2) MatchROM55H這是個(gè)匹配ROM命令,后跟64位ROM序列,讓總線控制器在多點(diǎn)總線上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能響應(yīng)隨后的存儲(chǔ)器操作。所有和64位ROM序列不匹配的從機(jī)都將等待復(fù)位脈沖。這條命令在總線上有單個(gè)或多個(gè)器件時(shí)都可以使用。(3)SkipROM0CCH這個(gè)命令允許總線控制器不用提供64位ROM編碼就使用存儲(chǔ)器操作命令,在單點(diǎn)總線情況下,可以節(jié)省時(shí)間。如果總線上不止一個(gè)從機(jī),在命令之后緊跟著發(fā)一條讀命令,由于多個(gè)
31、從機(jī)同時(shí)傳信號(hào)??偩€上發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路連在一起形成“與”的效果)。(4)SearchROM0F0H當(dāng)一個(gè)系統(tǒng)初次啟動(dòng)時(shí),總線控制器并不知道單線總線上有多少個(gè)器件或它們的64位ROM編碼。搜索ROM命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的64位編碼。(5)AlarmSearch0ECH這條命令的流程和SearchROM相同。然而,只有在最近一次測(cè)溫后遇到符合報(bào)警條件的情況,DS18B20才會(huì)響應(yīng)這條命令。報(bào)警條件定義為溫度高于TH或低于TL。只要DS18B20不掉電,報(bào)警狀態(tài)將一直保持,直到再一次測(cè)得的溫度值達(dá)不到報(bào)警條件。(6)WriteScratchpad4EH這個(gè)命令向DS1
32、8B20的暫存器TH和TL中寫(xiě)入數(shù)據(jù)。可以在任何時(shí)刻發(fā)出復(fù)位命令來(lái)中止寫(xiě)入。(7)ReadScratchpad0BEH這個(gè)命令讀取暫存器的內(nèi)容。讀取將從第1字節(jié)開(kāi)始,一直進(jìn)行下去,直到第9(CRC)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)刻發(fā)出復(fù)位命令來(lái)中止讀取。(8)CopyScratchpad48H這個(gè)命令把暫存器的內(nèi)容拷貝到DS18B20的E2ROM存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)器字節(jié)存入非易失性存儲(chǔ)器里。如果控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于把暫存器拷貝到E存儲(chǔ)器,DS18B20就會(huì)輸出一個(gè)0,如果拷貝結(jié)束的話,DS18B20輸出1。如果使用寄生電源,總
33、線控制器必須在這條命令后立即啟動(dòng)強(qiáng)上拉,并最少保持10ms。(9)ConvertT44H這個(gè)命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后DS18B20保持等待狀態(tài)。如果控制器在這條命令之后跟著發(fā)出時(shí)間隙,而DS18B20有忙于做時(shí)間轉(zhuǎn)換的話,DS18B20將在總線上輸出一個(gè)0,若溫度轉(zhuǎn)換完,則輸出1。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即啟動(dòng)強(qiáng)上拉,并最少保持500ms以上時(shí)間。(10)ReadE20B8H這條命令把觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在DS18B20上電時(shí)自動(dòng)執(zhí)行,這樣一上電暫存器里馬上存在有效的數(shù)據(jù)了。若在這條命令之后發(fā)出讀數(shù)據(jù)隙,器件會(huì)輸出
34、溫度轉(zhuǎn)換忙的標(biāo)識(shí):0為忙,1為完成。(11)ReadPowerSupply0B4H若把這條命令發(fā)給DS18B20后發(fā)出讀時(shí)間隙,器件會(huì)返回它的電源模式:0為寄生電源,1為外部電源6。3.5測(cè)溫電路設(shè)計(jì)數(shù)字溫度傳感器DS18B20的測(cè)溫電路如圖所示3.11所示:圖3.11測(cè)溫電路3.6按鍵模塊設(shè)計(jì)利用單片機(jī)的IO實(shí)現(xiàn)按鍵的中斷輸入。另外需要一個(gè)與門(mén)實(shí)現(xiàn)與中斷端的連接。按鍵電路如圖3.12所示,期中按鍵K1為進(jìn)入/退出設(shè)置鍵;K2為增加鍵;K3為減少鍵。圖3.12按鍵模塊3.7 報(bào)警電路設(shè)計(jì)三極管8550驅(qū)動(dòng)蜂鳴器:報(bào)警電路如圖3.13所示三極管Q5來(lái)驅(qū)動(dòng)蜂鳴器BUZ1。圖3.13報(bào)警電路3.8
35、顯示電路設(shè)計(jì)采用四位共陰極LED數(shù)碼管來(lái)顯示溫度的大小,可以直接讀取,溫度精確到0.1C。四位數(shù)碼管的顯示電路如圖3.14所示,從左到右依次是百位,十位,個(gè)位,十分位。圖3.14顯示電路3.9 MAX232簡(jiǎn)介MAX232芯片是美信公司專(zhuān)門(mén)為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。MAX232的引腳圖如圖3.15所示:01.V+'116Vcc瓦GNDHIIQIJIC2t413RIINC2-'J12RI0UIV-611TUNT2QUT7101'2INR2IN89k?OUT圖3.15MAX232引腳圖引腳介紹7:第一部分是電荷泵電路。由1、
36、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R10UT)、11腳(T1IN)、14腳(T10UT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R20UT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT
37、輸出。第三部分是供電。15腳GND、16腳VCC(+5v)。MAX232的原理電路圖如圖3.16所示:圖3.16MAX電路原理圖MAX232的主要特點(diǎn):1、符合所有的RS-232C技術(shù)標(biāo)準(zhǔn)2、只需要單一+5V電源供電3、片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V-4、功耗低,典型供電電流5mA5、內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器6、內(nèi)部集成兩個(gè)RS-232C接收器3.10 RS232接簡(jiǎn)介RS-232C是使用最早、應(yīng)用最多的一種異步串行通信總線標(biāo)準(zhǔn),它是美國(guó)電子工業(yè)協(xié)會(huì)EIA(ElectronicIndustryAssociation)于1962年公布、196
38、9年最后修訂而成的。RS表示RecommendedStandard,232是該標(biāo)準(zhǔn)的標(biāo)識(shí),C表示最后一次修訂。RS-232C主要用于定義計(jì)算機(jī)系統(tǒng)的一些數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間接的電氣特性。CRT、打印機(jī)與CPU的通信大都采用RS-232C總線83.10.1 RS232接的電平轉(zhuǎn)換RS-232C標(biāo)準(zhǔn)是在TTL電路之前研制的,它的電平不是+5V和地,而是采用負(fù)邏輯,其邏輯電平為:邏輯“0”:+3V_+15V邏輯“1”:-3V-15V因此,RS-232C不能和計(jì)算機(jī)的TTL電平直接相連,使用時(shí)必須加上適當(dāng)?shù)碾娖睫D(zhuǎn)換電路芯片,否則將使TTL電路燒壞。常用的電平轉(zhuǎn)換接芯片是傳
39、輸驅(qū)動(dòng)器MC1488和傳輸接收器MC1489,它們是用于計(jì)算機(jī)(終端)與RS232C總線間進(jìn)行電平轉(zhuǎn)換的接芯片。另一種常用的電平轉(zhuǎn)換芯片是MAX232,該芯片有兩個(gè)傳輸驅(qū)動(dòng)器和兩個(gè)傳輸接收器。3.102RS232總線接標(biāo)準(zhǔn)RS-232C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸率為50b/s、75b/s、100b/s、150b/s、300b/s、600b/s、1200b/s、2400b/s、4800b/s、9600b/s、19200b/s。驅(qū)動(dòng)器允許有2500pF的電容負(fù)載,通信距離將受此電容限制。例如,采用150pF/m的通信電纜時(shí),最大通信距離為15m,若每米電纜的電容量減小,則通信距離可以增加。傳輸距離短的另一
40、原因是RS-232C屬單端信號(hào)傳送,存在共地噪聲和不能抑制共模干擾等問(wèn)題。因此,它一般用于20m以內(nèi)的通信。RS-232C總線標(biāo)準(zhǔn)規(guī)定了21個(gè)信號(hào),有25條引腳線,常采用25芯D型插頭座,提供一個(gè)主信道和一個(gè)輔助信道,在多數(shù)情況下主要使用主信道。對(duì)于一般異步雙工通信,僅需幾條信號(hào)線就可實(shí)現(xiàn),如一條發(fā)送線、一條接收線及一條地線。RS-232C也有9芯標(biāo)準(zhǔn)D型插頭座,RS232C9芯排列引腳如圖3.7所示,個(gè)引腳功能如表3-8所示9-RIRXJ1XDCISI,R圖3.17RS232C9芯排列引腳圖RS-232C定義了計(jì)算機(jī)系統(tǒng)的一些數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間接的電氣特性。R
41、S-232C提供的兩個(gè)信道中,輔助串行信道提供數(shù)據(jù)控制和第二信道,但其傳輸速率比主信道要低得多。除了速率低之外兩信道無(wú)異,但輔助信道通常很少使用。信號(hào)分為兩類(lèi):一類(lèi)是DTE與DCE交換的信息一一TxD和RxD;另一類(lèi)是為了正確無(wú)誤地傳輸上述信息而設(shè)計(jì)的聯(lián)絡(luò)信號(hào)。不得用于商業(yè)用途表3-89芯RS232C的引腳功能3.11串口電路設(shè)計(jì)單片機(jī)與上位機(jī)(PC機(jī))的接電路如圖3.18所示:P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1.'TXDP3.2J1NT0'P3.3J1NTTP3.4.-T0P3.5/I1P3E殛P(guān)3.7W&
42、lt;TEXT>LkiuF斗<TEXT>COMPIblR1OUTT2INR2OUTT1OUTR1INT2OUTC55MAX232-IRXD1uFTXDRTSCTS圖3.18接口電路3.12系統(tǒng)總體電路圖系統(tǒng)的總體電路圖如圖3.19所示:SXTAL1pnn-.H.EinP.1/AD1PEJP:lP.4/AD+P£ADSPajSAtGPEJ.7/AD?XTA12RSTPNDffiBPZ.KABP2H'.和口PZJfAIIP2.tfA12PZSfAllPZj9*A1+PZ.TWISPSEMALE0PIUTEpi.irrzKP12p1Pl.irrxDpii-Tinn
43、PWTKTFP3.4HUP35T1pi.artWPI.TiTTFP1JSP1.T圖3.19總體電路圖4 系統(tǒng)軟件設(shè)計(jì)4.1 各模塊的程序設(shè)計(jì)系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序和按鍵掃描處理子程序等。主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖4.1所示。fj血鏈按下否F讀出溟摩値富度計(jì)筍出來(lái)顯歩數(shù)據(jù)刷新讀収溫度貢溫.度轉(zhuǎn)換開(kāi)始命僉調(diào)用顯漢子程序設(shè)置報(bào)警爲(wèi)度調(diào)用報(bào)警子程序圖4.1主程序流程圖4.1.2 讀出溫度子程序讀出溫度子
44、程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖4.2示:CRCRK正N9字節(jié)圭讀取操作CRC校驗(yàn)SDSlBB20gEe發(fā)讀取溫度命令移入溫度暫存器圖4.2讀出溫度子程序流程圖4.1.3 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖4.3所示:圖4.3溫度轉(zhuǎn)換命令子程序流程圖4.1.4 計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如
45、圖4.4所示。圖4.4計(jì)算溫度子程序流程圖4.1.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)分離后的溫度顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)標(biāo)志位位為1時(shí)將符號(hào)顯示位移入第一位。程序流程圖如圖4.5所示。標(biāo)志位為”1”?分離圖4.5顯示數(shù)據(jù)刷新子程序流程圖最高僅顯示溫度數(shù)據(jù)移入顯示寄存器燼離溫顯示分喬出的數(shù)據(jù)4.1.6 報(bào)警子程序設(shè)置報(bào)警標(biāo)志位位beep,當(dāng)溫度大于設(shè)置的高限報(bào)警值或低于設(shè)置的低限報(bào)警值是,beep=l報(bào)警;當(dāng)溫度值在正常范圍內(nèi)時(shí),beep=0.報(bào)警流程圖如圖4.6所示:圖4.6報(bào)警流程圖4.1.7按鍵掃描處理子程序按鍵采用掃描查詢方式,設(shè)置標(biāo)志位,當(dāng)標(biāo)志位為1時(shí),顯示設(shè)置溫度,否則
46、顯示當(dāng)前溫度。如下圖4.7所示。調(diào)用顯示子稈瘁圖4.7按鍵掃描子程序流程圖4.2 KeilC51編程軟件4.2.1 KeilC51簡(jiǎn)介KeilC51是美國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。KeilC51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體
47、現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。KeilC51軟件是一個(gè)基于32位Windows環(huán)境的應(yīng)用程序,支持C語(yǔ)言和匯編語(yǔ)言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為“Vision(通常稱為“V2)。Keil提供包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,由以下幾部分組成:“VisionIDE集成開(kāi)發(fā)環(huán)境C51編譯器、A51匯編器、LIB51庫(kù)管理器、BL51連接/定位器、OH51目標(biāo)文件生成器以及Monitor-51、RTX51實(shí)時(shí)操作系統(tǒng)4.2.2 KeilC51軟件應(yīng)用應(yīng)用Keil進(jìn)行軟件仿真開(kāi)發(fā)的主要步驟為:編寫(xiě)源程序并保存一建立工程并添加源文件一設(shè)置工程一編譯/
48、匯編、連接,產(chǎn)生目標(biāo)文件一程序調(diào)試。Keil使用“工程”(Project)的概念,對(duì)工程(而不能對(duì)單一的源程序)進(jìn)行編譯/匯編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單File-New,在源程序編輯器中輸入?yún)R編語(yǔ)言或C語(yǔ)言源程序(或選擇File-Open,直接打開(kāi)已用其它編輯器編輯好的源程序文檔)并保存,注意保存時(shí)必須在文件名后加上擴(kuò)展名.asm(.a51)或.c;然后選擇菜單Project-NewProject,建立新工程并保存(保存時(shí)無(wú)需加擴(kuò)展名,也可加上擴(kuò)展名uv2);工程保存后會(huì)立即彈出一個(gè)設(shè)備選擇對(duì)話框,選擇CPU后點(diǎn)確定返回主界面。
49、這時(shí)工程管理窗的文件頁(yè)(Files)會(huì)出現(xiàn)“Target1”,將其前面+號(hào)展開(kāi),接著選擇SourceGroup1,右擊鼠標(biāo)彈出快捷菜單,選擇“AddFiletoGroupSourceGroup1'”,出現(xiàn)一個(gè)對(duì)話框,要求尋找并加入源文件(在加入一個(gè)源文件后,該對(duì)話框不會(huì)消失,而是等待繼續(xù)加入其它文件)。加入文件后點(diǎn)close返回主界面,展開(kāi)“SourceGroup1”前面+號(hào),就會(huì)看到所加入的文件,雙擊文件名,即可打開(kāi)該源程序文件。緊接著對(duì)工程進(jìn)行設(shè)置,選擇工程管理窗的Target1,再選擇Project-OptionforTargetTarget1'(或點(diǎn)右鍵彈出快捷菜單再選
50、擇該選項(xiàng)),打開(kāi)工程屬性設(shè)置對(duì)話框,共有8個(gè)選項(xiàng)卡,主要設(shè)置工作包括在Target選項(xiàng)卡中設(shè)置晶振頻率、在Debug選項(xiàng)卡中設(shè)置實(shí)驗(yàn)仿真板等,如要寫(xiě)片,還必須在Output選項(xiàng)卡中選中“CreatHexFi”;其它選項(xiàng)卡內(nèi)容一般可取默認(rèn)值。工程設(shè)置后按F7鍵(或點(diǎn)擊編譯工具欄上相應(yīng)圖標(biāo))進(jìn)行編譯/匯編、連接以及產(chǎn)生目標(biāo)文件。成功編譯/匯編、連接后,選擇菜單Debug-Start/StopDebugSession(或按Ctrl+F5鍵)進(jìn)入程序調(diào)試狀態(tài),Keil提供對(duì)程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真CPU以模擬執(zhí)行程序。Keil能以單步執(zhí)行(按F11或選擇Debug-Step)、過(guò)程單
51、步執(zhí)行(按F10或選擇Debug-StepOver)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對(duì)程序進(jìn)行在線修改(Debug-InlineAssambly),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對(duì)工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對(duì)于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(Debug-Insert/RemoveBreakpoint或Debug-Breakpoints等)。在模擬調(diào)試程序后,還須通過(guò)編程器將.hex目標(biāo)文件燒寫(xiě)入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。
52、4.3 Protues仿真4.3.1Protues簡(jiǎn)介Proteus軟件是英國(guó)Labcenterelectronics公司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開(kāi)發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PC
53、B設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。該軟件的特點(diǎn)是:1.實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合,具有模擬電路仿真、數(shù)字電路仿真、各種單片機(jī)(51系列、AVR、PIG等常用的MCU)及其外圍電路(如LCD、RAM、ROM、鍵盤(pán)、LED、A/D、D/A)組成的系統(tǒng)仿真。2.提供了多種虛擬儀器。如示波器、邏輯分析
54、儀、信號(hào)發(fā)生器等,調(diào)試非常方便。3.提供軟件調(diào)試功能,同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil等軟件。4.具有強(qiáng)大的原理圖繪制功能。Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn)從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用閹脫節(jié)的矛盾和現(xiàn)象。同時(shí),當(dāng)硬件調(diào)試成功后,利用ProteusARES軟件,很容易獲得其PCB圖,為今后的制造提供了方便11。4.
55、3.2 Protues測(cè)溫仿真通過(guò)仿真軟件驗(yàn)證該原理圖的可行性。采用protues軟件對(duì)電路仿真,可以得到預(yù)期效果。仿真圖如圖4.8示。溫度傳感器的仿真效果圖如圖4.9所示,此圖驗(yàn)證了傳感器的溫度與數(shù)碼管顯示的數(shù)字一致。STC89C52與AT89C52都屬于51系列的單片機(jī),他們是兼容的,所以Protues中沒(méi)有STC89C52芯片,就由AT89C52芯片代替。FBCDEFGDP1ES斗伽CG3+35T3ff3?>Z>K1.EECCOUPU:rE:-:>'1XTAL1PDIVADDPCI.VAD1POZ'ADZ>:7T.h.I2PCIAD3PCI.般D*PCIJADSPCIJ9ADSPSTPn.Ti'ADTPND
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學(xué)《中小學(xué)生心理輔導(dǎo)》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《武術(shù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《基本樂(lè)理》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《專(zhuān)題產(chǎn)品設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《新能源與分布式發(fā)電》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《人工智能》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《計(jì)算機(jī)網(wǎng)絡(luò)實(shí)踐指導(dǎo)》2022-2023學(xué)年期末試卷
- 警察現(xiàn)場(chǎng)救護(hù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 沈陽(yáng)理工大學(xué)《光電子學(xué)》2022-2023學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《德語(yǔ)國(guó)家社會(huì)與文化》2022-2023學(xué)年第一學(xué)期期末試卷
- 醫(yī)科大學(xué)2024年12月精神科護(hù)理學(xué)作業(yè)考核試題答卷
- 論青少年合理懷疑精神的培育
- 機(jī)關(guān)干部禮儀培訓(xùn)課件
- 安徽省合肥市2024年七年級(jí)上學(xué)期期中數(shù)學(xué)試卷【附答案】
- 成都鐵路局招聘2024屆高校畢業(yè)生663人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 《剪映專(zhuān)業(yè)版:短視頻創(chuàng)作案例教程(全彩慕課版)》 課件 第2章 剪映專(zhuān)業(yè)版快速入門(mén)
- 中考物理試題及答案經(jīng)典大全集高分
- DB11T 854-2023 占道作業(yè)交通安全設(shè)施設(shè)置技術(shù)要求
- 2024-2025學(xué)年浙教版八年級(jí)上冊(cè)科學(xué)期中模擬卷
- 第6課《我們神圣的國(guó)土》 (教學(xué)設(shè)計(jì))-部編版道德與法治五年級(jí)上冊(cè)
- 模擬電子技術(shù)說(shuō)課
評(píng)論
0/150
提交評(píng)論