單片機+STC89C52++溫度傳感器_第1頁
單片機+STC89C52++溫度傳感器_第2頁
單片機+STC89C52++溫度傳感器_第3頁
單片機+STC89C52++溫度傳感器_第4頁
單片機+STC89C52++溫度傳感器_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機數(shù)字溫度計摘要:本設計單片機采用 AT89C52芯片,數(shù)字溫度傳感器采用美國DALAS織司的1 - Wire器件DS18B20即單總線器件 DS18B20與單片機組成一個測溫系統(tǒng),當系統(tǒng)上電時,溫度傳感器就會讀出當前環(huán)境的溫 度,并在三位LED數(shù)模顯示管上顯示出當前的溫度,該測溫儀的測溫范圍為0C 110 C,按此要求設計硬件和軟件以實現(xiàn)這一功能。關鍵詞:單片機STC89C52溫度傳感器DS18B20;溫度測量電子線路單片機匯編語言溫度1引言:單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。概括的講:一塊芯片就成了一臺計算機。它的體積小、質量

2、輕、價格便 宜、為學習、應用和開發(fā)提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。單片機在檢測和控制系統(tǒng)中得到廣泛的應用,溫度則是系統(tǒng)常需要測量、控制和保持的一個量。本設計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,該設計控制器使用單片機STC89C52,測溫傳感器使用DS18B2 0,用4位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準確達到以上要求。2總體設計方案:2. 1設計思路:(1) 本設計是測溫電路,可以使用熱敏電阻之類的器件利

3、用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到 A/D轉換電路,感溫電路比較麻煩。(2) 從中考慮到用溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20此傳感器,可以很容易直接讀取被測溫度值,進行轉換,就可以滿足設計要求。從以上兩種方案,很容易看出,采用方案(2),電路比較簡單,軟件設計也比較簡單,故采用了方案(2)。2.2設計方框圖根據(jù)設計的所需要求分析單片機的工作原理,可得出來溫度計電路設計總體設計方框圖如圖1所示

4、,控制器采用單片機STC89S52,溫度傳感器采用 DS18B20,用4位LED數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。2.3設計主元件電氣性能:1. STC89C52的主要性能:與MCS-51單片機產(chǎn)品兼容8KFlash字節(jié)閃速存儲器1000次擦寫周期全靜態(tài)操作:0Hz88Hz32個可編程I/O 口線三個16位定時器/計數(shù)器八個中斷源全雙工UART串行通道 低功耗空閑和掉電模式 掉電后中斷可喚醒 看門狗定時器 雙數(shù)據(jù)指針VCC :電源GND:地P0 口: P0口是一個8位漏極開路的雙向I/O 口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“ T時,弓I腳用作高阻抗輸入。當訪問外部程序和

5、數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下, P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來 接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1 口:是一個具有內(nèi)部上拉電阻的8位雙向I/O 口,p1輸出緩沖器能驅動4個TTL邏輯電平。對P1端口寫" T時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為 輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流( IIL)。此外,P1.0和 P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表1所示。在fl

6、ash編程和校驗時,P1 口接收低8位地址字節(jié)。P2 口: P2 口是一個具有內(nèi)部上拉電阻的8位雙向I/O 口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“ 1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流( IIL)。在訪問外 部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX DPTR )時,P2 口送 出高八位地址。在這種應用中,P2 口使用很強的內(nèi)部上拉發(fā)送 1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接 收高8位地

7、址字節(jié)和一些控制信號。引腳號第二功能P1.0T2 (定時器/汁數(shù)器T2的外部計數(shù)輸入),時鐘輸出P1.1T2EX (定時器/汁數(shù)器T2的捕捉/重載觸發(fā)信號和方祠控制)P1.5MOSI (在系統(tǒng)編程用)P1.6MISO (在:系統(tǒng)編程用)P1.7SCK (在系統(tǒng)編程用)表1 P1 口功能引腳號第二功能P3.0RXD (串行輸入)P3.1TXD (巾行輸出)P3.2INTO(外部中斷0)P3.3INTO(外部中斷0)P3.4T0 (定時器。外部輸入)P3.5T1 (定時器1外部輸入)P3.6WR(外部數(shù)擁存儲器寫選通)P3.7西外部數(shù)據(jù)存儲器寫選通)表2 P3 口功能P3 口: P3 口是一個具有

8、內(nèi)部上拉電阻的 8位雙向I/O 口,p2輸出緩沖器能驅動4個TTL 邏輯電平。對P3端口寫“ 1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。IIL)。P3口亦作作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流( 為AT89S52特殊功能(第二功能)使用,如上表 2所示。在flash編程和校驗時,P3口也接收 一些控制信號。RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復位??撮T狗計時完成后,RST腳輸出96個晶振周期的高電平。 特殊寄存器AUXR(地址8EH)上的DISRTO 位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。ALE/P

9、ROG :地址鎖存控制信號(ALE )是訪問外部程序存儲器時,鎖存低 8位地址的輸出 脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置 1”,ALE操作將無效。這一位置1”,ALE僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE將被微弱拉高。這個 ALE使能標志位(地址為 8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)行模式下無效。PSEN:外部程序存儲器選通信號(PSEN)是

10、外部程序存儲器選通信號。當STC89C52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。存儲器結構MCS-51器件有單獨的程序存儲器和數(shù)據(jù)存儲器。外部程序存儲器和數(shù)據(jù)存儲器都可以64Ko程序存儲器:如果EA引腳接地,程序讀取只從外部存

11、儲器開始。對于89S52,如果EA接VCC ,程序讀寫先從內(nèi)部存儲器(地址為0000H1FFFH)開始,接著從外部尋址,尋址地址為:2000HFFFFH。數(shù)據(jù)存儲器:STC89C52有256字節(jié)片內(nèi)數(shù)據(jù)存儲器。高 128字節(jié)與特殊功能寄存器重疊。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。當一條指令訪問高于7FH的地址時,尋址方式?jīng)Q定 CPU訪問高128字節(jié)RAM 還是特殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(SFR)晶振特性如圖2所示,STC89C52單片機有一個用于構成內(nèi)部振蕩器的反相放大器,XTAL1和XTAL2分別是放大器的輸入、輸出端。石英晶體和陶瓷

12、諧振器都可以用來一起構成自激振蕩器XTAL2C2-)1-GND4-1 建 tu 掀C1 .C2=3 OPFz=l OPFB卸甕訃;我C l.C'2-MOPr=l OPF圖2自激振蕩器原理圖定時器0和定時器1在STC89C52中,定時器0和定時器1的操作與89C51 一樣。定時器2定時器2是一個16位定時/計數(shù)器,它既可以做定時器,又可以做事件計數(shù)器。其工作方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時器2有三種工作模式:捕捉 方式、自動重載(向下或向上計數(shù))和波特率發(fā)生器。工作模式由T2CON中的相關位選擇。定時器2有2個8位寄存器:TH2和TL2。在定時工作方式中,

13、每個機器周期,TL2寄存器都會加1。由于一個機器周期由12個晶振周期構成,因此,計數(shù)頻率就是晶振頻率的1/12。中斷STC89C52有6個中斷源:兩個外部中斷(INT0和INT1 ),三個定時中斷(定時器 0、 1、2)和一個串行中斷每個中斷源都可以通過置位或清除特殊寄存器IE中的相關中斷允許控制位分別使得中斷源有效或無效。IE還包括一個中斷允許總控制位EA,它能一次禁止所有中斷。定時器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進入中斷服務后, 這些標志位都可以由硬件清 0。實際上,中斷服務程序必須判定是否是TF2或EXF2激活中斷,標志位也必須由軟件清 0。下表2為中斷允

14、許控制寄存器功能。(MSB)CLSB)EAET2ESETIEXIETOEXO中斷允許拽制位=1,允許中斷 中斷允許控制位=0,禁止中斷符號位地址功能EAIE.7中斷虺允許控制位、EA=0.中而總禁1JEA-B 各市|斯由客 白的拽也J位設室.1E.6預留ET2IE.5定時麝2中制允許捽制付.ESIE ,4JlUj'l 1中斷元許控;ETIIE.3定時器1中斷元許押制位EXI外部中斷1元評控瞬位ET0IE.1定時精0中附i允許揮制由EX0LEO外郎中斷1允許控耐位表3中斷允許控制寄存器2. DS18B20的主要性能本次設計使用到了由 dallas半導體公司生產(chǎn)的ds18b2 0型單線智能

15、溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領域的溫度測量及控制儀器、測控系統(tǒng)和大型設備中。它具有體積小,接口方便,因而設計中采用了此元器件。DS1820數(shù)字溫度計提供9位溫度讀數(shù),指示器件的溫度特性:獨特的單線接口只需1個接口引腳即可通信多點multidrop能力使分布式溫度檢測應用得以簡化不需要外部元件可用數(shù)據(jù)線供電不需備份電源測量范圍從-55至+125增量值為0.5等效的華氏溫度范圍是-67 F至257 F增量值為0.9 F以9位數(shù)字值方式讀出溫度在1秒典型值內(nèi)把溫度變換為數(shù)字用戶可定義的非易失性的溫度告警設置告警搜索命令識別和尋址溫度在編定的極限之外

16、的器件溫度告警情況應用范圍包括恒溫控制工業(yè)系統(tǒng)消費類產(chǎn)品溫度計或任何熱敏系統(tǒng)圖3的方框圖表示DS1820的主要部件DS1820有三個主要的數(shù)據(jù)部件 1 64位激光lasered ROM;2溫度靈敏元件和3非易失性溫度告警觸發(fā)器 TH和TL64位VVddROM和單線DS18B20內(nèi)部結構64位ROM的結構開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面 56位的CRC檢驗碼,這也是多個 DS18B20可以采用一線進行通信 的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。在單線接口情況下在ROM操作未定建立之前不能使用存貯器和控制操作主機必須首先提供五

17、種 ROMB作命令之一 1 Read ROM犢 ROM) 2 Match ROM(符合 ROM),3)Search ROM(搜索 ROM),4)Skip ROM(跳過ROM)或5 Alarm Search( 告警搜索)這些命令對每一器件的 64位激 光ROM部分進行操作如果在單線上有許多器件那么可以挑選出一個特定的器件并給總線上的主機指示存在多少器件及其類型在成功地執(zhí)行了ROM操作序列之后可使用存貯器和控制操作然后主機可以提供六種存貯器和控制操作命令之一一個控制操作命令指示 DS1820完成溫度測量該測量的結果將放入DS1820的高速暫存便箋式存貯器Scratchpad memory 通過發(fā)出

18、讀暫存存儲器內(nèi)容的存儲器操作命令可以讀出此結果每一溫度告警觸發(fā)器TH和TL構成一個字節(jié)的EEPRO誠口果不對DS1820施加告警搜索命令這些寄存器可用作通用用戶存儲器使用存儲器操作命令可以寫TH和TL對這些寄存器的讀訪問通過便箋存儲器所有數(shù)據(jù)均以最低有效位在前的方式被讀寫DS18B2伸的溫度傳感器可完成對溫度的測量,以12位轉化為例:用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625 C/LSB形式表達,其中瀝符號位。bit?bii6kt 5txt 4bit 1tt 2bat 1biLO亍|1 二| #2U2"|廣bit 15ImU4bil 13bii E2bk 1Lkt tU

19、bit 95MS瞄SSSSs2+24表4 DS18B2012位溫度數(shù)據(jù)表4是12位轉化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RA",二進制中的 前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。如下表為18B20的溫度/數(shù)據(jù)關系l J Ain RA J I RlhK.riAi m(TPLT )H(H l i Ol t Pl i(1心)+ 125 C000( (it 1101 000007D0h55 C*1 >:| iiH)|0(1

20、:.1:0550h+25 0625 C'0000 000 1 1001 0001019lh10.125 CI.JOIK U" IWi uh)QGA2h0,5lil.ii 1 :l; ;!:> .iiJHXllOK0000 0000 0000 0000OOOOh-(J.5 ChillIH IH1 EO(U)FFF8h40 125 CLil E i11 0101 110FF5l-h-2-.'(C5 (.1111 H 10 OHO H IIFE6IhHillOU |H:'|ICOhTh。pptvef-ort restat Tiiluti ofthH lempe

21、raLur臼 rtsgigief is +表5 DS18B20的溫度/數(shù)據(jù)關系每一 DS1820包括一個唯一的64位長的ROM編碼開紿的8位是單線產(chǎn)品系列編碼DS1820編碼是10h接著的48位是唯一的系列號最后的8位是開始56位CRC見表6, 64位ROM和ROM操作控制部分允許 DS1820作為一個單線器件工作并遵循單線總線系統(tǒng)一節(jié) 中所詳述的單線協(xié)議直到ROM臊作協(xié)議被滿足DS1820控制部分的功能是不可訪問的此協(xié)議在RO嗷作協(xié)議流程圖中敘述單線總線主機必須首先操作五種ROM操作命令之一 1 ReadROM該 ROM),2)Match ROM(匹配 ROM),3)Search ROM(搜

22、索 ROM),4)Skip ROM(跳過 ROM)或 5)Alarm Search 告警搜索在成功地執(zhí)行了ROMB作序列之后 DS1820特定的功能便可訪問然后總線上主機可提供六個存貯器和控制功能命令之一8位CRC編寫48位序列Z8位產(chǎn)品系列編碼MSB LSB MSB LSE MSBLSB(。高有效位)(最低有效位)表6 64 位激光 ROM暫存存儲器包含了 8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息, 第一個字節(jié)的內(nèi)容是溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是 TH TL的易失性拷貝,第五個字節(jié)是結構寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復位時被刷新。第 六、七、

23、八個字節(jié)用于內(nèi)部計算。第九個字節(jié)是冗余檢驗字節(jié)。容存瓣內(nèi)容字節(jié)抵卅溫度最&致字位0溫度最高致字位1高M限值2低溫限伯34保闋5汁數(shù)剩余值6旬度計數(shù)值7CRC校驗g表7 DS18B2 0暫存寄存器分布該字節(jié)各位的意義如下:TM R1 R0 1 1 1 1 1R1R0分辨率溫度最大轉換時間009位93.75ms0110位187.5ms1011位375ms1112位750ms表8分辨率設置表低五位一直都是1 , TM是測試模式位,用于設置DS18B20<工作模式還是在測試模式。在DS18B20出廠時該位被設置為 0,用戶不要去改動。 R1和R0用來設置分辨率,如上表 8 所示:(DS1

24、8B20出廠時被設置為12位)由表9可見,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é)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625C/LSB形式表示。當符號位S=0時,表示測得的溫度值為正值,可

25、以直接將二進制位轉換為十進制;當符號位S= 1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。R1R0分辨率/位溫度最大轉向時間/ms00993.750口10187.511 0113751112750表9 DS18B20溫度轉換時間表DS18B20完成溫度轉換后,就把測得的溫度值與RA"的TH、TL字節(jié)內(nèi)容作比較。若T > TH或TV TL,則將該器件內(nèi)的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只 DS18B20同時測量溫度并進行報警搜索。在64位ROM勺最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC。主機ROM勺前56位來計算CRC直,并

26、和存入 DS18B20的CRC 值作比較,以判斷主機收到的RO嗷據(jù)是否正確。ROM操作命令一旦總線主機檢測到從屬器件的存在它便可以發(fā)出器件ROM操作命令之一所有ROM操作命令均為8位長這些命令列表如下參見圖 6的流程圖Read ROM 注 ROM) 33h此命令允許總線主機讀 DS1820的8位產(chǎn)品系列編碼唯一的 48位序列號以及8位的CRC此命令只能在總線上僅有一個 DS1820的情況下可以使用如果總線上存在多于一個的從屬器件那么當所有從片企圖同時發(fā)送時將發(fā)生數(shù)據(jù)沖突的現(xiàn)象漏極開路會產(chǎn)生線與的結果Match ROM(符合 ROM) 55h符合ROM命令后繼以64位的ROM數(shù)據(jù)序列允許總線主機

27、對多點總線上特定的DS1820尋址只有與64位ROM序列嚴格相符的DS1820才能對后繼的存貯器操作命令作出響應所有 與64位ROM序列不符的從片將等待復位脈沖此命令在總線上有單個或多個器件的情況下均可使用 Skip ROM(跳過 ROM ) CCh在單點總線系統(tǒng)中此命令通過允許總線主機不提供64位ROM編碼而訪問存儲器操作來節(jié)省時間如果在總線上存在多于一個的從屬器件而且在Skip ROM命令之后發(fā)出讀命令那么由于多個從片同時發(fā)送數(shù)據(jù)會在總線上發(fā)生數(shù)據(jù)沖突漏極開路下拉會產(chǎn)生線與的效果earch ROM(搜索 ROM) F0h當系統(tǒng)開始工作時總線主機可能不知道單線總線上的器件個數(shù)或者不知道其64

28、位ROM編碼搜索ROM命令允許總線主機使用一種消去elimination處理來識別總線上所有從片的64位指令說明約定代碼發(fā)出約定代碼ki甲總線的投件注溫度變換命令溫坦變換啟時汨岐交換44h讀球t忙*狀志1存 桔 器 命 令讀有存存冊辮從新存存儲器讀字節(jié)BEh讀9字節(jié)數(shù)掘寫暫存存儲器馬字節(jié)至哲存存 儲器地此2 K1 3 灶TH和TL溫 度腱發(fā)器)4Eli弓就抓至地此2和地此3的2 M堂制暫存存保營把野存存儲葡:U 制入非易性存餡 器1僅地此2和 地此3)43U讀復制狀態(tài)2重新調出把存在非玨失 t-存鐳眥內(nèi)的攻 m頌新調入肴存 存儲器(溫度觸 發(fā)整)E3h(讀混度“忙”狀態(tài)讀電源發(fā)電源占式的借弓至

29、上也B4h讀電源狀態(tài)表10 DS1820命令集Alarm Search(告警搜索)ECh此命令的流程與搜索 ROM命令相同但是僅在最近一次溫度測量出現(xiàn)告警的情況下DS182時對此命令作出響應告警的條件定義為溫度高于TH或低于TL只要DS1820 上電告警條件TH或TL的設置使DS1820就保持在設置狀態(tài)直到另一次溫度測量顯示出非告警值或者改變得測量值再一次位于允許的范圍之內(nèi)貯存在EEPROMJ的觸發(fā)器值用于告警表10為DS1820命令集:3系統(tǒng)整體硬件電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,單片機主板電路等,通過利用電路 CAD工具pretel DXP可畫出如圖4所示的電路

30、圖。g B.| & B.| B.圖4電路原理圖因為此次制作的電路為自制的 PCB板,再經(jīng)過電路CAD工具Protel DXP的電路板PCB繪出電路所需PCB版圖制作出自制的PCB板.3設計原理分析:3. 1時鐘電路的設計:通過設置T2CON (見表2)中的TCLK或RCLK可選擇定時器2作為波特率發(fā)生器。 如果定時 器2作為發(fā)送或接收波特率發(fā)生器,定時器1可用作它用,發(fā)送和接收的波特率可以不同。設置RCLK和(或)TCLK可以使定時器2工作于波特率產(chǎn)生模式。波特率產(chǎn)生工作模式與 自動重載模式相似,因此,TH2的翻轉使得定時器2寄存器重載被軟件預置16位值的RCAP2H和RCAP2L中的

31、值。模式1和模式3的波特率由定時器2溢出速率決定,定時器可設 置成定時器,也可為計數(shù)器。在多數(shù)應用情況下,一般配置成定時方式(CP/T2=0)。定時器2用于定時器操作與波特率發(fā)生器有所不同,它在每一機器周期(1/12晶振周期)都會增加;然而,作為波特率發(fā)生器,它在每一機器狀態(tài)(1/2晶振周期)都會增加。波特率計算公式如下:模式1和模式3的波特率=晶振頻率/32x65536 _(RCAP2H,RCAP2L) 3.2控制電路的設計主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B2 0的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量讀出溫度子程序的主要功能是讀出RA&qu

32、ot;的9字節(jié),在讀出時需進行 CRC驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。圖7溫度轉換流程圖3.4計算溫度子程序計算溫度子程序將 RA"讀取值進行BCD的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖 8所示。圖8計算溫度流程圖圖9顯示數(shù)據(jù)刷新流程圖所編寫的程序如下.* ;說明:程序預定義*LED7A_DATA EQU70H.數(shù)碼管第一位顯示值(千位)LED7A_CTRLEQUP1.7.數(shù)碼管第一位控制引腳(0為有效,1為無效)LED7B_CTRLEQUP1.6.數(shù)碼管第二位控制引腳LED7C_CTRLEQUP1.5.數(shù)碼管第三位控制引腳LED7D_CTRLEQUP1.4.數(shù)碼管

33、第四位控制引腳LED7_STATUSEQUP0.數(shù)碼管狀態(tài)引腳(0為有效,1為無效)LED7B DATAEQU71H.數(shù)碼管第二位顯示值(百位)LED7C_DATAEQU72H.數(shù)碼管第三位顯示值(十位)LED7D_DATAEQU73H.數(shù)碼管第四位顯示值(個位)LED7_NUMEQU74H.數(shù)碼管動態(tài)掃描值(:值為從0到3)DQEQUP3.2.溫度芯片數(shù)據(jù)端TEMLEQU76H.溫度數(shù)據(jù)低位TEMHEQU77H.溫度數(shù)據(jù)局位.* ,;說明:程序開始*ORG0000H.程序首地址 PC=0000HJMPSTART.程序跳轉到START PC=0030HORG000BH;T0中斷程序入口JMPL

34、ED7SCAN.跳到數(shù)碼管動態(tài)掃描處理程序ORG0030H.程序開始START:MOVDPTR, #LED7TAB.數(shù)碼管顯示碼表地址送 DPTRMOVLED7_NUM, #0.數(shù)碼管動態(tài)掃描值至0,掃描第一位;T0中斷設定MOVTMOD, #00000001B;使 用 T0:GATE=0,C/T=0(定 時),M1M0=01(工作方式1)MOVTH0, #0ECH.中斷時間為5毫秒MOVTL0, #078HSETBET0.允許T0中斷SETBTR0.使T0工作SETBEA.總中斷開啟L1:MOVLED7A_DATA, #16.數(shù)碼管第一位初始值MOVLED7B_DA TA, #16.數(shù)碼管第

35、二位初始值MOVLED7C_DA TA, #0.數(shù)碼管第三位初始值MOVLED7D_DATA, #0.數(shù)碼管第四位初始值L2:CLRTR0SETBDQCALLINIT.初始化MOVA, #0CCH.跳過ROM匹配CALLWRITEMOVA,#44H;發(fā)出溫度轉換命令CALLWRITESETBTR0MOVR7,#50H;延時750ms轉換時間CALLDELAYCLRTR0CALLINIT;準備讀溫度前先復位MOVA,#0CCH;跳過ROM匹配CALLWRITEMOVA,#0BEH;發(fā)出讀溫度命令CALLWRITECALLREAD;讀出溫度MOVTEML, ACALLREADMOVTEMH, AS

36、ETBTR0MOVA,TEML;溫度轉換ANLA,#0F0HSWAPAMOVTEML, AMOVA,TEMHANLA,#0FHSWAPAORLA,TEMLMOVR3,ACLRACLRCL3:ADDA,#01HDAADJNZR3, L3MOVTEML, AANLA,#0FH.顯示數(shù)據(jù)MOVLED7D_DATA, AMOVA,TEMLSWAP AANLA,#0FHMOVLED7C_DA TA, AMOVR7,#0FFH.延時CALL DELAYMOVR7,#0FFH.延時CALL DELAYMOVR7,#0FFH.延時CALL DELAYMOVR7,#0FFH.延時CALL DELAYMOVR7,

37、#0FFH.延時CALL DELAYMOVR7,#0FFH.延時CALL DELAYJMPL2.循環(huán).* ,涵數(shù):INIT;說明:初始化子程序.;INIT:SETB DQNOPCLR DQMOV R7,#34.延時 510msCALL DELAYSETB DQMOV R7,#04.延時 60msCALL DELAYMOV R7,#28.延時 420msCALL DELAYSETB DQ.然后拉高數(shù)據(jù)線BACK:RET.* ,.函數(shù):WRITE;說明:DS18B20寫字節(jié)操作.;WRITE:CLR CMOV R2,#8.一共8位數(shù)據(jù)WR1:CLR DQMOV R7,#1CALL DELAYRRC

38、 AMOV DQ,CMOV R7,#1CALL DELAYSETB DQNOPDJNZ R2,WR1SETB DQRET;.函數(shù):READ;說明:DS18B20讀字節(jié)操作;READ:MOV R2,#8;數(shù)據(jù)一共有 8位WIN01:CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R7,#01CALL DELAYMOV C,DQMOV R7,#03CALL DELAYRRC ADJNZ R2,WIN01RET.* ;涵數(shù):LEDSCAN;說明:數(shù)碼管動態(tài)掃描處理程序.LED7SCAN:PUSHACCPSW;ACC入棧;PSW入棧PUSHMOVA, LED7_NUM.數(shù)碼管動態(tài)掃描值送ACJNEA, #0, LED7SCAN_1.若數(shù)碼管動態(tài)掃描值為0,則處理數(shù)碼管的第一位,否則跳轉到LED7SCAN_1SETBLED7D_CTRL.設置數(shù)碼管第四位無效MOVA, LED7A_DATA.將千位值送AMOVCA, A+DPTR.將顯示碼送ACLRLED7A_CTRL.設置數(shù)碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論