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

正文內(nèi)容

stc89c52單片機(jī)倉庫溫濕度檢測系統(tǒng)設(shè)計(jì)畢業(yè)論文-wenkub.com

2025-06-16 14:54 本頁面
   

【正文】 OWTempDelay(12)。}/*************************************************************Function:向18B20寫入一個(gè)位*parameter:*Return:*Modify:*************************************************************/void OWWriteBit_1 (bit wr) /*位寫入*/{ dr=W。 //detect 1820 success! else flag = 0。 //delay 480 uS dr=R。 wb1=1。putbyte(hex_[ch])。0x0f。}/*************************************//*發(fā)送一個(gè)字節(jié)的hex碼,分成兩個(gè)字節(jié)發(fā)。ls=((ui%100)/10+0x30)。ls=((ui%10000)/1000+0x30)。 TI=0。 /* timer 1 run */// ES = 1。 default: TH1=0xfa。 break。 PCON = 0。 case 4: //2400 TH1=0xe8。 break。 PCON=0。 /* timer 1 mode 2: 8Bit reload */ switch(bt){ case 0: //38400 TH1=0xfd。 //delayfloat gettemp(void)。bit flag。void OWWriteByte (uchar wr)。 unsigned char a[2]。_nop_()。_nop_()。_nop_()。首先向我的導(dǎo)師喬志華老師表示最真誠的謝意!在這幾個(gè)月的時(shí)間里,喬老師給了我無私的關(guān)懷和幫助,幫助我順利地完成硬件的設(shè)計(jì)和論文的定稿,并替我解決難題,給了我莫大的幫助與鼓勵(lì),他以其淵博的學(xué)識、嚴(yán)謹(jǐn)?shù)膽B(tài)度和高尚的師德向我們展示了為人師表的風(fēng)范?;鞠麥缌思Z食霉變事故,同時(shí)也節(jié)省了大量人力和物力,減輕了糧倉管理的工作強(qiáng)度,提高了糧庫管理效率,使糧食管理得到了安全可靠的保障。我在1Wire總線的驅(qū)動電路設(shè)計(jì)上,就借助了實(shí)際產(chǎn)品的設(shè)計(jì)方案,收效甚佳。如何在保證質(zhì)量和完成同等功能的情況下,把產(chǎn)品的成本降到最低并符合用戶的實(shí)際使用習(xí)慣。比如糧庫的實(shí)際工作環(huán)境和要求,是課堂上接觸不到的,但通過和廠家技術(shù)員的溝通,初步掌握了這些知識,并有幸得到了一條實(shí)際使用的測溫電纜。知識固然得到了鞏固和提高,但我相信在實(shí)踐中的切身體會將會使我在以后的工作和學(xué)習(xí)中終身受用。在此系統(tǒng)中,由于我采用了接口簡單的1Wire使本設(shè)計(jì)的硬件成本電路復(fù)雜程度大幅下降,利用1Wire總線協(xié)議提供的搜索機(jī)制,解決了器件的增減問題,提高了系統(tǒng)的可擴(kuò)展性。)。.39。 putbyte(lsi%100/10+39。 if (lsi310) LED=0。 //skip rom OWWriteByte(0x44)。 39。 putbyte(39。 puthex(temp_buff[7])。 puthex(temp_buff[6])。 puthex(temp_buff[5])。 puthex(temp_buff[4])。 puthex(temp_buff[3])。 puthex(temp_buff[2])。 puthex(temp_buff[1])。 puthex(temp_buff[0])。 }/*VT100 終端的數(shù)據(jù)顯示*/ putint(t)。)。putbyte((x%100)/10+0x30)。putbyte((y%10)+0x30)。putbyte(39。 ‘NEXT’操作‘NEXT’ 操作是搜索1Wire 總線上的下一個(gè)從機(jī)器件;一般情況下,此搜索操作是在‘FIRST’操作之后或上一次‘NEXT’ 操作之后進(jìn)行;保持上次搜索后這些值的狀態(tài)不變、執(zhí)行又一次搜索即可實(shí)現(xiàn)‘NEXT’操作;之后從ROM_NO 寄存器中來讀出新一個(gè)ROM 碼,若前一次搜索到的是1Wire 上的最后一個(gè)器件,則返回一個(gè)無效標(biāo)記FALSE, 并且把狀態(tài)設(shè)置成下一次調(diào)用搜索算法時(shí)將是‘FIRST’ 操作的狀態(tài)。LastDiscrepancy = 0。 ‘FIRST’操作 ‘FIRST’操作是搜索1Wire 總線上的第一個(gè)從機(jī)器件。 search_result = FALSE。 if (LastDiscrepancy == 0) LastDeviceFlag = TRUE。 // accumulate the OWCRC rom_byte_number++。 OWWriteBit(search_direction)。 if (search_direction == 0) {last_zero = id_bit_number。 }else { if (id_bit != cmp_id_bit) //10 01 search_direction = id_bit。 //0if ((id_bit == 1) amp。return FALSE。crc8 = 0。last_zero = 0。bit id_bit, cmp_id_bit。 分支選?。挥覀?cè)注釋欄對在流程圖中出現(xiàn)的符號進(jìn)行了說明;在本文檔的源代碼附錄中也將用到這些專用符號。離如果當(dāng)前位既有0 也有1,這種情況稱為位值差異,它對在后續(xù)搜索過程中查找器件起關(guān)鍵作用。按照這種搜索算法進(jìn)行下去,最終除了一個(gè)從機(jī)器件外所有從機(jī)將進(jìn)入等待狀態(tài),經(jīng)過最后一輪檢測就可得到最后保留(未進(jìn)入等待狀態(tài))器件的ROM 碼。首先總線上的所有從機(jī)器件同時(shí)發(fā)送ROM 碼(也叫注冊碼)中的第一位最低有效位。 64位ROM注冊碼搜索算法搜索算法采用的是二叉樹型結(jié)構(gòu),搜索過程沿各分節(jié)點(diǎn)進(jìn)行,直到找到器件的ROM 碼即葉子為止;后續(xù)的搜索操作沿著節(jié)點(diǎn)上的其它路徑進(jìn)行,按照同樣的方式直到找到總線上的所有器件代碼。 return (crc_data)。uchar CRC (uchar j){ uchar i,crc_data=0。 移位寄存器和異或XOR門移位寄存器的所有位被初始化為零然,后從產(chǎn)品系列編碼的最低有效位開始,每次移入一位。}這里要說明的是: 1Wire協(xié)議提供了一種檢測數(shù)據(jù)是否存在著傳輸錯(cuò)誤的手段,就是CRC校驗(yàn)。 WriteByte(0xcc)。 Init18b20 ()。 WriteByte(0x33)。 Temperature *= 10。 return (crc_data)。}有了上面的基本函數(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è)暫存存儲器以及CRC 主機(jī)現(xiàn)在重新計(jì)算機(jī)從暫存存儲器接收來的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。 if(dq==1) u |= 0x80。i8。 dq=1。0x01。i8。 dq = 1。 //detect 1820 success! else flag = 0。 //delay 100 uS _nop_()。 TempDelay(86)。 1Wire總線協(xié)議處理經(jīng)過單線接口訪問DS1820 的協(xié)議protocol 如下初始化ROM 操作命令存貯器操作命令處理數(shù)據(jù) 初始化單線總線上的所有處理均從初始化序列開始初始化序列包括總線主機(jī)發(fā)出一復(fù)位脈沖接著由從屬器件送出存在脈沖。 MAX232通信接口電路由于在本設(shè)計(jì)中, 過限指示不是關(guān)鍵設(shè)計(jì),故采用LED加限流電阻的方式簡單實(shí)現(xiàn)。MAX232是單電源雙RS232C發(fā)送/接收芯片。因此,單片機(jī)系統(tǒng)要和電腦的RS232C接口進(jìn)行通信,就必須把單片機(jī)的信號電平(TTL電平)轉(zhuǎn)換成計(jì)算機(jī)的RS232C電平,或者把計(jì)算機(jī)的RS232C電平轉(zhuǎn)換成單片機(jī)的TTL電平,通信時(shí)候必須對兩種電平進(jìn)行轉(zhuǎn)換。RS232C規(guī)定最大的負(fù)載電容為2500pF,這個(gè)電容限制了傳輸距離和傳輸速率,由于RS232C的發(fā)送器和接收器之間具有公共信號地(GND),屬于非平衡電壓型傳輸電路,不使用差分信號傳輸,因此不具備抗共模干擾的能力,共模噪聲會耦合到信號中。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。更有一個(gè)特點(diǎn),當(dāng)訪問外部程序存儲器,ALE會跳過一個(gè)脈沖。STC89C52的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位?,F(xiàn)在我們對這些引腳的功能加以說明: STC89C52 的引腳Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)STC89C52通電,時(shí)鐘電路開始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。(6)全雙工串行口:STC89C52內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。(2)數(shù)據(jù)存儲器(RAM)STC89C52內(nèi)部有256個(gè)8位用戶數(shù)據(jù)存儲單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有256個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。 單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。注意:在外部供電的方式下,DS18B20的GND引腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85℃。當(dāng)電源電壓降為4V時(shí),溫度誤差有3℃之多,這就應(yīng)該是因?yàn)榧纳娫醇橙∧芰坎粔蛟斐傻陌?,因此,在開發(fā)實(shí)際測溫系統(tǒng)時(shí)不使用此電路。 要想使DS18B20進(jìn)行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個(gè)DS18B20在溫度轉(zhuǎn)換期間工作電流達(dá)到1mA,當(dāng)幾個(gè)溫度傳感器掛在同一根I/O線上進(jìn)行多點(diǎn)測溫時(shí),會造成無法轉(zhuǎn)換溫度或溫度誤差極大。3)電路更加簡潔,僅用一根I/O口實(shí)現(xiàn)測溫。 DS18B20測溫系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn)。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20收到信號后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號表示復(fù)位成功。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲器的第0和第1個(gè)字節(jié)。(3)DS18B20溫度傳感器的存儲器DS18B20溫度傳感器的內(nèi)部存儲器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。其輸出用于修正計(jì)數(shù)器1的預(yù)置值。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計(jì)數(shù)器1。DS18B20在完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動讀時(shí)序完成數(shù)據(jù)接收。 由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。既可以用在寄生電源下,也可以向器件提供電源。 (6)、內(nèi)部有溫度上、下限告警設(shè)置。 (4)、測量溫度范圍在-55。因此用它來組成一個(gè)測溫系統(tǒng),具有線路簡單,在一根通信線上可以掛很多這樣的數(shù)字溫度計(jì),十分方便。工作電源: 3~5V/DC。方案三:采用DS18B20。它只需直流電源就能工作,而且
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1