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

正文內(nèi)容

倉(cāng)庫(kù)溫濕度檢測(cè)系統(tǒng)設(shè)計(jì)-在線瀏覽

2024-08-17 12:29本頁(yè)面
  

【正文】 號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。 DS18B20溫度值格式這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,;如果溫度小于0,這5位為1。(3)DS18B20溫度傳感器的存儲(chǔ)器DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶(hù)不要去改動(dòng)。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。 DS18B20測(cè)溫系統(tǒng)具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn)。獨(dú)特的寄生電源方式有三個(gè)好處:1)進(jìn)行遠(yuǎn)距離測(cè)溫時(shí),無(wú)需本地電源。3)電路更加簡(jiǎn)潔,僅用一根I/O口實(shí)現(xiàn)測(cè)溫。 要想使DS18B20進(jìn)行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個(gè)DS18B20在溫度轉(zhuǎn)換期間工作電流達(dá)到1mA,當(dāng)幾個(gè)溫度傳感器掛在同一根I/O線上進(jìn)行多點(diǎn)測(cè)溫時(shí),會(huì)造成無(wú)法轉(zhuǎn)換溫度或溫度誤差極大。并且工作電源VCC必須保證在5V,當(dāng)電源電壓下降時(shí),寄生電源能夠汲取的能量也降低,會(huì)使溫度誤差變大。當(dāng)電源電壓降為4V時(shí),溫度誤差有3℃之多,這就應(yīng)該是因?yàn)榧纳娫醇橙∧芰坎粔蛟斐傻陌桑虼?,在開(kāi)發(fā)實(shí)際測(cè)溫系統(tǒng)時(shí)不使用此電路。在強(qiáng)上拉方式下可以解決電流供應(yīng)不走的問(wèn)題,因此也適合于多點(diǎn)測(cè)溫應(yīng)用,缺點(diǎn)就是要多占用一根I/O口線進(jìn)行強(qiáng)上拉切換。注意:在外部供電的方式下,DS18B20的GND引腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85℃。因此,在實(shí)際的設(shè)計(jì)開(kāi)發(fā)中,我們使用外部電源供電方式。 單片機(jī)的結(jié)構(gòu)有兩種類(lèi)型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。為了設(shè)計(jì)此系統(tǒng),采用了MCS51兼容單片機(jī)STC89C52單片機(jī)作為控制芯片1. STC89C52的片內(nèi)結(jié)構(gòu)下圖是STC89C52的內(nèi)部結(jié)構(gòu)示意圖。(2)數(shù)據(jù)存儲(chǔ)器(RAM)STC89C52內(nèi)部有256個(gè)8位用戶(hù)數(shù)據(jù)存儲(chǔ)單元和128個(gè)專(zhuān)用寄存器單元,它們是統(tǒng)一編址的,專(zhuān)用寄存器只能用于存放控制指令數(shù)據(jù),用戶(hù)只能訪問(wèn),而不能用于存放用戶(hù)數(shù)據(jù),所以,用戶(hù)能使用的RAM只有256個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶(hù)定義的字型表。(4)定時(shí)/計(jì)數(shù)器:STC89C52有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù),其中中斷用于控制程序轉(zhuǎn)向。(6)全雙工串行口:STC89C52內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。(8)時(shí)鐘電路:STC89C52內(nèi)置最高頻率達(dá)90MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但STC89C52單片機(jī)需外置振蕩電容?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明: STC89C52 的引腳Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)STC89C52通電,時(shí)鐘電路開(kāi)始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開(kāi)始執(zhí)行程序。STC89C52的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位。 復(fù)位Pin30:ALE/當(dāng)訪問(wèn)外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。更有一個(gè)特點(diǎn),當(dāng)訪問(wèn)外部程序存儲(chǔ)器,ALE會(huì)跳過(guò)一個(gè)脈沖。Pin29:當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。RS232C是由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)正式公布的,在異步串行通信中應(yīng)用最廣泛的標(biāo)準(zhǔn)總線。RS232C規(guī)定最大的負(fù)載電容為2500pF,這個(gè)電容限制了傳輸距離和傳輸速率,由于RS232C的發(fā)送器和接收器之間具有公共信號(hào)地(GND),屬于非平衡電壓型傳輸電路,不使用差分信號(hào)傳輸,因此不具備抗共模干擾的能力,共模噪聲會(huì)耦合到信號(hào)中。因此不適合做遠(yuǎn)距離通信,但是對(duì)于條屏,通信15米的通信距離已經(jīng)足夠。因此,單片機(jī)系統(tǒng)要和電腦的RS232C接口進(jìn)行通信,就必須把單片機(jī)的信號(hào)電平(TTL電平)轉(zhuǎn)換成計(jì)算機(jī)的RS232C電平,或者把計(jì)算機(jī)的RS232C電平轉(zhuǎn)換成單片機(jī)的TTL電平,通信時(shí)候必須對(duì)兩種電平進(jìn)行轉(zhuǎn)換。目前較為廣泛地使用專(zhuān)用電平轉(zhuǎn)換芯片,如MAX23MC148MC1489等。MAX232是單電源雙RS232C發(fā)送/接收芯片。采用單一 +5V電源供電,外接只需4個(gè)電容,便可以構(gòu)成標(biāo)準(zhǔn)的RS232C通信接口,硬件接口簡(jiǎn)單,所以被廣泛運(yùn)用。 MAX232通信接口電路由于在本設(shè)計(jì)中, 過(guò)限指示不是關(guān)鍵設(shè)計(jì),故采用LED加限流電阻的方式簡(jiǎn)單實(shí)現(xiàn)。 LED 指示燈第3章 軟件設(shè)計(jì)整個(gè)軟件包括溫度采集和數(shù)據(jù)傳輸兩個(gè)主要部分組成。 1Wire總線協(xié)議處理經(jīng)過(guò)單線接口訪問(wèn)DS1820 的協(xié)議protocol 如下初始化ROM 操作命令存貯器操作命令處理數(shù)據(jù) 初始化單線總線上的所有處理均從初始化序列開(kāi)始初始化序列包括總線主機(jī)發(fā)出一復(fù)位脈沖接著由從屬器件送出存在脈沖。 _nop_()。 TempDelay(86)。 dq=1。 //delay 100 uS _nop_()。 _nop_()。 //detect 1820 success! else flag = 0。 //20 _nop_()。 dq = 1。/*************************************************************Function:向18B20寫(xiě)入一個(gè)字節(jié)*parameter:*Return:*Modify:*************************************************************/void WriteByte (uchar wr) /*單字節(jié)寫(xiě)入*/{ uchar i。i8。 _nop_()。0x01。 //delay 45 uS //5 _nop_()。 dq=1。 }}/*************************************************************Function:讀18B20的一個(gè)字節(jié)*parameter:*Return:*Modify:*************************************************************/uchar ReadByte (void) /*讀取單字節(jié)*/{ uchar i,u=0。i8。 u = 1。 if(dq==1) u |= 0x80。 _nop_()。}有了上面的基本函數(shù),我們可以完成具體的ROM操作了舉例總線主機(jī)產(chǎn)生溫度變換命令然后讀出溫度,如下表所示:表 讀溫度主機(jī)方式數(shù)據(jù)LSB 在先注 釋TXReset(復(fù)位)復(fù)位脈沖480_960usRXPresence(存在)存在脈沖TX 55h 符合ROM 命令TX 64位ROM代碼發(fā)出DS1820 地址TX44h 溫度變換命令TXI/O 線高電平總線主機(jī)使I/O 線至少保持2 秒鐘的高電平以便完成變換TXReset 復(fù)位復(fù)位脈沖RXPresence 存在存在脈沖TX55h 符合ROM 命令TX64 位ROM 代碼發(fā)出DS1820 地址TXBeh讀暫存存貯器命令RX9 個(gè)數(shù)據(jù)字節(jié)讀整個(gè)暫存存儲(chǔ)器以及CRC 主機(jī)現(xiàn)在重新計(jì)算機(jī)從暫存存儲(chǔ)器接收來(lái)的8 位數(shù)據(jù)字節(jié)的CRC 并把計(jì)算得到的CRC 與讀出的CRC 比較如果二者相符主機(jī)繼續(xù)操作如果不符重復(fù)此讀操作TXReset復(fù)位復(fù)位脈沖RXPresence存在存在脈沖操作完成完成這部分功能的代碼如下/*************************************************************Function:CRC校驗(yàn)*parameter:*Return:*Modify:*************************************************************/uchar CRC (uchar j){ uchar i,crc_data=0。ij。 return (crc_data)。 if (CRC(9)==0) /*校驗(yàn)正確*/ { Temperature = temp_buff[1]*0x100 + temp_buff[0]。 Temperature *= 10。 TempDelay(1)。 WriteByte(0x33)。}/*************************************************************Function:18B20ID全處理*parameter:*Return:*Modify:*************************************************************/void TemperatuerResult(void){ p = id_buff。 Init18b20 ()。 //skip rom WriteByte(0x44)。 WriteByte(0xcc)。 //read Temperature p = temp_buff。}這里要說(shuō)明的是: 1Wire協(xié)議提供了一種檢測(cè)數(shù)據(jù)是否存在著傳輸錯(cuò)誤的手段,就是CRC校驗(yàn)。DS1820在傳遞數(shù)據(jù)時(shí)也利用與上述相同的多項(xiàng)式函數(shù)產(chǎn)生一個(gè)8位CRC值,并把此值提供給主機(jī)以確認(rèn)數(shù)據(jù)字節(jié)的傳送,在使用CRC來(lái)確認(rèn)數(shù)據(jù)傳送的每一種情況中,總線主機(jī)必須使用上面給出的多項(xiàng)式函數(shù)計(jì)算CRC的值,并把計(jì)算所得的值或者與存貯在DS1820 的64 位ROM 部分中的8 位CRC 值,或者與DS1820 中計(jì)算得到的8 位CRC值(在讀暫存存貯器中時(shí)它作為第九個(gè)字節(jié)被讀出)進(jìn)行比較。 移位寄存器和異或XOR門(mén)移位寄存器的所有位被初始化為零然,后從產(chǎn)品系列編碼的最低有效位開(kāi)始,每次移入一位。完成CRC校驗(yàn)的代碼如下:uchar crc_data。uchar CRC (uchar j){ uchar i,crc_data=0。ij。 return (crc_data)。 Digital Thermometer 的仔細(xì)研究,發(fā)現(xiàn)1Wire 器件支持一種叫ROM搜索的操作,通過(guò)ROM搜索可以枚舉1Wire總線上的所有器件,通過(guò)ROM搜索完美的實(shí)現(xiàn)了測(cè)溫點(diǎn)的自由增減。 64位ROM注冊(cè)碼搜索算法搜索算法采用的是二叉樹(shù)型結(jié)構(gòu),搜索過(guò)程沿各分節(jié)點(diǎn)進(jìn)行,直到找到器件的ROM 碼即葉子為止;后續(xù)的搜索操作沿著節(jié)點(diǎn)上的其它路徑進(jìn)行,按照同樣的方式直到找到總線上的所有器件代碼。搜索命令分為兩類(lèi):標(biāo)準(zhǔn)搜索命令(0FH)用來(lái)搜索連接到網(wǎng)絡(luò)中所有器件;報(bào)警或有條件搜索命令(ECH)只用來(lái)搜索那些處于報(bào)警狀態(tài)下的器件,這種方式縮小了搜索范圍可以快速查找到所需要注意的器件。首先總線上的所有從機(jī)器件同時(shí)發(fā)送ROM 碼(也叫注冊(cè)碼)中的第一位最低有效位。按照1Wire 的特性,當(dāng)所有從機(jī)器件同時(shí)應(yīng)答主機(jī)時(shí),結(jié)果相當(dāng)于全部發(fā)送數(shù)據(jù)位的邏輯AND;從機(jī)發(fā)送其ROM 碼的第一位后,主機(jī)啟動(dòng)下一位操作,接著從機(jī)發(fā)送第一位數(shù)據(jù)的補(bǔ)碼;從兩次讀到的數(shù)據(jù)位可以對(duì)ROM 碼的第一位做出幾種判斷: 第一位的情況判斷按照搜索算法的要求,1Wire 主機(jī)必須向總線上的從機(jī)發(fā)回一個(gè)指定位;如果從機(jī)器件中ROM碼的當(dāng)前位的值與該數(shù)據(jù)位匹配,則繼續(xù)參與搜索過(guò)程;若從機(jī)器件的當(dāng)前位與之不匹配,則該器件轉(zhuǎn)換到等待狀態(tài),并保持等待狀態(tài)直到下一個(gè)1Wire 復(fù)位信號(hào)到來(lái)。按照這種搜索算法進(jìn)行下去,最終除了一個(gè)從機(jī)器件外所有從機(jī)將進(jìn)入等待狀態(tài),經(jīng)過(guò)最后一輪檢測(cè)就可得到最后保留(未進(jìn)入等待狀態(tài))器件的ROM 碼。需要注意的是本文ROM 碼的數(shù)據(jù)位用第1位(最低有效位)到第64位(最高有效位)表示而不是我們常用的那種第0位到第63位的模式;這樣設(shè)置允許將差異位置記數(shù)器初始值置為0,為以后的比較提供了方便。離如果當(dāng)前位既有0 也有1,這種情況稱(chēng)為位值差異,它對(duì)在后續(xù)搜索過(guò)程中查找器件起關(guān)鍵作用。注意:這一點(diǎn)是由本文檔中介紹的特定算法決定的,其它算法中或許首先選用‘1’路徑。 分支選?。挥覀?cè)注釋欄對(duì)在流程圖中出現(xiàn)的符號(hào)進(jìn)行了說(shuō)明;在本文檔的源代碼附錄中也將用到這些專(zhuān)用符號(hào)。idata unsigned char last_zero, rom_byte_number。bit id_bit, cmp_id_bit。bit search_direction。last_zero
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1