|
第一章 緒論
目前單片機滲透到我們生活的各個領(lǐng)域, 幾乎很難找到哪個領(lǐng)域沒有 單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò) 通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各 種智能 IC 卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動 洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更 不用說自動控制領(lǐng)域的機器人、 智能儀表、 醫(yī)療器械以及各種智能機械了。 因此,單片機的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機應(yīng)用與智能化控制的 科學(xué)家、工程師。
單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù) 據(jù)處理能力的中央處理器 CPU 隨機存儲器 RAM 、 只讀存儲器 ROM 、 多種 I/O口和中斷系統(tǒng)、定時器 /計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制 電路、模擬多路轉(zhuǎn)換器、 A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個 小而完善的計算機系統(tǒng)。
單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用 設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇:
在智能儀器儀表上的應(yīng)用
在工業(yè)控制中的應(yīng)用
在家用電器中的應(yīng)用
在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用
單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用
在各種大型電器中的模塊化應(yīng)用
單片機在汽車設(shè)備領(lǐng)域中的應(yīng)用
基于單片機在現(xiàn)實生活中的廣泛應(yīng)用,及人們對于萬年歷、溫度顯示的 需求度,現(xiàn)設(shè)計出一款基于 89C51的萬年歷及溫度顯示系統(tǒng)。
此設(shè)計是數(shù)據(jù)采集及處理,顯示系統(tǒng)及與單片機有效結(jié)合。此設(shè)計是通 過在“單片機原理及應(yīng)用”課堂上學(xué)習(xí)的知識的綜合應(yīng)用。
本系統(tǒng)設(shè)計以單片機 89C51為控制器,輔以時鐘芯片 Ds1302、溫度傳
感器 Ds18b20、液晶顯示器 LM016L 。
基于 89C51的萬年歷及溫度顯示系統(tǒng), 主要由單片機 89C51、 時鐘芯片 Ds1302、溫度傳感器 Ds18b20、液晶顯示器 LM016L 等構(gòu)成,具有顯示當(dāng)前 時間、年月日及溫度的功能。
第二章 設(shè)計要求及設(shè)計框圖 2.1 設(shè)計要求
① 具有年、月、日、星期、時、分、秒等功能;
② 具有溫度顯示功能;
2.2 設(shè)計框圖
第三章 知識要點
3.1 LMO16L 液晶模塊
LM016L 液晶模塊采用 HD44780控制器。 HD44780具有簡單而功能較強的 指令集,可以實現(xiàn)字符移動、閃爍等功能。
LM016L 與單片機 MCU(Microcontroller Unit )通訊可采用 8位或者 4位并行傳輸兩種方式。 HD44780控制器由兩個 8位寄存器、指令寄存器(IR ) 和數(shù)據(jù)寄存器(DR ) 、忙標志(BF ) 、顯示數(shù)據(jù) RAM(DDRAM ) 、字符發(fā)生器 ROM
(CGROM ) 、 字符發(fā)生器 RAM (CGRAM ) 、 地址計數(shù)器 (AC ) 。 IR 用于寄存指令碼, 只能寫入不能讀出; DR 用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動寫入 DDRAM 和 CGRAM ,或者暫存從 DDRAM 和 CGRAM讀出的數(shù)據(jù)。 BF 為 1時,液晶模塊處于 內(nèi)部處理模式,不響應(yīng)外部操作指令和接受數(shù)據(jù)。 DDRAM 用來存儲顯示的字 符, 能存儲 80個字符碼。 CGROM 由 8位字符碼生成 5*7點陣字符 160種和 5*10點陣字符 32種, 8位字符編碼和字符的對應(yīng)關(guān)系, 可以查看相關(guān)文獻。 CGRAM 是為用戶編寫特殊字符留用的,它的容量僅 64字節(jié)?梢宰远x 8個 5*7點陣字符或者 4個 5*10點陣字符。 AC 可以存儲 DDRAM 和 CGRAM的地址,如 果地址碼隨指令寫入 IR,則 IR 自動把地址碼裝入 AC ,同時選擇 DDRAM 或者 CGRAM 單元。
3.1.1 LM016L 引腳說明
管腳號名稱電平功能描述
1 VSS 0V
2 VDD 5.0V
3 RS H/L H:數(shù)據(jù)線上為數(shù)據(jù)信號; L :數(shù)據(jù)線上為指令信號
4 RW H/L H:讀數(shù)據(jù)模式; L :寫數(shù)據(jù)模式
5 E H/L 使能信號端
6 DB0~DB7 H/L 數(shù)據(jù)線
3.1.2 控制指令
控制指令通過對 HD44780寫入控制指令, HD44780產(chǎn)生顯示驅(qū)動信號來 驅(qū)動 LM016L 。
HD44780的控制指令主要有:清除顯示(Clear Display) 、地址歸位 ( Return Home ) 、 輸入模式設(shè)定 (Entry Mode Set ) 、 顯示開 /關(guān)控制 (Display On/Off Control ) 、 功能設(shè)定 (Function Set ) 、 設(shè)定 CGRAM 的地址 (Set CGRAM Address ) 、 設(shè)定 DDRAM 的地址 (Set DDRAM Address ) 、 寫 DDRAM/CGRAM(Write Date to DDRAM/CGRAM) 、讀忙標志和地址(Read Busy Flagand Address)以 及從 DDRAM 和 CGRAM 中讀數(shù)據(jù)(Read Date from DDRAM/CGRAM) 。
3.1.3 基于 Proteus ISIS 7的液晶模塊仿真
1、接口設(shè)計
運行 Proteus ISIS 7進入設(shè)計界面,依照圖所示在元件庫中選擇需要的 元件。 80C51的 P0口作為 8位數(shù)據(jù)的輸出端, P2.0、 P2.1、 P2.2作為控制信 號的輸出端。
2、軟件設(shè)計
電路圖繪制好之后,就可以編寫 LM016L 的驅(qū)動程序。
LM016L 的操作有兩大類:讀操作和寫操作。一般情況下不需要從液晶中 讀取數(shù)據(jù),所以對液晶操作主要是寫指令和寫數(shù)據(jù)兩個寫操作,對于忙標志 (BF ) , 采用延時的方法, 保證液晶模塊有足夠時間進行內(nèi)部數(shù)據(jù)處理。 在寫 源程序時,需要根據(jù)液晶模塊的時序圖編寫程序。
(1)寫指令子程序
RS
R/WE DB0 - DB7
WRITE_COMMAND:;寫指令子程序
CLR[4] LCDE;清使能信號
CLR RS; RS=0, RW=0寫指令
CLR RW
MOV P0, A ;送指令字
(2)寫數(shù)據(jù)子程序
WRITE_DATA
入口參數(shù):數(shù)據(jù)放在累加器 A 中
WRITE_DATA:;寫數(shù)據(jù)子程序
CLR LCDE;清使能信號
SETB RS ; RS=1, RW=0寫數(shù)據(jù)
CLR RW
MOV P0, A ;送數(shù)據(jù)
RS BIT P2.0; RW BIT P2.1; LCDE BIT P2.2
下面是寫指令和寫數(shù)據(jù)的源代碼:
寫指令子程序 WRITE_COMMAND
入口參數(shù):指令字放在累加器 A 中
有效數(shù)據(jù)
T2
T3
T1
T4
SETB LCDE
LCALL DELAY
CLR LCDE
RET
SETB LCDE
LCALL DELAY
CLR LCDE
RET
;設(shè)置使能信號
;延時
;設(shè)置使能信號
;延時
液晶模塊初始化主要包括:功能設(shè)定(Function Set) 、顯示開 /關(guān)控制 (Display On/OffControl) 、 清除顯示 (Clear Display ) 、 進入點設(shè)定 (Entry Mode Set) 。
INITIAL_LCD:;液晶模塊初始化 MOV A, #06H ;
輸入方式設(shè)置; 8位接口, 兩行顯示, 5*7點陣字符 LCALL WRITE_COMMAND MOV A, #38H MOV A, #01H ;清屏指令
LCALL WRITE_COMMAND LCALL WRITE_COMMANDMOV A, #0EH ;顯示開關(guān)設(shè)
置 RET
LCALL WRITE_COMMAND3.3自定義字符及其顯示
CGRAM 是用戶編寫特殊字符用的,它的容量僅 64字節(jié),地址為 00~3FH。 定義一個 5*7點陣字符需要 8個字節(jié),這 8個字節(jié)由 CGRAM 地址的高 3位確 定,相同的為一組。
3.2 單片機 AT89C51
AT89C51是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲器 (FPEROM — Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能 CMOS8位微處理器,俗稱單片機。 AT89C2051是一種帶 2K 字節(jié)閃爍可編程可擦除只 讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除 100次。該器 件采用 ATMEL 高密度非易失存儲器制造技術(shù)制造, 與工業(yè)標準的 MCS-51指令 集和輸出管腳相兼容。由于將多功能 8位 CPU 和閃爍存儲器組合在單個芯片 中, ATMEL 的 AT89C51是一種高效微控制器, AT89C2051是它的一種精簡版本。 AT89C
單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。
3.2.1 主要特性
·與 MCS-51 兼容
·4K字節(jié)可編程閃爍存儲器
壽命:1000寫 /擦循環(huán)
數(shù)據(jù)保留時間:10年
·全靜態(tài)工作:0Hz-24Hz
·三級程序存儲器鎖定
·128*8位內(nèi)部 RAM
·32可編程 I/O線
·兩個 16位定時器 /計數(shù)器
·5個中斷源
·可編程串行通道
·低功耗的閑置和掉電模式
·片內(nèi)振蕩器和時鐘電路
3.2.2 管腳說明
VCC:供電電壓。
GND:接地。
P0口:P0口為一個 8位漏級開路雙向 I/O口,每腳可吸收 8TTL 門電流。 當(dāng) P1口的管腳第一次寫 1時,被定義為高阻輸入。 P0能夠用于外部程序數(shù) 據(jù)存儲器,它可以被定義為數(shù)據(jù) /地址的第八位。在 FIASH 編程時, P0 口作 為原碼輸入口,當(dāng) FIASH 進行校驗時, P0輸出原碼,此時 P0外部必須被拉 高。
P1口:P1口是一個內(nèi)部提供上拉電阻的 8位雙向 I/O口, P1口緩沖器能 接收輸出 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ù) 存儲器進行存取時, P2口輸出地址的高八位。在給出地址“1”時,它利用 內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時, P2口輸出其特殊 功能寄存器的內(nèi)容。 P2口在 FLASH 編程和校驗時接收高八位地址信號和控制
信號。
P3口:P3口管腳是 8個帶內(nèi)部上拉電阻的雙向 I/O口,可接收輸出 4個 TTL 門電流。當(dāng) P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。 作為輸入,由于外部下拉為低電平, P3口將輸出電流(ILL )這是由于上拉 的緣故。
P3口也可作為 AT89C51的一些特殊功能口,如下表所示:
P3口管腳 備選功能
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 /RD(外部數(shù)據(jù)存儲器讀選通)
P3口同時為閃爍編程和編程校驗接收一些控制信號。
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 禁止,置位無效。 /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.2.3 振蕩器特性
XTAL1和 XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置 為片內(nèi)振蕩器。 石晶振蕩和陶瓷振蕩均可采用。 如采用外部時鐘源驅(qū)動器件, XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對 外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 3.2.4 芯片擦除功能
整個 PEROM 陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保 持 ALE 管腳處于低電平 10ms 來完成。 在芯片擦操作中, 代碼陣列全被寫“1” 且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。
此外, AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯, 支持兩種軟件可選的掉電模式。在閑置模式下, CPU 停止工作。但 RAM ,定時 器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 RAM 的內(nèi)容并 且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。
3.3 時鐘芯片 DS1302
DS1302在每次進行讀、寫程序前都必須初始化,先把 SCLK 端置 “ 0” , 接著把 RST 端置 “ 1” , 最后才給予 SCLK 脈沖; 讀 /寫時序如下圖 3.3.1所示。 DS1302的控制字, 此控制字的位 7必須置 1, 若為 0則不能把對 DS1302進行 讀寫數(shù)據(jù)。 對于位 6, 若對程序進行讀 /寫時 RAM=1, 對時間進行讀 /寫時, CK=0。 位 1至位 5指操作單元的地址。 位 0是讀 /寫操作位, 進行讀操作時, 該位為 1;該位為 0則表示進行的是寫操作。控制字節(jié)總是從最低位開始輸入 /輸出 的。 DS1302的日歷、時間寄存器內(nèi)容:“ CH ”是時鐘暫停標志位,當(dāng)該位為 1時,時鐘振蕩器停止, DS1302處于低功耗狀態(tài);當(dāng)該位為 0時,時鐘開始運
行。 “ WP ”是寫保護位,在任何的對時鐘和 RAM 的寫操作之前, WP 必須為 0。 當(dāng)“ WP ”為 1時,寫保護位防止對任一寄存器的寫操作。
3.3.1 DS1302的控制字節(jié)
DS1302的控制字節(jié)的高有效位(位 7)必須是邏輯 1,如果它為 0,則不 能把數(shù)據(jù)寫入 DS1302中;位 6如果 0,則表示存取日歷時鐘數(shù)據(jù),為 1表示 存取 RAM 數(shù)據(jù);位 5至位 1指示操作單元的地址;最低有效位(位 0)如為 0表示要進行寫操作, 為 1表示進行讀操作, 控制字節(jié)總是從最低位開始輸出。
3.3.2 數(shù)據(jù)輸入輸出(I/O)
在控制指令字輸入后的下一個 SCLK 時鐘的上升沿時,數(shù)據(jù)被寫入 DS1302,數(shù)據(jù)輸入從低位即位 0開始。同樣,在緊跟 8位的控制指令字后的 下一個 SCLK 脈沖的下降沿讀出 DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位 0位到高 位 7。如下圖 3.3
所示
圖 3.3.1 DS1302讀 /寫時序圖
3.3.3 DS1302的寄存器
DS1302有 12個寄存器,其中有 7個寄存器與日歷、時鐘相關(guān),存放的 數(shù)據(jù)位為 BCD 碼形式 , 其日歷、時間寄存器及其控制字見表 3.3.2。
表 3.3.2 DS1302的日歷、時間寄存器
此外, DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄 存器及與 RAM 相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄 存器外的所有寄存器內(nèi)容。 DS1302與 RAM 相關(guān)的寄存器分為兩類:一類是 單個 RAM 單元, 共 31個, 每個單元組態(tài)為一個 8位的字節(jié), 其命令控制字為 C0H ~FDH ,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的 RAM 寄存器,此方式下可一次性讀寫所有的 RAM 的 31個字節(jié),命令控制字為 FEH(寫 ) 、 FFH(讀 ) 。
3.4 DS18B20數(shù)字溫度傳感器
3.4.1技術(shù)性能描述
1、 獨特的單線接口方式, DS18B20在與微處理器連接時僅需要一條口 線即可實現(xiàn)微處理器與 DS18B20的雙向通訊。
2、測溫范圍 -55℃~+125℃,固有測溫分辨率 0.5℃。
3、支持多點組網(wǎng)功能,多個 DS18B20可以并聯(lián)在唯一的三線上,最 多只能并聯(lián) 8個, 實現(xiàn)多點測溫, 如果數(shù)量過多, 會使供電電源電壓過低, 從而造成信號傳輸?shù)牟环(wěn)定。
4、工作電源 : 3~5V/DC。
5、在使用中不需要任何外圍元件。
6、測量結(jié)果以 9~12位數(shù)字量方式串行傳送。
應(yīng)用范圍
該產(chǎn)品適用于冷凍庫、糧倉、儲罐、電訊機房、電力機房、電纜線槽 等測溫和控制領(lǐng)域。
接線說明
特點 :獨特的一線接口,只需要一條口線通信多點能力,簡化了分布 式溫度傳感應(yīng)用無需外部元件可用數(shù)據(jù)總線供電, 電壓范圍為 3.0 V 至 5.5 V ,無需備用電源測量溫度范圍為 -55 ℃至 +125 ℃ 。
3.4.2 DS18B20主要的數(shù)據(jù)部件
光刻 ROM 中的 64位序列號是出廠前被光刻好的,它可以看作是該 DS18B20的地址序列碼。 64位光刻 ROM 的排列是:開始 8位(28H )是產(chǎn) 品類型標號,接著的 48位是該 DS18B20自身的序列號,最后 8位是前面 56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1) 。光刻 ROM 的作用是使每一個 DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個 DS18B20的目 的。
DS18B20中的溫度傳感器可完成對溫度的測量, 以 12位轉(zhuǎn)化為例:用 16位符號擴展的二進制補碼讀數(shù)形式提供,以 0.0625℃ /LSB形式表達, 其中 S 為符號位。
DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻 ROM ,溫度傳感器, 溫度報警觸發(fā)器 TH 和 TL, 配置寄存器。
1、存儲器
DS18B20的存儲器包括高速暫存器 RAM 和可電擦除 RAM , 可電擦除 RAM 又包括溫度觸發(fā)器 TH 和 TL ,以及一個配置寄存器。存儲器能完整的確定 一線端口的通訊,數(shù)字開始用寫寄存器的命令寫進寄存器,接著也可以用 讀寄存器的命令來確認這些數(shù)字。 當(dāng)確認以后就可以用復(fù)制寄存器的命令 來將這些數(shù)字轉(zhuǎn)移到可電擦除 RAM 中。當(dāng)修改過寄存器中的數(shù)時,這個過 程能確保數(shù)字的完整性。
高速暫存器 RAM 是由 8個字節(jié)的存儲器組成; 第一和第二個字節(jié)是溫 度的顯示位。第三和第四個字節(jié)是復(fù)制 TH 和 TL ,同時第三和第四個字節(jié) 的數(shù)字可以更新;第五個字節(jié)是復(fù)制配置寄存器,同時第五個字節(jié)的數(shù)字
可以更新;六、七、八三個字節(jié)是計算機自身使用。用讀寄存器的命令能 讀出第九個字節(jié),這個字節(jié)是對前面的八個字節(jié)進行校驗。
2、 64-位光刻 ROM
64位光刻 ROM 的前 8位是 DS18B20的自身代碼,接下來的 48位為連 續(xù)的數(shù)字代碼,最后的 8位是對前 56位的 CRC 校驗。 64-位的光刻 ROM 又 包括 5個 ROM 的功能命令:讀 ROM ,匹配 ROM ,跳躍 ROM ,查找 ROM 和報警 查找。
3、 DS18B20外部電源的連接方式
DS18B20可以使用外部電源 VDD , 也可以使用內(nèi)部的寄生電源。 當(dāng) VDD 端口接 3.0V — 5.5V 的電壓時是使用外部電源;當(dāng) VDD 端口接地時使用了 內(nèi)部的寄生電源。無論是內(nèi)部寄生電源還是外部供電, I/O口線要接 5K Ω左右的上拉電阻。
4、配置寄存器
配置寄存器是配置不同的位數(shù)來確定溫度和數(shù)字的轉(zhuǎn)化。 R1, R0是溫 度的決定位,由 R1, R0的不同組合可以配置為 9位, 10位, 11位, 12位的溫度顯示。這樣就可以知道不同的溫度轉(zhuǎn)化位所對應(yīng)的轉(zhuǎn)化時間,四 種配置的分辨率分別為 0.5℃, 0.25℃, 0.125℃和 0.0625℃,出廠時以 配置為 12位
3.4.3 DS18B20溫度處理過程
1、溫度的讀取
DS18B20在出廠時以配置為 12位,讀取溫度時共讀取 16位,所以把 后 11位的 2進制轉(zhuǎn)化為 10進制后在乘以 0.0625便為所測的溫度,還需 要判斷正負。 前 5個數(shù)字為符號位, 當(dāng)前 5位為 1時, 讀取的溫度為負數(shù); 當(dāng)前 5位為 0時,讀取的溫度為正數(shù)。
2、 DS18B20控制方法
指令約定代碼操作說明
(1)溫度轉(zhuǎn)換 44H 啟動 DS18B20進行溫度轉(zhuǎn)換
(2)讀暫存器 BEH 讀暫存器 9位二進制數(shù)字
[后續(xù)內(nèi)容及源碼見附件]
|
|