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

正文內(nèi)容

基于ds18b20的多點(diǎn)溫度測(cè)量系統(tǒng)的設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2024-07-24 21:56 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 5,能夠滿足系統(tǒng)的要求。 電源電路第4章 程序設(shè)計(jì) 系統(tǒng)資源分配 系統(tǒng)硬件資源分配。采用AT89C51單片機(jī)作為核心器件,DS18B20作為溫度測(cè)量裝置,利用12864LCD顯示器和44鍵盤作為人機(jī)接口。 系統(tǒng)硬件資源分配 系統(tǒng)軟件資源分配本系統(tǒng)采用了C語(yǔ)言進(jìn)行程序設(shè)計(jì),系統(tǒng)自動(dòng)為各個(gè)變量分配內(nèi)存區(qū)域。用戶可以將變量定義在DATA區(qū)、IDATA區(qū)、PDATA區(qū)、XDATA區(qū),常量定義在CODE區(qū)。用C語(yǔ)言寫較復(fù)雜的程序時(shí),要特別注意使用的內(nèi)存不能超過單片機(jī)RAM。 系統(tǒng)流程設(shè)計(jì)主程序先對(duì)系統(tǒng)資源進(jìn)行初始化,調(diào)用LCD顯示子程序,顯示啟動(dòng)畫面。然后進(jìn)入鍵盤設(shè)置界面。當(dāng)設(shè)置鍵按下后,開始設(shè)置各點(diǎn)的溫度,設(shè)置完之后,如果確認(rèn)鍵按下,則系統(tǒng)開始工作。首先調(diào)用DS18B20初始化子程序,再發(fā)送ROM命令,讀取DS18B20轉(zhuǎn)換的溫度值。當(dāng)讀取的溫度大于設(shè)置的溫度值時(shí),報(bào)警器開始報(bào)警,LCD顯示溫度的實(shí)際值、設(shè)置值、路數(shù)、狀態(tài)。接下來對(duì)第二、三、四路溫度進(jìn)行采集,處理,顯示。: 主程序流程圖 DS18B20程序流程設(shè)計(jì)由上一章單片機(jī)對(duì)DS18B20的控制方法,設(shè)計(jì)出如下程序流程: DS18B20寫命令子程序流程圖 DS18B20復(fù)位子程序流程圖 DS18B20讀溫度子程序流程圖 顯示程序流程顯示是實(shí)現(xiàn)人機(jī)對(duì)話的重要部分,在這里選用12864LCD顯示器,可實(shí)現(xiàn)對(duì)漢字、字符和圖片的顯示, LCD的引腳功能在上面已經(jīng)做了說明,下面是其相關(guān)指令的介紹。(1) 讀取狀態(tài)字D/IR/WDB7DB6DB5DB4DB3DB2DB1DB001BUSY0ON/OFFRST0000當(dāng)R/W=1,D/I=0時(shí),在E信號(hào)為高的作用下,狀態(tài)分別輸出到數(shù)據(jù)總線上。狀態(tài)字是了解模塊當(dāng)前工作狀態(tài)的唯一的信息渠道,在每次對(duì)模塊操作之前,都要讀出狀態(tài)字,判斷BUSY是否為“0”。若不為“0”,則單片機(jī)需要等待,直至BUSY =0為止。(2) 顯示開關(guān)設(shè)置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB0000011111DD=1:開顯示;D=0關(guān)顯示。(3) 顯示起始行設(shè)置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00011顯示起始行(0~63)指令表中DB5~DBO為顯示起始行的地址,取值在0~3FH(1~64行)范圍內(nèi),它規(guī)定了顯示屏上最頂一行所對(duì)應(yīng)的顯示存儲(chǔ)器的行地址。(4) 頁(yè)面地址設(shè)置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00010111Page(0~7)頁(yè)面地址是DDRAM的行地址,8行為一頁(yè),DDRAM共64行即8頁(yè),DB2DB0表示07頁(yè)。(5) 列地址設(shè)置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00001Y address(0~63)列地址是DDRAM的列地址。共64列,DB5DB0取不同值得到03FH(164),代表某一頁(yè)面上的某一單元地址,列地址計(jì)數(shù)器在每一次讀/寫數(shù)據(jù)后它將自動(dòng)加一。(6) 寫顯示數(shù)據(jù) D/IR/WDB7DB6DB5DB4DB3DB2DB1DB010顯 示 數(shù) 據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲(chǔ)器的單元內(nèi)。操作完成后列地址計(jì)數(shù)器自動(dòng)加一。 (7) 讀顯示數(shù)據(jù) D/IR/WDB7DB6DB5DB4DB3DB2DB1DB011顯 示 數(shù) 據(jù)該操作將12864模塊中的DDRAM存儲(chǔ)器對(duì)應(yīng)單位中的內(nèi)容讀出,然后列地址計(jì)數(shù)器自動(dòng)加一。先使用軟件對(duì)要顯示漢字進(jìn)行取模,取出來存入程序中的數(shù)組中。漢字是16*16的,使用LCD顯示漢字時(shí),先調(diào)用寫指令子程序設(shè)定漢字的起始頁(yè)地址和起始列地址,再調(diào)用寫數(shù)據(jù)子程序?qū)懭霛h字的16列,然后頁(yè)地址加1,重新設(shè)置起始列地址,調(diào)用寫指令子程序設(shè)定起始頁(yè)地址和起始列地址,再調(diào)用寫數(shù)據(jù)子程序?qū)懭霛h字的底下的16列。根據(jù)上面指令結(jié)合字符、漢字、圖片顯示原理。 顯示子程序流程圖 鍵盤程序程序流程鍵盤中斷程序是用來設(shè)在系統(tǒng)起動(dòng)時(shí)各環(huán)境溫度的上限值,: 程序設(shè)計(jì) 主程序設(shè)計(jì)系統(tǒng)主程序如下所示:void main(void){ uchar i。 P2=0XF0。 IT0=1。 TMOD=0x01。 TH0=0xff。 TL0=0xff。 ET0=1。 PT0=1。 EA=1。 Init_lcd()。 Clr_Scr()。 Display_ini()。 delay(1500)。 EX0=1。out: Clr_Scr()。 display1()。 delay(1000)。 while(!flag2) { KeyInput()。 } flag2=0。 Clr_Scr()。 while(1) { if(flag4==1) { flag4=0。 goto out。 } Ds18b20_Init()。 ds18b20_writemand(0xcc)。 ds18b20_writemand(0x44)。 delay(250)。 match_rom(ds18b20_num1)。 ds18b20_writemand(0xbe)。 for(i=0。i2。i++) { temp[i]=Ds18b20_Readdata()。 } Temperature_Process(temp[0],temp[1])。 if(flag5==0) { if(zhen_temp[0]num[0]) flag7=1。 else if(zhen_temp[0]num[0]) { flag7=0。 goto next。 } else if(zhen_temp[0]==num[0]) { if(zhen_temp[1]num[1]) flag7=1。 else if(zhen_temp[1]num[1]) { flag7=0。 goto next。 } else if(zhen_temp[1]==num[1]) { if(zhen_temp[2]num[2]) flag7=1。 else if(zhen_temp[2]num[2]) { flag7=0。 goto next。 } else if(zhen_temp[2]==num[2]) { if(xiaoshu_temp[0]num[3]) flag7=1。 else { flag7=0。 goto next。 }} }}} flag5=0。 next: display2(0)。 delay(1000)。 if(flag4==1) { flag4=0。 goto out。 } Ds18b20_Init()。 ds18b20_writemand(0xcc)。ds18b20_writemand(0x44)。 delay(250)。 match_rom(ds18b20_num2)。 ds18b20_writemand(0xbe)。 for(i=0。i2。i++) { temp[i]=Ds18b20_Readdata()。 } Temperature_Process(temp[0],temp[1])。 if(zhen_temp[0]num[4]) flag7=1。 else if(zhen_temp[0]num[4]) {flag7=0。 goto next1。 } else if(zhen_temp[0]==num[4]) { if(zhen_temp[1]num[1]) flag7=1。 else if(zhen_temp[1]num[5]) { flag7=0。 goto next1。 } else if(zhen_temp[1]==num[5]) { if(zhen_temp[2]num[6]) flag7=1。 else if(zhen_temp[2]num[6]) { flag7=0。 goto next1。 } else if(zhen_temp[2]==num[6]) { if(xiaoshu_temp[0]num[7]) flag7=1。 else { flag7=0。 goto next1。 } } } }next1: Clr_Scr()。 display2(1)。 delay(1000)。 if(flag4==1) { flag4=0。 goto out。 } Ds18b20_Init()。 ds18b20_writemand(0xcc)。 ds18b20_writemand(0x44)。 delay(250)。 match_rom(ds18b20_num3)。 ds18b20_writemand(0xbe)。 for(i=0。i2。i++) { temp[i]=Ds18b20_Readdata()。 } Temperature_Process(temp[0],temp[1])。 if(zhen_temp[0]num[8]) flag7=1。 else if(zhen_temp[0]num[8]){ flag7=0。 goto next2。 } else if(zhen_temp[0]==num[8]) { if(zhen_temp[1]num[9]) flag7=1。 else if(zhen_temp[1]num[9]) { flag7=0。 goto next2。 } else if(zhen_temp[1]==num[9]) { if(zhen_temp[2]num[10]) flag7=1。 else if(zhen_temp[2]num[10]) { flag7=0。 goto next2。 } else if(zhen_t
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1