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

正文內(nèi)容

基于ds18b20的多點溫度測量系統(tǒng)的設(shè)計畢業(yè)論文-在線瀏覽

2024-08-07 21:56本頁面
  

【正文】 以KEIL為系統(tǒng)開發(fā)平臺,用C語言進行程序設(shè)計,以PROTEUS作為仿真軟件設(shè)計而成的。 系統(tǒng)原理圖DS18B20是數(shù)字溫度傳感器,它的輸入/輸出采用數(shù)字量,以單總線技術(shù),接收主機發(fā)送的命令,根據(jù)DS18B20內(nèi)部的協(xié)議進行相應(yīng)的處理,將轉(zhuǎn)換的溫度以串口發(fā)送給主機。在系統(tǒng)啟動的時候,可以通過44鍵盤設(shè)置各點溫度的上限值,當(dāng)某點的實際溫度超過設(shè)置值時,報警器開始報警,液晶顯示該傳感器的路數(shù)、設(shè)置溫度值、實際溫度值以及路數(shù)和該路的狀態(tài),從面實現(xiàn)了對各點溫度的測量和實時監(jiān)控。采用這種尋址技術(shù),單片機使用一個IO口即能實現(xiàn)對四點環(huán)境的溫度數(shù)據(jù)進行采集,使系統(tǒng)硬件電路更加簡單,系統(tǒng)更加穩(wěn)定?!S18B20引腳功能描述序號名稱引腳功能描述1GND地信號2DQ數(shù)字輸入輸出引腳,開漏單總線接口引腳,當(dāng)使用寄生電源時,可向電源提供電源3VDD可選擇的VDD引腳,當(dāng)工作于寄生電源時,該引腳必須接地 DS18B20與單片機接口電路,為單片機和DS18B20的接口電路。 DS18B20與單片機接口電路 溫度寄存器格式和溫度/數(shù)據(jù)對應(yīng)關(guān)系。當(dāng)寄存器高5位為1時,表示溫度為負(fù),否則為正。是DS18B20的溫度與數(shù)據(jù)的對應(yīng)關(guān)系。該協(xié)議定義了幾種信號類型:復(fù)位脈沖、應(yīng)答脈沖、寫0、寫讀0和讀1。總線上傳輸?shù)乃袛?shù)據(jù)和命令都是以字節(jié)為單位,且低位在前,高位在后。s,以產(chǎn)生復(fù)位脈沖(TX)。當(dāng)總線被釋放后,5kΩ的上拉電阻將單總線拉高。s~60181。s~240181。 DS18B20初始化時序DS18B20的初始化應(yīng)答C語言程序如下所示:bit resetpulse(void){ DQ=0。 DQ=1。 return(DQ)。 delay600us()。 } else resetpulse()。在每一個時序,總線只能傳輸一位數(shù)據(jù)。 DS18B20讀寫時序① DS18B20寫時序DS18B20存在兩種寫時序:“寫1”和“寫0”。所有寫時序至少需要60181。s的恢復(fù)時間。寫1時序:主機拉低總線后,必須在15181。寫0時序:主機拉低總線后,必須在整個時序期間保持低電平(至少60181。在寫時序開始后的15181。s期間,DS18B20采樣總線的狀態(tài)。② 讀時序DS18B20只能在主機發(fā)出讀時序時才能向主機傳送數(shù)據(jù)。所有讀時序至少60181。s的恢復(fù)時間。s。若DS18B20發(fā)送1,則保持總線為高電平;若發(fā)送0,則拉低總線。DS18B20發(fā)出的數(shù)據(jù)在讀時序下降沿起始后的15181。s內(nèi)釋放總線,并且采樣總線狀態(tài)。 for(i=0。i++) { if((mand amp。 delay60us()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } else { DQ=0。 _nop_()。 delay60us()。 _nop_()。 _nop_()。 }}DS18B20讀溫度子程序如下:uchar Ds18b20_Readdata(void){ uchar readdata。 for(i=0。i++) { DQ=0。 _nop_()。 DQ=1。0x7f。 } else { readdata=readdata|0x80。} if(i7) readdata=_cror_(readdata,1)。}③ DS18B20的命令序列根據(jù)DS18B20的通訊協(xié)議,主機(單片機)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預(yù)定的操作。每個ROM命令都是8 bit長。,H0H3為行線,接單片機P2口的高4位,L0L3為列線,接單片機P2口的低4位。鍵盤的行線接4輸入與門。 44鍵盤結(jié)構(gòu) 鍵盤面板,本系統(tǒng)使用的鍵盤有10數(shù)字鍵,5個功能按鍵。按“確認(rèn)”鍵之后系統(tǒng)正式啟動。 2 6 3 7 5 確認(rèn)設(shè)置 9重新設(shè)置右移 左移 8 41 0 鍵盤面板 LCD引腳分布及功能(1) 12864液晶顯示屏共有20個引腳,: 12864液晶顯示模塊引腳分布圖(2) : 12864液晶顯示模塊引腳功能引腳符 號引 腳 功 能引腳符 號引 腳 功 能1VSS電源地15CS1CS1=1芯片選擇左邊64*64點2VDD電源正+5V16CS2CS2=1芯片選擇右邊64*64點3VO液晶顯示驅(qū)動電源17/RST復(fù)位(低電平有效)4RSH:數(shù)據(jù)輸入;L:指令碼輸入18VEELCD驅(qū)動負(fù)電源5R/WH:數(shù)據(jù)讀?。籐:數(shù)據(jù)寫入19A背光電源(+)6E使能信號。 報警電路設(shè)計本系統(tǒng)設(shè)計中有報警器,使用LM386作為報警器的功率放大器。輸出端接揚聲器。 LM386功放電路 電源電路設(shè)計電源是整個系統(tǒng)的能量來源,它直接關(guān)系到系統(tǒng)能否運行。 電源電路第4章 程序設(shè)計 系統(tǒng)資源分配 系統(tǒng)硬件資源分配。 系統(tǒng)硬件資源分配 系統(tǒng)軟件資源分配本系統(tǒng)采用了C語言進行程序設(shè)計,系統(tǒng)自動為各個變量分配內(nèi)存區(qū)域。用C語言寫較復(fù)雜的程序時,要特別注意使用的內(nèi)存不能超過單片機RAM。然后進入鍵盤設(shè)置界面。首先調(diào)用DS18B20初始化子程序,再發(fā)送ROM命令,讀取DS18B20轉(zhuǎn)換的溫度值。接下來對第二、三、四路溫度進行采集,處理,顯示。(1) 讀取狀態(tài)字D/IR/WDB7DB6DB5DB4DB3DB2DB1DB001BUSY0ON/OFFRST0000當(dāng)R/W=1,D/I=0時,在E信號為高的作用下,狀態(tài)分別輸出到數(shù)據(jù)總線上。若不為“0”,則單片機需要等待,直至BUSY =0為止。(3) 顯示起始行設(shè)置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00011顯示起始行(0~63)指令表中DB5~DBO為顯示起始行的地址,取值在0~3FH(1~64行)范圍內(nèi),它規(guī)定了顯示屏上最頂一行所對應(yīng)的顯示存儲器的行地址。(5) 列地址設(shè)置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00001Y address(0~63)列地址是DDRAM的列地址。(6) 寫顯示數(shù)據(jù) D/IR/WDB7DB6DB5DB4DB3DB2DB1DB010顯 示 數(shù) 據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲器的單元內(nèi)。 (7) 讀顯示數(shù)據(jù) D/IR/WDB7DB6DB5DB4DB3DB2DB1DB011顯 示 數(shù) 據(jù)該操作將12864模塊中的DDRAM存儲器對應(yīng)單位中的內(nèi)容讀出,然后列地址計數(shù)器自動加一。漢字是16*16的,使用LCD顯示漢字時,先調(diào)用寫指令子程序設(shè)定漢字的起始頁地址和起始列地址,再調(diào)用寫數(shù)據(jù)子程序?qū)懭霛h字的16列,然后頁地址加1,重新設(shè)置起始列地址,調(diào)用寫指令子程序設(shè)定起始頁地址和起始列地址,再調(diào)用寫數(shù)據(jù)子程序?qū)懭霛h字的底下的16列。 顯示子程序流程圖 鍵盤程序程序流程鍵盤中斷程序是用來設(shè)在系統(tǒng)起動時各環(huán)境溫度的上限值,: 程序設(shè)計 主程序設(shè)計系統(tǒng)主程序如下所示:void main(void){ uchar i。 IT0=1。 TH0=0xff。 ET0=1。 EA=1。 Clr_Scr()。 delay(1500)。out: Clr_Scr()。 delay(1000)。 } flag2=0。 while(1) { if(flag4==1) { flag4=0。 } Ds18b20_Init()。 ds18b20_writemand(0x44)。 match_rom(ds18b20_num1)。 for(i=0。i++) { temp[i]=Ds18b20_Readdata()。 if(flag5==0) { if(zhen_temp[0]num[0]) flag7=1。 goto next。 else if(zhen_temp[1]num[1]) { flag7=0。 } else if(zhen_temp[1]==num[1]) { if(zhen_temp[2]num[2]) flag7=1。 goto next。 else { flag7=0。 }} }}} flag5=0。 delay(1000)。 goto out。 ds18b20_writemand(0xcc)。 delay(250)。 ds18b20_writemand(0xbe)。i2。 } Temperature_Process(temp[0],temp[1])。 else if(zhen_temp[0]num[4]) {flag7=0。 } else if(zhen_temp[0]==num[4]) { if(zhen_temp[1]num[1]) flag7=1。 goto next1。 else if(zhen_temp[2]num[6]) { flag7=0。 } else if(zhen_temp[2]==num[6]) { if(xiaoshu_temp[0]num[7]) flag7=1。 goto next1。 display2(1)。 if(flag4==1) { flag4=0。 } Ds18b20_Init()。 ds18b20_writemand(0x44)。 match_rom(ds18b20_num3)。 for(i=0。i++) { temp[i]=Ds18b20_Readdata()。 if(zhen_temp[0]num[8]) flag7=1。 goto next2。 else if(zhen_temp[1]num[9]) { flag7=0。 } else if(zhen_temp[1]==num[9]) { if(zhen_temp[2]num[10]) flag7=1。 goto next2。 else { flag7=0。 } } }}next2: Clr_Scr()。 delay(1000)。 goto out。 ds18b
點擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1