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

正文內容

基于pic單片機的多路溫度巡回檢測系統(tǒng)畢業(yè)論文(編輯修改稿)

2025-07-19 01:10 本頁面
 

【文章內容簡介】 2 12864液晶模塊實物圖 設計心得總結LCD12864與1602相比需要較大的電流驅動,如果出現圖片模糊不清晰或者灰暗,除了檢查背光燈外應考慮電源問題。最好采用大于5V的電源,經7805穩(wěn)壓管穩(wěn)壓驅動,以保證電流?;掘寗痈?602相似難度不大。中文及圖像顯示是12864最大的特點也是難點,主要是指令較多,還有就是圖像驅動需要了解液晶內部原理。整屏畫圖可以使用PCtoLCD2002把圖片轉換成16進制數,局部畫曲線、直線、圓等需要一些算法,比較復雜4 DS18B20原理介紹及接口實現 DS18B20簡介DS18B20是DALLAS半導體公司推出的第一片支持“一線總線”接口的溫度傳感器,他它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等優(yōu)點,可直接將溫度轉化成串行數字信號供處理器處理。DS18B20具有以下優(yōu)點:(1) 適應電壓范圍寬,~,在寄生電源方式下可由數據線供電。(2) 獨特的單線接口方式,與微處理器連接時只需要一條口線即可實現微處理器與DS18B20的雙向通信。(3) 支持多點組網功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現組網多點測溫。(4) 在使用中不需要任何外圍元件,全部傳感元件以及轉換電路集成在形如一直三極管的集成電路內。(5) 測溫范圍55℃~+125℃,在10℃~+85℃時進度為177?!妫?) 可編程分辨率為9~12位,℃、℃、℃℃,可實現高精度測溫。(7) 負壓特性。電源極性接反時,芯片不會因為過熱而燒毀,但不能正常工作。 DS18B20結構及其工作原理。由此我們可以看出DS18B20主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。,其中DQ為數字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端,在寄生電源接線方式時接地。 DS18B20引腳和封裝每顆DS18B20在出廠前都有一個64位光刻ROM,它可以看作該DS18B20的地址序列碼。其各位排列順序是:開始8位為產品類型標號,接下來48位是該DS18B20自身的序列號,最后8位是前面56位的CRC循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現一條總線 掛接多個DS18B20的目的。由于DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。DS18B20有嚴格的通信協(xié)議來保證各位數據傳輸的正確性和完整性。該協(xié)議定義了幾種信號的時序:復位時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數據的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數據,在進行寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。(1) DS18B20的復位時序: DS18B20復位時序圖程序實現如下:/********************************************************************* 名 稱:reset() * 功 能:18b20復位********************************************************************/define DQ RB7define DQ_HIGH() TRISB7=1define DQ_LOW() TRISB7=0。DQ=0void reset(){ uchar st=1。 DQ_HIGH()。 // 先拉至高電平 NOP()。NOP()。 while(st) { DQ_LOW()。 // 低電平 delayus(70,30)。 // 延時503usDQ_HIGH()。 //釋放總線等電阻拉高總線delayus(4,4)。 //延時60us if(DQ==1) //沒有接收到應答信號,繼續(xù)復位 st=1。 else //接收到應答信號 st=0。 delayus(50,10)。 //延時430us }}(2) DS18B20的讀時序:對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。 對于DS18B20的讀時隙是從主機把單總線拉低之后,在15uS之內釋放單總線,以讓DS18B20把數據傳輸到單總線上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。 DS18B20讀時序圖/********************************************************************* 名 稱:read_byte() * 功 能:18b20讀字節(jié)* 出口參數:讀出18B20的內容********************************************************************/uch read_byte(){ uch i。 uch value = 0。 //讀出溫度 static bit j。 for (i = 8。i 0。i) { value = 1。 DQ_LOW()。 NOP()。NOP()。NOP()。NOP()。NOP()。NOP()。 //6us DQ_HIGH()。 //拉至高電平 NOP()。NOP()。NOP()。NOP()。NOP()。 //4us j = DQ。 if (j) value |= 0x80。 delay(2, 7)。 //63us } return (value)。}(3) DS18B20的寫時序:對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。 對于DS18B20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內就得釋放單總線。 DS18B20寫時序圖/********************************************************************* 名 稱:write_byte() * 功 能:寫18b20寫字節(jié)* 入口參數:uch val 待寫的數據*******************************************************************/void write_byte(uch val){ uch i。 uch temp。 for (i = 8。i 0。i) { temp = val amp。 0x01。 //最低位移出 DQ_LOW()。 NOP()。NOP()。NOP()。NOP()。NOP()。 //從高拉至低電平,產生寫時間隙 if (temp == 1) DQ_HIGH()。 //如果寫1,拉高電平 delay(2, 7)。 //延時63us DQ_HIGH()。 NOP()。NOP()。 val = val 1。 //右移一位 }}DS18B20內部帶有共9個字節(jié)的高速暫存器RAM和電可擦除EEPROM,起結構如表2所示。表2 DS18B20高速暫存器結構寄存器內容字節(jié)地址溫度值低位(LSB)0溫度值高位(MSB)1高溫限值(TH)2低溫限值(TL)3配置寄存器4保留5保留6保留7CRC校驗值8DS18B20所包含的操作指令如表3所示。表3 DS18B20操作指令ROM操作指令指令約定代碼功能讀ROM33H讀DS18B20溫度傳感器ROM中的編碼(即64位地址)匹配ROM55H發(fā)出命令后接著發(fā)出64位ROM編碼,訪問總線上與該編碼對應的芯片搜索ROMF0H用于確定掛接在同一總線上DS18B20的個數跳過ROMCCH忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令告警搜索ECH執(zhí)行后只有問多超過上限或下限的芯片才響應RAM操作指令指令約定代碼功能溫度轉換44H啟動DS18B20溫度轉換。12位轉換時長典型值750ms讀暫存器BEH讀內部RAM中9字節(jié)的數據。寫暫存器4EH向RAM第3字節(jié)寫上、下限溫度數據,緊跟命令之后傳送2字節(jié)數據復制暫存器48H將RAM中第3字節(jié)的內容復制到內部EEPROM中重調EEPROMB8H將EEPROM中內容恢復到RAM中第4字節(jié)溫度數據在高速暫存器RAM的第0和第1個字節(jié)中的存儲格式如下表4所示。表4 DS18B20溫度數據存儲格式位7位6位5位4位3位2位1位02322212021222324位15位14位13位12位11位10位9位8SSSSS262524DS18B20在出廠是默認配置為12位,其中最高位為符號位,即溫度值共11位,單片機在讀取數據時,一次會讀2字節(jié)共16位。另外,還需要判斷溫度的正負。前5個數字為符號位,這5位同時變化,我們只需要判斷11位就可以了。前5位為1時,讀取的溫度為負值。前5位為0時,讀取的溫度為正值,且溫度為正值時??紤]到實際使用的需要,在這里我們只使用一個DS18B20,故每次操作前只需復位后發(fā)出Skip ROM指令(即跳過ROM指令)再讀出溫度的正值、并精確到小數點后一位,即可滿足設計需求。/****************************************************************** 名 稱:get_temp() * 功 能:啟動溫度轉換*****************************************************************/void get_tem(){ uchar tem1,tem2,num。 float aaa。 reset()。 //復位 write_byte(0xCC)。 //跳過ROM write_byte(0x44)。 //溫度轉換 for(num=100。num0。num) //確保溫度轉換完成所需要的時間 reset()。 //再次復位,等待從機應答 write_byte(0xCC)。 //忽略ROM匹配 write_byte(0xBE)。 //發(fā)送讀溫度命令 tem1=read_byte()。 //讀出溫度低8 tem2=read_byte()。 //讀出溫度高8位 shu=(tem24|tem14)。 //溫度整數部分 aaa=(tem2*256+tem1)*。 //溫度小數部分 temper=(int)aaa。 //強制轉換成整型 a1=temper/1000。 //取溫度十位 a2=temper%1000/100。 //取個位 a3=temper%100/10。 //小數點后個位 a4=temper%10。 //小數點后十位} DS18B20的接口實現 硬件設計 所示,這次實驗只焊了兩個溫度傳感器而已,其他兩個用法一樣,留作外接口,可以方便外用。 DS18B20原理圖 DSB18B20硬件連接實物圖 軟件設計根據DS18B20約定的通訊協(xié)議,每次使用DS18B20之前都必須經過三個步驟,即先復位DS18B20,接著發(fā)出ROM操作指令,然后才可以發(fā)出RAM操作指令以進行溫度轉換等命令。本系統(tǒng)將實現讀出DS18B20的溫度并實時顯示到LCD12864上,℃。由于DS18B20對時序要求很嚴格,所以在程序設計時,時序要多加注意一點,不過數字不是死的,只要控制合理控制也不是掃描大問題。 DS18B20首次初始化時開啟溫度轉換,之后每1s進行一次DS18B20的溫度讀取和轉換, 圖 芯片上電復位DS
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1