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

正文內(nèi)容

基于at89s51的電子萬(wàn)年歷(編輯修改稿)

2025-07-23 21:08 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 器后,該位將自動(dòng)置1。BIT6~BIT0:保留位,讀出的數(shù)值始終為0。(3)DS12887的中斷和更新周期DS12887處于正常工作狀態(tài)時(shí),每秒產(chǎn)生一個(gè)更新周期。芯片處于更新周期的標(biāo)志是寄存器A中的UIP位為1。在更新周期內(nèi)芯片內(nèi)部時(shí)標(biāo)寄存器中的數(shù)據(jù)處于更新階段。故在該周期內(nèi),微處理器不能讀時(shí)標(biāo)寄存器中的內(nèi)容,否則將得不到確定數(shù)據(jù)。更新周期的基本功能主要是刷新各個(gè)時(shí)標(biāo)寄存器中的內(nèi)容,同時(shí)秒時(shí)標(biāo)寄存器內(nèi)容加1,并檢查其它時(shí)標(biāo)寄存器內(nèi)容是否溢出,如有溢出則相應(yīng)進(jìn)位日,月,年。更新周期的另一個(gè)功能是檢查3個(gè)時(shí),分,秒報(bào)警時(shí)節(jié)標(biāo)寄存器的內(nèi)容是否與對(duì)應(yīng)時(shí)標(biāo)寄存器的內(nèi)容相符。如果報(bào)警時(shí)標(biāo)寄存器的內(nèi)容為C0H~FFH之間的數(shù)據(jù),則為不關(guān)心狀態(tài)。為了采樣時(shí)標(biāo)寄存器中的數(shù)據(jù),器件提供了兩種避開(kāi)在更新周期內(nèi)訪問(wèn)時(shí)標(biāo)寄存器的方法。第一種是利用更新周期結(jié)束發(fā)出的中斷??梢跃幊糖以试S在每次更新周期結(jié)束后發(fā)生中斷請(qǐng)求,提醒CPU將E 998ms左右的時(shí)間去獲取有效的數(shù)據(jù)在中斷之后的998ms時(shí)間內(nèi),程序可先將時(shí)標(biāo)數(shù)據(jù)讀到芯片內(nèi)部的不掉電靜態(tài)RAM 中。因?yàn)樾酒瑑?nèi)部的靜態(tài)RAM和狀態(tài)寄存器是可隨時(shí)讀寫的,在離開(kāi)中斷服務(wù)子程序前應(yīng)消除寄存器C中的IRQF位。另一種方法是利用寄存器A中的UIP位來(lái)指示芯片是否處于更新周期。在UIP由低變高244us后芯片將開(kāi)始更新周期。所以,若檢測(cè)到UIP位為低電平時(shí),則利用244us的間隔時(shí)間去讀取時(shí)標(biāo)信息,如檢測(cè)到UIP為1,則可暫緩讀數(shù)據(jù),等到UIP位變成低電平后再去讀數(shù)據(jù)。MCS51與DS12887的接口設(shè)計(jì)(1)DS12887的初始化DS12887采用連續(xù)工作制,一般無(wú)需每次都初始化,即使是系統(tǒng)復(fù)位時(shí)也如此。但初始化時(shí),首先應(yīng)禁止芯片內(nèi)部的更新周期操作。所以應(yīng)先將DS12887狀態(tài)寄存器B中的SET位置1,然后初始化00H~09H時(shí)標(biāo)參數(shù)和狀態(tài)寄存器A,此后再通過(guò)讀狀態(tài)寄存器C清除寄存器C中的周期中斷標(biāo)志位PF,報(bào)警中斷標(biāo)志位AF更新周期結(jié)束中斷標(biāo)志位UF,通過(guò)讀寄存器D中的VRT位后將自動(dòng)置1,最后,將狀態(tài)寄存器B中的SET位置0,芯片開(kāi)始計(jì)時(shí)工作。(2)鬧鐘單元的使用方法DS12887共有3個(gè)鬧鐘單元,分別為時(shí),分,秒鬧鐘單元。在其中寫入鬧鐘時(shí)間值并且在時(shí)鐘中斷允許的情況下,每天到該時(shí)該就會(huì)產(chǎn)生中斷申請(qǐng)信號(hào)。但這種方式每天只提供一次中斷信號(hào)。另一種方式是在鬧鐘單元中寫入“不關(guān)心碼”:在時(shí)鬧鐘單元寫入C0H~FFH之間的數(shù)據(jù),可每小時(shí)產(chǎn)生一次中斷;在時(shí),分鬧鐘單元寫入C0H~FFH之間的數(shù)據(jù),可每分鐘產(chǎn)生一次中斷;而時(shí),分,秒鬧鐘單元全部寫入FFH,則每秒產(chǎn)生一次中斷。但這種方式也只能在整點(diǎn),整分或每秒產(chǎn)生一次中斷。若控制系統(tǒng)要求的定時(shí)間隔不是整數(shù)時(shí),應(yīng)該通過(guò)軟件來(lái)調(diào)整實(shí)現(xiàn)。 DS18B20單線數(shù)字溫度計(jì)DS18B20性能特性(1)獨(dú)特的單線接口方式:DS18B20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。(2)在使用中不需要任何外圍元件。(3)可用數(shù)據(jù)線供電,電壓范圍:+~+V。(4)測(cè)溫范圍:55~+125℃?!?。(5)通過(guò)編程可實(shí)現(xiàn)9~12位的數(shù)字讀數(shù)方式。(6)用戶可自設(shè)定非易失性的報(bào)警上下限值(7)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。(8)負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。DS18B20的內(nèi)部結(jié)構(gòu) DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖23所 示。圖23 DS18B20內(nèi)部結(jié)構(gòu)框圖 (1)64 b閃速ROM的結(jié)構(gòu)如下:8b檢驗(yàn)CRC48b序列號(hào)8b工廠代碼(10H) MSB LSB MSB LSB MSB LSB開(kāi)始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前56位的CRC校驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。  (2)非易市失性溫度報(bào)警觸發(fā)器TH和TL,可通過(guò)軟件寫入用戶報(bào)警上下限。  (3)高速暫存存儲(chǔ)器  DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的E2RAM。后者用于存儲(chǔ)TH,TL值。數(shù)據(jù)先寫入RAM,經(jīng)校驗(yàn)后再傳給E2RAM。而配置寄存器為高速暫存器中的第5個(gè)字節(jié),他的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DS18B20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義如下: TMR1R011111低5位一直都是1,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),即是來(lái)設(shè)置分辨率,如表24所示(DS18B20出廠時(shí)被設(shè)置為12位)。由表24可見(jiàn),設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長(zhǎng)。因此在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。R1R0分辨率溫度最大轉(zhuǎn)換時(shí)間009位0110位1011位1112位   表24 R1和R0模式表  高速暫存存儲(chǔ)器除了配置寄存器外,還有其他8個(gè)字節(jié)組成,其分配如下所示。其中溫度信息(第1,2字節(jié))、TH和TL值第3,4字節(jié)、第6~8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來(lái)保證通信正確。最低溫度溫度高位THTL配置保留保留保留8位CRC LSB MSB 當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1,2字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,5℃/LSB形式表示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。表25是對(duì)應(yīng)的一部分溫度值。溫度二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+0000 0001 1001 00010191H+0000 0000 1010 001000A2H+0000 0000 0000 10000008H00000 0000 0000 00000000H1111 1111 1111 1000FFF8H1111 1111 0101 1110FF5EH1111 1110 0110 1111FE6FH551111 1100 1001 0000FC90H 表25 DS18B20溫度與測(cè)的值對(duì)應(yīng)表DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與TH,TL作比較,若TTH或TTL,則將該器件內(nèi)的告警標(biāo)志置位,并對(duì)主機(jī)發(fā)出的告警搜索命令作出響應(yīng),因此可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行告警搜索。(4)CRC的產(chǎn)生  在64bROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。DS18B20的測(cè)溫原理DS18B20的測(cè)溫原理如圖24所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很?。?],用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將55℃所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖24中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。 斜率累加器計(jì)數(shù)比較器預(yù)置預(yù)置減法計(jì)數(shù)器低溫度系數(shù)振蕩器溫度寄存器減到0 減到0減法計(jì)數(shù)器2高溫度系數(shù)振蕩器圖24 DS18B20內(nèi)部測(cè)溫電路框圖  另外,由于DS18B20單線通信功能是分時(shí)完成的,有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。DS18B20與單片機(jī)的典型接口設(shè)計(jì) 以MCS51單片機(jī)為例,圖25中采用寄生電源供電方式,當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10μs。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)3個(gè)步驟:初始化、ROM操作指令、存儲(chǔ)器操作指令。假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12MHz,根據(jù)DS18B20的初始化時(shí)序、寫時(shí)序和讀時(shí)序,分別編寫3個(gè)子程序:INIT為初始化子程序,WRITE為寫(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開(kāi)始,實(shí)際在實(shí)驗(yàn)中不用這種方式,kΩ,另外2個(gè)腳分別接電源和地。圖25 DS18B20采用電源供電的電路圖DS18B20的精確延時(shí)問(wèn)題  雖然DS18B20有諸多優(yōu)點(diǎn),但使用起來(lái)并非易事,由于采用單總線數(shù)據(jù)傳輸方式,DS18B20的數(shù)據(jù)I/O均由同一條線完成。因此,對(duì)讀寫的操作時(shí)序要求嚴(yán)格。為保證DS18B20的嚴(yán)格I/O時(shí)序,需要做較精確的延時(shí)。在DS18B20操作中,用到的延時(shí)有15 us,90 us,270 us,40us等。因這些延時(shí)均為15 us的整數(shù)倍,因此可編寫一個(gè)DELAY15(n)函數(shù),源碼如下: Void delay15(n)Unsigned char n: {do{ nop( )://01…nop( )://12 n>while(n)只要用該函數(shù)進(jìn)行大約15 us 的延時(shí)即可。有了比較精確的延時(shí)保證,就可以對(duì)DS18B20進(jìn)行讀寫操作、溫度轉(zhuǎn)換及顯示等操作。 顯示電路的設(shè)計(jì)顯示部分采用普通的共陽(yáng)數(shù)碼管顯示,采用動(dòng)態(tài)掃描,以減少硬件電路。考慮到一次掃描十六個(gè)數(shù)碼管分三排同時(shí)掃描。第一排七個(gè)數(shù)碼管分別表示十年、年、十月、月、十日、日和星期。第二排六個(gè)數(shù)碼管分別為十時(shí)、時(shí)、十分、分、十秒和秒。第三排三個(gè)數(shù)碼管分別表示百度、十度和度。顯示時(shí)采用串行口輸出段碼,用十六片74LS164來(lái)驅(qū)動(dòng)十六個(gè)數(shù)碼管,這樣掃描一次所需的時(shí)間極短。74LS164內(nèi)部為八個(gè)D觸發(fā)器,用以實(shí)現(xiàn)數(shù)據(jù)的串行移位,74LS164特性見(jiàn)表26。操作模式輸入輸出復(fù)位 MRABQ0Q1—Q7移位LLQ0—Q6HLLLQ0—Q6HLHLQ0—Q6HHLLQ0—Q6HHHHQ0—Q6 表26 74LS164特征表單片機(jī)以串行口方式0(移位寄存器方式)輸出數(shù)據(jù),十六片74LS164作為十六個(gè)數(shù)碼管的串并聯(lián)換顯示接口。74LS164作為TTL單向八位移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出。其中A、B為串行數(shù)據(jù)輸入端。兩個(gè)引腳按邏輯“5”運(yùn)算規(guī)律輸入信號(hào),共一個(gè)輸入信號(hào)時(shí)可并接,共同作為輸入腳。CP為時(shí)鐘輸入端可連接到行口的TXD端。每一個(gè)時(shí)鐘信號(hào)的上升沿加到CP端時(shí)移位寄存器移一位。八個(gè)時(shí)鐘脈沖過(guò)后,八位二進(jìn)制數(shù)全部移入74LS164中。MR腳為復(fù)位端,當(dāng)該腳為低電位時(shí)移位寄存器各位復(fù)0;只有當(dāng)它為高電平時(shí),時(shí)鐘脈沖才起作用。Q1—Q8并行輸出端分別接數(shù)碼管的h—a各段對(duì)應(yīng)的引腳上。在給出了八個(gè)脈沖后,最先進(jìn)入74LS164的第一個(gè)字節(jié)數(shù)據(jù)到達(dá)了高位。再來(lái)一個(gè)脈沖,第一個(gè)脈沖就會(huì)從最高位移出,進(jìn)入下一個(gè)74LS164的第一位,十六片74LS164首尾相串,而時(shí)鐘端則接在一起。這樣,當(dāng)輸入八個(gè)脈沖時(shí)從單片機(jī)RXD端輸出的第一字節(jié)數(shù)據(jù)就進(jìn)入了第一片74LS164中,而當(dāng)?shù)诙€(gè)八個(gè)脈沖到來(lái)后,第一字節(jié)數(shù)就進(jìn)入了第二片74LS164,而隨后的第二字節(jié)的數(shù)據(jù)則進(jìn)入了第一片74LS164。這樣當(dāng)?shù)谑鶄€(gè)八個(gè)脈沖完成后首次送出的數(shù)據(jù)被送到了最下面的164中,其它數(shù)據(jù)依次出現(xiàn)在第十五至第一片74LS164中,實(shí)現(xiàn)了數(shù)據(jù)在74LS164中的串行輸入、輸出。在方式0狀態(tài)下,串行口為同步移位寄存器方式,其波特率是固定的,為fosc/12。數(shù)據(jù)由RXD()端輸入或輸出。同步移位脈沖由TXD()
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1