freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于ds18b20的測(cè)溫系統(tǒng)設(shè)計(jì)畢業(yè)論文-文庫(kù)吧

2025-01-03 14:58 本頁(yè)面


【正文】 圖3 DS18B20的內(nèi)部結(jié)構(gòu) 圖4 DS18B20溫度值格式表(2)DS18B20 中的溫度傳感器可完成對(duì)溫度的測(cè)量,以 12 位轉(zhuǎn)化為例:用 16 位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 ℃/LSB 形式表達(dá),其中 S 為符號(hào)位。 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲(chǔ)在 18B20 的兩個(gè) 8 比特的 RAM 中,二進(jìn)制中的前面 5 位是符號(hào)位,如果測(cè)得的溫度大于 0,這 5 位為 0,只要將測(cè)到的數(shù)值乘于 即可得到實(shí)際溫度;如果溫度小于 0,這 5 位為 1,測(cè)到的數(shù)值需要取反加 1 再乘于 即可得到實(shí)際溫度。圖5 DS18B20溫度數(shù)據(jù)表例如+125℃的數(shù)字輸出為 07D0H,+℃的數(shù)字輸出為 0191H,℃的數(shù)字輸出為 FF6FH,55℃的數(shù)字輸出為 FC90H。(3)DS18B20 溫度傳感器的存儲(chǔ)器DS18B20 溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存 RAM 和一個(gè)非易失性的可電擦除的 EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、TL 和結(jié)構(gòu)寄存器。(4) 配置寄存器該字節(jié)各位的意義如下:TMRIRO11111表1 配置寄存器結(jié)構(gòu)低五位一直都是1,TM 是測(cè)試模式位,用于設(shè)置 DS18B20 在工作模式還是在測(cè)試模式。在 DS18B20出廠時(shí)該位被設(shè)置為 0,用戶(hù)不要去改動(dòng)。R1 和 R0 用來(lái)設(shè)置分辨率,如下表所示:(DS18B20 出廠時(shí)被設(shè)置為 12 位)R1R0分辨率溫度最大轉(zhuǎn)換時(shí)間009位0110位1011位375ms1112位750ms表2 溫度分辨率設(shè)置表(5)高速暫存存儲(chǔ)器高速暫存存儲(chǔ)器由 9 個(gè)字節(jié)組成,其分配如表 3所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第 0 和第 1 個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表 1 所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位 S=0 時(shí),直接將二制位轉(zhuǎn)換為十進(jìn)制;當(dāng) S=1 時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表?2 是對(duì)應(yīng)的一部分溫度第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。寄存器內(nèi)容字節(jié)地址溫度值低位0溫度值高位1高溫限值2低溫限值3配置寄存器4保留5保留6保留7CRC校驗(yàn)值8表3 暫存寄存器分布 STC89C52單片機(jī) STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。STC89C52使用經(jīng)典的MCS51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門(mén)狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16 位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選[2]。圖6 STC89C52單片機(jī)內(nèi)部結(jié)構(gòu)圖 LCD1602液晶 液晶顯示模塊概述1602液晶也叫1602字符型液晶,它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。[4]1602液晶具有以下特點(diǎn):顯示容量為162個(gè)字符;~;();4;(WH)mm。 模塊引腳說(shuō)明1602LCD采用標(biāo)準(zhǔn)的14引腳(無(wú)背光)或16引腳(帶背光)接口,各引腳接口說(shuō)明見(jiàn)表。編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2Date I/O2VDD電源正極10D3Date I/O3VL液晶顯示偏壓信號(hào)11D4Date I/O4RS數(shù)據(jù)/命令選擇端(V/L)12D5Date I/O5R/W讀/寫(xiě)選擇端(H/L)13D6Date I/O6E使能信號(hào)14D7Date I/O7D0Date I/O15BLA背光源正極8D1Date I/O16BLK背光源負(fù)極表4 LCD1602液晶接口引腳定義2 組電源。一組是模塊的電源;一組是背光板的電源 均為5V 供電。VL 是調(diào)節(jié)對(duì)比度的引腳,調(diào)節(jié)此腳上的電壓可以改變黑白對(duì)比度。RS 是很多液晶上都有的引腳,是命令/數(shù)據(jù)選擇引腳。該腳電平為高時(shí)表示將進(jìn)行數(shù)據(jù)操作;為低時(shí)表示進(jìn)行命令操作。RW 也是很多液晶上都有的引腳,是讀寫(xiě)選擇端。該腳電平為高是表示要對(duì)液晶進(jìn)行讀操作,為低時(shí)表示要進(jìn)行寫(xiě)操作。E 同樣很多液晶模塊有此引腳,通常在總線上信號(hào)穩(wěn)定后給一正脈沖通知把數(shù)據(jù)讀走,在此腳為高電平的時(shí)候總線不允許變化。D0—D7 ,8 位雙向并行總線,用來(lái)傳送命令和數(shù)據(jù)。BLA是背光源正極,BLK是背光源負(fù)極。3 系統(tǒng)設(shè)計(jì) 硬件設(shè)計(jì) 設(shè)計(jì)思路硬件電路包括三部分:DS18B20采溫電路;STC89C52控制電路;1602溫度顯示電路。18B2采溫電路很簡(jiǎn)單,DS18B20是單總線溫度傳感器,數(shù)據(jù)線是漏極開(kāi)路,如果DS18B20沒(méi)接電源,則需要數(shù)據(jù)線強(qiáng)上拉,給DS18B20供電;如果DS18B20接有電源,則需要一個(gè)上拉即可穩(wěn)定的工作。STC89C52控制電路則是正常單片機(jī)工作電路即可,主要包括外接晶振,復(fù)位按鍵等;1602的復(fù)位,讀寫(xiě),,,數(shù)據(jù)口為單片機(jī)的P0口,綜上所述,系統(tǒng)硬件電路簡(jiǎn)單,這也是以DS18B20為采溫元件的的優(yōu)勢(shì)之一。 總體設(shè)計(jì)方框圖方框圖所示為數(shù)字溫度控制器的單體設(shè)計(jì)方框圖。其工作原理為:當(dāng)該電路上電工作以后,首先刷新顯示(LED),然后,溫度傳感器采集溫度送單片機(jī)檢查溫度的高低,由單片機(jī)送出信號(hào)經(jīng)過(guò)驅(qū)動(dòng)電路送往顯示電路。 軟件設(shè)計(jì)整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來(lái)實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來(lái)了。從軟件的功能不同可分為兩大類(lèi):一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專(zhuān)門(mén)用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來(lái)完成各種實(shí)質(zhì)性的功能如測(cè)量、計(jì)算、顯示、報(bào)警等。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了[6]。圖8 軟件實(shí)現(xiàn)結(jié)構(gòu)圖 軟件開(kāi)發(fā)環(huán)境本系統(tǒng)開(kāi)發(fā)環(huán)境使用的是KeilSoftware公司推出的uVision4。uVision4是一款可用于多種8051MCU的集成開(kāi)發(fā)環(huán)境(IDE),該IDE同時(shí)也是PK51及其它開(kāi)發(fā)套件的一個(gè)重要組件。除增加了源代碼、功能導(dǎo)航器、模板編輯以及改進(jìn)的搜索功能外,uVision4還提供了一個(gè)配置向?qū)Чδ?,加速了啟?dòng)代碼和配置文件的生成。此外其內(nèi)置的仿真器可模擬目標(biāo)MCU,包括指令集、片上外圍設(shè)備及外部信號(hào)等。uVision4提供邏輯分析器,可監(jiān)控基于MCUI/O引腳和外設(shè)狀態(tài)變化下的程序變量[7]。圖9 uVision4操作界面 DS18B20軟件設(shè)計(jì)DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。DS18B20工作過(guò)程一般遵循以下協(xié)議:初始化——ROM操作命令——存儲(chǔ)器操作命令——處理數(shù)據(jù)圖10 DS18B20工作流程圖 DS18B20初始化主機(jī)首先發(fā)出一個(gè)480-960微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說(shuō)明總線上有器件已做出應(yīng)答。若無(wú)低電平出現(xiàn)一直都是高電平說(shuō)明總線上無(wú)器件應(yīng)答?! ∽鰹閺钠骷腄S18B20在一上電后就一直在檢測(cè)總線上是否有480-960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待15-60微秒后將總線電平拉低60-240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒(méi)有檢測(cè)到就一直在檢測(cè)等待。圖11 DS18B20初始化時(shí)序圖初始化程序:bit Init_DS18B20(void) { bit flag。 //儲(chǔ)存DS18B20是否存在的標(biāo)志,flag=0,表示存在;flag=1,表示不存在 DQ = 1。 //先將數(shù)據(jù)線拉高 for(time=0。time2。time++)。 //略微延時(shí)約6微秒 DQ = 0。 //再將數(shù)據(jù)線從高拉低,要求保持480~960us for(time=0。time200。time++)。 //略微延時(shí)約600微秒 //以向DS18B20發(fā)出一持續(xù)480~960us的低電平復(fù)位脈沖 DQ = 1。 //釋放數(shù)據(jù)線(將數(shù)據(jù)線拉高) for(time=0。time10。time++)。 //延時(shí)約30us(釋放總線后需等待15~60us讓DS18B20輸出存在脈沖) flag=DQ。 //讓單片機(jī)檢測(cè)是否輸出了存在脈沖(DQ=0表示存在) for(time=0。time200。time++)。 //延時(shí)足夠長(zhǎng)時(shí)間,等待存在脈沖輸出完畢 return (flag)。 //返回檢測(cè)成功標(biāo)志} 對(duì)DS18B20的讀和寫(xiě)操作接下來(lái)就是主機(jī)發(fā)出各種操作命令,但各種操作命令都是向DS18B20寫(xiě)0和寫(xiě)1組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從DS18B20讀取0或1的過(guò)程。因此首先要搞清主機(jī)是如何進(jìn)行寫(xiě)0、寫(xiě)讀0和讀1的。寫(xiě)周期最少為60微秒,最長(zhǎng)不超過(guò)120微秒。寫(xiě)周期一開(kāi)始做為主機(jī)先把總線拉低1微秒表示寫(xiě)周期開(kāi)始。隨后若主機(jī)想寫(xiě)0,則繼續(xù)拉低電平最少60微秒直至寫(xiě)周期結(jié)束,然后釋放總線為高電平。若主機(jī)想寫(xiě)1,在一開(kāi)始拉低總線電平1微秒后就釋放總線為高電平,一直到寫(xiě)周期結(jié)束。而做為從機(jī)的DS18B20則在檢測(cè)到總線被拉底后等待15微秒然后從15us到45us開(kāi)始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。 對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。讀時(shí)隙是從主機(jī)把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在檢測(cè)到總線被拉低1微秒后,便開(kāi)始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機(jī)在一開(kāi)始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的15微秒時(shí)間內(nèi)完成對(duì)總線進(jìn)行采樣檢測(cè),采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣期內(nèi)總線為高電平則確認(rèn)為1。完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成圖12 DS18B20讀寫(xiě)時(shí)序圖/*****************************************************函數(shù)功能:從DS18B20讀取一個(gè)字節(jié)數(shù)據(jù)出口參數(shù):dat***************************************************/ unsigned char ReadOneChar(void){ unsigned char i=0。 unsigned char dat。 //儲(chǔ)存讀出的一個(gè)字節(jié)數(shù)據(jù) for (i=0。i8。i++) { DQ =1。 // 先將數(shù)據(jù)線拉高 _nop_()。 //等待一個(gè)機(jī)器周期 DQ = 0。 //單片機(jī)從DS18B20讀書(shū)據(jù)時(shí),將數(shù)據(jù)線從高拉低即啟動(dòng)讀時(shí)序 _nop_()。 //等待一個(gè)機(jī)器周期 DQ = 1。 //將數(shù)據(jù)線人為拉高,為單片機(jī)檢測(cè)DS18B20的輸出電平作準(zhǔn)備 for(time=0。time2。time++)。 //延時(shí)約6us,使主機(jī)在15us內(nèi)采樣 dat=1。 if(DQ==1) dat|=0x80。 //如果讀到的數(shù)據(jù)是1,則將1存入dat else dat|=0x00。//如果讀到的數(shù)據(jù)是0,則將0存入dat //將單片機(jī)檢測(cè)到的電平信號(hào)DQ存入r[i] for(time=0。time8。time++)。 //延時(shí)3us,兩個(gè)讀時(shí)序之間必須有大于1us的恢復(fù)期 } return(dat)。 //返回讀出的十六進(jìn)制數(shù)據(jù)}/*****************************************************函數(shù)功能:向DS18B2
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1