畢業(yè)設(shè)計(論文)基于51單片機的電熱毯設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于51單片機的電熱毯設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于51單片機的電熱毯設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于51單片機的電熱毯設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于51單片機的電熱毯設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要電熱毯控制器從八十年代初控制器只設(shè)開、關(guān)兩檔、不能調(diào)溫,到80年代中期控制器設(shè)高、底、關(guān)三檔,具有簡單調(diào)溫功能,90年代研制生產(chǎn)出無級調(diào)溫、自動控溫的電熱毯;目前正向國際先進(jìn)的定時調(diào)溫、電腦程序控溫和自動恒溫方向發(fā)展。因此要使恒溫電熱毯控制器真正走人千家萬戶,非常有必要設(shè)計一個好的溫度控制和控制器對其控制,滿足大眾對其在安全、舒適、操作方便等方面的要求。 本設(shè)計為一個基于51單片機控制,可以顯示室溫、設(shè)定溫度及實際溫度的恒溫電熱毯控制器。本設(shè)計中選用了at80c51由于采用小引腳封裝所以價格僅與低檔單片機相當(dāng)。本設(shè)計采用ds18b20做溫度傳感器。溫度范圍控制在0100范圍內(nèi)。將模擬輸入的

2、電壓值轉(zhuǎn)化成對應(yīng)的溫度值實現(xiàn)對電熱毯恒溫控制和室溫顯示。在整個設(shè)計中,本人按照系統(tǒng)的功能劃分子系統(tǒng)結(jié)構(gòu),對系統(tǒng)進(jìn)行規(guī)劃設(shè)計。本論文的結(jié)構(gòu)安排也是按照這樣的流程進(jìn)行的。 關(guān)鍵詞: 單片機;ds18b20;恒溫電熱毯控制器because of volume heavy, operation complicatedness and poor anti-interference ability, early temperature controllers bring a great of inconvenience to thdevelopment of the technology of the m

3、cu, the temperature controller is being developing rapidly in the single slice of integrated, intelligent directions.the electric blanket controllers can only turned on and turned off at the beginning of the 1980s, thermostd by avr mcu, showing the room temperature, the set temperature and acthin it

4、 the ccording to the systematic function, and to plan and design the system.the structure of this thesis is arranged in such procedure.key words:mcu, ds18b20, blanket controller of temperature controller目錄摘要1目錄2一 系統(tǒng)方案論證3方案一:使用熱敏電阻與at80513方案二:使用ds18b20與at80c513二 主要器件簡介41.主控制器at80c514(1)主要特性5(2)管腳說明:5

5、(3)振蕩器特性7(5)程序存儲器82.溫度傳感器ds18b209(1)ds18b20簡介9(2)ds18b20的內(nèi)部結(jié)構(gòu)9(3)ds18b20的測溫原理12(4)ds18b20與單片機的典型接口設(shè)計133.存儲器24c0213三 系統(tǒng)設(shè)計171.總體設(shè)計框圖172.硬件電路設(shè)計17(1)主板電路17(2)顯示電路18(3)ds18b20溫度傳感器與單片機的接口電路183.系統(tǒng)軟件設(shè)計19(2)讀出溫度子程序19(3)溫度轉(zhuǎn)換命令子程序20(5)程序清單21四 總結(jié)與體會29五 參考文獻(xiàn)30一 系統(tǒng)方案論證方案一:使用熱敏電阻與at8051 由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用

6、其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行a/d轉(zhuǎn)換后,就可以用單片機進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到a/d轉(zhuǎn)換電路,感溫電路比較麻煩。方案二:使用ds18b20與at80c51 進(jìn)而考慮到用溫度傳感器,在單片機電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器ds18b20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計也比較簡單,故采用了方案二。二 主要器件簡介1.主控制器at80c51單片機也被稱為微控制器(micro

7、controller),是因為它最早被用在工業(yè)控制領(lǐng)域。單片機由芯片內(nèi)僅有cpu的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和cpu集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。intel的z80是最早按照這種思想設(shè)計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。早期的單片機都是8位或4位的。其中最成功的是intel的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了mcs51系列單片機系統(tǒng)。基于這一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想

8、并未得到很廣泛的應(yīng)用。90年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術(shù)得到了巨大的提高。隨著intel i960系列特別是后來的arm系列的廣泛應(yīng)用,32位單片機迅速取代16位單片機的高端地位,并且進(jìn)入主流市場。而傳統(tǒng)的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機主頻已經(jīng)超過300mhz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當(dāng)代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的wi

9、ndows和linux操作系統(tǒng)。at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。(1)主要特性與mcs-51 兼容 4k字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:

10、10年全靜態(tài)工作:0hz-24hz三級程序存儲器鎖定128*8位內(nèi)部ram32可編程i/o線兩個16位定時器/計數(shù)器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路 (2)管腳說明:vcc:供電電壓。gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸

11、出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,p2口輸出其特殊功

12、能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示:p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /

13、rd(外部數(shù)據(jù)存儲器讀選通)rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無

14、效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當(dāng)/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。(3)振蕩器特性xtal1和xtal2分別為反向放大器的輸入和輸出。該反

15、向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。(5)程序存儲器一個微處理器能夠聰明地執(zhí)行某種任務(wù),除了它們強大的硬件外,還需要它們運行的軟件,其實微處理器并不聰明,它們只是完全按照人們預(yù)先編寫的程序而執(zhí)行之。那么設(shè)計人員編寫的程序就存放在微處理器的程序存儲器中,俗稱只讀程序存儲器(rom)。程序相當(dāng)于給微處理器處理問題的一系列命令。其實程序和數(shù)據(jù)一樣,都是由機器碼組成的代碼串。只是程序代碼則存放于程序存儲器中。mcs-51

16、具有64kb程序存儲器尋址空間,它是用于存放用戶程序。數(shù)據(jù)和表格等信息。對于內(nèi)部無rom的8031單片機,它的程序存儲器必須外接,空間地址為64kb,此時單片機的端必須接地。強制cpu從外部程序存儲器讀取程序。對于內(nèi)部有rom的8051等單片機,正常運行時,則需接高電平,使cpu先從內(nèi)部的程序存儲中讀取程序,當(dāng)pc值超過內(nèi)部rom的容量時,才會轉(zhuǎn)向外部的程序存儲器讀取程序。當(dāng)=1時,程序從片內(nèi)rom開始執(zhí)行,當(dāng)pc值超過片內(nèi)rom容量時會自動轉(zhuǎn)向外部rom空間。當(dāng)=0時,程序從外部存儲器開始執(zhí)行,例如前面提到的片內(nèi)無rom的8031單片機,在實際應(yīng)用中就要把8031的引腳接為低電平。8051片

17、內(nèi)有4kb的程序存儲單元,其地址為0000h0fffh,單片機啟動復(fù)位后,程序計數(shù)器的內(nèi)容為0000h,所以系統(tǒng)將從0000h單元開始執(zhí)行程序。但在程序存儲中有些特殊的單元,這在使用中應(yīng)加以注意:其中一組特殊是0000h0002h單元,系統(tǒng)復(fù)位后,pc為0000h,單片機從0000h單元開始執(zhí)行程序,如果程序不是從0000h單元開始,則應(yīng)在這三個單元中存放一條無條件轉(zhuǎn)移指令,讓cpu直接去執(zhí)行用戶指定的程序。另一組特殊單元是0003h002ah,這40個單元各有用途,它們被均勻地分為五段,它們的定義如下:0003h000ah外部中斷0中斷地址區(qū)。000bh0012h定時/計數(shù)器0中斷地址區(qū)。0

18、013h001ah外部中斷1中斷地址區(qū)。001bh0022h定時/計數(shù)器1中斷地址區(qū)。0023h002ah串行中斷地址區(qū)??梢娨陨系?0個單元是專門用于存放中斷處理程序的地址單元,中斷響應(yīng)后,按中斷的類型,自動轉(zhuǎn)到各自的中斷區(qū)去執(zhí)行程序。從上面可以看出,每個中斷服務(wù)程序只有8個字節(jié)單元,用8個字節(jié)來存放一個中斷服務(wù)程序顯然是不可能的。因此以上地址單元不能用于存放程序的其他內(nèi)容,只能存放中斷服務(wù)程序。但是通常情況下,我們是在中斷響應(yīng)的地址區(qū)安放一條無條件轉(zhuǎn)移指令,指向程序存儲器的其它真正存放中斷服務(wù)程序的空間去執(zhí)行,這樣中斷響應(yīng)后,cpu讀到這條轉(zhuǎn)移指令,便轉(zhuǎn)向其他地方去繼續(xù)執(zhí)行中斷服務(wù)程序。2

19、.溫度傳感器ds18b20(1)ds18b20簡介a.獨特的單線接口方式:ds18b20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20的雙向通訊。b.在使用中不需要任何外圍元件。c.可用數(shù)據(jù)線供電,電壓范圍: 3.0 5.5 v。d.測溫范圍:-55 125 。固有測溫分辨率為0.5 。e.通過編程可實現(xiàn)912位的數(shù)字讀數(shù)方式。f.用戶可自設(shè)定非易失性的報警上下限值。(2)ds18b20的內(nèi)部結(jié)構(gòu) ds18b20采用3腳pr35封裝或8腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖如圖1所示。a.64 b閃速rom的結(jié)構(gòu)如下: 開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,

20、最后8位是前56位的crc校驗碼,這也是多個ds18b20可以采用一線進(jìn)行通信的原因。b.非易市失性溫度報警觸發(fā)器th和tl,可通過軟件寫入用戶報警上下限。c.高速暫存存儲器 ds18b20溫度傳感器的內(nèi)部存儲器包括一個高速暫存ram和一個非易失性的可電擦除的e2ram。后者用于存儲th,tl值。數(shù)據(jù)先寫入ram,經(jīng)校驗后再傳給e2ram。而配置寄存器為高速暫存器中的第5個字節(jié),他的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,ds18b20工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義如下: 低5位一直都是1,tm是測試模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。在

21、ds18b20出廠時該位被設(shè)置為0,用戶不要去改動,r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),即是來設(shè)置分辨率,如表1所示(ds18b20出廠時被設(shè)置為12位)。 由表1可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間就越長。因此,在實際應(yīng)用中要在分辨率和轉(zhuǎn)換時間權(quán)衡考慮。 高速暫存存儲器除了配置寄存器外,還有其他8個字節(jié)組成,其分配如下所示。其中溫度信息(第1,2字節(jié))、th和tl值第3,4字節(jié)、第68字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的crc碼,可用來保證通信正確。 當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進(jìn)制補碼形式存

22、儲在高速暫存存儲器的第1,2字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式以0062 5 /lsb形式表示。溫度值格式如下: 對應(yīng)的溫度計算:當(dāng)符號位s=0時,直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)s=1時,先將補碼變換為原碼,再計算十進(jìn)制值。表2是對應(yīng)的一部分溫度值。 ds18b20完成溫度轉(zhuǎn)換后,就把測得的溫度值與th,tl作比較,若tth或ttl,則將該器件內(nèi)的告警標(biāo)志置位,并對主機發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時測量溫度并進(jìn)行告警搜索。tl,則將該器件內(nèi)的告警標(biāo)志置位,并對主機發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時測量

23、溫度并進(jìn)行告警搜索。d. crc的產(chǎn)生在64 b rom的最高有效字節(jié)中存儲有循環(huán)冗余校驗碼(crc)。主機根據(jù)rom的前56位來計算crc值,并和存入ds18b20中的crc值做比較,判斷主機收到的rom數(shù)據(jù)是否正確。(3)ds18b20的測溫原理ds18b20的測溫原理如圖2所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小1,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進(jìn)行計數(shù),進(jìn)而完成溫度測量。計數(shù)門的開啟時間由高溫度

24、系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預(yù)置在-55 所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖2中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,

25、這就是ds18b20的測溫原理。 另外,由于ds18b20單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。各種操作的時序圖與ds1820相同,可參看文獻(xiàn)2。 (4)ds18b20與單片機的典型接口設(shè)計以mcs51單片機為例,圖3中采用寄生電源供電方式, p11口接單線總線為保證在有效的ds18b20時鐘周期內(nèi)提供足夠的電流,可用一個mosfet管和89c51的p10來完成對總線的上拉2。當(dāng)ds18b20處于寫存儲器操作和溫度a/d變換操作時,總

26、線上必須有強的上拉,上拉開啟時間最大為10 s。采用寄生電源供電方式是vdd和gnd端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的。主機控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過3個步驟:初始化、rom操作指令、存儲器操作指令。假設(shè)單片機系統(tǒng)所用的晶振頻率為12 mhz,根據(jù)ds18b20的初始化時序、寫時序和讀時序,分別編寫3個子程序:init為初始化子程序,write為寫(命令或數(shù)據(jù))子程序,read為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始,實際在實驗中不用這種方式,只要在數(shù)據(jù)線上加一個上拉電阻4.7 k,另外2個腳分別接電源和地。3.存儲器24c02i2c總線是一種用于ic器

27、件之間連接的二線制總線。它通過sda(串行數(shù)據(jù)線)及scl(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個器件:不管是單片機、存儲器、lcd驅(qū)動器還是鍵盤接口。ai2c總線的基本結(jié)構(gòu)采用i2c總線標(biāo)準(zhǔn)的單片機或ic器件,其內(nèi)部不僅有i2c接口電路,而且將內(nèi)部各單元電路按功能劃分為若干相對獨立的模塊,通過軟件尋址實現(xiàn)片選,減少了器件片選線的連接。cpu不僅能通過指令將某個功能單元電路掛靠或摘離總線,還可對該單元的工作狀況進(jìn)行檢測,從而實現(xiàn)對硬件系統(tǒng)的既簡單又靈活的擴展與控制。i2c總線接口電路結(jié)構(gòu)如圖4所示。圖4 i2c總線接口電路結(jié)構(gòu)b雙向傳輸?shù)慕涌谔匦詡鹘y(tǒng)的單片機串行接

28、口的發(fā)送和接收一般都各用一條線,如mcs51系列的txd和rxd,而i2c總線則根據(jù)器件的功能通過軟件程序使其可工作于發(fā)送或接收方式。當(dāng)某個器件向總線上發(fā)送信息時,它就是發(fā)送器(也叫主器件),而當(dāng)其從總線上接收信息時,又成為接收器(也叫從器件)。主器件用于啟動總線上傳送數(shù)據(jù)并產(chǎn)生時鐘以開放傳送的器件,此時任何被尋址的器件均被認(rèn)為是從器件。i2c總線的控制完全由掛接在總線上的主器件送出的地址和數(shù)據(jù)決定。在總線上,既沒有中心機,也沒有優(yōu)先機??偩€上主和從(即發(fā)送和接收)的關(guān)系不是一成不變的,而是取決于此時數(shù)據(jù)傳送的方向。sda和scl均為雙向i/o線,通過上拉電阻接正電源。當(dāng)總線空閑時,兩根線都是

29、高電平。連接總線的器件的輸出級必須是集電極或漏極開路,以具有線“與”功能。i2c總線的數(shù)據(jù)傳送速率在標(biāo)準(zhǔn)工作方式下為100kbit/s,在快速方式下,最高傳送速率可達(dá)400kbit/s。ci2c總線上的時鐘信號在i2c總線上傳送信息時的時鐘同步信號是由掛接在scl時鐘線上的所有器件的邏輯“與”完成的。scl線上由高電平到低電平的跳變將影響到這些器件,一旦某個器件的時鐘信號下跳為低電平,將使scl線一直保持低電平,使scl線上的所有器件開始低電平期。此時,低電平周期短的器件的時鐘由低至高的跳變并不能影響scl線的狀態(tài),于是這些器件將進(jìn)入高電平等待的狀態(tài)。當(dāng)所有器件的時鐘信號都上跳為高電平時,低電

30、平期結(jié)束,scl線被釋放返回高電平,即所有的器件都同時開始它們的高電平期。其后,第一個結(jié)束高電平期的器件又將scl線拉成低電平。這樣就在scl線上產(chǎn)生一個同步時鐘??梢姡瑫r鐘低電平時間由時鐘低電平期最長的器件確定,而時鐘高電平時間由時鐘高電平期最短的器件確定。d數(shù)據(jù)的傳送在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。在i2c總線技術(shù)規(guī)范中,開始和結(jié)束信號(也稱啟動和停止信號)的定義如圖5所示。當(dāng)時鐘線scl為高電平時,數(shù)據(jù)線sda由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當(dāng)scl線為高電平時,sda線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號。開始和結(jié)束信號都是由主器件產(chǎn)生。在開始信號以后,總線即

31、被認(rèn)為處于忙狀態(tài);在結(jié)束信號以后的一段時間內(nèi),總線被認(rèn)為是空閑的。圖5 開始和結(jié)束信號i2c總線的數(shù)據(jù)傳送格式是:在i2c總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位為地址碼,第8位為方向位(r/w)。方向位為“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為被主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(r/w)確定。在i2c總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為8位,而且每個傳送的字節(jié)

32、后面必須跟一個認(rèn)可位(第9位),也叫應(yīng)答位(ack)。數(shù)據(jù)的傳送過程如圖6所示。每次都是先傳最高位,通常從器件在接收到每個字節(jié)后都會作出響應(yīng),即釋放scl線返回高電平,準(zhǔn)備接收下一個數(shù)據(jù)字節(jié),主器件可繼續(xù)傳送。如果從器件正在處理一個實時事件而不能接收數(shù)據(jù)時,(例如正在處理一個內(nèi)部中斷,在這個中斷處理完之前就不能接收i2c總線上的數(shù)據(jù)字節(jié))可以使時鐘scl線保持低電平,從器件必須使sda保持高電平,此時主器件產(chǎn)生1個結(jié)束信號,使傳送異常結(jié)束,迫使主器件處于等待狀態(tài)。當(dāng)從器件處理完畢時將釋放scl線,主器件繼續(xù)傳送。圖6 數(shù)據(jù)的傳送當(dāng)主器件發(fā)送完一個字節(jié)的數(shù)據(jù)后,接著發(fā)出對應(yīng)于scl線上的一個時鐘

33、(ack)認(rèn)可位,在此時鐘內(nèi)主器件釋放sda線,一個字節(jié)傳送結(jié)束,而從器件的響應(yīng)信號將sda線拉成低電平,使sda在該時鐘的高電平期間為穩(wěn)定的低電平。從器件的響應(yīng)信號結(jié)束后,sda線返回高電平,進(jìn)入下一個傳送周期。i2c總線還具有廣播呼叫地址用于尋址總線上所有器件的功能。若一個器件不需要廣播呼叫尋址中所提供的任何數(shù)據(jù),則可以忽略該地址不作響應(yīng)。如果該器件需要廣播呼叫尋址中提供的數(shù)據(jù),則應(yīng)對地址作出響應(yīng),其表現(xiàn)為一個接收器。e總線競爭的仲裁總線上可能掛接有多個器件,有時會發(fā)生兩個或多個主器件同時想占用總線的情況。例如,多單片機系統(tǒng)中,可能在某一時刻有兩個單片機要同時向總線發(fā)送數(shù)據(jù),這種情況叫做總

34、線競爭。i2c總線具有多主控能力,可以對發(fā)生在sda線上的總線競爭進(jìn)行仲裁,其仲裁原則是這樣的:當(dāng)多個主器件同時想占用總線時,如果某個主器件發(fā)送高電平,而另一個主器件發(fā)送低電平,則發(fā)送電平與此時sda總線電平不符的那個器件將自動關(guān)閉其輸出級??偩€競爭的仲裁是在兩個層次上進(jìn)行的。首先是地址位的比較,如果主器件尋址同一個從器件,則進(jìn)入數(shù)據(jù)位的比較,從而確保了競爭仲裁的可靠性。由于是利用i2c總線上的信息進(jìn)行仲裁,因此不會造成信息的丟失。f. i2c總線接口器件目前在視頻處理、移動通信等領(lǐng)域采用i2c總線接口器件已經(jīng)比較普遍。另外,通用的i2c總線接口器件,如帶i2c總線的單片機、ram、rom、a

35、/d、d/a、lcd驅(qū)動器等器件,也越來越多地應(yīng)用于計算機及自動控制系統(tǒng)中。 at24c02是美國atmel公司的低功耗cmos串行eeprom,它是內(nèi)含2568位存儲空間,具有工作電壓寬(2.55.5v)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10ms)等特點。三 系統(tǒng)設(shè)計1.總體設(shè)計框圖溫度計電路設(shè)計總體設(shè)計方框圖如圖1所示,控制器采用單片機at89s51,溫度傳感器采用ds18b20,用2位led數(shù)碼管以并口傳送數(shù)據(jù)實現(xiàn)溫度顯示。圖1 總體設(shè)計方框圖2.硬件電路設(shè)計(1)主板電路系統(tǒng)整體硬件電路包括:傳感器數(shù)據(jù)采集電路,溫度顯示電路,報警調(diào)整電路,單片機主板電路等,如圖7所示。 圖7中有2個獨立式按鍵可以分別調(diào)整溫度計的報警溫度設(shè)置,圖中l(wèi)ed可以在被測溫度不在上下限范圍內(nèi)時,發(fā)出閃爍,同時led數(shù)碼管將沒有被測溫度值顯示,這時可以調(diào)整報警上限,從而測出被測的溫度值。 圖7中的按健復(fù)位電路是上電復(fù)位加手動復(fù)位,使用比較方便,在程序跑飛時,可以手動復(fù)位,這樣就不用在重起單片機電源,就可以實現(xiàn)復(fù)位。(2)顯示電路顯示電路是使用的并口顯示,這種顯示最大的優(yōu)點就是使用簡單,只用p1口。 報警燈傳感器eeprom顯 示圖7 原理圖(3)ds18b20溫度傳感器

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論