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

正文內(nèi)容

基于單片機的智能溫度檢測器設(shè)計畢業(yè)論文(編輯修改稿)

2024-08-14 18:32 本頁面
 

【文章內(nèi)容簡介】 SS(20 腳):接電源地端。 本設(shè)計使用市電 220V 交流作為輸入,通過一個變壓器降壓后再經(jīng)過整流電橋整流變?yōu)橹绷?,通過電容濾波等處理,最后經(jīng)過降壓芯片 7805 穩(wěn)壓到 5V,然后將輸出的5V 接入到單片機端供電。 變壓器是電源進(jìn)行電源轉(zhuǎn)換的,有升壓變壓器,也有降壓變壓 器,我們使用的是降壓變壓器,需要將市電 220V 降到 50V 左右,其中我們需要選擇好變壓器,變壓器有前圈和后圈,其計算公式是 N1/N2=V1/V2,因此我們就可以計算出后半圈的電壓輸出大小。如圖: 王亮亮:基于單片機的智能溫度檢測器的設(shè)計 8 圖 29 變壓器 將變壓器降壓后的交流電我們還需要對其整流,使其交流變?yōu)橹绷鳎覀兛梢酝ㄟ^單相橋式整流電路,通過整流電路,我們就可以得到一個直流波動的電壓。正電壓經(jīng)過D3 進(jìn)來然后經(jīng)過 D4 出去,負(fù)電壓經(jīng)過 D5 進(jìn)來,經(jīng)過 D2 出去,因此也就將交流變化為直流。 圖 210 單相橋式整流電路 輸出電壓經(jīng)過整流電路整流為 直流后,其電壓還是波動的,因此我們需要將其通過一個電源濾波電路濾波,我們使用的濾波電路時由電解電容及無極性電容組成,將整流電壓經(jīng)過一個 470uf 的電解電容,就可以使其波動濾除掉,因為我們需要得到一個 5V電壓,所以我們還需要對其進(jìn)行穩(wěn)壓處理,我們使用的穩(wěn)壓芯片是 7805,將其濾波后的電壓通過 7805 輸入端,輸出端就可以得到一個 5V 電壓,為了安全起見,我們還需要將其穩(wěn)壓后的電壓進(jìn)行濾波,使其穩(wěn)壓通過一個 470u 的電解電容和一個 1nf的無極性電容,最終我們就可以得到一個標(biāo)準(zhǔn)的 5V 直流電壓了,將其電壓供給整個系統(tǒng)作 為電源。濾波電路如下: 銅陵學(xué)院畢業(yè)論文(設(shè)計) 9 圖 211 濾波電路 總電源電路如下: 圖 212 電源電路 LCD 顯示電路 此設(shè)計中采用的是字符型 LCD1602,它只能顯示數(shù)字及字符,可以顯示 2 行,每一行可以顯示 16 個字符,通過控制 LCD 的數(shù)據(jù)命令 RS 管腳和讀寫 RW 管腳還有使能E 管腳。即可實現(xiàn)對 LCD1602 的讀寫了。我們將 LCD1602 的數(shù)據(jù)腳通過單片機 P0 口控制,數(shù)據(jù)命令及使能管腳通過單片機的 P25 P26 P27 口控制,通過按照 LCD1602 通訊時序控制,我們即可將要顯示的數(shù)據(jù)通過 P0 口發(fā)送到 LCD 上實 時顯示。具體電路如下: 王亮亮:基于單片機的智能溫度檢測器的設(shè)計 10 圖 213 LCD 顯示電路 按鍵電路 在本設(shè)計中我們使用了 4 個按鍵接到單片機管腳 P32,P33, P34,P35 上,另一端共地,如果有按鍵按下去了,單片機的對應(yīng)管腳就會被拉為低電平,因此可以使用此方法來判斷,按鍵是否按下,然后做出相應(yīng)的動作。其中我們將 2 個按鍵接在了單片機的 P32和 P33 管腳上,此管腳可以設(shè)定為單片機外部中斷 0 和 1 模式,即當(dāng)有按鍵按下時進(jìn)入中斷函數(shù)進(jìn)行處理,處理結(jié)束后可以返回主函數(shù)繼續(xù)運行。按鍵 K1 是對溫度上下限值設(shè)定的切換, K2 K3 是對溫度數(shù)據(jù)的 加減, K4 是設(shè)定確認(rèn)。具體電路如下: 圖 214 按鍵電路 銅陵學(xué)院畢業(yè)論文(設(shè)計) 11 聲光報警電路 此設(shè)計中我們使用的是無源蜂鳴器,即只有觸發(fā)一定頻率的脈沖才能使蜂鳴器發(fā)聲。我們將單片機的 P37 管腳接在 PNP 型三極管上,當(dāng)單片機 P37 口輸出一定頻率的脈沖即可觸發(fā)蜂鳴器發(fā)聲了。同時設(shè)計中還使用了一個發(fā)光二極管進(jìn)行溫度報警指示,將其陽極接在單片機的 P31 管腳,單片機 P31 輸出一個高電平的時候 LED 發(fā)光,反之熄滅。具體電路如下: 圖 215 聲光報警電路 測溫電路 此設(shè)計中我們使用數(shù)字溫度傳感器 DS18B20 的數(shù)據(jù)口接到單片機的 P36 管腳,通過此管腳模擬單總線時序與 DS18B20 進(jìn)行通信。管腳上拉一個電阻,使其通信更加穩(wěn)定運行,具體電路如下: 圖 216 測溫電路 王亮亮:基于單片機的智能溫度檢測器的設(shè)計 12 用 Proteus仿真軟件繪制的完整電路圖如下: 圖 217 總電路 第 3 章 軟件設(shè)計 現(xiàn)在開發(fā)都是追求快速,盡最大的縮短開發(fā)周期,以前的匯編語言現(xiàn)在已經(jīng)很少使用了,現(xiàn)在開發(fā)使用最多的是高級語言,然而 C 語言又是高級語言中的佼佼者。本設(shè)計中我們使用的是 C 語言開發(fā)。 硬件電路中使用到了 LCD1602,如果要對 LCD 進(jìn)行顯示,首先就要對 LCD 進(jìn)行初始化操作,我們參考 LCD1602 數(shù)據(jù)手冊的初始化過程可知:首先進(jìn)行一個短暫延時,然后寫指令 38H,延時一段時間,然后寫入指令 0CH,即顯示開和光標(biāo)設(shè)置,延時一段時間然后寫入指令 06H 即顯示光標(biāo)功能設(shè)置,最后寫入指令 01H,即清屏。因此我們就對 LCD 進(jìn)行初始化完成,就可以在 LCD 上面進(jìn)行顯示操作了。具體程序如下: 銅陵學(xué)院畢業(yè)論文(設(shè)計) 13 void init() //LCD 初始化函數(shù) { delay(1000)。 wrc(0x38)。 wrc(0x38)。 wrc(0x38)。 wrc(0x06)。 wrc(0x0c)。 wrc(0x01)。 } 根據(jù)上面 LCD 初始化過程的介紹,我們就可以將其過程通過流程圖的形式展現(xiàn)出來, LCD1602 初始化程序流程圖如下: 硬件設(shè)計中我們使用單片機的 P0 口控制 LCD1602 的數(shù)據(jù)口 D0D7,單片機的P25,P26,P27 分別控制單片機的 RS,RW, E。因此如果我們要對 LCD 進(jìn)行操作的話我們首先要明確 LCD1602 的讀寫函數(shù)的編寫,我們參考 LCD1602 讀寫時序,如下: 延時 10ms 寫入功能設(shè)定值 38H 寫入模式功能設(shè)置,光標(biāo)開啟, 06H 寫入開啟開關(guān)控制命令 0CH 寫入清屏指令 01H 結(jié)束 開始 王亮亮:基于單片機的智能溫度檢測器的設(shè)計 14 圖 31 LCD1602 讀寫時序圖 在編寫寫命令函數(shù)的時候,首先要將 RS=0,此是選擇命令,在把寫打開 RW=0,最后是觸發(fā)一個低脈沖的使能信號 E,然后將命令發(fā)送給 P2 即可。 在編寫寫數(shù)據(jù)函數(shù)的時候和上面一樣,只是將 RS=1 改變即可,其他的完全一樣。 具體程序如下: void wrc(uint8 c) //LCD 寫命令函數(shù) { delay(1000)。 rs=0。 rw=0。 e=0。 P0=c。 e=1。 delay(10)。 e=0。 } void wrd(uint8 dat) //LCD 寫數(shù)據(jù)函數(shù) { delay(1000)。 rs=1。 rw=0。 e=0。 P0=dat。 e=1。 delay(10)。 e=0。 銅陵學(xué)院畢業(yè)論文(設(shè)計) 15 rs=0。 } 硬件中使用到了按鍵來設(shè)定溫度的上下限值,由于按鍵 K1 和 K4 接在單片機的外部中斷 0 和外部中斷 1 管腳上,因此我們需要對外部中斷 0 和 1 進(jìn)行初始化及中斷函數(shù)才能使用,具體初始化函數(shù)如下: void int0init() //外部中斷 0 初始化 { EA=1。 EX0=1。 IT0=1。 //選擇下降沿觸發(fā) } void int1init() //外部中斷 1 初始化 { EA=1。 EX1=1。 IT1=1。 //選擇下降沿觸發(fā) } void int0() interrupt 0 { delay(1000)。//消抖處理 mode++。 sheding=0。 if(mode==3) { mode=1。 } } void int1() interrupt 2 { delay(1000)。//消抖處理 mode=0。 sheding=1。 } 還有 2 個按鍵接在了單片機的 P34 和 P35 管腳上 ,我們知道按鍵按下后會有一個抖動的問題,因此我們需要在軟件內(nèi)進(jìn)行消抖處理,一般是延時 10ms 進(jìn)行濾波,具體操作如下: delay(1000)。//消抖處理 按鍵處理后我們還需要對按鍵是否松開來判斷,通過一個 while 來判別。 王亮亮:基于單片機的智能溫度檢測器的設(shè)計 16 硬件還使用到了 DS18B20 進(jìn)行溫度的檢測,由于其是單總線通信,因此我們需要嚴(yán)格按照 DS18B20 時序圖來進(jìn)行編寫。初始化時序如下: 圖 32 DS18B20 初始化時序圖 針對初始化時序可以編寫如下函數(shù): void ds18b20init() //18b20 的初始化 { dq=1。 delay(1)。 dq=0。 delay(80)。 dq=1。 delay(5)。 dq=0。 delay(20)。 dq=1。 delay(35)。 } DS18B20 寫時序如下: 圖 32 DS18B20 寫時序圖 銅陵學(xué)院畢業(yè)論文(設(shè)計) 17 DS18B20 讀時序: 圖 32 DS18B20 讀時序圖 因此可以編寫溫度傳感器讀寫函數(shù): void ds18b20wr(u8 dat) //18b20 寫數(shù)據(jù) { u8 i。 for(i=0。i8。i++) { dq=0。 dq=datamp。0x01。 dat=1。 delay(8)。//在時序上只有這一塊對時序要求最準(zhǔn)確,他的時間必須大于 15us dq=1。 delay(1)。 } } u8 ds18b20rd() //18b20 讀數(shù)據(jù) { u8 value,i。 for(i=0。i8。i++) { dq=0。 value=1。 dq=1。 if(dq==1)value|=0x80。 delay(8)。//在這一塊也對時間要求特別準(zhǔn)確,整段程序必須大于 60us } return value。 } 最后就是一些數(shù)據(jù)的處理及顯示函數(shù),具體可以參考附錄。 王亮亮:基于單片機的智能溫度檢測器的設(shè)計 18 按照上面的程序方案即可畫出如下流程圖: 圖 33 軟件設(shè)計流程圖 銅陵學(xué)院畢業(yè)論文(設(shè)計) 19 第 4 章 程序仿真調(diào)試 在 KEIL 中我們編寫好程序,通過 KEIL 中的編譯器編譯,使程序確保語法是無錯誤的,在沒有錯誤的情況下我們在使用 KEIL 中的軟件仿真一步步仿真,通過查看相關(guān)寄存器的值確認(rèn)程序無誤?;蛘咄ㄟ^編譯生成的 HEX 文件燒寫到仿真軟件中,看具體的效果,直到效果無誤即可。 在編 寫程序我們使用的是 KEIL C51,在期內(nèi)可以軟件調(diào)試或者也可以使用仿真芯片來仿真測試。 KEIL C51簡介 KEIL C51 是由 ARM 公司開發(fā)的,針對 51 單片機開發(fā)設(shè)計,內(nèi)部具體編譯調(diào)試軟件仿真等等一系列功
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1