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

正文內(nèi)容

畢業(yè)設(shè)計--基于51單片機(jī)的家用電熱水器設(shè)計-文庫吧

2024-11-11 04:53 本頁面


【正文】 的操作決定了那幾個數(shù)碼管亮, P0 操作完成后使 P2^7 呈現(xiàn)低電平,這樣 位選就已鎖定。 段選在程序中由 duan 表示 ,單片機(jī)上是 P2^6 端口 ,與位選相同,操作時使 P2^6 呈現(xiàn)高電平,這時 P0 的八個端口對數(shù)碼管的操作決定了亮的幾個數(shù)碼管顯示什么數(shù)字, P0 操作完成后使 P2^6 呈現(xiàn)低電平,這樣段選就已鎖定。 見圖 所示由于單片機(jī)僅僅起到控制的作用,其輸出電流十分小,所以 P0端需要接上拉電阻與 5V 電源,通過電壓的變化控制 5V 電源點亮 ,想要圖中 a端由電流通過時, 即 給 P0^0 一 個低電平,觸發(fā)上拉電阻兩端間的電勢差,這樣 5 就能促使電流流向 a 點 ,從而使 a 端對應(yīng)的 LED 燈點亮 。 圖 單片機(jī)與數(shù)碼管的硬件連接 首先選擇位選,再選擇段選。 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0xbf,0x86, 0xdb,0xcf,0xe6,0xed, 0xfd,0x87,0xff,0xef, 0x00,0x08,0x88}。 可以直接設(shè)置數(shù)碼管顯示 各 數(shù)字 的十六進(jìn)制 , 即 P0 口應(yīng)賦的十六進(jìn) 制,以便操作。如以上數(shù)組,使用時僅僅將需要的數(shù)組中的其中一個 賦予 P0 口 ,這樣可以方便直觀 得 使數(shù)碼管顯示需要的數(shù)字。 選擇位選與選擇片選的過程 相當(dāng) 快時,顯示在人眼中就是一排易于識別的十 6 進(jìn)制數(shù)字 ,這就是數(shù)碼管的動態(tài)顯示。 鎖存器與 數(shù)碼管顯示 方法 在這里先介紹 74HC573 芯片,這是一個鎖存器芯片, 連接方法見圖 所示, P2^ P2^6 分別控制位選和段選的 L 端,例如:當(dāng) P2^7(程序中的全局變量 wei)賦高電平時, 74HC573 輸入 端口的值將直接輸送給 74HC573 芯片的輸出端,當(dāng)輸入端變化時, 輸出端也變化。 P2^7 賦低電平時 , 74HC573 芯片將記住最近一次 L 端口是高電平時芯片輸入端的 8 位,并將其輸出,當(dāng)輸入端變化時,輸出端不變化。 在這里 就可以利用鎖存器的特性使 P2^7 起到 控制那個數(shù)碼管亮的作用, 使 P2^6 控制數(shù)碼管亮什么樣的數(shù) 字 作用。 圖 74HC573 芯片的連接 以下數(shù)碼管顯示部分程序。 P0=0xff。 wei=1。 P0=srtemp。//wein 打開后 是低電平亮 wei=0。 srtemp=_crol_(srtemp,1)。 P0=0x00。 duan=1。 P0=table[dis[i]]。 7 duan=0。 delay(1)。 duan=1。 P0=0x00。 duan=0。 要注意的是位選(程序中的 wei 變量) ,位選 是低電平時選擇該數(shù)碼管亮。 在顯示時容易出現(xiàn)不需要亮的 LED 管微微發(fā)亮的問題,這是因為所選擇的位選和段選都是通過 P0 賦的值,如果先選擇 位選的 8 位值, P0 口不還原成 0x00,就會導(dǎo)致段選打開后 , 還未賦予 段選 P0 口需要的數(shù)值之前,這段時間內(nèi) P0 口將剛才位選的 8 位值賦予了段選鎖存器,這樣就會 在極短的時間內(nèi),一些不需要的 LED 燈點亮,在單片機(jī)上就是由 LED 燈微微亮的情況, 所以在這里注意每次P0 對 位選賦值以前 , 都應(yīng)該保證 P0 口為 0x00。 鍵盤輸入設(shè)計 鍵盤輸入方法 本設(shè)計中使用的是矩陣式鍵盤, 見 圖 所示。 圖 矩陣式鍵盤 8 S10 到 S19 分別代表數(shù)字 0 到 9。 S20 代表確認(rèn)數(shù)字,按下后即可確認(rèn)要輸入數(shù)字的某一位。 左側(cè)鍵盤的引腳由上至下分別是 P3^0 到 P3^7, 第一行暫時不用,從第二行開始使用,每一行如 P3^1 都與 P3^ P3^ P3^6 、 P3^7, 他們 是線與的關(guān)系。因此可以如此操作,對圖中第二行、第三行、第四行諸行進(jìn)行掃描。掃描第一行時 P3 口賦值為 0xfd,即為 P3^1 口賦 “0”, P3 的其他口賦 “1”,當(dāng)?shù)诙袥]有按鍵按下時 P3^ P3^ P3^6 、 P3^7 將都是高電平 “1”,一旦有按鍵按下時,由于線與關(guān)系, P3^ P3^ P3^6 、 P3^7 必定有一個為 “0”,它們之中那一個為 “0”依次代表 S10 到 S13 哪個鍵被按下。依次循環(huán)掃描三行 即可 時時檢測是否有鍵按下。 鍵盤輸入的抖動與去抖的方法 在 節(jié)中談到了如何實現(xiàn)鍵盤 的掃描,但是理論與實際還是有一定的差距,當(dāng) 按下鍵盤 到檢測到有電壓變化,這段時間在 實際 中 是存在一定的時間誤差的 , 經(jīng)過這段時間誤差后 電壓才會達(dá)到單片能夠檢測到的范圍,但這期間單片機(jī)很有可能已經(jīng) 完成檢測,見 圖 所示。 圖 抖動 示意圖 如果不去除抖動的話, 人們 手指按下的瞬間單片機(jī)已經(jīng)開始檢測,這時電壓還未降到穩(wěn)定閉合狀態(tài)所以不能檢測到按下, 同理不管是按下,還是是松手都會 9 有 這樣 的情況出現(xiàn), 不利于 操作,所以 應(yīng)該加入去抖操作, 圖中 右側(cè)是硬件去除抖動,除了硬件去抖以外還可以利用軟件去抖 。 在本設(shè)計中采用 軟件 去抖的方法, 原理是 檢測兩次,第一次檢測到低電平時延時一段時間,再檢測一次,如果還能檢測到低電平,則說明確實有鍵按下。具體程序如下: while(temp!=0xf0) { delay(5)。 P3=0xfd。 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0) 上述程序是兩個 while 循環(huán)之間的嵌套, 第一個 while()語句判斷有鍵按下后,延時一段時間再進(jìn)行判斷,如果第二次判斷也認(rèn)為由鍵按下,則可以確認(rèn)的確由鍵盤操作,并不是抖動。 具體按下后的操作可以在 后一個 while 循環(huán)中書寫。 DS18B20 溫度采集 DS18B20 技術(shù)性能與應(yīng)用范 圍 10 圖 DS18B20 的外形及管腳 圖 DS18B20 是一種可組網(wǎng)數(shù)字溫度傳感器芯片,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。 獨特的單線接口方式, DS18B20 在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與 DS18B20 的雙向通訊。測溫范圍 - 55℃ ~+ 125℃ ,固有測溫分辨率 ℃ 。支持多點組網(wǎng)功能,多個 DS18B20 可以并聯(lián)在唯一的三 線上,最多只能并聯(lián) 8 個,如果數(shù)量過多,會使供電電源電壓過低,從而造成信號傳輸?shù)牟环€(wěn)定,實現(xiàn)多點測溫。工作電源為 3~5V/DC。在使用中不需要任何外圍元件,測量結(jié)果以 9~12 位數(shù)字量方式串行傳送。不銹鋼保護(hù)管直徑 Φ6,適用于 DN15~25, DN40~DN250 各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測溫,標(biāo)準(zhǔn)安裝螺紋 M10X1, , G1/2”任選, PVC 電纜直接出線或德式球型接線盒出線 ,便于與其它電器設(shè)備連接。 負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀, 但不能正常工作。 DS18B20 內(nèi)部結(jié) 構(gòu)主要由四部分組成: 64 位光刻 ROM 、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器 TH 和 TL、配置寄存器。 DS18B20 的外形及管腳排列 見 圖 所示 。 該產(chǎn)品適用于冷凍庫,糧倉,儲罐,電訊機(jī)房,電力機(jī)房,電纜線槽等測溫和控制領(lǐng)域、軸瓦,缸體,紡機(jī),空調(diào),等狹小空間工業(yè)設(shè)備測溫和控制、供熱 /制冷管道熱量計量,中央空調(diào)分戶熱能計量和工業(yè)領(lǐng)域測溫和控制、汽車空調(diào)、冰箱、冷柜、以及中低溫干燥箱等。 DS18B20 的初始化與讀寫操作 1. DS18B20 的初始化 ( 1) 先將數(shù)據(jù)線置高電平 “1”; ( 2) 延時(該時間要求的不是很嚴(yán)格,但是盡可能的短一點) ; ( 3) 數(shù)據(jù)線拉到低電平 “0”; ( 4) 延時 750 微秒(該時間的時間范圍可以從 480 到 960 微秒) ; ( 5) 數(shù)據(jù)線拉到高電平 “1”; ( 6) 延時等待(如果初始化成功則在 15 到 60 毫秒時間之內(nèi)產(chǎn)生一個由 DS18B20 所返回的低電平 “0”。據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng) 11 注意不 能無限的進(jìn)行等待,不然會使程序進(jìn)入死循環(huán),所以要進(jìn)行超時控制) ; ( 7) 若 CPU 讀到了數(shù)據(jù)線上的低電平 “0”后,還要做延時,其延時的時間從發(fā)出的高電平算 起(第( 5)步的時間算起)最少要 480 微秒 ; ( 8) 將數(shù)據(jù)線再次拉高到高電平 “1”后結(jié)束 。 DS18B20 的的初始化 見 圖 所示。 圖 DS18B20 的 的初始化 2. DS18B20 的寫操作 ( 1) 數(shù)據(jù)線先置低電平 “0”; ( 2) 延時確定的時間為 15 微秒 ; ( 3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位) ; ( 4) 延時時間為 45 微秒 ; ( 5) 將數(shù)據(jù)線拉到高電平 ; ( 6) 重復(fù)上( 1)到( 6)的操作直到所有的字節(jié)全部發(fā)送完為止 ; ( 7) 最后將數(shù) 據(jù)線拉高 。 在這里要注意的是( 3),寫數(shù)據(jù)時時 1bit 單獨傳送,這里有兩種情況。 當(dāng)需要傳送 “1”時,單片機(jī)應(yīng)該給 DS18B20 芯片的 DQ 接口賦低電平,大約 15 秒以后,將 DQ 釋放為高電平,延時約 45 微妙即可。 當(dāng)需要傳送 “0”時,單片機(jī)應(yīng)該給 DS18B20 芯片的 DQ 接口賦低電平,并且持續(xù)拉低最少 60 微妙,然后將 DQ 釋放為高電平,再延時約 15 秒即可。 DS18B20 的寫操作時序圖見 圖 所示。 12 圖 DS18B20 的寫操作時序圖 3. DS18B20 的讀操作 ( 1)將數(shù)據(jù)線拉高 “1”; ( 2)延時 2 微秒 ; ( 3)將數(shù)據(jù)線拉低 “0”; ( 4)延時 15 微秒 ; ( 5)將數(shù)據(jù)線拉高 “1”; ( 6)延時 15 微秒 ; ( 7)讀數(shù)據(jù)線的狀態(tài)得到一個狀態(tài)位,并進(jìn)行數(shù)據(jù)處理 ; ( 8)延時 30 微秒 ; 這里只要按以上操作將狀態(tài)位的各各 bit 按順序儲存好即可 。 DS18B20 的讀操作時序圖見 圖 所示。 圖 DS18B20 的 讀 操作時序圖 DS18B20 的指令與格式 DS18B20 溫度格式圖見圖 所示。 13 圖 DS18B20 溫 度格式圖 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲在 DS18B20 的兩個 8 比特的RAM 中,二進(jìn)制中的前面 5 位是符號位,如果測得的溫度大于 0, 這 5 位為 0, 只要將測到的數(shù)值乘于 即可得到實際溫度;如果溫度小于 0,這 5 位為 1,測到的數(shù)值需要取反加 1 再乘于 即可得到實際 溫度。 例如 +125℃ 的數(shù)字輸出為 07D0H, +℃ 的數(shù)字輸出為 0191H,℃ 的數(shù)字輸出為 FE6FH, 55℃ 的數(shù)字輸出為 FC90H 。 DS18B20 溫度傳感器的存儲器 DS18B20 溫度傳感器的內(nèi) 部存儲器包括一個高速暫存 RAM 和一個非易失性的可電擦除的 EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、 TL 和結(jié)構(gòu)寄存器。配置寄存器, 該字節(jié)各位的意義見 表 所示。 表 配置寄存器結(jié)構(gòu) 溫度 數(shù)據(jù)輸出(二進(jìn)制) 數(shù)據(jù)輸出(十六進(jìn)制) +125℃ 0000 0111 1101 0000 07D0 +85℃ 0000 0101 0101 0000 0550 +℃ 0000 0001 1001 0001 0191 +℃ 0000 0000 1010 0010 00A2 +℃ 0000 0000 0000 1000 0008 0℃ 0000 0000 0000 0000 0000 ℃ 1111 1111 1111 1000 FFF8 ℃ 1111 1111 0101 1110 FF5E ℃ 1111 1110 0110 1111 FE6F 55℃ 1111 1100 1001 0000 FC90 14 高速暫存存儲器由 9 個字節(jié)組成。 其分配 見表 所示, 當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在 高速暫存存儲器的第 0 和第 1 個字節(jié)。單片 機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后 。對應(yīng)的溫度計算:當(dāng)符號位 S=0 時,直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng) S=1 時,先將補(bǔ)碼變?yōu)樵a,再計算十進(jìn)制值。第九個字節(jié)是冗余檢驗字節(jié)。 表 DS18B20 暫存寄存器分布 寄存器內(nèi)容 字節(jié)地址 溫度值低位 ( LS Byte) 0 溫度值高位 ( MS Byte) 1 高溫限值( TH) 2 低溫限值( TL) 3 配置寄存器 4 保留 5 保留
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1