課題設(shè)計(jì)單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第1頁(yè)
課題設(shè)計(jì)單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第2頁(yè)
課題設(shè)計(jì)單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第3頁(yè)
課題設(shè)計(jì)單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第4頁(yè)
課題設(shè)計(jì)單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘要在現(xiàn)代化的工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開(kāi)關(guān)量都是常用的主要被控參數(shù)。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人們都需要對(duì)各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測(cè)和控制。采用單片機(jī)來(lái)對(duì)溫度進(jìn)行測(cè)試控制,不僅具有控制方便、組態(tài)簡(jiǎn)單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。本數(shù)字溫度計(jì)屬于測(cè)試類,在市場(chǎng)上有兩種方案可以選擇,一:采用模擬傳感器,利用a/d轉(zhuǎn)換成數(shù)字信號(hào)進(jìn)行處理;二:采用數(shù)字集成傳感器;還可以附加不同的模塊,以增強(qiáng)其功能,如可以進(jìn)行上下限溫度報(bào)警,溫度自動(dòng)調(diào)節(jié)控制等。器件的選擇和電路的設(shè)計(jì)以微型化為主,盡量減小體積。本文在深入了解各種方案的硬件設(shè)計(jì)和軟件設(shè)計(jì)的基礎(chǔ)上,制作了基于AT89C51控制的一個(gè)數(shù)字溫度監(jiān)測(cè)系統(tǒng),完成了整個(gè)系統(tǒng)器件的選擇,電路原理圖的繪制,各功能模塊的軟件代碼的編寫(xiě),并利用仿真軟件proteus進(jìn)行測(cè)試,驗(yàn)證了整個(gè)系統(tǒng)的功能實(shí)現(xiàn)。關(guān)鍵詞:數(shù)字溫度計(jì)單片機(jī)AT89C51DS18B20顯示AbstractInthemodernindustrialproduction,thecurrent,voltage,temperature,pressure,andflow,velocity,andswitchquantityisaccusedofmainparameters.Example:inmetallurgicalindustry,chemicalindustry,electricpowerengineering,paperindustry,machineryandfoodprocessingandsoonmanydomains,peopleneedtoallkindsofheatingfurnace,heattreatmentfurnace,reactorsandboilertemperaturedetectionandcontrol.Adoptssinglechiptocontroltemperaturetesting,notonlyhastheconvenientcontrol,simpleandflexibleconfigurationadvantages,andcangreatlyimprovethetechnicalindexesarecontrolledtemperature,whichcangreatlyimprovetheproduct'squalityandquantity.Thenumberoftest,inthethermometerbelongstothemarkethastwooptions,asimulatedsensor,use,a/dconversionintodigitalsignalprocessing,2:adoptingdigitalintegratedsensor,Stillcanadddifferentmodules,inordertoenhanceitsfunctions,suchastheuppertemperaturecanautomaticallyadjustthetemperaturecontrolofalarm,etc.Deviceselectionanddesignofthecircuitinminiaturization,minimizevolume.Basedonthoroughknowledgeofthevarioussolutionsofhardwaredesignandsoftwaredesign,andonthebasisoftheproductionofadigitalcontrolbasedonAT89C51temperaturemonitoringsystem,completethewholesystemcomponents,circuitprincipledrawing,thefunctionalmodulesofsoftwarecodecompiling,andusingthesimulationsoftwaretesting,proteusverifiedtherealizationofthefunctionofthewholesystem.Keywords:digitaldataacquisitionsingleflatmachineAT89C51DS18B20showathermometer目錄課題背影 AT89AT89C2051DS18B201#DS18B202#DS18B203#DS18B2020#VCC=5V1—WIRE圖4.8DS18B20硬件連接電路

4.3數(shù)字溫度傳感器原理與應(yīng)用DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測(cè)量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點(diǎn)使DS18B20非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)系統(tǒng)。

2DS18B20的內(nèi)部結(jié)構(gòu)

DS18B20內(nèi)部結(jié)構(gòu)如圖1所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖2所示,DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地,見(jiàn)圖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è)

圖1DS18B20的內(nèi)部結(jié)構(gòu)

圖2DS18B20的管腳排列

(a)初始化時(shí)序

(b)寫(xiě)時(shí)序

(c)讀時(shí)序

圖3DS18B20的工作時(shí)序圖

DS18B20中的溫度傳感器完成對(duì)溫度的測(cè)量,用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以℃/LSB形式表達(dá),其中S為符號(hào)位。例如+125℃的數(shù)字輸出為07D0H,+℃的數(shù)字輸出為0191H,-℃的數(shù)字輸出為FF6FH,-55℃的數(shù)字輸出為FC90H。

23

22

21

20

2-1

2-2

2-3

2-4

溫度值低字節(jié)

MSBLSB

S

S

S

S

S

22

25

24

溫度值高字節(jié)

高低溫報(bào)警觸發(fā)器TH和TL、配置寄存器均由一個(gè)字節(jié)的EEPROM組成,使用一個(gè)存儲(chǔ)器功能命令可對(duì)TH、TL或配置寄存器寫(xiě)入。其中配置寄存器的格式如下:

0

R1

R0

1

1

1

1

1

MSBLSB

R1、R0決定溫度轉(zhuǎn)換的精度位數(shù):R1R0=“00”,9位精度,最大轉(zhuǎn)換時(shí)間為;R1R0=“01”,10位精度,最大轉(zhuǎn)換時(shí)間為;R1R0=“10”,11位精度,最大轉(zhuǎn)換時(shí)間為375ms;R1R0=“11”,12位精度,最大轉(zhuǎn)換時(shí)間為750ms;未編程時(shí)默認(rèn)為12位精度。

高速暫存器是一個(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)保證通信正確。

3DS18B20的工作時(shí)序

DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,如圖3(a)(b)(c)所示。

4DS18B20與單片機(jī)的典型接口設(shè)計(jì)

圖4以MCS-51系列單片機(jī)為例,畫(huà)出了DS18B20與微處理器的典型連接。圖4(a)中DS18B20采用寄生電源方式,其VDD和GND端均接地,圖4(b)中DS18B20采用外接電源方式,其VDD端用3V~電源供電。

假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12MHz,根據(jù)DS18B20的初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,分別編寫(xiě)了3個(gè)子程序:INIT為初始化子程序,WRITE為寫(xiě)(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫(xiě)均由最低位開(kāi)始。

DATEQUP1.0

……

INIT:CLREA

INI10:SETBDAT

MOVR2,

a)寄生電源工作方式

(b)外接電源工作方式

圖4DS18B20與微處理器的典型連接圖

INI11:CLRDAT

DJNZR2,INI11;主機(jī)發(fā)復(fù)位脈沖持續(xù)3μs×200=600μs

SETBDAT;主機(jī)釋放總線,口線改為輸入

MOVR2,#30

IN12:DJNZR2,INI12;DS18B20等待2μs×30=60μs

CLRC

ORLC,DAT;DS18B20數(shù)據(jù)線變低(存在脈沖)嗎?

JCINI10;DS18B20未準(zhǔn)備好,重新初始化

MOVR6,#80

INI13:ORLC,DAT

JCINI14;DS18B20數(shù)據(jù)線變高,初始化成功

DJNZR6,INI13;數(shù)據(jù)線低電平可持續(xù)3μs×80=240μs

SJMPINI10;初始化失敗,重來(lái)

INI14:MOVR2,#240

IN15:DJNZR2,INI15;DS18B20應(yīng)答最少2μs×240=480μs

RET

;------------------------

WRITE:CLREA

MOVR3,#8;循環(huán)8次,寫(xiě)一個(gè)字節(jié)

WR11:SETBDAT

MOVR4,#8

RRCA;寫(xiě)入位從A中移到CY

CLRDAT

WR12:DJNZR4,WR12

;等待16μs

MOVDAT,C;命令字按位依次送給DS18B20

MOVR4,#20

WR13:DJNZR4,WR13

;保證寫(xiě)過(guò)程持續(xù)60μs

DJNZR3,WR11

;未送完一個(gè)字節(jié)繼續(xù)

SETBDAT

RET

;------------------------

READ:CLREA

MOVR6,#8;循環(huán)8次,讀一個(gè)字節(jié)

RD11:CLRDAT

MOVR4,#4

NOP;低電平持續(xù)2μs

SETBDAT;口線設(shè)為輸入

RD12:DJNZR4,RD12

;等待8μs

MOVC,DAT

;主機(jī)按位依次讀入DS18B20的數(shù)據(jù)

RRCA;讀取的數(shù)據(jù)移入A

MOVR5,#30

RD13:DJNZR5,RD13

;保證讀過(guò)程持續(xù)60μs

DJNZR6,RD11

;讀完一個(gè)字節(jié)的數(shù)據(jù),存入A中

SETBDAT

RET

;------------------------

主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:初始化、ROM操作指令、存儲(chǔ)器操作指令。必須先啟動(dòng)DS18B20開(kāi)始轉(zhuǎn)換,再讀出溫度轉(zhuǎn)換值。假設(shè)一線僅掛接一個(gè)芯片,使用默認(rèn)的12位轉(zhuǎn)換精度,外接供電電源,可寫(xiě)出完成一次轉(zhuǎn)換并讀取溫度值子程序GETWD。

GETWD:LCALLINIT

MOVA,#0CCH

LCALLWRITE;發(fā)跳過(guò)ROM命令

MOVA,#44H

LCALLWRITE;發(fā)啟動(dòng)轉(zhuǎn)換命令

LCALLINIT

MOVA,#0CCH;發(fā)跳過(guò)ROM命令

LCALLWRITE

MOVA,#0BEH;發(fā)讀存儲(chǔ)器命令

LCALLWRITE

LCALLREAD

MOVWDLSB,A

;溫度值低位字節(jié)送WDLSB

LCALLREAD

MOVWDMSB,A

;溫度值高位字節(jié)送WDMSB

RET

……

子程序GETWD讀取的溫度值高位字節(jié)送WDMSB單元,低位字節(jié)送WDLSB單元,再按照溫度值字節(jié)的表示格式及其符號(hào)位,經(jīng)過(guò)簡(jiǎn)單的變換即可得到實(shí)際溫度值。

如果一線上掛接多個(gè)DS18B20、采用寄生電源連接方式、需要進(jìn)行轉(zhuǎn)換精度配置、高低限報(bào)警等,則子程序GETWD的編寫(xiě)就要復(fù)雜一些,限于篇幅,這一部分不再詳述,請(qǐng)參閱相關(guān)內(nèi)容。

我們已成功地將DS18B20應(yīng)用于所開(kāi)發(fā)的“家用采暖洗浴器”控制系統(tǒng)中,其轉(zhuǎn)換速度快,轉(zhuǎn)換精度高,與微處理器的接口簡(jiǎn)單,給硬件設(shè)計(jì)工作帶來(lái)了極大的方便,能有效地降低成本,縮短開(kāi)發(fā)周期。4.4DS18B20的主要特性

1.1、適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電

1.2、獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊

1.3、DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫

1.4、DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)

1.5、溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±℃

1.6、可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為℃、℃、℃和℃,可實(shí)現(xiàn)高精度測(cè)溫

1.7、在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快

4.5DS18B20工作原理

DS18B20的讀寫(xiě)時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。DS18B20測(cè)溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖3中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1圖3:DS18B20測(cè)溫原理框圖DS18B20有4個(gè)主要的數(shù)據(jù)部件:

(1)光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開(kāi)始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。

(2)DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以℃/LSB形式表達(dá),其中S為符號(hào)位。表1:DS18B20溫度值格式表

這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于即可得到實(shí)際溫度。

例如+125℃的數(shù)字輸出為07D0H,+℃的數(shù)字輸出為0191H,℃的數(shù)字輸出為FF6FH,-55℃的數(shù)字輸出為表2:DS18B20溫度數(shù)據(jù)表

(3)DS18B20溫度傳感器的存儲(chǔ)器

DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。

(4)配置寄存器該字節(jié)各位的意義如下:表3:配置寄存器結(jié)構(gòu)TMR1R011111

低五位一直都是"1",TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。R1和R0用來(lái)設(shè)置分辨率,如下表所示:(DS18B20出廠時(shí)被設(shè)置為12位)表4:溫度分辨率設(shè)置表R1R0分辨率溫度最大轉(zhuǎn)換時(shí)間009位0110位1011位

375ms1112位

750ms

4.6高速暫存存儲(chǔ)器

高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表5所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表1所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表2是對(duì)應(yīng)的一部分溫度值。第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。表5:DS18B20暫存寄存器分布

寄存器內(nèi)容字節(jié)地址溫度值低位(LSByte)0溫度值高位(MSByte)1高溫限值(TH)2低溫限值(TL)3配置寄存器4保留5保留6保留7CRC校驗(yàn)值8

根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。表6:ROM指令表指令約定代碼功能讀ROM33H讀DS1820溫度傳感器ROM中的編碼(即64位地址)

符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問(wèn)單總線上與該編碼相對(duì)應(yīng)的DS1820使之作出響應(yīng),為下一步對(duì)該DS1820的讀寫(xiě)作準(zhǔn)備。

搜索ROM0FOH用于確定掛接在同一總線上DS1820的個(gè)數(shù)和識(shí)別64位ROM地址。為操作各器件作好準(zhǔn)備。

跳過(guò)ROM0CCH

忽略64位ROM地址,直接向DS1820發(fā)溫度變換命令。適用于單片工作。

告警搜索命令0ECH

執(zhí)行后只有溫度超過(guò)設(shè)定值上限或下限的片子才做出響應(yīng)。表6:RAM指令表指令約定代碼功能溫度變換44H啟動(dòng)DS1820進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)最長(zhǎng)為750ms(9位為)。結(jié)果存入內(nèi)部9字節(jié)RAM中。

讀暫存器

0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容

寫(xiě)暫存器

4EH發(fā)出向內(nèi)部RAM的3、4字節(jié)寫(xiě)上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。

復(fù)制暫存器

48H

將RAM中第3、4字節(jié)的內(nèi)容復(fù)制到EEPROM中。

重調(diào)EEPROM

0B8H

將EEPROM中內(nèi)容恢復(fù)到RAM中的第3、4字節(jié)。讀供電方式0B4H

讀DS1820的供電模式。寄生供電時(shí)DS1820發(fā)送“0”,外接電源供電DS1820發(fā)送

/*DS18b20溫度傳感器作為數(shù)據(jù)傳輸口

晶振:

*/

#include<reg51.H>

sbitDQ=P3^4;

inttemperature;

voiddelay(intus)

{ints;

for(s=0;s<us;s++);

}

voidrst(void)

{

DQ=1;

delay(2);

DQ=0;

delay(30);//精確延時(shí)480~960us

DQ=1;

delay(8);

}

unsignedintread(void)

{

inti=0;

unsignedintu=0;

for(i=0;i<16;i++)

{

DQ=0;

u>>=1;

DQ=1;

if(DQ)u|=0x8000;

delay(4);

}

return(u);

}

voidwrite(unsignedcharku)

{

inti=0;

for(i=0;i<8;i++)

{

DQ=0;

DQ=ku&0x01;

delay(3);

DQ=1;

ku>>=1;

}

}

voidread0(void)

{

//inttemperature;

unsignedinttp;

unsignedintlsb;

rst();

write(0xCC);

write(0x44);

rst();

write(0xCC);

write(0xBE);

tp=read();

lsb=(unsignedint)(tp*6.25);//

temperature=lsb/100;

}

voidmain(void)

{

while(1)

{

read0();

//讀溫度子程序讀到的溫度放在全局變量temperature中可以直接顯示這個(gè)的內(nèi)容

}第五章調(diào)試測(cè)試溫度:0~100攝氏度。(模擬多點(diǎn)不同溫度值環(huán)境)測(cè)試儀器及軟件:數(shù)字萬(wàn)用表,溫度計(jì)0~100攝氏度,串口調(diào)試助手。測(cè)試方法:目測(cè)。系統(tǒng)的調(diào)試以程序?yàn)橹?。硬件調(diào)試比較簡(jiǎn)單,首先檢查電路的焊接是否正確,然后可用萬(wàn)用表或通電檢測(cè)。軟件調(diào)試可以先編寫(xiě)顯示程序并進(jìn)行營(yíng)建的正確性檢驗(yàn),然后分別進(jìn)主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、顯示數(shù)據(jù)刷新等子程序的編程及調(diào)試,由于DS18B20與單片機(jī)采用串行數(shù)據(jù)傳送,因此,對(duì)DS18B20進(jìn)行讀寫(xiě)編程時(shí)必須嚴(yán)格地保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)量結(jié)果。本程序采用單片機(jī)C語(yǔ)言編寫(xiě),用KEIL公司推出的集成開(kāi)發(fā)環(huán)境keiluVision進(jìn)行調(diào)試。KeilC51開(kāi)發(fā)系統(tǒng)基本知識(shí)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í)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面詳細(xì)介紹KeilC51開(kāi)發(fā)系統(tǒng)各部分功能和使用。KeilC51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision與Ishell分別是C51forWindows和forDos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如EPROM中。KeilC51工具包的安裝1.C51forDos2.C51forWindows的安裝及注意事項(xiàng):在Windows下運(yùn)行軟件包中WIN/Setup.exe,最好選擇安裝目錄與C51forDos相同,這樣設(shè)置最簡(jiǎn)單(設(shè)安裝于C:/C51目錄下)。然后將軟件包中crack目錄中的文件拷入C:/C51/Bin目錄下。KeilC51工具包各部分功能及使用簡(jiǎn)介1.C51與A51(1)C51C51是C語(yǔ)言編譯器,其使用方法為:C51sourcefile[編譯控制指令]或者C51@commandfile其中sourcefile為C源文件(.C)。大量的編譯控制指令完成C51編譯器的全部功能。包控C51輸出文件C.LST,.OBJ,.I和.SRC文件的控制。源文件(.C)的控制等,詳見(jiàn)第五部分的具體介紹。而Commandfile為一個(gè)連接控制文件其內(nèi)容包括:.C源文件及各編譯控制指令,它沒(méi)有固定的名字,開(kāi)發(fā)人員可根據(jù)自己的習(xí)慣指定,它適于用控制指令較多的場(chǎng)合。(2)A51A51是匯編語(yǔ)言編譯器,使用方法為:A51sourcefile[編譯控制指令]或A51@commandfile其中sourcefile為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語(yǔ)言類似,可參考其他匯編語(yǔ)言材料。Commandfile同C51中的Commandfile類似,它使A51使用和修改方便。2.L51和BL51(1)L51L51是KeilC51軟件包提供的連接/定位器,其功能是將編譯生成的OBJ文件與庫(kù)文件連接定位生成絕對(duì)目標(biāo)文件(.ABS),其使用方法為:L51目標(biāo)文件列表[庫(kù)文件列表][tooutputfile][連接控制指令]或L51@Commandfile源程序的多個(gè)模塊分別經(jīng)C51與A51編譯后生成多個(gè)OBJ文件,連接時(shí),這些文件全列于目標(biāo)文件列表中,作為輸入文件,如果還需與庫(kù)文件(.LiB)相連接,則庫(kù)文件也必須列在其后。outputfile為輸文件名,缺少時(shí)為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時(shí)的所有控制功能。Commandfile為連接控制文件,其具體內(nèi)容是包括了目標(biāo)文件列表,庫(kù)文件列表及輸出文件、連接控制命令,以取代第一種繁瑣的格式,由于目標(biāo)模塊庫(kù)文件大多不止1個(gè),因而第2種方法較多見(jiàn),這個(gè)文件名字也可由使用者隨意指定。(2)Bl51BL51也是C51軟件包的連接/定位器,其具有L51的所有功能,此外它還具有以下3點(diǎn)特別之處:a.可以連接定位大于64kBytes的程序。b.具有代碼域及域切換功能(CodeBanking&BankSwitching)c.可用于RTX51操作系統(tǒng)RTX51是一個(gè)實(shí)時(shí)多任務(wù)操作系統(tǒng),它改變了傳統(tǒng)的編程模式,甚至不必用main()函數(shù),單片機(jī)系統(tǒng)軟件向RTOS發(fā)展是一種趨勢(shì),這種趨勢(shì)對(duì)于186和386及68K系列CPU更為明顯和必須,對(duì)8051因CPU較為簡(jiǎn)單,程序結(jié)構(gòu)等都不太復(fù)雜,RTX51作用顯得不太突出,其專業(yè)版軟件PK51軟件包甚至不包括RTX51Full,而只有一個(gè)RTX51TINY版本的RTOS。RTX51TINY適用于無(wú)外部RAM的單片機(jī)系統(tǒng),因而可用面很窄,在本文中不作介紹。Bankswitching技術(shù)因使用很少也不作介紹。3.DScope51,Tscope51及Monitor51(1)dScope51dScope51是一個(gè)源級(jí)調(diào)試器和模擬器,它可以調(diào)試由C51編譯器、A51匯編器、PL/M-51編譯器及ASM-51匯編器產(chǎn)生的程序。它不需目標(biāo)板(forwindows也可通過(guò)mon51接目標(biāo)板),只能進(jìn)行軟件模擬,但其功能強(qiáng)大,可模擬CPU及其外圍器件,如內(nèi)部串口,外部I/O及定時(shí)器等,能對(duì)嵌入式軟件功能進(jìn)行有效測(cè)試。其使用方法為:DS51[debugfile][INIT(initfile)]其中debugfile是一個(gè)Hex格式的8051文件,即待調(diào)試的文件其為可選的,可在進(jìn)入dScope51后用load命令裝入。Initfile為一個(gè)初使化文件,它在啟動(dòng)dScope51后,在debugfile裝入前裝入,裝有一些dScope的初使化參數(shù)及常用調(diào)試函數(shù)等。下面是一個(gè)dScope.ini文件(fordos)的內(nèi)容:Load../../ds51/8051.iofMap0,0xffffdScope51forWindows則直接用鼠標(biāo)進(jìn)入,然后用load裝入待調(diào)文件。(2)tScope51與dScope51不同的是Scope51必須帶目標(biāo)板,目前它可以通過(guò)兩種方式訪問(wèn)目標(biāo)板。(1)通過(guò)EMul51在線仿真器,tScope51為該仿真器準(zhǔn)備了一個(gè)動(dòng)態(tài)連接文件EMUL51.IOT,但該方法必須配合該仿真器。(2)通過(guò)Monitov51監(jiān)控程序,這種方法是可行的,tScope51為訪問(wèn)Monitor51專門(mén)帶有MON51.IOT連接程序,使用時(shí)可通過(guò)串口及監(jiān)控程序來(lái)調(diào)試目標(biāo)板。其使用方法為:TS51[INIT(file_name.ini)]其中file_name.ini為一個(gè)初使化文件。進(jìn)入TS51后,必須裝入IOT文件,可用的有MON51.IOT及EMUL51.IOT兩種,如裝入MON51.IOT:Load.C:/C51/TS51/MON51.IOTCPUTYPE(80517)可惜的是tScope51只有forDos的版本。(3)Monitor51Monitor51是一個(gè)監(jiān)控程序通過(guò)PC機(jī)的串口與目標(biāo)板進(jìn)行通信,Monitor操作需要MON51或dScope51forWindows,后面部分將對(duì)Monitor51做較為詳細(xì)的介紹。4.Ishell及uVision(1)IshellforDos這是一個(gè)forDos的IDE,直接在命令行鍵入Ishell,則進(jìn)入該環(huán)境,它使用簡(jiǎn)單方便。其命令行與DOS命令行具有同樣的功能,對(duì)單模塊的Project直接由菜單進(jìn)行編譯連接,對(duì)多模塊的project。則通過(guò)批處理,BAT文件進(jìn)行編譯連接,然后通過(guò)菜單控制由dScope51或tScope51對(duì)程序進(jìn)行調(diào)試,因?yàn)槭莊ordos的,不做太詳細(xì)介紹。(2)uVisionforWindowsuVisionforWindows是一個(gè)標(biāo)準(zhǔn)的Windows應(yīng)用程序,它是C51的一個(gè)集成軟件開(kāi)發(fā)平臺(tái),具有源代碼編輯、project管理、集成的make等功能,它的人機(jī)界面友好,操作方便,是開(kāi)發(fā)者的首選。KeilC51軟件使用詳解5.4KeilC51編譯器的控制指令5.C51編譯器的控制指令C51編譯器的控制指令分為三類:源文件控制類,目標(biāo)文件控制類及列表控制類。1.源文件控制類NOEXTEND:C51源文件不允許使用ANSIC擴(kuò)展功能。DEFINE(DF):定義預(yù)處理(在C51命令行)。2.目標(biāo)文件(Object)控制類:COMPACTLARGESMALL選編譯模式DEBUG(DB)包含調(diào)試信息,以供仿真器或dSCope51使用。NOAMAKE(NOAM)禁止AutoMake信息記錄NOREGPARMS禁止用寄存器傳遞參數(shù)OBJECTEXTEND(OE)Object文件包含附加變量類型信息OPTIMIZE(OT)指定優(yōu)化級(jí)別REGFILE(RF)指定一個(gè)寄存器使用的文件以供整體優(yōu)化用REGISTERBANK(RB)指定一個(gè)供絕對(duì)寄存器訪問(wèn)的寄存器區(qū)名SRC不生成目標(biāo)文件只生成匯編源文件其它控件不常用。3.列表文件(listing)控制類:CODE(CD):向列表文件加入?yún)R編列表LISTINCLUDE(LC):顯示indude文件SYMBOLS(SB):列表文件包括模塊內(nèi)所有符號(hào)的列表WARNINGLEVEL(WL):選擇警告級(jí)別dScope51的使用1.dScope51forDos總的來(lái)說(shuō)dScope51具有以下特性:高級(jí)語(yǔ)言顯示模式集成硬件環(huán)境模擬單步或“GO執(zhí)行模式存儲(chǔ)器、寄存器及變量訪問(wèn)Watch表達(dá)式之值函數(shù)與信號(hào)功能5.5KeilC51庫(kù)函數(shù)參考C51強(qiáng)大功能及其高效率的重要體現(xiàn)之一在于其豐富的可直接調(diào)用的庫(kù)函數(shù),多使用庫(kù)函數(shù)使程序代碼簡(jiǎn)單,結(jié)構(gòu)清晰,易于調(diào)試和維護(hù),下面介紹C51的庫(kù)函數(shù)系統(tǒng)。本征庫(kù)函數(shù)(intrinsicroutines)和非本征證庫(kù)函數(shù)C51提供的本征函數(shù)是指編譯時(shí)直接將固定的代碼插入當(dāng)前行,而不是用ACALL和LCALL語(yǔ)句來(lái)實(shí)現(xiàn),這樣就大大提供了函數(shù)訪問(wèn)的效率,而非本征函數(shù)則必須由ACALL及LCALL調(diào)用。C51的本征庫(kù)函數(shù)只有9個(gè),數(shù)目雖少,但都非常有用,列如下:_crol_,_cror_:將char型變量循環(huán)向左(右)移動(dòng)指定位數(shù)后返回_iror_,_irol_:將int型變量循環(huán)向左(右)移動(dòng)指定位數(shù)后返回_lrol_,_lror_:將long型變量循環(huán)向左(右)移動(dòng)指定位數(shù)后返回_nop_:相當(dāng)于插入NOP_testbit_:相當(dāng)于JBCbitvar測(cè)試該位變量并跳轉(zhuǎn)同時(shí)清除。_chkfloat_:測(cè)試并返回源點(diǎn)數(shù)狀態(tài)。使用時(shí),必須包含#inclucle<intrins.h>一行。如不說(shuō)明,下面談到的庫(kù)函數(shù)均指非本征庫(kù)函數(shù)。幾類重要庫(kù)函數(shù)1.專用寄存器include文件例如8031、8051均為REG51.h其中包括了所有8051的SFR及其位定義,一般系統(tǒng)都必須包括本文件。2.絕對(duì)地址include文件absacc.h該文件中實(shí)際只定義了幾個(gè)宏,以確定各存儲(chǔ)空間的絕對(duì)地址。3.動(dòng)態(tài)內(nèi)存分配函數(shù),位于stdlib.h中4.緩沖區(qū)處理函數(shù)位于“string.h中其中包括拷貝比較移動(dòng)等函數(shù)如:memccpymemchrmemcmpmemcpymemmovememset這樣很方便地對(duì)緩沖區(qū)進(jìn)行處理。5.輸入輸出流函數(shù),位于“stdio.h中流函數(shù)通8051的串口或用戶定義的I/O口讀寫(xiě)數(shù)據(jù),缺省為8051串口,如要修改,比如改為L(zhǎng)CD顯示,可修改lib目錄中的getkey.c及putchar.c源文件,然后在庫(kù)中替換它們即可。KeilC51庫(kù)函數(shù)原型列表1.CTYPE.Hbitisalnum(charc);bitisalpha(charc);bitiscntrl(charc);bitisdigit(charc);bitisgraph(charc);bitislower(charc);bitisprint(charc);bitispunct(charc);bitisspace(charc);bitisupper(charc);bitisxdigit(charc);bittoascii(charc);bittoint(charc);chartolower(charc);char__tolower(charc);chartoupper(charc);char__toupper(charc);2.INTRINS.Hunsignedchar_crol_(unsignedcharc,unsignedcharb);unsignedchar_cror_(unsignedcharc,unsignedcharb);unsignedchar_chkfloat_(floatual);unsignedint_irol_(unsignedinti,unsignedcharb);unsignedint_iror_(unsignedinti,unsignedcharb);unsignedlong_irol_(unsignedlongl,unsignedcharb);unsignedlong_iror_(unsignedlongL,unsignedcharb);void_nop_(void);bit_testbit_(bitb);3.STDIO.Hchargetchar(void);char_getkey(void);char*gets(char*string,intlen);intprintf(constchar*fmtstr[,argument]);…charputchar(charc);intputs(constchar*string);intscanf(constchar*fmtstr.[,argument]);…intsprintf(char*buffer,constchar*fmtstr[;argument]);intsscanf(char*buffer,constchar*fmtstr[,argument]);charungetchar(charc);voidvprintf(constchar*fmtstr,char*argptr);voidvsprintf(char*buffer,constchar*fmtstr,char*argptr);4.STDLIB.Hfloatatof(void*string);intatoi(void*string);longatol(void*string);void*calloc(unsignedintnum,unsignedintlen);voidfree(voidxdata*p);voidinit_mempool(void*data*p,unsignedintsize);void*malloc(unsignedintsize);intrand(void);void*realloc(voidxdata*p,unsignedintsize);voidsrand(intseed);5.STRING.Hvoid*memccpy(void*dest,void*src,charc,intlen);void*memchr(void*buf,charc,intlen);charmemcmp(void*buf1,void*buf2,intlen);void*memcopy(void*dest,void*SRC,intlen);void*memmove(void*dest,void*src,intlen);void*memset(void*buf,charc,intlen);char*strcat(char*dest,char*src);char*strchr(constchar*string,charc);charstrcmp(char*string1,char*string2);char*strcpy(char*dest,char*src);intstrcspn(char*src,char*set);intstrlen(char*src);char*strncat(char8dest,char*src,intlen);charstrncmp(char*string1,char*string2,intlen);charstrncpy(char*dest,char*src,intlen);char*strpbrk(char*string,char*set);intstrpos(constchar*string,charc);char*strrchr(constchar*string,charc);char*strrpbrk(char*string,char*set);intstrrpos(constchar*string,charc);intstrspn(char*string,char*set);圖5.1程序調(diào)試圖1圖5.2程序調(diào)試圖2圖5.3程序調(diào)試圖35.6畫(huà)硬件連線圖工具Protel99SE(第二版)是Protel最新完成的視窗環(huán)境之印刷電路板設(shè)計(jì)系統(tǒng)。它憑藉著Protel99原有先進(jìn)的設(shè)計(jì)平臺(tái),帶來(lái)了更多既強(qiáng)大又有效用的新增功能,讓您在具有最完整的功能特性之情況下,提升您設(shè)計(jì)上的品質(zhì)與效率。而且不只是新的PCB增強(qiáng)功能讓人興奮而已,Protel99SE所內(nèi)含的Protel99ServicePack2還包括一系列的系統(tǒng)問(wèn)題的修正與改良。重要功能:Protel99SE的檔案總管(DesignExplorer)提供多種類型的檔案存貯格式(例如一般的Windows檔案系統(tǒng)或MicrosoftAccess資料庫(kù)檔案格式)。工作層面的增加(包括32層布線層(SignalLayer)、16個(gè)內(nèi)層電源接地層(Power/GroundPlane)、16層機(jī)構(gòu)標(biāo)示層(MechanicalLayer)與可以全部自訂的層疊結(jié)構(gòu)(LayerStack)與埋孔層對(duì)(DrillPair)設(shè)定。許多PCB工作編輯區(qū)的改良,如加強(qiáng)狀態(tài)列的說(shuō)明和具有自我調(diào)適能力的自動(dòng)移鏡功能(AutoPan)與防焊及鋼板層的個(gè)別定義。提供7種新的設(shè)計(jì)規(guī)則(DesignRule)和5種設(shè)計(jì)規(guī)則鎖定范圍(Scope),并具有設(shè)計(jì)規(guī)則的匯入/匯出功能以及各種的設(shè)計(jì)規(guī)則報(bào)告資料輸出之特性。新的PCB零件配置功能包括群組零件的定義,動(dòng)態(tài)的鼠線最佳化和鼠線長(zhǎng)度的動(dòng)態(tài)分析提示。另外X與Y軸可分別定義的零件配置格點(diǎn)與簡(jiǎn)易的特殊范圍劃分,并提供零件安全間距的聯(lián)機(jī)立即檢查(ComponentClearancesOn-lineCheck)與整批的設(shè)計(jì)規(guī)則檢查(BatchDRC)。全新的PCB強(qiáng)力組合列印(PowerPrint)功能。全新的CAMManager提升PCB后制程的能力支援。全新的3D擬真印刷電路板之瀏覽功能。全新加強(qiáng)AutoCAD檔案格式的雙向互轉(zhuǎn)介面。提供全新的OrCAD格式的匯入介面。1)檔案總管(DesignExplorer)操作介面的加強(qiáng)Protel獨(dú)特的檔案總管(DesignExplorer)提供強(qiáng)大的工具整合環(huán)境、文件管理和團(tuán)隊(duì)分工合作的特性。Protel99SE的DesignExplorer已加快您檔案開(kāi)啟及關(guān)閉的速度,并減少網(wǎng)絡(luò)擁塞與過(guò)多的網(wǎng)絡(luò)廣播(broadcast)與接收(receive)動(dòng)作,并提供您兩種存貯DDB整合設(shè)計(jì)檔的選項(xiàng),讓您可將設(shè)計(jì)檔存成簡(jiǎn)單的Windows檔案系統(tǒng)格式或MicrosoftAccess資料庫(kù)格式。2)PCB布線層、電源層及機(jī)構(gòu)標(biāo)示層的增加Protel99SE新增了很多工作層面,包括信號(hào)走線層,電源層和機(jī)構(gòu)標(biāo)示層,讓您具有層面堆疊排列的定義能力和設(shè)定貫孔(Via)直接連接內(nèi)層電源層的能力。也因?yàn)榫哂腥绱送暾銐虻淖杂喣芰?,才能去?yīng)付現(xiàn)在及未來(lái)更嚴(yán)苛的設(shè)計(jì)需求。3)PCB工作編輯區(qū)的加強(qiáng)當(dāng)您設(shè)計(jì)一個(gè)較復(fù)雜的PCB時(shí),系統(tǒng)會(huì)時(shí)常去進(jìn)行一些較瑣碎的計(jì)算和分析,增加了您的工作時(shí)間。而現(xiàn)在Protel99SE的PCB編輯介面上,則加強(qiáng)了一些新的特性與功能,讓您在PCB布線與編輯上更簡(jiǎn)單容易,縮短更多的處理時(shí)間,并得到更多的生產(chǎn)效益。重點(diǎn)提示:可直接對(duì)焊點(diǎn)(Pad)定義防焊與SMT鋼板的擴(kuò)充值(SolderMaskorPasterMaskExpand)可直接對(duì)貫孔(Via)定義防焊與SMT鋼板的擴(kuò)充值全新的Pad和Via的反遮罩(Tent)設(shè)定選項(xiàng)(所謂的Tent就是將防焊遮罩拿掉,也就是要蓋綠漆)全新自動(dòng)調(diào)適移鏡(autopanning)速度的功能,提供您在任一倍率的畫(huà)面下,皆能得到最平順與最有彈性去調(diào)控的畫(huà)面自動(dòng)移鏡效果所有畫(huà)面出現(xiàn)的選單或表單都能依實(shí)際的數(shù)值來(lái)排序(避免有A1、A10…A19、A2、A20的排列情形)當(dāng)光標(biāo)移動(dòng)在任何工作區(qū)上的物件時(shí),狀態(tài)列可顯示更多詳細(xì)的信息內(nèi)容提供可以在單一的DDB檔案內(nèi),增刪其內(nèi)部所含的個(gè)別零件庫(kù)檔案(當(dāng)DDB含有很多LIB時(shí))可按住CTRL鍵讓物件的鎖點(diǎn)功能(electricalgrid)暫時(shí)取消可按住ALT鍵讓布線方式暫時(shí)從回避障礙物(AvoidObstacle)切換至忽略障礙物(IgnoreObstacle)的方式。開(kāi)放零件的序號(hào)(Designator)與標(biāo)注(Comment)的整體性編輯(Globalediting)功能提供犁穿方式(PlowThroughMode),可讓走線擺置在已鋪設(shè)的銅箔(Polygon)上面時(shí),該銅箔立即自動(dòng)避開(kāi)該走線全新的圓弧繪制方式現(xiàn)在可以將尺寸標(biāo)示物(Dimensions)、座標(biāo)標(biāo)示物(coordinates)和銅箔面(polygons)做分解(炸開(kāi))的動(dòng)作即時(shí)信息特性4)PCB設(shè)計(jì)規(guī)則(DesignRule)的新增與加強(qiáng)Protel99SE提供非常多強(qiáng)大的設(shè)計(jì)規(guī)則來(lái)驅(qū)策PCB設(shè)計(jì)上必須依循的規(guī)范。Protel99為您的PCB設(shè)計(jì)了很多先進(jìn)的生產(chǎn)制造所需之規(guī)則,讓您很輕松地去建立和管理設(shè)計(jì)規(guī)則。而在Protel99SE則再新增一些設(shè)計(jì)規(guī)則與增加設(shè)計(jì)規(guī)則范圍(Scope)可應(yīng)用的參數(shù)要件,并讓您具有匯入與匯出設(shè)計(jì)規(guī)則的功能和產(chǎn)生種設(shè)計(jì)規(guī)則的報(bào)告資料。5)加強(qiáng)PCB的零件配置(PlacementTools)功能一個(gè)好的零件配置是一個(gè)成功的PCB設(shè)計(jì)最重要的關(guān)鍵。使用Protel99SE新增強(qiáng)的零件配置工具,并緊密的結(jié)合被整合的零件配置之設(shè)計(jì)規(guī)則,讓您輕易的完成零件的布局。6)新增的PCB強(qiáng)力組合列印功能(PCBPowerPrint)Protel99SE含有一個(gè)強(qiáng)大的列印新功能。PCB強(qiáng)力組合列印功能使您完全掌控所有的PCB列印處理。使用此功能可以讓您去列印出您所想要的PCB層面組合。您還可以去設(shè)定列印的倍率與旋轉(zhuǎn)方向,并進(jìn)行精細(xì)清晰的列印前預(yù)覽。7)加強(qiáng)設(shè)計(jì)配合制造(DFM)之功能設(shè)計(jì)印刷電路板只是產(chǎn)品制造過(guò)程的一部分。通常您需要花費(fèi)整天的時(shí)間去建立和管理所有制造過(guò)程所需的文件檔案。Protel99SE則增強(qiáng)許多的功能讓您很容易的去制作出這些文件檔案。8)新增3D擬真印刷電路板預(yù)覽器(3DPCBViewer)為什么要等到您的板子做出來(lái)之后才去看它是長(zhǎng)什么樣子的呢?Protel99運(yùn)用了一個(gè)非常復(fù)雜的3DPCB擬真技術(shù),讓您去預(yù)覽和列印您PCB在零件組裝后非常精致美觀的立體影像。Protel99SE獨(dú)特的3D擬真特性讓您提前看到您完成后的板子外觀。復(fù)雜的3D壓制與塑型技術(shù)描繪出您精致美觀的3DPCB影像,而不需要您去輸入任何有關(guān)零件高度的參數(shù)資料。您還可以利用旋轉(zhuǎn)和畫(huà)面縮放,仔細(xì)去觀察板子的各方位影像,或者也可以顯示或隱藏零件、銅箔、網(wǎng)印面的線條資料或文字等。自檢正常,各點(diǎn)溫度顯示正常,串口傳輸數(shù)據(jù)正確。成功地將DS18B20應(yīng)用于所開(kāi)發(fā)的“數(shù)字溫度計(jì)”的控制系統(tǒng)中,其測(cè)溫系統(tǒng)簡(jiǎn)單,測(cè)溫精度高,連接方便,占用口線少,轉(zhuǎn)換速度快,與微處理器的接口簡(jiǎn)單,給硬件設(shè)計(jì)工作帶來(lái)了極大的方便,能有效地降低成本,縮短開(kāi)發(fā)周期圖5.4硬件連線畫(huà)圖工具圖第六章設(shè)計(jì)總結(jié)通過(guò)本次溫度監(jiān)控系統(tǒng)的設(shè)計(jì),我大有收獲,在制作過(guò)程中,一定要注意的每個(gè)工作步驟的檢查,確保制作成功。比如在合理布線,檢查裝配無(wú)誤的情況下,如果還出現(xiàn)電路無(wú)輸出的情況,那么可以肯定是原理圖錯(cuò)誤,這時(shí)就要回到原理圖進(jìn)行檢查??傮w的檢查順序應(yīng)該是原理圖、PCB圖、裝配情況、焊接工藝。從整體來(lái)說(shuō)這是一個(gè)復(fù)雜的過(guò)程,要細(xì)心謹(jǐn)慎,沉著冷靜,反復(fù)檢查,直到找到原因?yàn)橹?。這次畢業(yè)設(shè)計(jì)歷時(shí)至少1個(gè)月,從一開(kāi)始的確定課題,到后來(lái)的資料查找、理論學(xué)習(xí),再有就是近來(lái)的調(diào)試和測(cè)試過(guò)程,這一切都使我的理論知識(shí)和動(dòng)手能力進(jìn)一步得到頻率合成電路課題中包含了通信電路和單片機(jī)部分知識(shí),可以說(shuō)是對(duì)通信電路知識(shí)的一次全面綜合。在畫(huà)原理圖、PCB布線、安裝和調(diào)試過(guò)程中不可避免地遇到各種問(wèn)題,這要求保持沉著冷靜,聯(lián)系書(shū)本理論知識(shí)積極地思考,實(shí)在解決不了可以請(qǐng)教同學(xué)或指導(dǎo)老師。雖然在制作過(guò)程中不可避免地遇到很多問(wèn)題,但是最后還是在老師以及同學(xué)的幫助下圓滿解決了這些問(wèn)題,實(shí)現(xiàn)了整個(gè)系統(tǒng)設(shè)計(jì)與最后調(diào)試,相關(guān)指標(biāo)達(dá)到期望的要求,很好地完成了本次設(shè)計(jì)任務(wù)。經(jīng)過(guò)三年學(xué)習(xí)的積累,在已經(jīng)掌握相關(guān)專業(yè)方面知識(shí)及其它各方面知識(shí)的情況下,我認(rèn)真嚴(yán)肅的完成了我的畢業(yè)設(shè)計(jì)。從得到題目到查找資料,從對(duì)題目的研究設(shè)定到PCB電路板的制作,從電路板的調(diào)試到失敗后再一次全部重新開(kāi)始……在這一個(gè)充滿挑戰(zhàn)伴隨挫折,充滿熱情伴隨打擊的過(guò)程中,我感觸頗深,它已不僅是一個(gè)對(duì)我四年學(xué)習(xí)知識(shí)情況和我的應(yīng)用動(dòng)手能力的檢驗(yàn),而且還是對(duì)我的鉆研精神,面對(duì)困難的心態(tài),做事的毅力和耐心的考驗(yàn)。我在這個(gè)過(guò)程中深刻的感受到了做畢業(yè)設(shè)計(jì)的意義所在,和我一樣真正投入了身心去做的人也一定會(huì)有同樣的感觸。致謝在本次畢業(yè)設(shè)計(jì)中,我得到了指導(dǎo)老師陳紫強(qiáng)的熱心指導(dǎo)。自始至終關(guān)心督促畢業(yè)設(shè)計(jì)進(jìn)程和進(jìn)度。幫助解決畢業(yè)設(shè)計(jì)中遇到的許多問(wèn)題。還不斷向我們傳授分析問(wèn)題和解決問(wèn)題的辦法,并指出了正確的努力方向,使我在畢設(shè)過(guò)程中少走很多彎路。同時(shí),他還提供給我們專門(mén)的各種設(shè)備及場(chǎng)所,在調(diào)試過(guò)程中能夠有充足的時(shí)間。在這里非常感謝趙老師的指導(dǎo)和幫助,并致以誠(chéng)摯的謝意!同時(shí),身邊的同學(xué)給了我許多的幫助。在此,我向身邊關(guān)心我的同學(xué)致以誠(chéng)摯的謝意!另外,系里的領(lǐng)導(dǎo)和老師也給了我們必要的指導(dǎo),我也向系和年級(jí)的領(lǐng)導(dǎo)們表示衷心的感謝!最后感謝學(xué)院對(duì)我這幾年的培養(yǎng)。參考文獻(xiàn)[1]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù)[M].北京航空航天大學(xué),1990.[2[M].重慶:重慶大學(xué)出版社,2002.[3]徐愛(ài)鈞.單片機(jī)高級(jí)語(yǔ)言C51應(yīng)用程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002.[4]謝自美.電子線路設(shè)計(jì).實(shí)驗(yàn).測(cè)試(第二版)[M].武漢:華中科技大學(xué)出版社,2000.[5]張勇.PROTEL99SE電路設(shè)計(jì)技術(shù)入門(mén)與應(yīng)用(第一版).電子工業(yè)出版社,2002.[6]DS1820及高精度溫度測(cè)量的實(shí)現(xiàn)振國(guó)電子技術(shù)應(yīng)用2000.[7]數(shù)字溫度傳感器在倉(cāng)庫(kù)溫度檢測(cè)系統(tǒng)的應(yīng)用東耀汪仁煌傳感器世界2001.[8]DS18B20硬件連接及軟件編程月霞孫傳友傳感器世界2001.[9]傳感器實(shí)際應(yīng)用電路設(shè)計(jì)賢武鄭霞曲波成都電子科技大學(xué)出版社1997.[10]單線數(shù)字溫度傳感器的原理與應(yīng)用偉正電子技術(shù)應(yīng)用2000.[11]DS18B20硬件連接及軟件編程周月霞孫傳友傳感器世界2001.附錄附錄一、原理圖附錄二、程序流程圖圖2中斷服務(wù)程序框圖附錄三、程序清單#include<AT89C2051.H>#include<INTRINS.h>unsignedcharcodedisplaybit[]={0xfe,0xfd,0xfb,0xf7,//P3口的位選碼//0xef,0xdf,0xbf,0x7f};unsignedcharcodedisplaycode[]={0x3f,0x06,0x5b,0x4f,//P1口的顯示碼//0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};unsignedcharcodedotcode[32]={0,3,6,9,12,16,19,22,25,28,31,34,38,41,44,48,50,53,56,59,63,66,69,72,75,78,81,84,88,91,94,97};unsignedchardisplaycount;unsignedchardisplaybuf[8]={16,16,16,16,16,16,16,16};unsignedchartimecount;unsignedcharreaddata[8];sbitDQ=P3^7;bitsflag;bitresetpulse(void)//初始化代碼//{unsignedchari;DQ=0;for(i=255;i>0;i--);DQ=1;for(i=60;i>0;i--);return(DQ);for(i=200;i>0;i--);}voidwritecommandtods18b20(unsignedcharcommand)//寫(xiě)時(shí)序//{unsignedchari;unsignedcharj;for(i=0;i<8;i++){if((command&0x01)==0){DQ=0;for(j=35;j>0;j--);DQ=1;}else{DQ=0;for(j=2;j>0;j--);DQ=1;for(j=33;j>0;j--);}command=_cror_(command,1);}}unsignedcharreaddatafromds18b20(void)//讀時(shí)序//{unsignedchari;unsignedcharj;unsignedchartemp;temp=0;for(i=0;i<8;i++){temp=_cror_(temp,1);DQ=0;_nop_();_nop_();DQ=1;for(j=10;j>0;j--);if(DQ==1){temp=temp|0x80;}else{temp=temp|0x00;}for(j=200;j>0;j--);}return(temp);}voidmain(void){TMOD=0x01;//定時(shí)器0方式1//TH0=(65536-4000)/256;TL0=(65536-4000)%256;ET0=1;//允許定時(shí)器0中斷//EA=1;//允許全局中斷//while(resetpulse());writecommandtods18b20(0xcc);writecommandtods18b20(0x44);TR0=1;while(1){;}}voidt0(void)interrupt1using0//定時(shí)器中斷函數(shù)//{unsignedcharx;unsignedintresult;TH0=(65536-4000)/256;TL0=(65536-4000)%256;if(displaycount==2){P1=displaycode[displaybuf[displaycount]]|0x80;}else{P1=displaycode[displaybuf[displaycount]];//調(diào)用顯示碼//}P3=displaybit[displaycount];displaycount++;if(displaycount==8){displaycount=0;}timecount++;if(timecount==150){timecount=0;while(resetpulse());writecommandtods18b20(0xcc);writecommandtods18b20(0xbe);readdata[0]=readdatafromds18b20();readdata[1]=readdatafromds18b20();for(x=0;x<8;x++){displaybuf[x]=16;}sflag=0;if((readdata[1]&0xf8)!=0x00){sflag=1;readdata[1]=~readdata[1];readdata[0]=~readdata[0];result=readdata[0]+1;readdata[0]=result;if(result>255){readdata[1]++;}}readdata[1]=readdata[1]<<4;readdata[1]=readdata[1]&0x70;x=readdata[0];x=x>>4;x=x&0x0f;readdata[1]=readdata[1]|x;x=2;result=readdata[1];while(result/10){displaybuf[x]=result%10;//分離百,十,個(gè)位//result=result/10;x++;}displaybuf[x]=result;if(sflag==1){displaybuf[x+1]=17;}x=readdata[0]&0x0f;x=x<<1;displaybuf[0]=(dotcode[x])%10;displaybuf[1]=(dotcode[x])/10;while(resetpulse());writecommandtods18b20(0xcc);writecommandtods18b20(0x44);}}小產(chǎn)權(quán)房”并不是一個(gè)法律上的概念,它只是人們?cè)谏鐣?huì)實(shí)踐中形成的一種約定俗成的稱謂。目前通常所謂的“小產(chǎn)權(quán)房”,也稱“鄉(xiāng)產(chǎn)權(quán)房”,是指由鄉(xiāng)鎮(zhèn)政府而不是國(guó)家頒發(fā)產(chǎn)權(quán)證的房產(chǎn)。所以,“小產(chǎn)權(quán)”其實(shí)就是“鄉(xiāng)產(chǎn)權(quán)”,它并不構(gòu)成真正法律意義上的產(chǎn)權(quán)。說(shuō)的再直白一些,“小產(chǎn)權(quán)房”是一些村集體組織或者開(kāi)發(fā)商打著新農(nóng)村建設(shè)等名義出售的、建筑在集體土地上的房屋或是由農(nóng)民自行組織建造的“商品房”。目前的“小產(chǎn)權(quán)房”、“鄉(xiāng)產(chǎn)權(quán)房”有兩種:一種是在集體建設(shè)用地上建成的,即“宅基地”上建成的房子,只屬于該農(nóng)村的集體所有者,連外村農(nóng)民都不能夠買(mǎi);另一種是在集體企業(yè)用地或者占用耕地違法建設(shè)的。和一般意義上的商品房相比,“小產(chǎn)權(quán)房”沒(méi)有土地出讓金概念,也沒(méi)有開(kāi)發(fā)商瘋狂的利潤(rùn)攫取,所以,“小產(chǎn)權(quán)房”的價(jià)格,一般僅是同地區(qū)商品房?jī)r(jià)格的1/3甚至更低。這是大量城鎮(zhèn)居民頂著產(chǎn)權(quán)風(fēng)險(xiǎn)購(gòu)買(mǎi)“小產(chǎn)權(quán)房”的根本原因。法律屬性那么,鄉(xiāng)產(chǎn)權(quán)房的法律屬性如何,其究竟是否合法、能否購(gòu)買(mǎi)或轉(zhuǎn)讓?首先應(yīng)當(dāng)明確的是鄉(xiāng)產(chǎn)權(quán)房只要依法辦理了相關(guān)審批手續(xù),其就是合法建筑,法律是允許鄉(xiāng)村集體在集體土地上建造住宅的。因此,并非只要是鄉(xiāng)產(chǎn)權(quán)房就是非法建筑,其只是因銷售環(huán)節(jié)存在的一些問(wèn)題和現(xiàn)行法律法規(guī)發(fā)生沖突,才讓人誤認(rèn)為是非法建筑。

既然是合法的,那么鄉(xiāng)產(chǎn)權(quán)房是否可以購(gòu)買(mǎi)和轉(zhuǎn)讓呢?根據(jù)《中華人民共和國(guó)土地管理法》的規(guī)定,農(nóng)民集體所有的土地的使用權(quán)不得出讓、轉(zhuǎn)讓或者出租用于非農(nóng)業(yè)建設(shè)。而農(nóng)村宅基地屬集體所有,村民對(duì)宅基地也只有享有使用權(quán),農(nóng)民將房屋賣(mài)給城市居民的買(mǎi)賣(mài)行為不能受到的法律認(rèn)可與保護(hù),也就不能辦理土地使用證、房產(chǎn)證、契稅證等合法手續(xù)。由此可見(jiàn),鄉(xiāng)產(chǎn)權(quán)房是不能向非本集體成員的第三人轉(zhuǎn)讓或出售的。但這并不是說(shuō)鄉(xiāng)產(chǎn)權(quán)房就不能轉(zhuǎn)讓,而是說(shuō)其轉(zhuǎn)讓或銷售的對(duì)象是有限制的,只能在集體成員內(nèi)部是可以轉(zhuǎn)讓、置換。

小產(chǎn)權(quán)和大產(chǎn)權(quán)1、全部產(chǎn)權(quán)(大產(chǎn)權(quán))

國(guó)務(wù)院《關(guān)于繼續(xù)積極穩(wěn)妥地進(jìn)行城鎮(zhèn)住房制度改革的通知》中規(guī)定:凡按市場(chǎng)價(jià)購(gòu)買(mǎi)的公房,購(gòu)房者能夠擁有全部產(chǎn)權(quán)。市場(chǎng)價(jià)也就是住宅市場(chǎng)的行市價(jià)格或牌價(jià)價(jià)格。國(guó)家和地方政府不予壓低和抬高,隨行就市,任由買(mǎi)賣(mài)雙方商定,只要雙方能接受,即可成交。按照市場(chǎng)價(jià)購(gòu)得住宅的房主,也就擁有了住宅的各項(xiàng)支配權(quán)利,也就是擁有了房屋、住宅的占有權(quán)、使用權(quán)、收益權(quán)和處分權(quán)。在這,房屋的全部產(chǎn)權(quán)與房屋的所有權(quán)是等同的,只不過(guò)是二者的提法有所不同。相對(duì)于“部分產(chǎn)權(quán)”而言,“全部產(chǎn)權(quán)”才有存在的意義。2、部分產(chǎn)權(quán)。(小產(chǎn)權(quán))

小產(chǎn)權(quán)房”并不是一個(gè)法律上的概念,它只是人們?cè)谏鐣?huì)實(shí)踐中形成的一種約定俗成的稱謂。目前通常所謂的“小產(chǎn)權(quán)房”,也稱“鄉(xiāng)產(chǎn)權(quán)房”,是指由鄉(xiāng)鎮(zhèn)政府而不是國(guó)家頒發(fā)產(chǎn)權(quán)證的房產(chǎn)。所以,“小產(chǎn)權(quán)”其實(shí)就是“鄉(xiāng)產(chǎn)權(quán)”,它并不構(gòu)成真正法律意義上的產(chǎn)權(quán)。說(shuō)的再直白一些,“小產(chǎn)權(quán)房”是一些村集體組織或者開(kāi)發(fā)商打著新農(nóng)村建設(shè)等名義出售的、建筑在集體土地上的房屋或是由農(nóng)民自行組織建造的“商品房”。前的“小產(chǎn)權(quán)房”、“鄉(xiāng)產(chǎn)權(quán)房”有兩種:一種是在集體建設(shè)用地上建成的,即“宅基地”上建成的房子,只屬于該農(nóng)村的集體所有者,連外村農(nóng)民都不

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論