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

正文內(nèi)容

基于單片機(jī)的電子密碼鎖的設(shè)計(jì)課程設(shè)計(jì)任務(wù)書(編輯修改稿)

2025-07-24 19:59 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 110 0110 1111FE6FH551111 1100 1001 0000FC90HDS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器溫度寄存器中,計(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重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測(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采用的“一線總線”結(jié)構(gòu),所以數(shù)據(jù)的傳輸與命令的通訊只要通過微處理器的一根雙向I/o口就可以實(shí)現(xiàn)。DSl8B20約定在每次通信前必須對(duì)其復(fù)位。 復(fù)位時(shí)序圖 本文中有AT89S52提供,tRSTL的最小時(shí)延為,然后釋放總線,檢查DSl8B20的返回信號(hào),看其是否已準(zhǔn)備接受其他操作,其中tPDHIGH時(shí)間最小為,最長(zhǎng)不能超過,否則認(rèn)為DS18B20沒有準(zhǔn)備好,主機(jī)應(yīng)繼續(xù)復(fù)位,直到檢測(cè)到返回信號(hào)變?yōu)榈碗娖綖橹?。?5 DS18B20的ROM操作指令操作指令33H55HCCHF0HECH含義讀ROM匹配ROM跳過ROM搜索ROM報(bào)警搜索ROM表36 DS18B20的存儲(chǔ)器操作指令操作指令4EHBEH48H44HD8HB4H含義寫讀內(nèi)部復(fù)制溫度轉(zhuǎn)換重新調(diào)出讀電源主機(jī)一旦檢測(cè)到DS18B20的存在,根據(jù)DS18B2的工作協(xié)議,就應(yīng)對(duì)ROM進(jìn)行操作,接著對(duì)存儲(chǔ)器操作,最后進(jìn)行數(shù)據(jù)處理。在DS18B20中規(guī)定了5條對(duì)ROM的操作命令。主機(jī)在發(fā)送完ROM操作指令之后,就可以對(duì)DS18B20內(nèi)部的存儲(chǔ)器進(jìn)行操作,同樣DS18B20規(guī)定了6條操作指令。 DS18B20的讀、。 DS18B20的讀寫時(shí)序圖2. DS18B20的使用方法  由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問?! ∮捎贒S18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程?! ?duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。 DS18B20的寫時(shí)序,對(duì)于DS18B20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程,對(duì)于DS18B20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單線溫度傳感器仿真圖溫度傳感器仿真PCB圖include include define uchar unsigned char define uint unsigned int sbit DQ=P2^7。 uchar T。 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}。 void delay1(uint z) { uint x,y。 for(x=z。x0。x) for(y=110。y0。y)。 }void delay(uint N)//廷遲時(shí)間為(24+N*16)us { int i。 for(i=0。iN。i++)。 } /************************************************** void init() { bit flag=1。 while (flag) { while (flag) { DQ = 1。 _nop_()。 DQ = 0。 delay(50)。 DQ = 1。 delay(3)。 flag = DQ。 } delay(10)。 flag = ~DQ。 } DQ=1。 } /*********************************************** 兩個(gè)初始換 都可以 /********************************************/ void init() { DQ=1。 delay(0)。 DQ=0。 delay(50)。 //廷遲24+50*16=824us DQ=1。 delay(3)。 //48us delay(10)。 //184us DQ=1。 } void write(uchar date) { uint i。 for (i=0。 i8。 i++) { DQ = 0。 DQ = date amp。 0x01。 //最低位移出 最低位先寫入 //i=0:DQ=(0101 0101 amp。0000 0001)=0000 0001 delay(2)。 //56us 即將最 低位1 寫入,i=1 : 將0寫入....... DQ=1。 date = 1。 //右移一位 } } uchar read() { uint i, value=0。 DQ=1。 _nop_()。
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1