欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
89c51單片機溫度監測
[打印本頁]
作者:
2916266236
時間:
2018-11-17 11:39
標題:
89c51單片機溫度監測
設計的意義最近幾年來,隨著科技的飛速發展,單片機領域正在不斷的走向社會各個角落,還帶動傳統控制檢測日新月異更新。在實時運作和自動控制的單片機應用到系統中,單片機如今是作為一個核心部件來使用,僅掌握單片機方面知識是不夠的,還應根據其具體硬件結構,以及針對具體應用對象特點的軟件結合,加以完善。“單片機原理及應用課程設計”是電子類專業的學科基礎科,它是繼“匯編語言程序設計”,“接口技術”等課程之后開出的實踐環節課程。與此同時,現代社會越來越多的場所會涉及到溫度與濕度并將其顯示。由于溫度與濕度不管是從物理量本身還是在實際人們的生活中都有著密切的關系,例如:冬天溫度為18至25℃,濕度為30%至80%;夏天溫度為23至28℃,濕度為30%至60%。在此范圍內感到舒適的人占95%以上。在裝有空調的室內,室溫為19至24℃,濕度為40%至50%時,人會感到最舒適。如果考慮到溫、濕度對人思維活動的影響,最適宜的室溫度應是工作效率高。18℃,濕度應是40%至60%,此時,人的精神狀態好,思維最敏捷。所以,本課程設計就是通過單片機驅動LCD1602,液晶顯示溫濕度,通過此設計,可以發現本設計有一定的擴展性,而且可以作為其他有關設計的基礎。
2設計原理2.1設計目標2.1.1基本功能檢測溫度、濕度顯示溫度、濕度過限報警2.1.2主要技術參數溫度檢測范圍:-30℃至+55℃測量精度:2℃濕度檢測范圍:20%-90%RH檢測精度:5%RH顯示方式:溫度:四位顯示濕度:四位顯示報警方式:三極管驅動的蜂鳴器報警2.2設計原理溫濕度監測系統要滿足以下條件:溫濕度監測系統能完成數據采集和處理、顯示、串行通信、輸出控制信號等多種功能。由數據采集、數據調理、單片機、數據顯示等4個大的部分組成。該測控系統具有實時采集(檢測糧庫內的溫濕度)、實時顯示(對監測到的進行顯示)、實時警報(根據監測的結果,超出預設定的值的進行蜂鳴警告)的功能。傳感器是實現測量首要環節,是監測系統的關鍵部件,如果沒有傳感器對原始被測信號進行準確可靠的捕捉和轉換,一切準確的測量和控制都將無法實現。工業生產過程的自動化測量和控制,幾乎主要依靠各種傳感器來檢測和控制生產過程中的各種參量,使設備和系統正常運行在最佳狀態,從而保證生產的高效率和高質量。一般溫濕度控制系統中的溫濕度測量均采用熱敏電阻與濕敏電容,這種傳統的模擬式溫濕度傳感器一般都需要設計信號調理電路并經過復雜的校準和標定過程,因此測量精度難以保證,且在線性度、重復性、互換性等方面也存在一定
問題。這種傳感器只適合那些測量點數較少,對精度要求不高的場合。因此設計出一款精度高、穩定性好、成本低的溫濕度檢測控制系統將具有一定的市場。2.2.1溫濕度傳感器的選擇DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為4針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供。2.2.2信號采集通道的選擇在本設計系統中,溫度輸入信號為4路的模擬信號,這就需要多通道結構采用多路分時的模擬量輸入通道。這種結構的模擬量通道特點為:對ADC、S/H要求高。處理速度慢。硬件簡單,成本低。軟件比較復雜。如圖1所示:信號調理電路信號調理電路信號調理電路多路切換器采樣/保持器A/D轉換器接口CPU圖1多路分時的模擬量輸入通道
2.2.3系統的總體框圖系統的總體設計框圖如圖2所示:本設計由信號采集、信號分析和信號處理三個部分組成的。(一)信號采集由DHT11溫濕度傳感器和多路模式選擇開關組成;(二)信號分析由A/D轉換器和單片機80C51組成;(三)信號處理由串行口LCD顯示器和報警系統等組成。DHT11溫濕度檢測多路模式選擇開關單片機串行口與LCD報警電路ADC0832圖2系統總體框圖
3主要芯片簡介3.1DHT11數字傳感器3.1.1主要特性DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為4針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供。3.1.2應用領域該DHT11可以用于暖通空調、測試及檢測設備、汽車、數據記錄器、消費品、自動控制、濕度調節器及醫療等應用領域。3.1.3引腳圖DHT11有四個引腳,3號引腳一般懸空,如圖3所示。DHT11的供電電壓為3—5.5V。傳感器上電后,要等待1s以越過不穩定狀態在此期間無需發送任何指令。電源引腳(VDD,GND)之間可增加一個100nF的電容,用以去耦濾波。建議連接線長度短于20米時用5K上拉電阻,大于20米時根據實際情況使用合適的上拉電阻。
3.1.4封裝信息封裝圖如圖4所示:3.2液晶顯示器LCD1602在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產品的通過器件,如在計算器、萬用表、電子表及很多家用電子產品中都可以看到,顯示的主要是數字、專用符號和圖形。在單片機的人機交流界面中,一般的輸出方式有以下幾種:發光管、LED數碼管、液晶顯示器。發光管和LED數碼管比較常用,軟硬件都比較簡單,在前面章節已經介紹過,在此不作介紹,本章重點介紹字符型液晶顯示器的應用。在單片機系統中應用晶液顯示器作為輸出器件有以下幾個優點:(一)顯示質量高(二)數字式接口圖3DHT11引腳圖圖4DHT11封裝圖
(三)體積小、重量輕(四)功耗低3.2.1液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規模集成電路直接驅動、易于實現全彩色顯示的特點,目前已經被廣泛應用在便攜式電腦、數字攝像機、PDA移動通信工具等眾多領域。3.2.2液晶顯示器的分類液晶顯示的分類方法有很多種,通常可按其顯示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據驅動方式來分,可以分為靜態驅動(Static)、單純矩陣驅動(SimpleMatrix)和主動矩陣驅動(ActiveMatrix)三種。3.2.3液晶顯示器各種圖形的顯示原理首先是液晶的線段的顯示。點陣圖形式液晶由M×N個顯示單元組成,假設LCD顯示屏有64行,每行有128列,每8列對應1字節的8位,即每行由16字節,共16×8=128個點組成,屏上64×16個顯示單元與顯示RAM區1024字節相對應,每一字節的內容和顯示屏上相應位置的亮暗對應。例如屏的第一行的亮暗由RAM區的000H——00FH的16字節的內容決定,當(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=00H,......(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。其次是液晶字符的顯示。用LCD顯示一個字符時比較復雜,因為一個字符由6×8或8×8點陣組成,既要找到和顯示屏幕上某幾個位置對應的顯示RAM區的8字節,還要使每字節的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內帶字符發生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據在LCD上開始顯示的行列號及每行的列數找出顯示RAM對應的地址,設立光標,在此送上該字符對應的代碼即可。
3.2.4LCD1602的基本參數及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如下圖5所示:LCD1602的主要技術參數:1、顯示容量:16×2個字符2、芯片工作電壓:4.5—5.5V3、工作電流:2.0mA(5.0V)4、模塊最佳工作電壓:5.0V5、字符尺寸:2.95×4.35(W×H)mm引腳功能說明LCD1602采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如圖6所示:圖5LCD1602尺寸圖
編號符號引腳說明編號符號引腳說明1VSS電源地9D2數據2VDD電源正極10D3數據3VL液晶顯示偏壓11D4數據4RS數據/命令選擇12D5數據5R/W讀/寫選擇13D6數據6E使能信號14D7數據7D0數據15BLA背光源正極8D1數據16BLK背光源負極圖6:引腳接口說明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度。第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。第7~14腳:D0~D7為8位雙向數據線。第15腳:背光源正極。第16腳:背光源負極。圖6引腳接口說明
3.2.5LCD1602的指令說明及時序1602液晶模塊內部的控制器共有11條控制指令,如圖7所示:序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關控制0000001DCB5光標或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發生存貯器地址0001字符發生存貯器地址8置數據存貯器地址001顯示數據存貯器地址9讀忙標志或地址01BF計數器地址10寫數到CGRAM或DDRAM)10要寫的數據內容11從CGRAM或DDRAM讀數11讀出的數據內容1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。圖7控制命令表
指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發生器RAM地址設置。指令8:DDRAM地址設置。指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。指令10:寫數據。指令11:讀數據。3.2.6LCD1602的RAM地址映射及標準字庫表液晶顯示模塊是一個慢顯示器件,所以在執行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖8是1602的內部顯示地址。例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數據應該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。圖8LCD1602內部顯示地址
在對液晶模塊的初始化中要先設置其顯示模式,在液晶模塊顯示字符時光標是自動右移的,無需人工干預。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態。1602液晶模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。3.2.7硬件原理圖1602液晶顯示模塊可以和單片機AT89C51直接接口,電路如圖9所示:3.3單片機89C51為了設計此系統,我們采用了80C51單片機作為控制芯片。89C51是MCS-51系列單片機中CHMOS工藝的一個典型品種;其它廠商以8951為基核開發出的CMOS工藝單片機產品統稱為89C51系列。該系列單片機是采用高性能的靜態89C51設計由先進CMOS工藝制造并帶有非易失性Flash程序存儲器全部支持圖9硬件原理圖
12時鐘和6時鐘操作P89C51X2和P89C52X2/54X2/58X2分別包含128字節和256字節RAM32條I/O口線3個16位定時/計數器6輸入4優先級嵌套中斷結構1個串行I/O口可用于多機通信I/O擴展或全雙工UART以及片內振蕩器和時鐘電路。此外,由于器件采用了靜態設計,可提供很寬的操作頻率范圍,頻率可降至0。可實現兩個由軟件選擇的節電模式,空閑模式和掉電模式,空閑模式凍結CPU但RAM定時器,串口和中斷系統仍然工作,掉電模式保存RAM的內容,但是凍結振蕩器導致所有其它的片內功能停止工作。由于設計是靜態的時鐘可停止而不會丟失用戶數據,運行可從時鐘停止處恢復。3.3.189C51的基本結構89C51的微處理器(CPU);運算器;累加器ACC;寄存器B;程序狀態字寄存器PSW;控制器;程序計數器PC;指令寄存器IR;定時與控制邏輯;89C51的片內存儲器;內部ROM容量4K字節;內部RAM容量128字節;89C51的I/O口及功能單元;四個8位的并行口,即P0~P3。它們均為雙向口,既可作為輸入,又可作為輸出。每個口各有8條I/O線;有一個全雙工的串行口(利用P3口的兩個引腳P3.0和P3.1);有2個16位的定時/計數器;有1套完善的中斷系統;89C51的特殊功能寄存器(SFR);低功耗的閑置和掉電模式;片內振蕩器和時鐘電路;
3.3.289C51的引腳圖89C51的引腳圖如圖10所示:89C51的制作工藝為CMOS,采用40管腳雙列直插DIP封裝,引腳說明如下:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。圖1089C51引腳圖
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示:P3.0RXD(串行輸入口);P3.1TXD(串行輸出口);P3.2/INT0(外部中斷0);P3.3/INT1(外部中斷1);P3.4T0(記時器0外部輸入);P3.5T1(記時器1外部輸入);P3.6/WR(外部數據存儲器寫選通);P3.7/RD(外部數據存儲器讀選通);P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內
部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3.3.389C51的存儲器配置89C51的存儲器配置如圖11所示:對于程序存儲器,與ROM密切相關的兩個引腳是地址鎖存允許信號端和外部程序存儲器允許輸出信號端。當ROM容量不夠時,盡量選擇高容量存儲器空間的單片機,如89C52,89C54,89C58等,應避免外擴程序存儲器,因為會增加硬件負擔,通過16位PC尋址,最大可尋址64kB地址空間。數據存儲器用于存放運算中間的結果、數據暫存、緩沖、標志位、待測程序等功能。片內的128B的RAM地址為00H~7FH,供用戶做RAM用,但是在這中間的前32單元,00H~1FH即引用地址尋址做用戶RAM用,常常做工作寄存器區,分做四組,每組由8個單元組成通用寄存器R0~R7,任何時候都由其中一組作為當前工作寄存器,通過RS0,RS1的內容來決定選擇哪一個工作寄存器。低128字節中的20H~2FH共16字節可用位尋址方式訪問各位,共128個位地址,30H~7FH共80個單元為用戶RAM區,作堆棧或數據緩沖用,片內RAM圖1189C51存儲器配置
不夠用時,須擴展片外數據存儲器。此時單片機通過P2口和P0口選出6位地址,使用ALE作低8位的鎖存信號,再由P0口寫入或讀出數據。寫時用,讀時用做外部數據存儲器的選通信號。3.3.489C51的工作模式89C51有四種工作模式:模式0,模式1,模式2,模式3。模式0:選擇定時器的高8位和低5位組成一個13位定時器/計數器。TL低5位溢出時向TH進位,TH溢出時向中斷標志位TF進位,并申請中斷。定時時間t=(213-初值)×振蕩周期×12;計數長度位213=8192個外部脈沖。模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時時間t=(216-初值)×振蕩周期×12;計數長度位216=65536個外部脈沖。模式2:把TL0和TL1配置成一個自動重裝載的8位定時器/計數器。TL用作8位計數器,TH用以保存初值。TL計數溢出時不僅使TF0置1,而且還自動將TH中的內容重新裝載到TL中。定時時間t=(28-初值)×振蕩周期×12;計數長度位28=256個外部脈沖。模式3:對T0和T1不大相同。若設T0位模式3,TL0和TH0被分為兩個相互獨立的8位計數器。TL0為8位計數器,功能與模式0和模式1相同,可定時可計數。TH0僅用作簡單的內部定時功能,它占用了定時器T1的控制位TR1和中斷標志位TF1,啟動和關閉僅受TR1控制。定時器T1無工作模式3,但T0在工作模式3時T1仍可設置為0~2。3.3.589C51的系統時鐘設計時鐘電路是用來產生89C51單片機工作時所必須的時鐘信號,89C51本身就是一個復雜的同步時序電路,為保證工作方式的實現,89C51在唯一的時鐘信號的控制下嚴格的按時序執行指令進行工作,時鐘的頻率影響單片機的速度和穩定性。通常時鐘由于兩種形式:內部時鐘和外部時鐘。我們系統采用內部時鐘方式來為系統提供時鐘信號。89C51內部有一個用于構成振蕩器的高增益反向放大器,該放大器的輸入輸出引腳為XTAL1和XTAL2,它們跨接在晶體振蕩器和用于微調的電容,便構成了一個自激勵振蕩器。電路中的C1、C2的選擇在30PF左右,但電容太小會影響振蕩的頻率、穩定性和快速性。晶振頻率為在1.2MHZ~12MHZ之間,頻率越高單片機的速度
就越快,但對存儲器速度要求就高。為了提高穩定性我們采用溫度穩定性好的NPO電容,采用的晶振頻率為12MHZ。時鐘電路如圖12所示:圖12系統時鐘電路
4硬件與軟件4.1硬件設計4.1.1硬件要求根據設計要求確定了系統的總體方案,整個系統由單片機、溫濕度傳感器、顯示模塊和報警器等幾部分組成。溫濕度傳感器監測值傳輸給單片機,并液晶顯示。當單片機監測到的數值超出所設定閾值時,驅動蜂鳴器報警。4.1.2具體硬件設計單片機是整個系統的控制中樞,它指揮外圍器件協調工作,從而完成特定的功能。硬件實現上采用模塊化設計,每一模塊只實現一個特定功能,最后再將各個模塊搭接在一起。這種設計方法可以降低系統設計的復雜性。系統電路原理圖如圖13所示。本系統主要硬件設計包括電源電路、蜂鳴器電路、晶振電路、復位電路、LCD顯示電路以及溫濕度傳感器電路。控制電路的核心器件AT89C52單片機,屬于MCS-51系列。AT89C52是一種低功耗、高性能的CMOS8位微控制器,具有8K在系統可編程Flash存儲器,采用的工藝是Atmel公司的高密度非易失存儲器技術;片上Flash允許程序存儲器在系統可編程,亦適于常規編程器;在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得AT89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案;價格低廉、性能可靠、抗干擾能力強。因此廣泛應用于工業控制和嵌入式系統中。
系統的蜂鳴器電路、振蕩電路、復位電路如圖14、圖15、圖16所示。圖13系統電路原理圖圖14蜂鳴器電路
蜂鳴器額定電流IB≤30mA,而對于AT89C52單片機,P1口的灌電流為1.6mA,拉電流為60μA,由此可見,僅靠單片機的P1口電流是不能驅動蜂鳴器的,必須使用集晶體管放大電路,為了使單片機消耗的功率更小,所以使用PNP型晶體管9012。AT89C52采用的晶振電路采用12MHz的無源晶振,微調電容大小取30pF。顯示模塊選用1602字符型液晶模塊,是目前工控系統中使用最為廣泛的液晶屏之一,電路圖如圖17所示。1602字符型液晶模塊是點陣型液晶,驅動方便,經編碼后顯示內容多樣化。系統的輸入模塊采用中斷掃描的4×4矩陣鍵盤,相比定時掃描方式,提高了MCU的使用效率。圖15振蕩電路圖16復位電路
4.2軟件設計系統軟件程序基于Keil開發平臺,采用C語言編寫。本程序采用模塊化程序方法,主要分為一下兩個模塊:LCD初始化顯示模塊DHT11數據采集模塊LCD初始化顯示流程圖和DHT11數據采集流程圖分別如圖18、圖19所示:圖17LCD1602電路圖
圖18LCD初始化顯示流程圖圖19DHT11數據采集流程圖
5設計總結課程設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程。隨著科學技術發展的日新日異,單片機已經成為當今計算機應用中空前活躍的領域,在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發技術是十分重要的。回顧起此次單片機課程設計,我仍感慨頗多。在接近一星期的日子里,可以說是苦多于甜,雖然如此,卻學到很多很多的的東西,同時還鞏固了以前所學過的知識,并學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合的重要性,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正讓自己有所了解,有所體會,從而提高自己的實際動手能力和獨立思考的能力。當然,在設計的過程中遇到了很多問題,但是通過這些問題,我又能發現自己的不足之處。雖然問題重重,但在老師和同學的幫助下,問題都得以解決,所以,非常感謝那些幫助過我的老師和同學。總之,通過這次課程設計,我知道了很多,了解了很多,學到了很多。
參考文獻[1]何立民.單片機高級教程-應用與設計[M].北京航空航天大學出版社,2002.[2]徐愛鈞.單片機高級語言C51Windows環境編程與應用[M].電子工業出版社,2001.[3]白雪冰,張延林,等.單片機原理及應用[M].哈爾濱東北林業大學出版社,2006.[4]張佳薇,孫麗萍,等.傳感器原理與應用[M].哈爾濱東北林業大學出版社,2003.
附錄源程序:#include<reg52.h>#defineuintunsignedint#defineucharunsignedchartypedefbitBOOL;sbitio=P1^0;sbitrs=P2^5;sbitrw=2^6;sbitep=P2^7;uchardata_byte;ucharRH,RL,TH,TL;voiddelay(ucharms){//延時子程序uchari;while(ms--){for(i=0;i<250;i++);}}voiddelay1()//延時10us{uchari;i--;i--;i--;i--;i--;i--;}voidlongdelay(uchars)//長延時{
while(s--){delay(60);}}BOOLlcd_bz()//測試LCD忙碌狀態{BOOLresult;rs=0;rw=1;ep=1;result=(BOOL)(P1&0x80);ep=0;returnresult;}voidwrite_cmd(ucharcmd)//寫指令{while(lcd_bz());rs=0;rw=0;ep=0;P1=cmd;ep=1;ep=0;}voidwrite_addr(ucharaddr)//寫地址{write_cmd(addr|0x80);}voidwrite_byte(uchardat)//寫字節{while(lcd_bz());rs=1;
rw=0;ep=0;P1=dat;ep=1;ep=0;}voidlcd_init()//初始化{write_cmd(0x38);delay(1);write_cmd(0x08);delay(1);write_cmd(0x01);delay(1);write_cmd(0x06);delay(1);write_cmd(0x0c);delay(1);}voiddisplay(ucharaddr,ucharq)//在某一地址上顯示一字節{delay(10);write_addr(addr);write_byte(q);longdelay(2);}voidstart()//開始信號{io=1;delay1();io=0;delay(20);//>18msio=1;delay1();//20-40us
delay1();delay1();delay1();delay1();}ucharreceive_byte()//接收一個字節{uchari,temp,count;for(i=0;i<8;i++){count=2;while((!io)&&count++)//等待50us低電平結束temp=0;delay1();delay1();delay1();delay1();if(io==1)temp=1;count=2;while((io)&&count++);if(count==1)break;data_byte<<=1;data_byte|=temp;}returndata_byte;}voidreceive()//接收數據{ucharT_H,T_L,R_H,R_L,check,num_check;ucharcount;start();//開始信號io=1;if(!io)//讀取DHT11響應信號{count=2;while((!io)&&
基于單片機的溫濕度檢測(完稿).pdf
2018-11-17 11:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.11 MB, 下載次數: 15, 下載積分: 黑幣 -5
作者:
abcav
時間:
2020-7-2 22:33
這啥也沒有啊
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1