祝福網

首頁 > 學習 > 心得體會 > 心得體會大全 / 正文

單片機實驗心得體會經典

2023-07-17 心得體會大全

單片機實驗心得體會 篇3

這是一個綜合硬件實驗,分兩大功能:溫度的測量和溫度的控制。 1.DALLAS最新單線數字溫度傳感器DS18B20簡介

Dallas 半導體公司的數字化溫度傳感器DS1820是世界上第一片支持 “一線總線”接口的溫度傳感器。現場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量,如:環境控制、設備或過程控制、測溫類消費電子產品等。與前一代產品不同,新的產品支持3V~5.5V的電壓范圍,使系統設計更靈活、方便。

DS18B20測量溫度范圍為 -55°C~+125°C,在-10~+85°C范圍內,精度為±0.5°C。DS18B20可以程序設定9~12位的分辨率,及用戶設定的報警溫度存儲在EEPROM中,掉電后依然保存。

DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。DS18B20的管腳排列如下:

DQ為數字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。

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

DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉化為例:用16位符號擴展的二進制補碼讀數形式提供,以0.0625℃/LSB形式表達,其中S為符號位。

這是12位轉化后得到的12位數據,存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘以0.0625

即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘以0.0625即可得到實際溫度。

例如+125℃的數字輸出為07D0H,+25.0625℃的數字輸出為0191H,-25.0625℃的數字輸出為

DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發器TH、TL和結構寄存器。

暫存存儲器包含了8個連續字節,前兩個字節是測得的溫度信息,第一個字節的內容是溫度的低八位,第二個字節是溫度的高八位。第三個和第四個字節是TH、TL的`易失性拷貝,第五個字節是結構寄存器的易失性拷貝,這三個字節的內容在每一次上電復位時被刷新。第六、七、八個字節用于內部計算。第九個字節是冗余檢驗字節。

低五位一直都是1 ,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動。R1和R0用來設置分辨率,如下表所示:(DS18B20出廠時被設置為12位)

根據DS18B20的通訊協議,主機控制DS18B20完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500微秒,然后釋放,DS18B20收到信號后等待16~60微秒左右,后發出60~240微秒的存在低脈沖,主CPU收到此信號表示復位成功。

2.本實驗在讀取溫度的基礎上,完成類似空調恒溫控制的實驗。用加熱電阻代替加熱電機。溫度值通過LED靜態顯示電路以十進制形式顯示出來,制冷采用自然冷卻。

本實驗需要用到單片機最小應用系統(F1區)、串行靜態顯示(I3區)和溫度傳感器模塊(C3區)。

1.DS18B20的CONTROL接最小應用系統P1.4,OUT接最小應用系統P2.0,最小系統的P1.0,P1.1接串行靜態顯示的DIN,CLK端。

2.用串行數據通信線連接計算機與仿真器,然后將仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。

3.打開Keil uVision2仿真軟件,首先建立本實驗的項目文件,接著添加TH44_ DS18B20.ASM源程序,進行編譯,直到編譯無誤。

4.編譯無誤后,全速運行程序。程序正常運行后,按下自鎖開關‘控制’SIC。LED數顯為 “XX”為十進制溫度測量值, “XX”為十進制溫度設定值,按下自鎖開關“控制”SIC則加熱源開始加熱,溫度也隨著變化,當加熱到設定的控制溫度時如40度時,停止加熱。

5.也可以把源程序編譯成可執行文件,用ISP燒錄器燒錄到89S52/89S51芯片中。(ISP燒錄器的使用查看附錄二) 四、源程序

;單片機內存分配申明!

TEMPER_L EQU 29H  ;用于保存讀出溫度的低8位TEMPER_H EQU 28H  ;用于保存讀出溫度的高8位FLAG1 EQU 38H  ;是否檢測到DS18B20標志位A_BIT EQU 20H  ;數碼管個位數存放內存位置B_BIT EQU 21H  ;數碼管十位數存放內存位置LEDBUF EQU  30HTEMPEQU  55HDIN  BIT  P1.0CLK BIT  P1.1

ORG 0000HLJMP STARTORG 0100H START: SETBP1.4 MAIN:

;進行溫度顯示,這里我們考慮用網站提供的兩位數碼管來顯示溫度 ;顯示范圍00到99度,顯示精度為1度

;因為12位轉化時每一位的精度為0.0625度,我們不要求顯示小數所以可以拋棄29H的低4位

;將28H中的低4位移入29H中的高4位,這樣獲得一個新字節,這個字節就是實際測量獲得的溫度

;這個轉化溫度的方法可是我想出來的哦~~非常簡潔無需乘于0.0625系數

MOV C,40H;將28H中的最低位移入CRRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,A

LCALL DISPLAYLED;調用數碼管顯示子程序LCALL DELAY1 AJMP MAIN

; 這是DS18B20復位初始化子程序 INIT_1820:SETB P2.0NOPCLR P2.0

;主機發出延時537微秒的復位低脈沖MOV R1,#3 TSR1:MOV R0,#107DJNZ R0,$DJNZ R1,TSR1

SETB P2.0;然后拉高數據線NOPNOPNOPMOV R0,#25H TSR2:

JNB P2.0,TSR3;等待DS18B20回應DJNZ R0,TSR2

LJMP TSR4 ; 延時 TSR3:

SETB FLAG1; 置標志位,表示DS1820存在LJMP TSR5 TSR4:

精品小說推薦: 昔日落魄少年被逐出家族,福禍相依得神秘老者相助,從此人生路上一片青雲! 我行我瀟灑,彰顯我性格! 彆罵小爺拽,媳婦多了用車載! 妹紙一聲好歐巴,轉手就是摸摸大! “不要嘛!” 完整內容請點擊辣手仙醫

Tags:單片機實驗心得體會   單片機心得體會

網站分類
標簽列表