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

正文內(nèi)容

基于單片機(jī)的電子萬年歷的設(shè)計(編輯修改稿)

2025-07-24 20:23 本頁面
 

【文章內(nèi)容簡介】 H 89H 0112 0 0 0 10M MONTH周寄存器 8AH 8BH 0107 0 0 0 0 0 DAY年份寄存器 8CH 8DH 0099 10YEAR YEARDS1302內(nèi)部的 RAM分為兩類,一類是單個 RAM單元,共 31個,每個單元為一個 8位的字節(jié),其命令控制字為 COH~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的 RAM,此方式下可一次性讀寫所有的 RAM的 31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。我們現(xiàn)在已經(jīng)知道了控制寄存器和 RAM的邏輯地址,接著就需要知道如何通過外部接口來訪問這些資源。單片機(jī)是通過簡單的同步串行通訊與 DS1302通訊的,每次通訊都必須由單片機(jī)發(fā)起,無論是讀還是寫操作,單片機(jī)都必須先向 DS1302寫入一個命令幀,這個幀的格式如表 32所示,最高位 BIT7固定為 1,BIT6 決定操作是針對 RAM還是時鐘寄存器,接著的 5個 BIT是 RAM或時鐘寄存器在 DS1302的內(nèi)部地址,最后一個 BIT表示這次操作是讀操作抑或是寫操作。物理上,DS1302 的通訊接口由 3個口線組成,即*RST,SCLK,I/O。其中*RST 從低電平變成高電平啟動一次數(shù)據(jù)傳輸過程,SCLK 是時鐘線,I/O 是數(shù)據(jù)線。具體的讀寫時序參考圖 35,但是請注意,無論是哪種同步通訊類型的串行接口,都是對時鐘信號敏感的,而且一般數(shù)據(jù)寫入有效是在上升沿,讀出有效是在下降沿(DS1302 正是如此的,但是在芯片手冊里沒有明確說明),如果不是特別確定,則把程序設(shè)計成這樣:平時 SCLK保持低電平,在時鐘變動前設(shè)置數(shù)據(jù),在時鐘變動后讀取數(shù)據(jù),即數(shù)據(jù)操作總是在 SCLK保持為低電平的時候,相鄰的操作之間間隔有一個上升沿和一個下降沿。*RSTI/O圖 36 DS1302的命令字結(jié)構(gòu)SCLK為 0——寫入的數(shù)據(jù)——SCLK 為 1——SCLK為 0——讀出的數(shù)據(jù)圖 37 DS1302時鐘模塊 DS18B20 溫度采集模塊DS18B20是美國 DALLAS半導(dǎo)體公司繼 DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn) 9~12 位的數(shù)字值讀數(shù)方式??梢苑謩e在 ms和 750 ms內(nèi)完成9位和 12位的數(shù)字量,并且從 DS18B20讀出的信息或?qū)懭?DS18B20的信息僅需要一根口線讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的 DS18B20供電,而無需額外電源。因而使用 DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。他在測溫精度、轉(zhuǎn)換時間、傳輸距離、分辨率等方面較 DS1820有了很大的改進(jìn),給用戶帶來了更方便的使用和更令人滿意的效果。SCLK 內(nèi)部結(jié)構(gòu)及引腳高速緩存儲存器8 位 CRC 生成器儲存器和控制器 溫度靈敏器件低溫觸發(fā)器 TL高溫觸發(fā)器 TH64 位ROM和單線接口電源檢測配置寄存器圖 38 DS18B20內(nèi)部結(jié)構(gòu)圖VCCDQGND圖 39 DS18B20引腳排列 測溫原理DS18B20的測溫原理如圖 39所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器 1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器 2的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20 就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進(jìn)行計數(shù),進(jìn)而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55℃所對應(yīng)的基數(shù)分別置入減法計數(shù)器 1和溫度寄存器中,減法計數(shù)器 1和溫度寄存器被預(yù)置在55℃所對應(yīng)的一個基數(shù)值。減法計數(shù)器 1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器 1的預(yù)置值減到 0時溫度寄存器的值將加 1,減法計數(shù)器 1的預(yù)置將重新被裝入,減法計數(shù)器 1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器 2計數(shù)到 0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖 39中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是 DS18B20的測溫原理。預(yù)置低溫度系數(shù)振蕩器高溫度系數(shù)振蕩器減法計數(shù)器 2斜率累加器減法計數(shù)器 1=0 =0比較器預(yù)置溫度寄存器LSB 置 1/清零+1停止圖 310 DS18B20的測溫原理框圖 工作過程及時序DS18B20內(nèi)部的低溫度系數(shù)振蕩器是一個振蕩頻率隨溫度變化很小的振蕩器,為計數(shù)器 1提供一頻率穩(wěn)定的計數(shù)脈沖。高溫度系數(shù)振蕩器是一個振蕩頻率對溫度很敏感的振蕩器,為計數(shù)器 2提供一個頻率隨溫度變化的計數(shù)脈沖。初始時,溫度寄存器被預(yù)置成55℃,每當(dāng)計數(shù)器 1從預(yù)置數(shù)開始減計數(shù)到 0時,溫度寄存器中寄存的溫度值就增加 1℃,這個過程重復(fù)進(jìn)行,直到計數(shù)器 2計數(shù)到 0時便停止。初始時,計數(shù)器 1預(yù)置的是與55℃相對應(yīng)的一個預(yù)置值。以后計數(shù)器 1每一個循環(huán)的預(yù)置數(shù)都由斜率累加器提供。為了補(bǔ)償振蕩器溫度特性的非線性性,斜率累加器提供的預(yù)置數(shù)也隨溫度相應(yīng)變化。計數(shù)器 1的預(yù)置數(shù)也就是在給定溫度處使溫度寄存器寄存值增加 1℃計數(shù)器所需要的計數(shù)個數(shù)。DS18B20內(nèi)部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位。在計數(shù)器 2停止計數(shù)后,比較器將計數(shù)器 1中的計數(shù)剩余值轉(zhuǎn)換為溫度值后與 ℃進(jìn)行比較,若低于 ℃,溫度寄存器的最低位就置 0;若高于 ℃,最低位就置 1;若高于 ℃時,溫度寄存器的最低位就進(jìn)位然后置 0。這樣,經(jīng)過比較后所得的溫度寄存器的值就是最終讀取的溫度值了,其最后位代表 ℃,四舍五入最大量化誤差為177。1/2LSB,即 ℃。溫度寄存器中的溫度值以 9位數(shù)據(jù)格式表示,最高位為符號位,其余 8位以二進(jìn)制補(bǔ)碼形式表示溫度值。測溫結(jié)束時,這 9位數(shù)據(jù)轉(zhuǎn)存到暫存存儲器的前兩個字節(jié)中,符號位占用第一字節(jié),8 位溫度數(shù)據(jù)占據(jù)第二字節(jié)。DS18B20測量溫度時使用特有的溫度測量技術(shù)。DS18B20 內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號;同樣的,高溫度系數(shù)振蕩器則將被測溫度轉(zhuǎn)換成頻率信號。當(dāng)計數(shù)門打開時,DS18B20 進(jìn)行計數(shù),計數(shù)門開通時間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對頻率的非線性度加以補(bǔ)償。測量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)該為 9位,但因符號位擴(kuò)展成高 8位,所以最后以 16位補(bǔ)碼形式讀出。DS18B20工作過程一般遵循以下協(xié)議:初始化——ROM 操作命令——存儲器操作命令——處理數(shù)據(jù)。單總線上的所有處理均從初始化序列開始。初始化序列包括總線主機(jī)發(fā)出一復(fù)位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線控制器知道 DS18B20 在總線上且已準(zhǔn)備好操作。一旦總線主機(jī)檢測到從屬器件的存在,它便可以發(fā)出器件 ROM操作命令之一。所有 ROM操作命令均為 8位長。這些命令列表如下:Read ROM(讀 ROM)[33h]此命令允許總線主機(jī)讀 DS18B20的 8位產(chǎn)品系列編碼,唯一的 48位序列號,以及8位的 CRC。此命令只能在總線上僅有一個 DS18B20的情況下可以使用。如果總線上存在多于一個的從屬器件,那么當(dāng)所有從片企圖同時發(fā)送時將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開路會產(chǎn)生線與的結(jié)果) 。Match ROM( 符合 ROM)[55h]此命令后繼以 64位的 ROM數(shù)據(jù)序列,允許總線主機(jī)對多點(diǎn)總線上特定的 DS18B20尋址。只有與 64位 ROM序列嚴(yán)格相符的 DS18B20才能對后繼的存貯器操作命令作出響應(yīng)。所有與 64位 ROM序列不符的從片將等待復(fù)位脈沖。此命令在總線上有單個或多個器件的情況下均可使用。Skip ROM( 跳過 ROM )[CCh]在單點(diǎn)總線系統(tǒng)中,此命令通過允許總線主機(jī)不提供 64位 ROM編碼而訪問存儲器操作來節(jié)省時間。如果在總線上存在多于一個的從屬器件而且在 Skip ROM命令之后發(fā)出讀命令,那么由于多個從片同時發(fā)送數(shù)據(jù),會在總線上發(fā)生數(shù)據(jù)沖突(漏極開路下拉會產(chǎn)生線與的效果) 。Search ROM( 搜索 ROM)[F0h]當(dāng)系統(tǒng)開始工作時,總線主機(jī)可能不知道單線總線上的器件個數(shù)或者不知道其 64位 ROM編碼。搜索 ROM命令允許總線控制器用排除法識別總線上的所有從機(jī)的 64位編碼。Alarm Search(告警搜索)[ECh]此命令的流程與搜索 ROM命令相同。但是,僅在最近一次溫度測量出現(xiàn)告警的情況下,DS18B20 才對此命令作出響應(yīng)。告警的條件定義為溫度高于 TH 或低于 TL。只要DS18B20一上電,告警條件就保持在設(shè)置狀態(tài),直到另一次溫度測量顯示出非告警值或者改變 TH或 TL的設(shè)置,使得測量值再一次位于允許的范圍之內(nèi)。貯存在 EEPROM內(nèi)的觸發(fā)器值用于告警。Write Scratchpad(寫暫存存儲器)[4Eh]這個命令向 DS18B20的暫存器中寫入數(shù)據(jù),開始位置在地址 2。接下來寫入的兩個字節(jié)將被存到暫存器中的地址位置 2和 3。可以在任何時刻發(fā)出復(fù)位命令來中止寫入。Read Scratchpad(讀暫存存儲器)[BEh]這個命令讀取暫存器的內(nèi)容。讀取將從字節(jié) 0開始,一直進(jìn)行下去,直到第 9(字節(jié) 8,CRC)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時間發(fā)出復(fù)位命令來中止讀取。Copy Scratchpad(復(fù)制暫存存儲器)[48h]這條命令把暫存器的內(nèi)容拷貝到 DS18B20的 E2存儲器里,即把溫度報警觸發(fā)字節(jié)存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又正在忙于把暫存器拷貝到 E2存儲器,DS18B20 就會輸出一個“0” ,如果拷貝結(jié)束的話,DS18B20 則輸出“1” 。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即起動強(qiáng)上拉并最少保持 10ms。Convert T(溫度變換)[44h]這條命令啟動一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后 DS18B20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而 DS18B20又忙于做時間轉(zhuǎn)換的話,DS18B20 將在總線上輸出“0” ,若溫度轉(zhuǎn)換完成,則輸出“1” 。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即起動強(qiáng)上拉,并保持 500ms。Recall E2(重新調(diào)整 E2)[B8h]這條命令把貯存在 E2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯ζ?。這種重新調(diào)出的操作在對 DS18B20上電時也自動發(fā)生,因此只要器件一上電,暫存存儲器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后,對于所發(fā)出的第一個讀數(shù)據(jù)時間片,器件會輸出溫度轉(zhuǎn)換忙的標(biāo)識:“0”=忙, “1”=準(zhǔn)備就緒。Read Power Supply(讀電源)[B4h]對于在此命令發(fā)送至 DS18B20之后所發(fā)出的第一讀數(shù)據(jù)的時間片,器件都會給出其電源方式的信號:“0”=寄生電源供電, “1”=外部電源供電。DS18B20的高速暫存存儲器由 9個字節(jié)組成。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲器的第 0和第 1個字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。表 34 DS18B20溫度數(shù)據(jù)表溫度 二進(jìn)制 十六進(jìn)制+125℃ 0000 0111 1101 0000 07D0h+85℃ 0000 0101 0101 0000 0550h+℃ 0000 0001 1001 0001 0191h+℃ 0000 0000 1010 0010 00A2h+℃ 0000 0000 0000 1000 0008h℃ 0000 0000 0000 0000 0000h℃ 1111 1111 1111 1000 FFF8h℃ 1111 1111 0101 1110 FF5Eh℃ 1111 1110 0110 FE6Fh1111 55℃ 1111 1100 1001 0000 FC90h上表是 DS18B20溫度采集轉(zhuǎn)化后得到的 12位數(shù)據(jù),存儲在 DS18B20的兩個 8比特的 RAM中,二進(jìn)制中的前面 5位是符號位,如果測得的溫度大于或等于 0,這 5位為0,只要將測到的數(shù)值乘于 ;如果溫度小于 0,這 5位為 1,測到的數(shù)值需要取反加 1再乘于 。溫度轉(zhuǎn)換計算方法舉例:例如當(dāng) DS18B20采集到+125℃的實(shí)際溫度后,輸出為 07D0H,則:實(shí)際溫度=07D0H=2022=1250C。例如當(dāng) DS18B20采集到55℃的實(shí)際溫度后,輸出為 FC90H,則應(yīng)先將 11位數(shù)據(jù)位取反加 1得 370H(符號位不變,也不作為計算) ,則:實(shí)際溫度=370H=880=550C。圖 311 DS18B20溫度采集模塊 鍵盤模塊按照鍵盤與 CPU的連接方式可以分為查詢按鍵和矩陣式鍵盤。由于程序操作簡單,只需 4個按鍵,所以選有查詢式按鍵。查詢式按鍵是各按鍵相互獨(dú)立,每個按鍵占用一根 I/O口線,每根 I/O口線上的按鍵工作狀態(tài)不會影響其他 I/O口線上按鍵的工作狀態(tài)。查詢式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根 I/O口線,在按鍵數(shù)量較多時,I/O 口線浪費(fèi)較大,且電路結(jié)構(gòu)顯得繁雜。故這種形式適用于按
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1