標(biāo)題: 基于51單片機(jī)的萬年歷設(shè)計(jì)論文(word格式 含源碼) [打印本頁]

作者: 黑科技001A    時(shí)間: 2018-4-3 13:35
標(biāo)題: 基于51單片機(jī)的萬年歷設(shè)計(jì)論文(word格式 含源碼)
第一章 緒論
目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域, 幾乎很難找到哪個(gè)領(lǐng)域沒有 單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò) 通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各 種智能 IC 卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng) 洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更 不用說自動(dòng)控制領(lǐng)域的機(jī)器人、 智能儀表、 醫(yī)療器械以及各種智能機(jī)械了。 因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的 科學(xué)家、工程師。
單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù) 據(jù)處理能力的中央處理器 CPU 隨機(jī)存儲(chǔ)器 RAM 、 只讀存儲(chǔ)器 ROM 、 多種 I/O口和中斷系統(tǒng)、定時(shí)器 /計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制 電路、模擬多路轉(zhuǎn)換器、 A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè) 小而完善的計(jì)算機(jī)系統(tǒng)。
單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用 設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:
在智能儀器儀表上的應(yīng)用
在工業(yè)控制中的應(yīng)用
在家用電器中的應(yīng)用
在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用
單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用
在各種大型電器中的模塊化應(yīng)用
單片機(jī)在汽車設(shè)備領(lǐng)域中的應(yīng)用
基于單片機(jī)在現(xiàn)實(shí)生活中的廣泛應(yīng)用,及人們對(duì)于萬年歷、溫度顯示的 需求度,現(xiàn)設(shè)計(jì)出一款基于 89C51的萬年歷及溫度顯示系統(tǒng)。
此設(shè)計(jì)是數(shù)據(jù)采集及處理,顯示系統(tǒng)及與單片機(jī)有效結(jié)合。此設(shè)計(jì)是通 過在“單片機(jī)原理及應(yīng)用”課堂上學(xué)習(xí)的知識(shí)的綜合應(yīng)用。
本系統(tǒng)設(shè)計(jì)以單片機(jī) 89C51為控制器,輔以時(shí)鐘芯片 Ds1302、溫度傳
感器 Ds18b20、液晶顯示器 LM016L 。
基于 89C51的萬年歷及溫度顯示系統(tǒng), 主要由單片機(jī) 89C51、 時(shí)鐘芯片 Ds1302、溫度傳感器 Ds18b20、液晶顯示器 LM016L 等構(gòu)成,具有顯示當(dāng)前 時(shí)間、年月日及溫度的功能。
第二章 設(shè)計(jì)要求及設(shè)計(jì)框圖 2.1 設(shè)計(jì)要求
① 具有年、月、日、星期、時(shí)、分、秒等功能;
② 具有溫度顯示功能;
2.2 設(shè)計(jì)框圖

第三章 知識(shí)要點(diǎn)
3.1 LMO16L 液晶模塊
LM016L 液晶模塊采用 HD44780控制器。 HD44780具有簡(jiǎn)單而功能較強(qiáng)的 指令集,可以實(shí)現(xiàn)字符移動(dòng)、閃爍等功能。
LM016L 與單片機(jī) MCU(Microcontroller Unit )通訊可采用 8位或者 4位并行傳輸兩種方式。 HD44780控制器由兩個(gè) 8位寄存器、指令寄存器(IR ) 和數(shù)據(jù)寄存器(DR ) 、忙標(biāo)志(BF ) 、顯示數(shù)據(jù) RAM(DDRAM ) 、字符發(fā)生器 ROM
(CGROM ) 、 字符發(fā)生器 RAM (CGRAM ) 、 地址計(jì)數(shù)器 (AC ) 。 IR 用于寄存指令碼, 只能寫入不能讀出; DR 用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動(dòng)寫入 DDRAM 和 CGRAM ,或者暫存從 DDRAM 和 CGRAM讀出的數(shù)據(jù)。 BF 為 1時(shí),液晶模塊處于 內(nèi)部處理模式,不響應(yīng)外部操作指令和接受數(shù)據(jù)。 DDRAM 用來存儲(chǔ)顯示的字 符, 能存儲(chǔ) 80個(gè)字符碼。 CGROM 由 8位字符碼生成 5*7點(diǎn)陣字符 160種和 5*10點(diǎn)陣字符 32種, 8位字符編碼和字符的對(duì)應(yīng)關(guān)系, 可以查看相關(guān)文獻(xiàn)。 CGRAM 是為用戶編寫特殊字符留用的,它的容量?jī)H 64字節(jié)?梢宰远x 8個(gè) 5*7點(diǎn)陣字符或者 4個(gè) 5*10點(diǎn)陣字符。 AC 可以存儲(chǔ) DDRAM 和 CGRAM的地址,如 果地址碼隨指令寫入 IR,則 IR 自動(dòng)把地址碼裝入 AC ,同時(shí)選擇 DDRAM 或者 CGRAM 單元。
3.1.1 LM016L 引腳說明
管腳號(hào)名稱電平功能描述
1 VSS 0V
2 VDD 5.0V
3 RS H/L H:數(shù)據(jù)線上為數(shù)據(jù)信號(hào); L :數(shù)據(jù)線上為指令信號(hào)
4 RW H/L H:讀數(shù)據(jù)模式; L :寫數(shù)據(jù)模式
5 E H/L 使能信號(hào)端
6 DB0~DB7 H/L 數(shù)據(jù)線
3.1.2 控制指令
控制指令通過對(duì) HD44780寫入控制指令, HD44780產(chǎn)生顯示驅(qū)動(dòng)信號(hào)來 驅(qū)動(dòng) 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) 、讀忙標(biāo)志和地址(Read Busy Flagand Address)以 及從 DDRAM 和 CGRAM 中讀數(shù)據(jù)(Read Date from DDRAM/CGRAM) 。
3.1.3 基于 Proteus ISIS 7的液晶模塊仿真
1、接口設(shè)計(jì)
運(yùn)行 Proteus ISIS 7進(jìn)入設(shè)計(jì)界面,依照?qǐng)D所示在元件庫中選擇需要的 元件。 80C51的 P0口作為 8位數(shù)據(jù)的輸出端, P2.0、 P2.1、 P2.2作為控制信 號(hào)的輸出端。
2、軟件設(shè)計(jì)
電路圖繪制好之后,就可以編寫 LM016L 的驅(qū)動(dòng)程序。
LM016L 的操作有兩大類:讀操作和寫操作。一般情況下不需要從液晶中 讀取數(shù)據(jù),所以對(duì)液晶操作主要是寫指令和寫數(shù)據(jù)兩個(gè)寫操作,對(duì)于忙標(biāo)志 (BF ) , 采用延時(shí)的方法, 保證液晶模塊有足夠時(shí)間進(jìn)行內(nèi)部數(shù)據(jù)處理。 在寫 源程序時(shí),需要根據(jù)液晶模塊的時(shí)序圖編寫程序。
(1)寫指令子程序
RS
R/WE DB0 - DB7
WRITE_COMMAND:;寫指令子程序
CLR[4] LCDE;清使能信號(hào)
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;清使能信號(hào)
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è)置使能信號(hào)
;延時(shí)
;設(shè)置使能信號(hào)
;延時(shí)
液晶模塊初始化主要包括:功能設(shè)定(Function Set) 、顯示開 /關(guān)控制 (Display On/OffControl) 、 清除顯示 (Clear Display ) 、 進(jìn)入點(diǎn)設(shè)定 (Entry Mode Set) 。
INITIAL_LCD:;液晶模塊初始化 MOV A, #06H ;
輸入方式設(shè)置; 8位接口, 兩行顯示, 5*7點(diǎn)陣字符 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 是用戶編寫特殊字符用的,它的容量?jī)H 64字節(jié),地址為 00~3FH。 定義一個(gè) 5*7點(diǎn)陣字符需要 8個(gè)字節(jié),這 8個(gè)字節(jié)由 CGRAM 地址的高 3位確 定,相同的為一組。
3.2 單片機(jī) AT89C51
AT89C51是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器 (FPEROM — Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能 CMOS8位微處理器,俗稱單片機(jī)。 AT89C2051是一種帶 2K 字節(jié)閃爍可編程可擦除只 讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除 100次。該器 件采用 ATMEL 高密度非易失存儲(chǔ)器制造技術(shù)制造, 與工業(yè)標(biāo)準(zhǔn)的 MCS-51指令 集和輸出管腳相兼容。由于將多功能 8位 CPU 和閃爍存儲(chǔ)器組合在單個(gè)芯片 中, ATMEL 的 AT89C51是一種高效微控制器, AT89C2051是它的一種精簡(jiǎn)版本。 AT89C

單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。
3.2.1 主要特性
·與 MCS-51 兼容
·4K字節(jié)可編程閃爍存儲(chǔ)器
壽命:1000寫 /擦循環(huán)
數(shù)據(jù)保留時(shí)間:10年
·全靜態(tài)工作:0Hz-24Hz
·三級(jí)程序存儲(chǔ)器鎖定
·128*8位內(nèi)部 RAM
·32可編程 I/O線
·兩個(gè) 16位定時(shí)器 /計(jì)數(shù)器
·5個(gè)中斷源
·可編程串行通道
·低功耗的閑置和掉電模式
·片內(nèi)振蕩器和時(shí)鐘電路
3.2.2 管腳說明
VCC:供電電壓。
GND:接地。
P0口:P0口為一個(gè) 8位漏級(jí)開路雙向 I/O口,每腳可吸收 8TTL 門電流。 當(dāng) P1口的管腳第一次寫 1時(shí),被定義為高阻輸入。 P0能夠用于外部程序數(shù) 據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù) /地址的第八位。在 FIASH 編程時(shí), P0 口作 為原碼輸入口,當(dāng) FIASH 進(jìn)行校驗(yàn)時(shí), P0輸出原碼,此時(shí) P0外部必須被拉 高。
P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的 8位雙向 I/O口, P1口緩沖器能 接收輸出 4TTL 門電流。 P1口管腳寫入 1后,被內(nèi)部上拉為高,可用作輸入, P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在 FLASH 編程和校驗(yàn)時(shí), P1口作為第八位地址接收。
P2口:P2口為一個(gè)內(nèi)部上拉電阻的 8位雙向 I/O口, P2口緩沖器可接收, 輸出 4個(gè) TTL 門電流,當(dāng) P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高, 且作為輸入。并因此作為輸入時(shí), P2口的管腳被外部拉低,將輸出電流。這 是由于內(nèi)部上拉的緣故。 P2口當(dāng)用于外部程序存儲(chǔ)器或 16位地址外部數(shù)據(jù) 存儲(chǔ)器進(jìn)行存取時(shí), P2口輸出地址的高八位。在給出地址“1”時(shí),它利用 內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí), P2口輸出其特殊 功能寄存器的內(nèi)容。 P2口在 FLASH 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制
信號(hào)。
P3口:P3口管腳是 8個(gè)帶內(nèi)部上拉電阻的雙向 I/O口,可接收輸出 4個(gè) 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(記時(shí)器 0外部輸入)
P3.5 T1(記時(shí)器 1外部輸入)
P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)
P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。
RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST 腳兩個(gè)機(jī)器周期的高 電平時(shí)間。
ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地 址的地位字節(jié)。在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時(shí), ALE 端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的 1/6。因此它 可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部 數(shù)據(jù)存儲(chǔ)器時(shí), 將跳過一個(gè) ALE 脈沖。 如想禁止 ALE 的輸出可在 SFR8EH 地址 上置 0。此時(shí), ALE 只有在執(zhí)行 MOVX , MOVC 指令是 ALE 才起作用。另外,該 引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ALE 禁止,置位無效。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每 個(gè)機(jī)器周期兩次 /PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的 /PSEN信號(hào)將不出現(xiàn)。
/EA/VPP:當(dāng) /EA保 持 低 電 平 時(shí) , 則 在 此 期 間 外 部 程 序 存 儲(chǔ) 器(0000H-FFFFH ) ,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1時(shí), /EA將 內(nèi)部鎖定為 RESET ;當(dāng) /EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在 FLASH 編程期間,此引腳也用于施加 12V 編程電源(VPP ) 。
XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
3.2.3 振蕩器特性
XTAL1和 XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置 為片內(nèi)振蕩器。 石晶振蕩和陶瓷振蕩均可采用。 如采用外部時(shí)鐘源驅(qū)動(dòng)器件, XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì) 外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 3.2.4 芯片擦除功能
整個(gè) PEROM 陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保 持 ALE 管腳處于低電平 10ms 來完成。 在芯片擦操作中, 代碼陣列全被寫“1” 且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。
此外, AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯, 支持兩種軟件可選的掉電模式。在閑置模式下, CPU 停止工作。但 RAM ,定時(shí) 器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 RAM 的內(nèi)容并 且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。
3.3 時(shí)鐘芯片 DS1302
DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把 SCLK 端置 “ 0” , 接著把 RST 端置 “ 1” , 最后才給予 SCLK 脈沖; 讀 /寫時(shí)序如下圖 3.3.1所示。 DS1302的控制字, 此控制字的位 7必須置 1, 若為 0則不能把對(duì) DS1302進(jìn)行 讀寫數(shù)據(jù)。 對(duì)于位 6, 若對(duì)程序進(jìn)行讀 /寫時(shí) RAM=1, 對(duì)時(shí)間進(jìn)行讀 /寫時(shí), CK=0。 位 1至位 5指操作單元的地址。 位 0是讀 /寫操作位, 進(jìn)行讀操作時(shí), 該位為 1;該位為 0則表示進(jìn)行的是寫操作?刂谱止(jié)總是從最低位開始輸入 /輸出 的。 DS1302的日歷、時(shí)間寄存器內(nèi)容:“ CH ”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為 1時(shí),時(shí)鐘振蕩器停止, DS1302處于低功耗狀態(tài);當(dāng)該位為 0時(shí),時(shí)鐘開始運(yùn)
行。 “ WP ”是寫保護(hù)位,在任何的對(duì)時(shí)鐘和 RAM 的寫操作之前, WP 必須為 0。 當(dāng)“ WP ”為 1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。
3.3.1 DS1302的控制字節(jié)
DS1302的控制字節(jié)的高有效位(位 7)必須是邏輯 1,如果它為 0,則不 能把數(shù)據(jù)寫入 DS1302中;位 6如果 0,則表示存取日歷時(shí)鐘數(shù)據(jù),為 1表示 存取 RAM 數(shù)據(jù);位 5至位 1指示操作單元的地址;最低有效位(位 0)如為 0表示要進(jìn)行寫操作, 為 1表示進(jìn)行讀操作, 控制字節(jié)總是從最低位開始輸出。
3.3.2 數(shù)據(jù)輸入輸出(I/O)
在控制指令字輸入后的下一個(gè) SCLK 時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入 DS1302,數(shù)據(jù)輸入從低位即位 0開始。同樣,在緊跟 8位的控制指令字后的 下一個(gè) SCLK 脈沖的下降沿讀出 DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位 0位到高 位 7。如下圖 3.3
所示

圖 3.3.1 DS1302讀 /寫時(shí)序圖
3.3.3 DS1302的寄存器
DS1302有 12個(gè)寄存器,其中有 7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的 數(shù)據(jù)位為 BCD 碼形式 , 其日歷、時(shí)間寄存器及其控制字見表 3.3.2。

表 3.3.2 DS1302的日歷、時(shí)間寄存器
此外, DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄 存器及與 RAM 相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄 存器外的所有寄存器內(nèi)容。 DS1302與 RAM 相關(guān)的寄存器分為兩類:一類是 單個(gè) RAM 單元, 共 31個(gè), 每個(gè)單元組態(tài)為一個(gè) 8位的字節(jié), 其命令控制字為 C0H ~FDH ,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的 RAM 寄存器,此方式下可一次性讀寫所有的 RAM 的 31個(gè)字節(jié),命令控制字為 FEH(寫 ) 、 FFH(讀 ) 。
3.4 DS18B20數(shù)字溫度傳感器
3.4.1技術(shù)性能描述
1、 獨(dú)特的單線接口方式, DS18B20在與微處理器連接時(shí)僅需要一條口 線即可實(shí)現(xiàn)微處理器與 DS18B20的雙向通訊。
2、測(cè)溫范圍 -55℃~+125℃,固有測(cè)溫分辨率 0.5℃。
3、支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20可以并聯(lián)在唯一的三線上,最 多只能并聯(lián) 8個(gè), 實(shí)現(xiàn)多點(diǎn)測(cè)溫, 如果數(shù)量過多, 會(huì)使供電電源電壓過低, 從而造成信號(hào)傳輸?shù)牟环(wěn)定。
4、工作電源 : 3~5V/DC。
5、在使用中不需要任何外圍元件。
6、測(cè)量結(jié)果以 9~12位數(shù)字量方式串行傳送。
應(yīng)用范圍
該產(chǎn)品適用于冷凍庫、糧倉、儲(chǔ)罐、電訊機(jī)房、電力機(jī)房、電纜線槽 等測(cè)溫和控制領(lǐng)域。
接線說明
特點(diǎn) :獨(dú)特的一線接口,只需要一條口線通信多點(diǎn)能力,簡(jiǎn)化了分布 式溫度傳感應(yīng)用無需外部元件可用數(shù)據(jù)總線供電, 電壓范圍為 3.0 V 至 5.5 V ,無需備用電源測(cè)量溫度范圍為 -55 ℃至 +125 ℃ 。
3.4.2 DS18B20主要的數(shù)據(jù)部件
光刻 ROM 中的 64位序列號(hào)是出廠前被光刻好的,它可以看作是該 DS18B20的地址序列碼。 64位光刻 ROM 的排列是:開始 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的目 的。
DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量, 以 12位轉(zhuǎn)化為例:用 16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625℃ /LSB形式表達(dá), 其中 S 為符號(hào)位。
DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻 ROM ,溫度傳感器, 溫度報(bào)警觸發(fā)器 TH 和 TL, 配置寄存器。
1、存儲(chǔ)器
DS18B20的存儲(chǔ)器包括高速暫存器 RAM 和可電擦除 RAM , 可電擦除 RAM 又包括溫度觸發(fā)器 TH 和 TL ,以及一個(gè)配置寄存器。存儲(chǔ)器能完整的確定 一線端口的通訊,數(shù)字開始用寫寄存器的命令寫進(jìn)寄存器,接著也可以用 讀寄存器的命令來確認(rèn)這些數(shù)字。 當(dāng)確認(rèn)以后就可以用復(fù)制寄存器的命令 來將這些數(shù)字轉(zhuǎn)移到可電擦除 RAM 中。當(dāng)修改過寄存器中的數(shù)時(shí),這個(gè)過 程能確保數(shù)字的完整性。
高速暫存器 RAM 是由 8個(gè)字節(jié)的存儲(chǔ)器組成; 第一和第二個(gè)字節(jié)是溫 度的顯示位。第三和第四個(gè)字節(jié)是復(fù)制 TH 和 TL ,同時(shí)第三和第四個(gè)字節(jié) 的數(shù)字可以更新;第五個(gè)字節(jié)是復(fù)制配置寄存器,同時(shí)第五個(gè)字節(jié)的數(shù)字
可以更新;六、七、八三個(gè)字節(jié)是計(jì)算機(jī)自身使用。用讀寄存器的命令能 讀出第九個(gè)字節(jié),這個(gè)字節(jié)是對(duì)前面的八個(gè)字節(jié)進(jìn)行校驗(yàn)。
2、 64-位光刻 ROM
64位光刻 ROM 的前 8位是 DS18B20的自身代碼,接下來的 48位為連 續(xù)的數(shù)字代碼,最后的 8位是對(duì)前 56位的 CRC 校驗(yàn)。 64-位的光刻 ROM 又 包括 5個(gè) ROM 的功能命令:讀 ROM ,匹配 ROM ,跳躍 ROM ,查找 ROM 和報(bào)警 查找。
3、 DS18B20外部電源的連接方式
DS18B20可以使用外部電源 VDD , 也可以使用內(nèi)部的寄生電源。 當(dāng) VDD 端口接 3.0V — 5.5V 的電壓時(shí)是使用外部電源;當(dāng) VDD 端口接地時(shí)使用了 內(nèi)部的寄生電源。無論是內(nèi)部寄生電源還是外部供電, I/O口線要接 5K Ω左右的上拉電阻。
4、配置寄存器
配置寄存器是配置不同的位數(shù)來確定溫度和數(shù)字的轉(zhuǎn)化。 R1, R0是溫 度的決定位,由 R1, R0的不同組合可以配置為 9位, 10位, 11位, 12位的溫度顯示。這樣就可以知道不同的溫度轉(zhuǎn)化位所對(duì)應(yīng)的轉(zhuǎn)化時(shí)間,四 種配置的分辨率分別為 0.5℃, 0.25℃, 0.125℃和 0.0625℃,出廠時(shí)以 配置為 12位
3.4.3 DS18B20溫度處理過程
1、溫度的讀取
DS18B20在出廠時(shí)以配置為 12位,讀取溫度時(shí)共讀取 16位,所以把 后 11位的 2進(jìn)制轉(zhuǎn)化為 10進(jìn)制后在乘以 0.0625便為所測(cè)的溫度,還需 要判斷正負(fù)。 前 5個(gè)數(shù)字為符號(hào)位, 當(dāng)前 5位為 1時(shí), 讀取的溫度為負(fù)數(shù); 當(dāng)前 5位為 0時(shí),讀取的溫度為正數(shù)。
2、 DS18B20控制方法
指令約定代碼操作說明
(1)溫度轉(zhuǎn)換 44H 啟動(dòng) DS18B20進(jìn)行溫度轉(zhuǎn)換
(2)讀暫存器 BEH 讀暫存器 9位二進(jìn)制數(shù)字
[后續(xù)內(nèi)容及源碼見附件]

基于51單片機(jī)的萬年歷設(shè)計(jì)-2f8069708e9951e79b8927fc.doc

673.27 KB, 下載次數(shù): 26, 下載積分: 黑幣 -5






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1