恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告_第1頁
恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告_第2頁
恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告_第3頁
恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告_第4頁
恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告設(shè)計(jì)名稱:恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共1頁,當(dāng)前為第1頁。

基于單片機(jī)的恒溫箱控制系統(tǒng)設(shè)計(jì)恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共1頁,當(dāng)前為第1頁。摘要:本設(shè)計(jì)是基于AT89S52單片機(jī)的恒溫箱控制系統(tǒng),系統(tǒng)分為硬件和軟件兩部分,其中硬件包括:電源、溫度傳感器、顯示、控制、晶閘管驅(qū)動和報警的設(shè)計(jì);軟件包括:鍵盤管理程序設(shè)計(jì)、顯示程序設(shè)計(jì)、PID控制程序設(shè)計(jì)和溫度報警程序設(shè)計(jì)。編寫程序結(jié)合硬件進(jìn)行調(diào)試,能夠?qū)崿F(xiàn)設(shè)置和調(diào)節(jié)初始溫度值,進(jìn)行液晶顯示,當(dāng)加熱到設(shè)定值后立刻報警。本設(shè)計(jì)從實(shí)際應(yīng)用出發(fā)選取了體積小、精度相對高的數(shù)字式溫度傳感元件DS18B20作為溫度采集器,單片機(jī)AT89S52為主控芯片,液晶作為顯示輸出,實(shí)現(xiàn)了對溫度的實(shí)時測量與恒定控制。關(guān)鍵詞:單片機(jī)、溫度傳感器、恒溫、聲光報警、PID。引言:溫度控制是工業(yè)生產(chǎn)過程中經(jīng)常遇到的過程控制,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用,其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計(jì)一種較為理想的溫度控制系統(tǒng)是非常有價值的。對于不同場所、不同工藝、所需溫度高低范圍不同、精度不同,則采用的測溫元件、測溫方法以及對溫度的控制方法也將不同;產(chǎn)品工藝不同、控制溫度的精度不同、時效不同,則對數(shù)據(jù)采集的精度和采用的控制算法也不同。因而,對溫度的測控方法多種多樣。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測量和控制技術(shù)也得到了迅速的發(fā)展和廣泛的應(yīng)用。利用微機(jī)對溫度進(jìn)行測控的技術(shù),也便隨之而生,并得到日益發(fā)展和完善,越來越顯示出其優(yōu)越性。然而現(xiàn)有的溫度傳感元件大多為模擬器件(熱電耦)體積大、應(yīng)用復(fù)雜、而且不容易實(shí)現(xiàn)數(shù)字化等缺點(diǎn),阻礙了應(yīng)用領(lǐng)域的擴(kuò)展。本設(shè)計(jì)從實(shí)際應(yīng)用出發(fā)選取了體積小、精度相對高的數(shù)字式溫度傳感元件DS18B20作為溫度采集器,單片機(jī)AT89S52作為主控芯片,數(shù)碼管作為顯示輸出,實(shí)現(xiàn)了對溫度的實(shí)時測量與恒定控制。本課題設(shè)計(jì)要求如下圖所示,恒溫箱采用木箱或紙箱(外形尺寸不大于30cm×30cm×30cm),內(nèi)置白熾燈泡(功率不大于100W)用于加熱。30cm30cm30cm木箱或紙箱白熾燈泡≤100W自制恒溫箱要求恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共2頁,當(dāng)前為第2頁。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共2頁,當(dāng)前為第2頁。(1)溫度采集傳感器采用熱電阻或熱電偶,或一體化數(shù)字溫度傳感器DS18B20。(2)控制燈泡亮度或發(fā)熱量,采用可控硅平滑控制。(3)采用單片機(jī)作為控制器。(4)采用LCD的液晶顯示器作為顯示器,同時顯示給定溫度和實(shí)際溫度。(5)采用自制按鍵的鍵盤作為溫度給定值輸入。(6)恒溫箱實(shí)際溫度達(dá)到給定值時(誤差要求±1℃)需聲光提示,聲音延時5秒后停止。(7)恒溫箱最高溫度≤50℃。二、總體方案設(shè)計(jì)系統(tǒng)整體框圖如下圖:圖1系統(tǒng)結(jié)構(gòu)框圖1.電源模塊首先是電源模塊,利用變壓器把220V的交流電轉(zhuǎn)為正負(fù)12V的交流電,再用二極管橋式整流電路,整流出直流電。之后用大電容平波,小電容濾波,之后在用7805穩(wěn)壓芯片穩(wěn)出5V的直流電,供給各個部分。其次是單片機(jī)的外圍電路,其中包括有單片機(jī)最小系統(tǒng)、LCD顯示、按鍵、晶閘管控制電路以及溫度采集電路。2.溫度傳感器恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共3頁,當(dāng)前為第3頁。方案一:使用熱敏電阻作為傳感器,用熱敏電阻與一個相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個電阻變化的分壓值,并進(jìn)行A/D轉(zhuǎn)換,此設(shè)計(jì)方案需要A/D轉(zhuǎn)換電路,增加了硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格性的,會產(chǎn)生較大的測量誤差。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共3頁,當(dāng)前為第3頁。方案二:采用溫度傳感器鉑電阻Pt1000。鉑熱電阻的物理化學(xué)性能在高溫和氧化性介質(zhì)中很穩(wěn)定,它能用作工業(yè)測溫元件,且此元件線性較好。在0—100攝氏度時,最大非線性偏差小于0.5攝氏度。鉑熱電阻與溫度關(guān)系是,Rt=R0(1+At+Bt);其中Rt是溫度為t攝氏度時的電阻;R0是溫度為0攝氏度時的電阻;t為任意溫度值,A,B為溫度系數(shù)。方案三:采用模擬溫度傳感器AD590K,AD590K具有較高精度和重復(fù)性(重復(fù)性優(yōu)于0.1℃),其良好的非線性可以保證優(yōu)于±0.1℃的測量精度。但其測量的值需要經(jīng)過運(yùn)算放大、模數(shù)轉(zhuǎn)換再傳給單片機(jī),硬件電路較復(fù)雜,調(diào)試也會相對困難,所以本系統(tǒng)不宜采用此法。方案四:采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器,而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以去除A/D模塊,降低了硬件成本,簡化系統(tǒng)電路。另外,數(shù)字式溫度傳感器還具有測量精度高,測量范圍廣等優(yōu)點(diǎn)。綜合以上四種方案,本設(shè)計(jì)采用第四種方案,利用數(shù)字溫度計(jì)DS18B20作為溫度傳感器。3.顯示部分方案一:溫度的顯示可以用數(shù)碼管,但數(shù)碼管只能顯示簡單的數(shù)字,它有電路復(fù)雜,占用資源較多,顯示信息少等缺點(diǎn)。方案二:1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。顯示字母和數(shù)字比較方便,控制簡單,成本較低。我們設(shè)計(jì)的系統(tǒng)需要顯示更多的信息,所以考慮顯示功能更好的液晶顯示,要求能顯示更多的數(shù)據(jù),增強(qiáng)顯示信息的可讀性,看起來更方便。綜合以上兩種方案,本設(shè)計(jì)采用方案二,用1602液晶顯示器來顯示數(shù)據(jù)。4.輸出控制方案一:采用繼電器,易于控制,且實(shí)行比較簡單,但強(qiáng)電和弱電不能很好的隔離,抗干擾能力極差,開關(guān)頻率不能太高,燈泡會一直閃爍。方案二:采用固態(tài)繼電器,易于控制,電路簡單,但需要PWM波來進(jìn)行控制,普通51單片機(jī)無PWM口,故不采用此法。方案三:采用晶閘管,控制信號與輸出信號可以很好的隔離,增強(qiáng)了系統(tǒng)的安全性和抗干擾能力。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共4頁,當(dāng)前為第4頁。綜合以上三種方案,本設(shè)計(jì)采用晶閘管控制負(fù)載工作。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共4頁,當(dāng)前為第4頁。三、硬件電路設(shè)計(jì)及工作原理1.系統(tǒng)功能及工作流程介紹根據(jù)恒溫箱控制器的功能要求,并結(jié)合對51系列單片機(jī)的資源分析,即單片機(jī)軟件編程自由度大,可用編程實(shí)現(xiàn)各種控制算法和邏輯控制。所以采用AT89C52作為電路系統(tǒng)的控制核心。恒溫箱控制器的總體布局如圖1所示。按鍵將設(shè)置好的溫度值傳給單片機(jī),通過溫度顯示模塊顯示出來。初始溫度設(shè)置好后,單片機(jī)開啟輸出控制模塊,使電熱器開始加熱,同時將從數(shù)字溫度傳感器DS18B20測量到的溫度值實(shí)時的顯示出來,當(dāng)加熱到設(shè)定溫度值時,單片機(jī)控制聲光報警模塊,發(fā)出聲光報警,當(dāng)超過設(shè)置溫度關(guān)閉加熱器。當(dāng)自然冷卻到設(shè)定溫度以下時,單片機(jī)再次啟動加熱器,如此循環(huán)反復(fù),以達(dá)到恒溫控制的目的。系統(tǒng)結(jié)構(gòu)框圖如圖1所示,系統(tǒng)基本硬件電路圖如圖2所示。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共5頁,當(dāng)前為第5頁。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共5頁,當(dāng)前為第5頁。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共6頁,當(dāng)前為第6頁。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共6頁,當(dāng)前為第6頁。圖2基本硬件電路圖系統(tǒng)硬件設(shè)計(jì)(1)DS18B20測溫電路DS18B20數(shù)字溫度計(jì)是Dallas公司生產(chǎn)的1-Wire器件,即單總線器件。與傳統(tǒng)的熱敏電阻有所不同,DS18B20可直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號,以供單片機(jī)處理,具有連線簡單、微型化、低功耗、高性能、抗干擾能力強(qiáng)、精度高等特點(diǎn)。因此用它來組成一個測溫系統(tǒng),具有電路簡單,在一根通信線上可以掛很多這樣的數(shù)字溫度計(jì),十分方便。目前已被眾多行業(yè)進(jìn)行廣泛的運(yùn)用(鍋爐、溫控表糧庫、冷庫、工業(yè)現(xiàn)場溫度監(jiān)控、儀器儀表溫度監(jiān)控、農(nóng)業(yè)大棚溫度監(jiān)控等)。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共7頁,當(dāng)前為第7頁。通過編程,DS18B20可以實(shí)現(xiàn)9~12位的溫度讀數(shù)。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從微處理器到DS18B20僅需連接一條信號線和地線。讀、寫和執(zhí)行溫度變換所需的電源可以由數(shù)據(jù)線本身提供,而不需要外部電源。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共7頁,當(dāng)前為第7頁。每片DS18B20在出廠時都設(shè)有唯一的產(chǎn)品序列號,因此多個DS18B20可以掛接于同一條單線總線上,這允許在許多不同的地方放置溫度傳感器,特別適合于構(gòu)成多點(diǎn)溫度測控系統(tǒng)由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S52單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。1-Wire總線支持一主多從式結(jié)構(gòu),硬件上需外接上拉電阻。當(dāng)一方完成數(shù)據(jù)通信需要釋放總線時,只需將總線置高點(diǎn)平即可;若需要獲得總線進(jìn)行通信時則要監(jiān)視總線是否空閑,若空閑,則置低電平獲得總線控制權(quán)。

圖3DS18B20測溫電路(2)輸出控制電路加熱電路中采用MOC3023的目的是實(shí)現(xiàn)強(qiáng)電與弱電的隔離,其在電路中的工作原理是單片機(jī)根據(jù)傳感器和設(shè)定開關(guān)輸入的控制指令,控制電器的電源通斷。BTA16是小型塑封雙向晶閘管,當(dāng)電源控制電路的輸出管腳送出的開關(guān)控制指令為高電平,MOC3023截止,BTA16截止,電器被關(guān)閉;當(dāng)電源控制電路送出的開關(guān)控制指令為低電平,MOC3023導(dǎo)通,BTA16導(dǎo)通,電器被打開。R4是BTA16的保護(hù)電路。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共8頁,當(dāng)前為第8頁。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共8頁,當(dāng)前為第8頁。圖4光耦控制輸出(3)顯示電路1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊它有若干個5X7或者5X11等點(diǎn)陣字符位組成,每個點(diǎn)陣字符位都可以顯示一個字符。顯示電路采用LCD1602液晶顯示,如圖(7)所示,圖中只畫出了其相應(yīng)的接口,3腳用于調(diào)節(jié)LCD1602的背光,4、5、6為LCD1602的控制口,用于控制其寫入或是讀出指令,7至14腳為LCD1602的數(shù)據(jù)口,將數(shù)傳送到LCD1602中。圖5LCD1602顯示電路LCD1602的特性:+5V電壓,對比度可調(diào);內(nèi)含復(fù)位電路;提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能;恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共9頁,當(dāng)前為第9頁。有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM;恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共9頁,當(dāng)前為第9頁。內(nèi)建有160個5X7點(diǎn)陣的字型的字符發(fā)生器CGROM,8個可由用戶自定義的5X7的字符發(fā)生器CGRAM;基本操作時序:讀狀態(tài):輸入:RS=L,RW=H,E=H;輸出:DB0~DB7=狀態(tài)字;寫指令:輸入:RS=L,RW=L,E=下降沿脈沖,DB0~DB7=指令碼;輸出:無。讀數(shù)據(jù):輸入:RS=H,RW=H,E=H;輸出:DB0~DB7=數(shù)據(jù);寫數(shù)據(jù):輸入:RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù);輸出:無。LCD1602的各種指令不再一一說明。(4)溫度越線報警電路報警電路如圖8所示,該電路采用一個小功率三極管Q1驅(qū)動蜂鳴器BELL,當(dāng)單片機(jī)接收到超額溫度信號或危險信號時,輸出腳BELL輸出高點(diǎn)平,Q1導(dǎo)通,致使蜂鳴器BELL得電工作,發(fā)出報警聲。同時,電路中的發(fā)光二極管指示出電路的工作狀態(tài)。圖6報警電路(5)過零檢測恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共10頁,當(dāng)前為第10頁。TLP521-2是一個內(nèi)部集成兩個光耦的芯片,主要用于過零檢測,當(dāng)電源的正弦交流電過零時,在三極管的集電極的會產(chǎn)生一個下降沿和一個上升沿,這樣單片機(jī)的外部中斷口可以識別到,最終用于控制晶閘管的導(dǎo)通角。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共10頁,當(dāng)前為第10頁。圖7過零檢測電路四、系統(tǒng)的應(yīng)用軟件設(shè)計(jì)軟件描述本程序的主要功能就是控制晶閘管的導(dǎo)通角,來控制白熾燈的亮度,最終達(dá)到控制溫度的目的。設(shè)置有兩個按鍵,一個按鍵可以增加期望溫度,另一個可以減少期望溫度,步進(jìn)最小是0.1攝氏度。有一個LCD顯示屏,可以顯示當(dāng)前溫度和期望,當(dāng)實(shí)際溫度達(dá)到期望溫度時,蜂鳴器和LED燈報警5s后停止。運(yùn)用的控制策略是PID算法,PID算法的精華之處就是利用偏差進(jìn)行控制。P代表的是比例,這個參數(shù)可是使調(diào)節(jié)更快速,I是積分,這個參數(shù)可以消除穩(wěn)態(tài)誤差,D是微分,可以超前控制。根據(jù)以上對操作和工作過程的分析,程序應(yīng)分為兩個階段:一是通電或復(fù)位后到給定溫度;二是檢測并顯示系統(tǒng)的實(shí)時溫度,并根據(jù)檢測的結(jié)果控制電熱器,這時系統(tǒng)不接收鍵盤的輸入。因此,程序可以分為以下幾個功能模塊:溫度設(shè)定和啟動;顯示;溫度檢測;溫度控制以及報警。(1)鍵盤管理模塊當(dāng)通電以后,系統(tǒng)進(jìn)入鍵盤管理狀態(tài),單片機(jī)只接收設(shè)定溫度和啟動。當(dāng)檢測到有鍵閉合時先去除抖動,這里采用軟件延時的方法,延時一段時間后,再確定是否有鍵閉合,然后將設(shè)定好的值送入預(yù)置溫度數(shù)據(jù)區(qū),并調(diào)用溫度合法檢測報警程序,當(dāng)設(shè)定溫度超過最大值時就會報警,最后當(dāng)啟動鍵閉合時啟動加熱。鍵盤設(shè)定:用于溫度設(shè)定。共兩個按鍵。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共11頁,當(dāng)前為第11頁。KEY1(P3.6):設(shè)置溫度“+”。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共11頁,當(dāng)前為第11頁。KEY2(P3.7):設(shè)置溫度“-”。(2)顯示模塊顯示子程序的功能是將緩沖區(qū)的二進(jìn)制數(shù)據(jù)先轉(zhuǎn)換成3個BCD碼,再將其分別存入百位、十位、個位3個顯示緩沖區(qū),送往串行口,利用單片機(jī)的P0口進(jìn)行掃描,讓數(shù)據(jù)動態(tài)的在1602上顯示出來,可顯示設(shè)置溫度和測量溫度。(3)控制模塊溫度控制子程序流程如圖7所示,將當(dāng)前溫度與設(shè)定好的溫度比較,當(dāng)當(dāng)前溫度小于設(shè)定溫度時,開啟電熱器;當(dāng)當(dāng)前溫度大于設(shè)定溫度時,關(guān)閉電熱器;當(dāng)二者相等時,電熱器保持這一狀態(tài)。圖8控制模塊程序流程(4)溫度報警模塊根據(jù)設(shè)計(jì)要求,當(dāng)檢測到當(dāng)前溫度值高于設(shè)定溫度值時報警,報警的同時關(guān)閉電熱器。為了防止誤報,設(shè)置了報警允許標(biāo)志,只有在允許報警的情況下,溫度值高于設(shè)定溫度值時才報警。(5)主程序和中斷服務(wù)程序流程恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共12頁,當(dāng)前為第12頁。主程序采用中斷嵌套方式設(shè)計(jì),各功能模塊可直接調(diào)用。主程序完成系統(tǒng)的初始化,溫度預(yù)置及其合法性檢測,預(yù)置溫度的顯示及定時器0設(shè)置。定時器0中斷服務(wù)子程序是溫度控制體系的主體,用于溫度檢測、控制和報警(包括啟動溫度轉(zhuǎn)換、讀入采樣數(shù)據(jù)、數(shù)字濾波、越限溫度報警和越限處理、輸出控制脈沖等)。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共12頁,當(dāng)前為第12頁。圖9主程序流程圖圖10中斷服務(wù)程序流程圖五、系統(tǒng)調(diào)試與仿真硬件調(diào)試時,可先檢查印制板及焊接的質(zhì)量是否符合要求,有無虛焊點(diǎn)及線路間有無短路、斷路。然后用萬用表檢測,檢查無誤后,可通電檢查LCD液晶顯示器亮度情況,一般情況下取背光電壓為4~5.5V即可得到滿意的效果,再依次檢查各部分結(jié)構(gòu)安裝是否牢固。軟件調(diào)試是在proteus編譯器下進(jìn)行,源程序編譯及仿真調(diào)試應(yīng)分段或以子程序?yàn)閱挝恢饌€進(jìn)行,最后結(jié)合硬件實(shí)時調(diào)試。子程序調(diào)試包括:1).LCD1602顯示程序;2).延時函數(shù)子程序;3).DS18B20讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序、顯示數(shù)據(jù)刷新子程序。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共13頁,當(dāng)前為第13頁。六、設(shè)計(jì)心得恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共13頁,當(dāng)前為第13頁。這次課程設(shè)計(jì)是對過去所學(xué)的知識的一次回顧與鞏固,也是一次特別的實(shí)踐能力。通過該次課程設(shè)計(jì),不但培養(yǎng)了我們實(shí)踐動手的能力,而且也學(xué)到了很多東西。因?yàn)橐郧皩W(xué)習(xí)的知識,都是基于理論,就算是實(shí)驗(yàn)課,器材也是學(xué)校已經(jīng)弄好了,我們做實(shí)驗(yàn)基本就是連接線路,也根本了解的不深入。但是,這次的課程設(shè)計(jì),不但要我們自己買器材,更要我們設(shè)計(jì)電路、畫出電路圖、畫出PCB、最終焊接成一塊板子,然后調(diào)試板子,板子調(diào)試差不多了就要開始設(shè)計(jì)程序了。恒溫箱顧名思義就是要讓溫度基本恒定在一個我們期望的值,所以在設(shè)計(jì)程序時,就要想一個算法來控制單片機(jī),使之能夠恒定溫度。當(dāng)然對于這種控制,最好的算法莫過于PID算法,因?yàn)榇朔ê唵味行?,工業(yè)上也有很多的應(yīng)用,如果需要更精確的控制,可以在PID的基礎(chǔ)增加一些算法,比如模糊控制、魯棒控制等。看到完成的課程設(shè)計(jì)時,我知道還有一些不足,很多地方需要更進(jìn)一步的改進(jìn),但是我仍然很高興,因?yàn)槲冶M心盡力的將它全部都完成了,我盡到自己最大的努力。雖然還是有很多不懂之處,但是在同學(xué)的幫助下也弄懂了不少。參考文獻(xiàn)(1)郭天祥,新概念51單片機(jī)c語言教程,電子工業(yè)出版社,2009(2)陳躍東,DS18B20集成溫度傳感器原理與應(yīng)用[J],安徽教育出版社,2002,5-23(3)李廣弟,《單片機(jī)基礎(chǔ)》[M],北京航空航天大學(xué)出版社,1994,1-56(4)譚浩強(qiáng),C程序設(shè)計(jì)(第二版)[M],清華大學(xué)出版社,2003(5)付家才,單片機(jī)控制工程實(shí)踐技術(shù)[M],化學(xué)工業(yè)出版社,2004恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共14頁,當(dāng)前為第14頁。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共14頁,當(dāng)前為第14頁。附錄一源程序代碼#include<includes.h>//=============================================////============液晶初始化及顯示模塊=============////=============================================//sbitRS=P2^5;//數(shù)據(jù)/命令選擇端sbitRW=P2^6;//讀/寫選擇端sbitE=P2^7;//使能端uchartable[10]={'0','1','2','3','4','5','6','7','8','9'};//-----------delay延時函數(shù)voiddelay1602(intz){ inti,j;for(j=z;j>=0;j--)for(i=11;i>=0;i--);}uchargfReverse_Bits(ucharData){Data=(Data<<4)|(Data>>4);Data=((Data<<2)&0xcc)|((Data>>2)&0x33);Data=((Data<<1)&0xaa)|((Data>>1)&0x55);returnData;}//-----------寫com為命令voidwrite_com(ucharcom){ com=gfReverse_Bits(com);E=0; RS=0;RW=0; P0=com; E=1;delay1602(20); E=0; RS=1;}//-----------寫dat為數(shù)據(jù)voidwrite_dat(uchardat){ dat=gfReverse_Bits(dat);E=0;RS=1;恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共15頁,當(dāng)前為第15頁。RW=0;恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共15頁,當(dāng)前為第15頁。 P0=dat; E=1; delay1602(20);E=0;RS=0;}//-----------初始化液晶屏voidinit_1602(){ write_com(0x38); delay1602(50);write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80);}//-----------液晶顯示函數(shù)//-----------address為顯示地址://0x80--第一行,0x80+0x40--第二行//-----------mean[]為意義字符串//-----------value為顯示值//-----------unit[]單位字符串voiddispaly(ucharaddress,ucharmean[],floatvalue,ucharunit[]){uchar*pt;intVal;write_com(address);for(pt=mean;*pt!='\0';pt++){write_dat(*pt);}Val=(int)(value*10);write_dat(table[Val/100]);write_dat(table[Val%100/10]);write_dat('.');write_dat(table[Val%10]);for(pt=unit;*pt!='\0';pt++){write_dat(*pt);恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共16頁,當(dāng)前為第16頁。}恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共16頁,當(dāng)前為第16頁。}voidbdispaly(ucharad,ucharsta[]){uchar*pp;write_com(ad);for(pp=sta;*pp!='\0';pp++){write_dat(*pp);}}#include<includes.h>//=============================================////=============DS18b20模塊初始化===============////=============================================//sbitDQ=P2^1;//-----------delayDs18b20延時函數(shù)voiddelayDs18b20(uinti)//延時函數(shù){while(i--);}//----------18b20初始化函數(shù)voidInit_DS18B20(void){DQ=1;//DQ復(fù)位delayDs18b20(8);//稍做延時DQ=0;//單片機(jī)將DQ拉低delayDs18b20(80);//精確延時大于480usDQ=1;//拉高總線delayDs18b20(20);}//----------讀一個字節(jié)ucharReadOneChar(void){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ=0;//給脈沖信號dat>>=1;恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共17頁,當(dāng)前為第17頁。DQ=1;//給脈沖信號恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共17頁,當(dāng)前為第17頁。if(DQ)dat|=0x80;delayDs18b20(5);}return(dat);}//----------寫一個字節(jié)voidWriteOneChar(uchardat){uchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delayDs18b20(5);DQ=1;dat>>=1;}delayDs18b20(5);}//----------讀取溫度floatReadTemperature(void){ucharTH=0;ucharTL=0;Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0x44);//啟動溫度轉(zhuǎn)換delayDs18b20(200);Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0xBE);//讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度TL=ReadOneChar();TH=ReadOneChar();return((TH*256+TL)*0.0625);}#include<includes.h>//=============================================////================鍵盤延時函數(shù)=================//恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共18頁,當(dāng)前為第18頁。//=============================================//恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共18頁,當(dāng)前為第18頁。voidDelayKeyms(intz){ inti,j;for(j=z;j>=0;j--)for(i=110;i>=0;i--);}//=============================================////================鍵盤掃描函數(shù)=================////=============================================//sbitSET=P1^0;sbitUP=P1^1;sbitDOWN=P1^2;sbitOUT=P1^3;ucharcount=1;ucharOutFlag=1;floatTempSet=27.0;floattemp;/*ucharKeyScan(void){if(Key1==0){DelayKeyms(10);if(Key1==0){while(!Key1);return1;}}if(Key2==0){DelayKeyms(10);if(Key2==0){while(!Key2);return2;}}if(Key3==0){DelayKeyms(10);if(Key3==0){恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共19頁,當(dāng)前為第19頁。while(!Key3);恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共19頁,當(dāng)前為第19頁。return3;}}return0;}*/voidSetKey()//模式選擇{if(SET==0){DelayKeyms(10);if(SET==0){count++;if(count>2)count=1;}while(SET==0);}}voidUpKey()//按鍵加{if(UP==0){DelayKeyms(10);if(UP==0){switch(count){case1:temp=TempSet;temp=temp+1;if(temp>50.0)temp=20.0;TempSet=temp;break;case2:temp=TempSet;temp=temp+0.1;if(temp>50.0)temp=20.0;TempSet=temp;break;default:break;}}while(UP==0);}恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共20頁,當(dāng)前為第20頁。}恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共20頁,當(dāng)前為第20頁。voidDownKey()//按鍵減{if(DOWN==0){DelayKeyms(10);if(DOWN==0){switch(count){case1:temp=TempSet;temp=temp-1;if(temp<20.0)temp=50.0;TempSet=temp;break;case2:temp=TempSet;temp=temp-0.1;if(temp<20.0)temp=50.0;TempSet=temp;break;default:break;}}while(DOWN==0);}}voidOutKey()//彈出{if(OUT==0){DelayKeyms(10);if(OUT==0){ OutFlag++;if(OutFlag>1)OutFlag=0;}while(OUT==0);}}voidkeyDone()//按鍵功能執(zhí)行恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共21頁,當(dāng)前為第21頁。{恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共21頁,當(dāng)前為第21頁。bdispaly(0x80,"pleasesetTempset:");dispaly(0x80+0x40,"Temp_Set:",TempSet,"'C");SetKey();switch(count){case1:UpKey();DownKey(); dispaly(0x80+0x40,"Temp_Set:",TempSet,"'C");break;case2:UpKey();DownKey(); dispaly(0x80+0x40,"Temp_Set:",TempSet,"'C");break;default:break;}OutKey();}#include<includes.h>sbitControlpin=P2^0;sbitLight=P2^3;sbitBeep=P2^2;//=============================================////===================延時函數(shù)====================////=============================================//voidDelayms(intz){ inti,j;for(j=z;j>=0;j--)for(i=110;i>=0;i--);}//=============================================////===================主函數(shù)====================////=============================================//ucharbeepflag=0;ucharBe_LiFlag=0;externfloatTempSet;floatTempReal=0;ucharExpectTime=0;voidmain(){恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共22頁,當(dāng)前為第22頁。//初始化定義恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報告全文共22頁,當(dāng)前為第22頁。//uchark;floatTempNew=0;//floatTempOld1=0;//floatTempOld2=0;init_1602();XInterruptInit();TimerInit();Beep=1;Controlpin=1;EA=0;while(1){//鍵盤數(shù)據(jù)處理//蜂鳴器報警OutKey();while(OutFlag==0){keyDone();Light=1;beepflag=0;}if(TempSet==TempReal&&!beepflag){Be_LiFlag++;}if(Be_LiFlag==6){Be_LiFlag=0;Beep=0;Light=0;Delayms(500);Beep=1;Light=1;Delayms(500);Beep=0;Light=0;Delayms(500);Beep=1;Light=1;beepflag

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論