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

正文內容

數(shù)字溫度計論文ds18b20單片機副本(編輯修改稿)

2025-07-21 21:25 本頁面
 

【文章內容簡介】 RC碼。只有在總線上存在單只DS18B20的時候才能用這個命令。如果總線上有不止一個從機,當所有從機試圖同時傳送信號時就會發(fā)生數(shù)據(jù)沖突(漏極開路連在一起形成“與”的效果)。(2)Match ROM [55H]這是個匹配ROM命令,后跟64位ROM序列,讓總線控制器在多點總線上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能響應隨后的存儲器操作。所有和64位ROM序列不匹配的從機都將等待復位脈沖。這條命令在總線上有單個或多個器件時都可以使用。(3) Skip ROM [0CCH] 這個命令允許總線控制器不用提供64位ROM編碼就使用存儲器操作命令,在單點總線情況下,可以節(jié)省時間。如果總線上不止一個從機,在命令之后緊跟著發(fā)一條讀命令,由于多個從機同時傳信號??偩€上發(fā)生數(shù)據(jù)沖突(漏極開路連在一起形成“與”的效果)。(4) Search ROM [0F0H]當一個系統(tǒng)初次啟動時,總線控制器并不知道單線總線上有多少個器件或它們的64位ROM編碼。搜索ROM命令允許總線控制器用排除法識別總線上的所有從機的64位編碼。(5) Alarm Search [0ECH] 這條命令的流程和Search ROM相同。然而,只有在最近一次測溫后遇到符合報警條件的情況,DS18B20才會響應這條命令。報警條件定義為溫度高于TH或低于TL。只要DS18B20不掉電,報警狀態(tài)將一直保持,直到再一次測得的溫度值達不到報警條件。(6) Write Scratchpad[4EH]這個命令向DS18B20的暫存器TH和TL中寫入數(shù)據(jù)??梢栽谌魏螘r刻發(fā)出復位命令來中止寫入。(7) Read Scratchpad[0BEH] 這個命令讀取暫存器的內容。讀取將從第1字節(jié)開始,一直進行下去,直到第9(CRC)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時刻發(fā)出復位命令來中止讀取。(8) Copy Scratchpad[48H]這個命令把暫存器的內容拷貝到DS18B20的EROM存儲器里,即把溫度報警觸發(fā)器字節(jié)存入非易失性存儲器里。如果控制器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又忙于把暫存器拷貝到E存儲器,DS18B20就會輸出一個0,如果拷貝結束的話,DS18B20輸出1。如果使用寄生電源,總線控制器必須在這條命令后立即啟動強上拉,并最少保持10ms。(9) Convert T[44H] 這個命令啟動一次溫度轉換而無需其他數(shù)據(jù)。溫度轉換命令被執(zhí)行,而后DS18B20保持等待狀態(tài)。如果控制器在這條命令之后跟著發(fā)出時間隙,而DS18B20有忙于做時間轉換的話,DS18B20將在總線上輸出一個0,若溫度轉換完,則輸出1。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即啟動強上拉,并最少保持500ms以上時間。(10) Read E[0B8H]這條命令把 觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在DS18B20上電時自動執(zhí)行,這樣一上電暫存器里馬上存在有效的數(shù)據(jù)了。若在這條命令之后發(fā)出讀數(shù)據(jù)隙,器件會輸出溫度轉換忙的標識:0為忙,1為完成。(11) Read Power Supply[0B4H]若把這條命令發(fā)給DS18B20后發(fā)出讀時間隙,器件會返回它的電源模式:0為寄生電源,1為外部電源。第3章  系統(tǒng)硬件電路的設計167。  主控制電路和測溫控制電路原理圖主控制電路由AT89C52及外圍元件構成,測溫電路由DS18B預置數(shù)電路和報警電路組成。AT89C52是此硬件電路設計的核心,控制溫度的讀出和顯示。預置數(shù)電路由兩個按鍵和兩個數(shù)碼管組成。報警電路很簡單,只有一個發(fā)光二極管,若實際測量的溫度值大于預置溫度值,則發(fā)光二極管亮,即為報警標志。硬件電路的功能都是與軟件編程相結合而實現(xiàn)的。具體電路原理圖如下圖21所示。圖21主控制電路和測溫控制電路原理圖167?!?驅動電路模塊原理圖驅動電路由ULN2803A組成,通過網(wǎng)絡標號P20P27與單片機相連,通過網(wǎng)絡標號C0C7與顯示電路數(shù)碼管相連,實現(xiàn)位控制功能。具體電路如下圖22所示。圖22 驅動電路原理圖圖23 顯示電路原理圖167。  顯示模塊原理圖采用動態(tài)顯示方案,設計中使用八個共陰極數(shù)碼管作為顯示載體,通過八路并口傳輸,共使用了十六個I/O口。顯示時采用循環(huán)移位法,即八位數(shù)碼管依次循環(huán)點亮,利用人眼睛的視覺暫留效果達到連續(xù)顯示,主程序每運行一遍便調用一次顯示子程序,將數(shù)據(jù)顯示出來。顯示電路由八位共陰極的數(shù)碼管組成,通過網(wǎng)絡標號A、B、C、D、E、F、G、DP等與AT89C52的P1口相連,由八個136歐的電阻驅動,實現(xiàn)段控制功能。通過網(wǎng)絡標號C0C7與驅動芯片ULN2803A相連,以此為橋梁與AT89C52相連,實現(xiàn)位控制功能。具體電路原理圖,如圖23所示。第4章  軟件編程調試及性能分析167?!?主程序流程圖開始調復位子程序發(fā)SKIP ROM命令CCH調WRITE DS18B20子程序發(fā)出溫度轉換命令調WRITE DS18B20子程序調復位子程序 調READ DS18B20子程序調WRITE DS18B20子程序發(fā)命令BEH讀暫存器內容調WRITE DS18B20子程序發(fā)SKIP ROM命令CCH 對讀出的溫度值進行轉換轉換后的數(shù)存于緩沖區(qū)調用比較報警子程序調顯示子程序調按鍵子程序 圖31 主程序流程圖167?!?主程序 ORG 0000H LJMP STARTSTART: MOV DISBUF4,00H ;開始,初始化 MOV DISBUF5, 00HMAIN: ;主程序 LCAAL KEY ;調按鍵預置數(shù)子程序CLR RS1CLR RS0LCALL RESET ;調復位子程序MOV A,0CCH ;跳過ROM匹配0CCHLCALL WRITE ;調DS18B20寫子程序MOV A,44H ;發(fā)出溫度轉換命令LCALL WRITE ;調DS18B20寫子程序LCALL RESET ;調復位子程序MOV A,0CCH ;跳過ROM匹配LCALL WRITE ;調DS18B20寫子程序MOV A,0BEH ;發(fā)出讀取溫度值命令LCALL WRITE ;調DS18B20寫子程序LCALL READ ;調DS18B20讀子程序MOV A, 3DHMOV 29H,ALCALL READMOV A, 3DHMOV 28H, AMOV R0, 34HMOV A, 28HRLC AMOV 47H, C JNB 47H, BTOD1 ;28H中的最高位是否為1(溫度0);小于0的溫度值不處理,大于0順序執(zhí)行BTOD1: MOV A, 28HRRC AMOV 40H, CRRC AMOV 41H, CRRC AMOV 42H, CRRC AMOV 43H, CMOV A, 29H MOV 27H, AMOV C,40H ;將28H中的最低位移入C,40H41H42H;43H為28H中的位地址RRC A ;將28H中的低4位移到A的高4位MOV C, 41HRRC AMOV C, 42HRRC AMOV C, 43HRRC AMOV 29H,A ;將28H中的低4位放入29H中MOV A, 29H ;將29H中的十六進制數(shù)轉換成10進制 MOV B, 100 DIV AB MOV @R0, A ;百位存于34HMOV @R0, 11H ;百位不顯示DEC R0MOV A, 10XCH A, BDIV ABMOV @R0, A ;十位存于33H DEC R0 MOV @R0, B ;個位存于32HDEC R0ANL 27H, 0FH ;小數(shù)點后一位進制轉換MOV A, 27HMOV B, 06H MUL ABMOV B, 10DIV ABMOV @R0, A ;小數(shù)點后一位存于31HMOV DISBUF0,33H ;十位MOV DISBUF1,32H ;個位MOV DISBUF2,31H ;小數(shù)位MOV DISBUF3, 0H ;置0MOV DISBUF6, 0HMOV DISBUF7, 0HLCALL CMP ;調比較報警子程序LCALL DISPLAY ;調用顯示子程序LJMP MAIN ;轉到MAIN167。  溫度子程序 由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作都是按時序進行的。DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。167。  DS18B20復位子程序開始=0 發(fā)600us復位脈沖 延時500usDS18B20等待60us =1=1?延時1us以上返回=1?延時240usDS18B20復位時序圖參看后面芯片功能部分有詳細的介紹。在這一部分只給出程序流程圖,然后給出根據(jù)流程圖所編寫的DS18B20復位子程序。 N Y Y N圖32 DS18B20復位子程序流程圖程序如下:RESET: NOPL0: CLR ;拉低數(shù)據(jù)線MOV R2,200 ;發(fā)出600us的復位脈沖L1: NOPDJNZ R2, L1SETB ;主機釋放數(shù)據(jù)線MOV R2,30 ;DS18B20等待60usL4: DJNZ R2, L4CLR C ORL C, ;DS18B20數(shù)據(jù)變低(存在脈沖)嗎?JC L3 ;DS18B20準備好,結束MOV R6, 80 L5: ORL C, JC L3 ;DS18B20數(shù)據(jù)變高,初始化成功DJNZ R6,L5 ;數(shù)據(jù)線低電平可持續(xù)3us*80=240usSJMP L0 ;初始化失敗,重新初始化L3: MOV R2, 250L2: DJNZ R2,L2 ;DS18B20應答500usRET167?!?讀DS18B20子程序READ: MOV R6,8 ;循環(huán)8次,讀一個字節(jié)RE1: CLR MOV R4, 6NOPNOPSETB RE2: DJNZ R4,RE2 ;等待8USMOV C, ;讀DS18B20的數(shù)據(jù)RRC A ;讀取的數(shù)據(jù)移入AMOV R5, 30DJNZ R6,RE1 ;讀完一個字節(jié)的數(shù)據(jù)MOV 3DH,A ;數(shù)據(jù)存入3DH中SETB ;把數(shù)據(jù)線拉高RET開始返回 設循環(huán)次數(shù)為8延時600us=0延時1us以上 =1等待8us存入3DH中 =1讀DS18B20的數(shù)據(jù)讀完?
點擊復制文檔內容
語文相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1