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

正文內(nèi)容

基于單片機的多溫度檢測系統(tǒng)的設計與protues仿真-資料下載頁

2024-12-06 05:37本頁面

【導讀】在這樣的形式下,開發(fā)一種能夠同時測量多點,并且實時性高、精。度高,能夠綜合處理多點溫度信息的測量系統(tǒng)就很有必要。本課題以80C51單片機系統(tǒng)為核心,能對多點的溫度進行實時巡檢。本文結(jié)合實際使用經(jīng)驗,介紹了DS18B20數(shù)字溫度傳感器在單片機下的硬。件連接及軟件編程,并給出了軟件流程圖。

  

【正文】 //從總線上讀取一個字節(jié) { uchar i。 dat=0。 //讀出數(shù)據(jù)初值為 0 for(i=8。i0。i) //循環(huán)讀 8位(先低位,后高位) { dat=dat1。 //讀出數(shù)據(jù)先右移一位 DQ=0。 //產(chǎn)生 1us的負脈沖 _nop_()。 DQ=1。 //數(shù)據(jù)總線拉高 delay15(1)。 //延時 15us dat7=DQ。 //讀取數(shù)據(jù) delay15(4)。 //延時,為讀下一位做準備 } return(dat)。 } ③ DS18B20的寫時序。 圖 DS18B20寫 0時序與寫 1時序 DS18B20的寫時序也分為寫 0時序和寫 1時序兩個過程。寫 0時序和寫 1時序的要求不同,寫 0時,單總線要被拉低至少 60? s,保證 DS18B20能夠在 1545? s之間正確采樣 I/O總線上的“ 0”電平。寫 1時,單總線被拉低,在之后的 15? s內(nèi)必須釋放單總線。 基于單片機的多溫度檢測系統(tǒng)的設計與 protues 仿真 void write_bit(char bitval) { DQ = 0。 // 將 DQ 拉低開始寫時間隙 _nop_()。 _nop_()。 if(bitval==1) DQ =1。 // 如果寫 1, DQ 返回高電平 delay(8)。 // 在時間隙內(nèi)保持電平值, DQ = 1。 // Delay函數(shù)每次循環(huán)延時 13μ s,因此 delay(8) = 105μ s } void wrbyte(uchar d)//向總線寫入一個字節(jié) { uchar i。 dat=d。 for(i=8。i0。i) //循環(huán)寫 8位(先低位,后高位) { DQ=0。 //產(chǎn)生 15us的負脈沖 delay15(1)。 DQ=dat0。 //將當前數(shù)據(jù)位送數(shù)據(jù)線 dat=dat1。 //將下一位要寫入 的數(shù)據(jù)移到最低位 delay15(1)。 //延時 15us DQ=1。 //數(shù)據(jù)線拉高,為寫入下一位做準備 } } DS18B20復位后,就可以編程控制讀到其內(nèi)部 RAM所采集到的溫度值 (通過),并且讀取數(shù)據(jù)時低位在前,高位在后。讀出數(shù)據(jù)后,需判斷對應的溫度是正值還是負值,當溫度值為正值時,直接將二進制數(shù)轉(zhuǎn)換為十進制溫度值 。當溫度值為負值時先將二進制補碼變?yōu)樵a,再轉(zhuǎn)換為十進制溫度值。 本課題的溫度測量與讀取軟件流程: 南京工業(yè)大學畢業(yè)論文 圖 溫度測量程序流圖 DSl8B20編程注意事項 (1) 溫度換時間設置為 750ms時,靈敏度會大大提高,在需要較高精度要求下建議使用,而且回復性很好 。 (2) Dsl8B20的讀寫時序須經(jīng)仔細調(diào)整,在反復的調(diào)試中找出合適的延時時間 。 (3) 在程序等待 DS18B20發(fā)出的存在信號時,最好設置一個有限的等待時間,否則一旦有溫度傳感器損壞時,程序?qū)⑦M人無限等待的死循環(huán)中 顯示程序設計 根據(jù)系統(tǒng)的要求,單片機不僅要能接收到溫度信號,還要將溫度信號顯示出來,使系統(tǒng)一目了然。 液晶顯示模塊與數(shù)碼管相比,顯得更為專業(yè)、漂亮 。 液晶顯示屏以其功耗 低 、體積小、顯示內(nèi)容豐富、超薄輕巧、使用方便等諸多優(yōu)點,在儀器儀表、電子設備、家用電器等低功耗應用系統(tǒng)中得到越來越廣泛的應用 。開始 復位 DS18B20 發(fā)出跳過 ROM 命令 發(fā)出溫度轉(zhuǎn)換命令 讀溫度值 發(fā)出匹配 ROM 命令 發(fā) 1 個 DS18B29 序號 復位 DS18B20 復位 DS18B20 延時 發(fā)報警搜索命令 存入存儲器 轉(zhuǎn)換完畢 指向下一個DS18B20 報警輸出 第 n 個DS18B20 處理完? 有溫度超限否? N N Y 基于單片機的多溫度檢測系統(tǒng)的設計與 protues 仿真 液晶模塊分為字符型和點陣型兩類:字符型顯示模塊通常只能顯示 ASCII 碼表中的數(shù)字、字母等符號;點陣型顯示模塊除了可以顯示 ASCII 字符,還能顯示漢字、繪制圖形。 (一)引腳功能 RT1602 液晶模塊內(nèi)帶標準字庫,內(nèi)部的字符發(fā)生存儲器( CGROM)已經(jīng)存儲了 192 個 57 點陣字符, 可顯示 2 行 16 列共 32 個 點陣 字符 ,其外觀及引腳排列如圖 68 所示,其引腳功能說明如下: VSS: 電源地 VDD: 5V 正電源 V0: 為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生 陰 影,使用時可以通過一個 10K 的電位器調(diào)整對比度 。 RS: 寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。 R/W: 讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。 E:使能控制信號,當該引腳由 高電平跳變成低電平時,液晶模塊執(zhí)行命令 。 RS=0、 R/W= E=1 時 ,讀取液晶模塊的狀態(tài)字。 RS=0、 R/W=0、 E=1,向液晶模塊寫入命令字。 RS= R/W= E=1 時,從液晶模塊讀取數(shù)據(jù)。 RS= R/W=0, E=1 時,向液晶模塊寫入數(shù)據(jù)。 DB0~ DB7: 8 位雙向數(shù)據(jù)線。 BLA:背光源正極。 BLK:背光源負極。 RT1602 的讀 /寫時序如圖 69所 : (二) 顯示模塊的指令功能 圖 RT1602 的外觀及引腳 RS RS R/W R/W E E DB0~DB7 DB0~DB7 寫 時序 讀時序 南京工業(yè)大學畢業(yè)論文 ( 二 ) 顯示模塊的指令功能 RT1602 液晶模塊內(nèi)部的控制器共有 11 條控制指令, 單片機對液晶模塊的控制 都是通過指令編程來實現(xiàn)的 ,指令的格式如表 63所示,現(xiàn)分別說明如下: 清 屏: 指令碼 01H,清屏后, 光標 返回 到地址 00H。 光標 返回: 光標返回到地址 00H。 光標和顯示模式設置 : I/D:光標移動方向,高電平右移,低電平左移 。 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效 顯示開 /關控制 : D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 。 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 。 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍 。 光標或顯示移位 : S/C:高電平時移動顯示的文字,低電平時移動 光標 。 R/L:移動方向,高電平右移,低電平左移。 置功能 : 表 RT1602 顯示模塊的指令集 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 清屏 0 0 0 0 0 0 0 0 0 1 光標返回 0 0 0 0 0 0 0 0 1 * 置輸入模式 0 0 0 0 0 0 0 1 I/D S 顯示開 /關控制 0 0 0 0 0 0 1 D C B 光標或字符移位 0 0 0 0 0 1 S/C R/L * * 置功能 0 0 0 0 1 DL N F * * 置數(shù)據(jù)存儲器地址 0 0 1 顯示數(shù)據(jù)存儲器地址( ADD) 讀忙標志或地址 0 1 BF 計數(shù)器地址( AC) 寫數(shù)據(jù) 1 0 要寫的數(shù)據(jù) 讀數(shù)據(jù) 1 1 讀出的數(shù)據(jù) 基于單片機的多溫度檢測系統(tǒng)的設計與 protues 仿真 DL:高電平時為 4 位總線,低電平時為 8 位總線 。 N:低電平時為單行顯示,高電平時雙行顯示 。 F: 低電平時顯示 57 的點陣字符,高電平時顯示 510 的點陣字符 。 置 數(shù)據(jù)存儲器 地址 : 如圖 所示,液晶屏幕上的每個字符位置與內(nèi)部數(shù)據(jù)存儲器( DDRAM)之間有著一一對應關系 10 屏幕位。 為了將字符顯示到屏幕指定位置,必須用該命令設置液晶模塊的數(shù)據(jù)存儲器地址。例如:為了能在第二行第 二列(數(shù)據(jù)存儲器地址為 41H)顯示字符,必須首先置數(shù)據(jù)存儲器地址為 41H,相應的命令字為 1000 0000B + 0100 0001B=1100 0001B( C1H)。 讀忙 標志 和光標地址 : BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù), BF為低電平表示不忙。 AC:為當前計數(shù)器地址。 寫數(shù)據(jù): RT1602 液晶模塊內(nèi)部的字符發(fā)生存儲器( CGROM)已經(jīng)存儲了 160 個不同的點陣字符圖形, 包括 阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼, 一般為 該字符的 ASCII 碼,只要執(zhí)行寫數(shù)據(jù)指令,寫入該字符的代碼,就可在屏屏幕上顯示該字符。 為了使程序清晰易讀,將對命令口、數(shù)據(jù)口的寫操作及等待操作完成設計成函數(shù),每次寫入指令碼或數(shù)據(jù)后必須等待忙標志 BF 為 0后才返回;由于每次寫LCD 16 字 *2 行 00 01 02 06 05 04 03 27 …. B A 09 09 08 07 40 41 42 43 44 45 46 47 48 49 4a 4b 4c … 67 圖 置與內(nèi)部數(shù)據(jù)存儲器 南京工業(yè)大學畢業(yè)論文 入數(shù)據(jù)后,模塊內(nèi)的地址寄存器會自動指向下個單元,因此無需在每個字符輸出前都設置數(shù)據(jù)存儲器地址,比如在顯示字符串 str1 前,只要用“ lcd_cmd(0x80)?!闭Z句設置一次即可,將 str1 的第一個字符‘ W’寫入模塊內(nèi)地址為 00H 的單元,即顯示在第一行的第一個字符位置,后續(xù)的其它字符就無需 再設置地址了,程序清單如下: include include define uchar unsigned char define uint unsigned int define LCD P0 //P0 口作為總線端口 sbit RS=P3^7。 //數(shù)據(jù) /命令寄存器選擇控制端 sbit RW=P3^6。 //讀寫控制端 sbit E =P3^5。 //使能控制端 sbit RDY=LCD^7。 //就緒線 BF,低電平有效 void lcd_cmd(uchar cmd) //向液晶屏發(fā)送指令 { LCD=cmd。 RS=0。 //選擇命令寄存器 RW=0。 //執(zhí)行寫數(shù)據(jù)操作 E=1。 _nop_()。 //延時 E=0。 //使能信號有效 while(1) { LCD=0xff。 //總線變高 RS=0。 //選擇命令寄存器 RW=1。 //讀操作 E=0。 //使能信號有效 _nop_()。 //延時 E=1。 //撤消使能信號 基于單片機的多溫度檢測系統(tǒng)的設計與 protues 仿真 if(RDY==0) break。//如果就緒,返回 } } void lcd_dat(uchar dat) //向液晶屏寫入數(shù)據(jù) { LCD=dat。 //顯示數(shù)據(jù)送總線 RS=1。 //選擇數(shù)據(jù)寄存器 RW=0。 //執(zhí)行寫數(shù)據(jù)操作 E=1。 _nop_()。 E=0。 //使能信號有效 while(1) { LCD=0xff。//總線變高
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1