




已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PWM控制加熱目 錄1 引言12 理論分析12.1 PWM12.2 PWM控制技術(shù)23 系統(tǒng)設(shè)計(jì)23.1 設(shè)計(jì)方案比較和論證33.1.1 單片機(jī)系統(tǒng)33.1.2 溫度傳感器33.1.3 顯示電路33.1.4 PWM信號44 系統(tǒng)硬件設(shè)計(jì)44.1 復(fù)位電路44.2 時(shí)鐘電路54.3 P0口上拉電阻電路54.4 按鍵電路64.5 LCD1602顯示電路64.6 DS18B20測溫電路74.7 電源電路74.8 溫度控制電路85 系統(tǒng)軟件設(shè)計(jì)85.1 PWM控制加熱軟件的主程序及流程圖95.2 LCD1602顯示子程序125.3 LCD延時(shí)子程序175.4 數(shù)字式溫度傳感器DS18B20子程序185.5 PWM控制加熱子程序205.6 溫度控制流程216 系統(tǒng)調(diào)試236.1 Keil軟件236.2 Proteus軟件236.3 仿真結(jié)果246.4 調(diào)試結(jié)果247 小結(jié)27參考文獻(xiàn)27致謝28ABSTRACT29附錄30附I 整體電路圖30PWM控制加熱摘要:介紹了以STC89C52單片機(jī)為核心,使用PWM技術(shù)和閉環(huán)系統(tǒng)實(shí)現(xiàn)對溫度的自動(dòng)或手動(dòng)控制的系統(tǒng)。系統(tǒng)通過溫度芯片DS18B20采集溫度信號,并將溫度信號傳送給單片機(jī)。并由單片機(jī)進(jìn)行相應(yīng)處理,根據(jù)目標(biāo)溫度與實(shí)測溫度關(guān)系決定是加熱占空比高還是停止加熱占空比高,從而實(shí)現(xiàn)對溫度的閉環(huán)控制的目的。系統(tǒng)還加入LCD液晶顯示電路,使得整個(gè)設(shè)計(jì)更加完整,更加靈活。系統(tǒng)可通過鍵盤設(shè)定溫度,LCD顯示設(shè)定溫度值及當(dāng)前溫度值。關(guān)鍵詞:STC89C52單片機(jī);溫度控制;PWM;DS18B20 ;LCD液晶顯示1 引言 溫度是眾多行業(yè)生產(chǎn)中的基礎(chǔ)參數(shù)之一,隨著社會(huì)的進(jìn)步、工業(yè)的發(fā)展,溫度控制技術(shù)也不斷革新,但其還處于初級發(fā)展階段,很多領(lǐng)域?qū)囟瓤刂朴兄叩囊蟆R虼?,溫度控制是生產(chǎn)工藝流程中極為重要的一個(gè)環(huán)節(jié),尤其在電力、航天、交通、造紙、裝備制造、食品加工等行業(yè)有廣泛的應(yīng)用。利用單片機(jī)來對溫度進(jìn)行控制,不僅能夠有效地提升控制能力與生產(chǎn)的自動(dòng)化,而且還有可能盡早實(shí)現(xiàn)智能化的目標(biāo)。和傳統(tǒng)的溫度控制相比,基于單片機(jī)實(shí)現(xiàn)PWM的溫度控制可以降低能源消耗。因?yàn)閭鹘y(tǒng)的溫度控制都是通過電阻限流的方式到達(dá)的溫度控制,這樣雖然加熱器的熱量小了,但是整體的功率并沒有根本性的改變,造成了能源的浪費(fèi)。而PWM是通過占空比實(shí)現(xiàn)的并沒有限流的損失,這樣就會(huì)大大節(jié)約能源。本文主要研究的就是利用單片機(jī)的PWM技術(shù)而設(shè)計(jì)的溫度控制系統(tǒng)。2 理論分析2.1 PWMPWM是英文“Pulse Width Modulation”的縮寫,即脈沖寬度調(diào)制,簡稱脈寬調(diào)制。它是一種模擬控制方式,其根據(jù)相應(yīng)載荷的變化來調(diào)制晶體管柵極或基極的偏置,來實(shí)現(xiàn)開關(guān)穩(wěn)壓電源輸出晶體管或晶體管導(dǎo)通時(shí)間的改變,這種方式能使電源的輸出電壓在工作條件變化時(shí)保持恒定,是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。PWM是開關(guān)型穩(wěn)壓電源中的術(shù)語。這是按穩(wěn)壓的控制方式分類的,除了PWM型,還有PFM型和PWM、PFM混合型。脈寬寬度調(diào)制式(PWM)開關(guān)型穩(wěn)壓電路是在控制電路輸出頻率不變的情況下,通過電壓反饋調(diào)整其占空比,從而達(dá)到穩(wěn)定輸出電壓的目的。 其中方波高電平時(shí)間跟周期的比例叫占空比,例如1秒高電平1秒低電平的PWM波占空比是50% 。PWM的一個(gè)優(yōu)點(diǎn)是從處理器到被控系統(tǒng)信號都是數(shù)字形式的,無需進(jìn)行數(shù)模轉(zhuǎn)換,PWM相對于模擬控制的另一個(gè)優(yōu)點(diǎn)是增強(qiáng)對噪聲抵抗的能力。2.2 PWM控制技術(shù) PWM(Pulse Width Modulation)控制技術(shù)就是對脈沖的寬度進(jìn)行調(diào)制的技術(shù),即通過對一系列脈沖的寬度進(jìn)行調(diào)制,來等效的獲得所需要的波形(含形狀和幅值);(沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時(shí),其效果基本相同.PWM控制技術(shù)就是以該結(jié)論為理論基礎(chǔ),對半導(dǎo)體開關(guān)器件的導(dǎo)通和關(guān)斷進(jìn)行控制,使輸出端得到一系列幅值相等而寬度不相等的脈沖,用這些脈沖來代替正弦波或其他所需要的波形。按一定的規(guī)則對各脈沖的寬度進(jìn)行調(diào)制,既可改變逆變電路輸出電壓的大小,也可改變輸出頻率。)而控制方法有:為了克服PAM法方波電壓而不能調(diào)壓這個(gè)缺點(diǎn)發(fā)展而來的等脈寬PWM法;為了減少電機(jī)繞組的電磁噪音及諧波造成的振動(dòng)而發(fā)展而來的隨機(jī)PWM方法;以采樣控制理論中的一個(gè)重要結(jié)論為理論基礎(chǔ)而產(chǎn)生的SPWM法;把SPWM法原理直接闡釋成為等面積法;為計(jì)算繁瑣的缺點(diǎn)而提出的硬件調(diào)制法;由于用軟件生成SPWM波形變得比較容易而提出的軟件生成法;使所得SPWM波形最接近正弦波而提出的自然采樣法;對自然采樣法的改進(jìn)而成為規(guī)則采樣法;以消去PWM波形中某些主要的低次諧波為目的的方法而成為低次諧波消去法;為了提高直流電壓利用率提出了梯形波與三角波比較法;對于像三相異步電動(dòng)機(jī)這樣的三相無中線對稱負(fù)載提出了線電壓控制PWM,其中包括馬鞍形波與三角波比較法和單元脈寬調(diào)制法;以把希望輸出的電流波形作為指令信號的基本思想而提出了電流控制PWM,其中包括滯環(huán)比較法、三角波比較法以及預(yù)測電流控制法;以三相波形整體生成效果為前提,以逼近電機(jī)氣隙的理想圓形旋轉(zhuǎn)磁場軌跡為目的而提出了空間電壓矢量控制PWM(SVPWM)等等。PWM控制技術(shù)以其控制簡單,靈活和動(dòng)態(tài)響應(yīng)好的優(yōu)點(diǎn)而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式,也是人們研究的熱點(diǎn)。PWM控制技術(shù)主要應(yīng)用在電力電子技術(shù)行業(yè),包括風(fēng)力發(fā)電、電機(jī)調(diào)速、直流供電等領(lǐng)域??傊琍WM既經(jīng)濟(jì)、節(jié)約空間、抗噪性能強(qiáng),是一種值得廣大工程師在許多設(shè)計(jì)應(yīng)用中使用的有效技術(shù)。3 系統(tǒng)設(shè)計(jì) 硬件電路主要分為電源電路、復(fù)位電路、時(shí)鐘電路、按鍵電路、LCD顯示電路和溫度采集電路六部分。采用集成的單片機(jī)作為主控,通過溫度傳感器采集數(shù)據(jù)信息,將結(jié)果傳送到單片機(jī)控制的主控器,數(shù)據(jù)通過顯示器顯示。通過按鍵改變設(shè)定溫度,從而改變運(yùn)行操作程序。系統(tǒng)整體結(jié)構(gòu)如圖1所示。按鍵模塊電源模塊單片機(jī)LCD顯示模塊復(fù)位電路時(shí)鐘電路溫度采集模塊圖1 系統(tǒng)整體結(jié)構(gòu)3.1 設(shè)計(jì)方案比較和論證3.1.1 單片機(jī)系統(tǒng) 單片機(jī)種類很多,剛開始想到ATMEL公司的51系列單片機(jī),但翻閱資料后發(fā)現(xiàn)STC89C52單片機(jī):處理速度快;價(jià)格低;加密性強(qiáng);超強(qiáng)抗干擾;超低功耗;在系統(tǒng)可編程,無需編程器,無需仿真器。3.1.2 溫度傳感器溫度傳感器種類繁多,按照測量方式可以分為接觸式和非接觸式兩大類;按照傳感器材料以及電子的元件特性可分為熱電阻和熱電偶兩類。傳統(tǒng)的溫度檢測多數(shù)情況下以熱敏電阻為傳感器,但熱敏電阻可靠性差、測量溫度準(zhǔn)確率低,且必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號才能由單片機(jī)進(jìn)行處理。而DS18B20能夠直接讀出被測溫度并且可以根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù);以其獨(dú)特的一線接口方式,實(shí)現(xiàn)多點(diǎn)能力;無需連接外部元件,就可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V ;測量溫度范圍為-55C至+125,其中-10C至+85C范圍內(nèi)精度為0.5C,最大分辨率可達(dá)0.0625,可實(shí)現(xiàn)高精度測量。所以,在本設(shè)計(jì)中選擇DS18B20溫度傳感器。3.1.3 顯示電路通常顯示電路主要有兩類:數(shù)碼管(LED)顯示和液晶(LCD)顯示。 液晶顯示屏(LCD):低壓微功耗、平板型結(jié)構(gòu)、顯示的信息量大、無電磁輻射、使用壽命長等優(yōu)點(diǎn),但本設(shè)計(jì)要求顯示的數(shù)據(jù)量小,不能發(fā)揮其顯示內(nèi)容豐富的優(yōu)點(diǎn),同時(shí)占用I/O口線較多。 數(shù)碼管顯示(LED):采用LED數(shù)碼管顯示,該方案具有實(shí)現(xiàn)容易、發(fā)光亮度大、驅(qū)動(dòng)電路簡單等優(yōu)點(diǎn),但是顯示內(nèi)容單一。 所以,通過比較之后,我選擇液晶顯示屏來顯示溫度。本設(shè)計(jì)選擇LCD1602,用來滿足一定的視覺要求。3.1.4 PWM信號脈沖寬度調(diào)制信號的形成電路有4種:(1)可用電壓-脈寬變換器產(chǎn)生,即硬件產(chǎn)生脈寬調(diào)制信號;(2)由軟件定時(shí)產(chǎn)生,由定時(shí)器定時(shí),定時(shí)時(shí)間受軟件控制,并從脈寬信號的輸出口P1.0或其他口輸出脈寬可調(diào)信號;(3)由單片機(jī)控制外接定時(shí)/計(jì)數(shù)器(如8253)硬件電路產(chǎn)生脈寬調(diào)制信號,只需用兩個(gè)計(jì)數(shù)器分別工作于方式1和方式2,通過硬件連接便可以產(chǎn)生脈寬調(diào)制信號;(4)軟件延時(shí)模擬。其中,第一種是硬件電路實(shí)現(xiàn),電路復(fù)雜。第二種使用定時(shí)器T0,但由于系統(tǒng)計(jì)數(shù)器不足,必須擴(kuò)展。第三種是利用8253需要額外開銷,所以我們選用軟件延時(shí)非常方便,于是本系統(tǒng)選用了第四種方式進(jìn)行PWM調(diào)制。4 系統(tǒng)硬件設(shè)計(jì) 硬件電路主要由八大塊構(gòu)成,分別是:復(fù)位電路、時(shí)鐘電路、P0口上拉電阻電路、按鍵電路、LCD1602顯示電路、DS18B20測溫電路、電源電路、溫度控制電路。4.1 復(fù)位電路 復(fù)位電路是單片機(jī)系統(tǒng)最基本的組成部分,可靠的復(fù)位設(shè)計(jì)是保證系統(tǒng)可靠運(yùn)行的前提。單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。復(fù)位電路可以用很多方法來實(shí)現(xiàn),但是從功能上一般分為兩種:一種是電源復(fù)位,即外部的復(fù)位電路在系統(tǒng)通上電源之后直接使單片機(jī)工作,是用電源來控制單片機(jī)的開始與停止;另外一種是按鍵復(fù)位,就是在復(fù)位電路中設(shè)計(jì)按鍵開關(guān),通過按鍵開關(guān)觸發(fā)復(fù)位電平,控制單片機(jī)的復(fù)位。經(jīng)過比較,本設(shè)計(jì)采用電源復(fù)位,設(shè)計(jì)電路如圖2所示。 圖2 單片機(jī)復(fù)位電路4.2 時(shí)鐘電路時(shí)鐘是單片機(jī)內(nèi)部電路工作的基礎(chǔ),也是CPU工作時(shí)序的時(shí)間基準(zhǔn)。時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號。單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器。其輸入端接至單片機(jī)的內(nèi)部,即XTAL1引腳,其輸出端接至單片機(jī)的外部,即XTAL2引腳。在XTAL1和XTAL2兩端跨接一個(gè)晶振,兩個(gè)電容,構(gòu)成一個(gè)穩(wěn)定的自激式振蕩電路。電容C1、C2起穩(wěn)定振蕩頻率、快速起振作用,容量的選擇范圍為530PF,通常選擇30pF。振蕩頻率的選擇范圍為1.212MHz,本設(shè)計(jì)選擇12MHZ,時(shí)鐘周期為(1/12)s。如圖3所示是單片機(jī)內(nèi)部時(shí)鐘方式的振蕩電路。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號。 圖3 片機(jī)內(nèi)部時(shí)鐘電路4.3 P0口上拉電阻電路STC89C52單片機(jī)P0口內(nèi)無上拉電阻,單片機(jī)對端口的輸出是通過控制內(nèi)部的場效應(yīng)管導(dǎo)通或截止實(shí)現(xiàn)的,如果沒有上拉電阻,雖然單片機(jī)輸出1通過鎖存器反相使場效應(yīng)管截止,但單片機(jī)的端口還是無法得到高電平(輸出0不影響),因此P0口處需加上拉電阻。如圖4所示。 圖4 P0口上拉電阻電路4.4 按鍵電路按鍵有二個(gè),分別是S2和S3,其中S2作為加按鍵,S3作為減按鍵。通過兩個(gè)按鍵,可以用來設(shè)定目標(biāo)溫度程序,加按按鍵和減按鍵,用來增加或者減少設(shè)定的目標(biāo)溫度。如圖5所示。圖5 按鍵電路4.5 LCD1602顯示電路 LCD1602采用標(biāo)準(zhǔn)的16腳接口,字符型LCD通常有14條引腳線(市面上也有很多16條引腳線的LCD,多出來的2條線是電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣)。其中第3腳接一個(gè)10K的電位器可以用來調(diào)整液晶顯示屏的對比度。其內(nèi)部的驅(qū)動(dòng)器為HD44100和控制器HD44780,都采用低功耗CMOS技術(shù)。采用并行8位數(shù)據(jù)線的傳送方式,當(dāng)然使用者也可以通過軟件設(shè)計(jì),使用四條數(shù)據(jù)線來控制液晶顯示屏。目前市面上的字符型液晶絕大多數(shù)是基于HD44780液晶芯片的,所以控制原理是完全相同的,為HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。本系統(tǒng)液晶顯示屏主要顯示設(shè)定的目標(biāo)溫度和當(dāng)前目標(biāo)溫度,如圖6所示。圖6 LCD1602顯示電路4.6 DS18B20測溫電路DS18B20是美國DALLAS半導(dǎo)體公司生產(chǎn)的單總線數(shù)字溫度傳感器,它可以實(shí)現(xiàn)數(shù)字化的輸出和測試。每一個(gè)DS18B20包含一個(gè)唯一的64位長的序號,該序號值存放在DS18B20內(nèi)部的ROM(只讀存儲(chǔ)器)中。DS18B20的1管腳接地,2管腳為數(shù)字輸入/輸出腳需要連接上拉電阻到電源并接至單片機(jī)端口,3管腳接電源。如下圖7所示。圖7 測溫電路4.7 電源電路單片機(jī)系統(tǒng)電源主要運(yùn)用220V的電壓通過電路來實(shí)現(xiàn)芯片所需的+12V電源。如圖8所示,該電源電路主要通過變壓器把220V電壓降壓,經(jīng)電橋整流、電容C1濾波產(chǎn)生24V電壓,再利用7805集成芯片穩(wěn)壓輸出+12V直流電壓。輸入電容C1是用來改善紋波和抑制過電壓,C2是用來改善負(fù)載瞬態(tài)響應(yīng)。圖8 電源電路4.8 溫度控制電路本設(shè)計(jì)中采用PWM來控制溫度,此模塊電路是為調(diào)節(jié)溫度的PWM脈沖設(shè)計(jì)的。單片機(jī)控制Q3有兩種狀態(tài): 1.Q3的基極為高電平,PNP截止此時(shí)Q2由于基極有下拉電阻NPN也處于截止 ,Q1有4.7K上拉電阻Q1場效應(yīng)管不導(dǎo)通,此時(shí)PTC不通電不加熱 ;2.Q3基極為低電平,PNP導(dǎo)通,此時(shí)Q2也導(dǎo)通,場效應(yīng)管也處于導(dǎo)通 PTC有電流處于加熱狀態(tài)。PWM脈沖主要是數(shù)字電路的0與1的表現(xiàn),當(dāng)脈沖為0時(shí),Q3的PNP型三級管導(dǎo)通,由Q2電路可知Q2也會(huì)跟著Q3一起導(dǎo)通,這樣場效應(yīng)管就跟著導(dǎo)通接入12V電源PTC開始加熱;當(dāng)脈沖為1時(shí)Q3截止,由于Q2有下拉電阻于是Q2也跟隨截止,導(dǎo)致場效應(yīng)管斷開,即PTC停止加熱。當(dāng)DB18B20所獲得溫度大于60度時(shí),系統(tǒng)會(huì)減小加熱時(shí)間使溫度下降,直至低于60度時(shí),系統(tǒng)會(huì)再次提高加熱占空比使溫度上升,使得系統(tǒng)維持在60度。此時(shí),單片機(jī)產(chǎn)生一定占空比的PWM脈沖,就會(huì)使PTC功率控制在一定范圍內(nèi)處于恒溫,也就是所謂的溫度控制。如圖9所示。 圖9 溫度控制電路5 系統(tǒng)軟件設(shè)計(jì) 軟件編寫的語言一般情況下,有匯編語言和語言兩種,兩種語言各有優(yōu)劣。 用語言編寫程序的優(yōu)點(diǎn)是:編寫簡單,容易上手,網(wǎng)上有許多已編寫好的子程序,可以通過學(xué)習(xí)再結(jié)合自己想要實(shí)現(xiàn)的功能,從而編寫相關(guān)的程序,因此開發(fā)程序所需時(shí)間也相對短。 而用匯編語言編寫則相對要求高一些,它要求對硬件有足夠的了解和認(rèn)識,在此基礎(chǔ)上,嚴(yán)格地對照各部件的時(shí)序圖,進(jìn)行程序的編寫,而且讀起來相對繁瑣。 通過兩種語言的比較,語言學(xué)起來很快,所以我選擇采用C語言編寫。5.1 PWM控制加熱軟件的主程序及流程圖程序的最基本思路流程圖如圖10所示。開始?xì)g迎畫面初始化溫度顯示初始化,變量初始化,溫度傳感器初始化讀取當(dāng)前溫度并通過LCD顯示,并根據(jù)溫度計(jì)算調(diào)整占空比判斷當(dāng)前溫度是否小于目標(biāo)溫度根據(jù)當(dāng)前溫度與目標(biāo)溫度的差決定加熱占空比開始按比例控制加熱目標(biāo)溫度增加鍵是否按下目標(biāo)溫度增加并重新顯示目標(biāo)溫度減少鍵是否按下目標(biāo)溫度減少并重新顯示暫停時(shí)停止加熱NYYYNN圖10 主程序流程圖/主函數(shù)void main()uint X1,X2,CT=0,XCT=0;Init1602(); /液晶初始化LCDdelay(10000);Display_T_Init();tmpchange(); NT=tmp();Display_T_Init();while(1) /無限期循環(huán)tmpchange(); /數(shù)字型溫度傳感器,溫度轉(zhuǎn)換,模擬信號轉(zhuǎn)數(shù)字NT=tmp();Display_T(NT,MMT); / NT實(shí)際溫度,MMT目標(biāo)溫度/控制加溫X1=NT/10; / 因?yàn)闇囟确糯罅?0倍,所以要除上10X2=MMT/10;if(X1X2) /如果實(shí)際溫度3) /目標(biāo)溫度-實(shí)際溫度3度if(X280) /目標(biāo)溫度-實(shí)際溫度3度,目標(biāo)溫度大于80度CT=100; XCT=0;Else /目標(biāo)溫度-實(shí)際溫度3度,目標(biāo)溫度小于80度CT=50;XCT=100;Else /目標(biāo)溫度-實(shí)際溫度3度CT=50;XCT=100;LCDdelay(CT); /通過延時(shí)長度不同,來控制恒溫;CT為加熱時(shí)間,CT等于多少,就加熱多少;如果CT=0,那么剛剛拉低,又拉高,等于沒有加熱,延時(shí)為0JR=1; /單片機(jī)P1.7口為高電平,不加熱LCDdelay(XCT);/+if(K1=0) /按鍵1按下LCDdelay(100); /屏幕以s級的延遲while(K1=0); MMT=MMT+10; /目標(biāo)溫度加1度if(MMT=1210) /當(dāng)目標(biāo)溫度加熱到超過或等于121度時(shí) MMT=0;/-if(K2=0) /按鍵2按下LCDdelay(100);while(K2=0);MMT=MMT-10; /目標(biāo)溫度減1度if(MMT=0xff00) /目標(biāo)溫度-10度MMT=1200;/目標(biāo)溫度為120度5.2 LCD1602顯示子程序顯示數(shù)據(jù)子程序的主要功能就是把測溫后的結(jié)果經(jīng)單片機(jī)處理完畢后顯示在LCD液晶顯示屏上。顯示數(shù)據(jù)子程序流程圖如圖11所示。開始數(shù)據(jù)傳送顯示數(shù)據(jù)結(jié)束YN圖11 顯示數(shù)據(jù)子流程圖/寫命令void write_com(uchar com) LCDRS=0; /單片機(jī)P2.7為低電平 P0=com; LCDdelay(10); LCDEN=1; /單片機(jī)P2.6為高電平 LCDdelay(10); LCDEN=0; /單片機(jī)P2.6為低電平/寫數(shù)據(jù)void write_data(uchar date) LCDRS=1; /單片機(jī)P2.7為高電平 P0=date; LCDdelay(10); LCDEN=1; /單片機(jī)P2.6為高電平 LCDdelay(10); LCDEN=0; /單片機(jī)P2.6為低電平/1602初始化void Init1602() uchar i=0; /定義一個(gè)i write_com(0x38);/屏幕初始化 write_com(0x0C);/打開顯示 無光標(biāo) 無光標(biāo)閃爍 write_com(0x06);/當(dāng)讀或?qū)懸粋€(gè)字符是指針后一一位 write_com(0x01);/清屏 write_com(0x80);/設(shè)置位置 for(i=0;i16;i+) write_data(Init1i); /顯示init1數(shù)組中的內(nèi)容 write_com(0x80+40);/設(shè)置位置 /跳到下一行 for(i=0;i16;i+) write_data(Init2i); /顯示init2數(shù)組中的內(nèi)容 void Display_T_Init() uchar i=0; write_com(0x38);/屏幕初始化 write_com(0x0C);/打開顯示 無光標(biāo) 無光標(biāo)閃爍 write_com(0x06);/當(dāng)讀或?qū)懸粋€(gè)字符是指針后一一位 write_com(0x01);/清屏 write_com(0x80);/設(shè)置位置 for(i=0;i16;i+) write_data(Init3i); /顯示init3數(shù)組中的內(nèi)容 write_com(0x80+40);/設(shè)置位置 /跳到下一行 for(i=0;i16;i+) write_data(Init4i); /顯示init4數(shù)組中的內(nèi)容 /溫度顯示void Display_T(uint T,uint JT)write_com(0x80+0x40+9);/設(shè)置位置 /加9表示空9格write_com(0x80+0x40+9);/設(shè)置位置 LCDdelay(10);write_data(0+T/1000); /顯示千位write_data(0+T/100%10); /顯示百位write_data(0+T/10%10); /顯示十位write_data(.); /顯示小數(shù)點(diǎn)write_data(0+T%10); /顯示個(gè)位write_data(0xDF); /顯示write_data(C); /顯示“C”write_com(0x80+0x40+1);/設(shè)置位置 /加1表示空1格write_com(0x80+0x40+1);/設(shè)置位置 LCDdelay(10);write_data(0+JT/1000); write_data(0+JT/100%10);write_data(0+JT/10%10);write_data(0xDF);write_data(C);1602程序流程圖如圖12所示。圖12 1602程序流程圖/read a byte date 讀一個(gè)字節(jié) uchar tmpread(void) uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好/一個(gè)字節(jié)在 dat 里 dat=(j1); /將一個(gè)字節(jié)數(shù)據(jù)返回 return(dat); /write a byte to ds18b20 /寫一個(gè)字節(jié)到 DS18B20 里 void tmpwritebyte(uchar dat) uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; /write 0 i=8;while(i0)i-; DS=1; i+;i+; /溫度顯示void Display_T(uint T,uint JT)write_com(0x80+0x40+9);/設(shè)置位置 /加9表示空9格write_com(0x80+0x40+9);/設(shè)置位置 LCDdelay(10);write_data(0+T/1000); /顯示千位write_data(0+T/100%10); /顯示百位write_data(0+T/10%10); /顯示十位write_data(.); /顯示小數(shù)點(diǎn)write_data(0+T%10); /顯示個(gè)位write_data(0xDF); /顯示write_data(C); /顯示“C”write_com(0x80+0x40+1);/設(shè)置位置 /加1表示空1格write_com(0x80+0x40+1);/設(shè)置位置 LCDdelay(10);write_data(0+JT/1000); write_data(0+JT/100%10);write_data(0+JT/10%10);write_data(0xDF);write_data(C);5.3 LCD延時(shí)子程序 LCD延時(shí)程序流程圖如圖13所示。圖13 LCD延時(shí)程序流程圖/LCD延時(shí)void LCDdelay(uint z) /定義Z uint x,y; for(x=z;x0;x-) /延時(shí)多久,在括號里填一定的數(shù)值Z for(y=10;y0;y-); 5.4 數(shù)字式溫度傳感器DS18B20子程序 DS18B20程序流程圖如圖14所示。圖14 DS18B20程序流程圖/DS18B20 begin change 發(fā)送溫度轉(zhuǎn)換命令void tmpchange(void) dsreset(); /初始化 DS18B20 delaySS(1); /延時(shí) tmpwritebyte(0xcc); /跳過序列號命令 tmpwritebyte(0x44); /發(fā)送溫度轉(zhuǎn)換命令 /get the temperature 獲得溫度uint tmp() float tt; uchar a,b; dsreset(); delaySS(1); /發(fā)送讀取數(shù)據(jù)命令 tmpwritebyte(0xcc); tmpwritebyte(0xbe); /連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù) a=tmpread(); b=tmpread(); /two byte compose a int variable /兩字節(jié)合成一個(gè)整型變量。 temp=b; temp=8; temp=temp|a; if(b=0xff) flag=1; temp=temp+1; /得到真實(shí)十進(jìn)制溫度值,因?yàn)?DS18B20 tt=temp*0.0625; /可以精確到 0.0625 度,所以讀回?cái)?shù)據(jù)的最低位代表的是 /0.0625 度。 /放大十倍,這樣做的目的將小數(shù)點(diǎn)后第一位 temp=tt*10+0.5; /也轉(zhuǎn)換為可顯示數(shù)字,同時(shí)進(jìn)行一個(gè)四舍五入操作。 /返回溫度值 return temp; 5.5 PWM控制加熱子程序PWM是調(diào)節(jié)脈沖波占空比的一種方式,占空比= On-time(脈沖的High時(shí)間)/脈沖的一個(gè)周期(On-time +Off-time)。Tsw(一周期)可以是開關(guān)周期,也可以是Fsw=1/Tsw的開關(guān)頻率。占空比以及所對應(yīng)的周期,是由溫度傳感器所測的實(shí)際溫度與目標(biāo)溫度的差來決定的。所以,分區(qū)間討論,其中JR為加熱管腳,X1實(shí)際溫度,X2目標(biāo)溫度,自然冷卻時(shí)間為:(1-占空比)*周期。1.X13,X280 此時(shí)占空比為100%,周期為10000us (2)X2-X13,X280 此時(shí)占空比為1/3,周期為15000us (3)X2-X1=X2 占空比為0,周期不定,自然冷卻。PWM加熱程序流程圖如圖15所示。圖15 PWM加熱程序流程圖 /控制加溫X1=NT/10; /因?yàn)闇囟确糯罅?0倍,所以要除上10X2=MMT/10;if(X1X2) /如果實(shí)際溫度3) /目標(biāo)溫度-實(shí)際溫度3度if(X280) /目標(biāo)溫度-實(shí)際溫度3度,目標(biāo)溫度大于80度CT=100; XCT=0;Else /目標(biāo)溫度-實(shí)際溫度3度,目標(biāo)溫度小于80度CT=50;XCT=100;Else /目標(biāo)溫度-實(shí)際溫度3度CT=50;XCT=100;LCDdelay(CT); /通過延時(shí)長度不同,來控制恒溫;CT為加熱時(shí)間,CT等于多少,就加熱多少;如果CT=0,那么剛剛拉低,又拉高,等于沒有加熱,延時(shí)為0JR=1; /單片機(jī)P1.7口為高電平,不加熱LCDdelay(XCT);5.6 溫度控制流程 在設(shè)計(jì)中使用PWM技術(shù)作為設(shè)計(jì)的核心技術(shù),PWM原理是以一固定直流電壓經(jīng)過以一定頻率打開與閉合的開關(guān)K,從而控制改變PTC上的電壓。設(shè)當(dāng)PTC接通時(shí)的最大電流為。開關(guān)開閉周期為T,每次閉合時(shí)間為t,則當(dāng)占空比為D=t/T,PTC的平均電流為: (1)由(1)式可知,當(dāng)T不變(即開關(guān)的開關(guān)頻率固定)時(shí),只要改變導(dǎo)通時(shí)間t,就可改變PTC兩端的平均電流,從而改變PTC的加熱溫度。 PTC的發(fā)熱強(qiáng)度基本上正比于通過PTC器件的電流,這說明在脈沖電流的平均電流與直流電流相同的條件下,PTC的發(fā)熱效果一樣。另外,用高幅值的脈沖電流驅(qū)動(dòng)PTC,然后通過調(diào)節(jié)脈沖的占空比獲得較合適的平均電流,這樣可以降低功耗。因?yàn)楫?dāng)PTC工作在脈沖狀態(tài)時(shí),人會(huì)感覺到PTC的溫度會(huì)結(jié)余高溫與均值之間。因此,脈沖電流驅(qū)動(dòng)PTC可比直接恒流驅(qū)動(dòng)的PTC溫度更高一些,即獲得同樣的加熱強(qiáng)度,脈沖電流驅(qū)動(dòng)方式比直流驅(qū)動(dòng)方式所需要的平均電流值更小。對于PTC,如果采用脈沖電路驅(qū)動(dòng),其控制部分采用脈寬調(diào)制方式,與恒流控制方式相比,控制部分的控制效率會(huì)有比較大的提升,另外還可去掉限流電阻或減小其值。因此,從節(jié)能的角度出發(fā),采用脈沖電源驅(qū)動(dòng)方式更好。脈沖驅(qū)動(dòng)方式是利用溫度的惰性,采用重復(fù)向PTC器件通斷供電的方式使之點(diǎn)亮。但采用這種驅(qū)動(dòng)方式通常需考慮脈沖直流幅值的確定和重復(fù)頻率的選擇。要獲得與直流驅(qū)動(dòng)方式相當(dāng)?shù)陌l(fā)熱強(qiáng)度,脈沖驅(qū)動(dòng)電流的平均值應(yīng)與直流驅(qū)動(dòng)的電流值相同。如圖16所示,平均電流是瞬間電流i的時(shí)間積分。對于矩形波,有 (2) (3)式中,為直流驅(qū)動(dòng)電流值,為脈沖驅(qū)動(dòng)電流平均值,為脈沖電流幅值,是占空比。為了使脈沖驅(qū)動(dòng)方式下的平均電流與直流驅(qū)動(dòng)電流相同,則需使其脈沖電流幅值滿足: (4)可見脈沖驅(qū)動(dòng)時(shí),脈沖電流的幅值是直流驅(qū)動(dòng)電路的電流幅值的倍。需注意驅(qū)動(dòng)器件的工作頻率,當(dāng)頻率超過一定范圍,器件將無法正常工作,因?yàn)槠骷o法正常導(dǎo)通和關(guān)斷。PTC的工作頻率是10Hz到幾KHz范圍內(nèi)。 圖16 脈沖電流驅(qū)動(dòng)電路設(shè)計(jì)中PWM信號經(jīng)過Q3與Q2的基極連接到P溝道功率MOSFET IRF9540的柵極上。P溝道功率MOSFET的柵極驅(qū)動(dòng)采用簡單的二級放大作為驅(qū)動(dòng)電路,以改善MOSFET的導(dǎo)通過程,減少驅(qū)動(dòng)電源的功率。6 系統(tǒng)調(diào)試6.1 Keil軟件 單片機(jī)開發(fā)中不但要有必要的硬件,而且要有相應(yīng)的軟件與之結(jié)合,此時(shí)Keil軟件發(fā)揮著舉足輕重的地位。隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從匯編語言的普遍使用到高級語言開發(fā)的逐漸使用,單片機(jī)的開發(fā)軟件也隨之在發(fā)展著,與匯編語言相比,C語言在功能上、結(jié)構(gòu)性、可維護(hù)性上有明顯的優(yōu)勢,易學(xué)易用。Keil軟件是目前最流行的開發(fā)MCS-51系列單片機(jī)軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。Keil C51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境, 同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,功能不斷增強(qiáng),生成的目標(biāo)代碼效率非常高。所以本設(shè)計(jì)選擇Keil軟件。6.2 Proteus軟件Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件,除了具有和其它EDA工具一樣的原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能外,其特有的功能是,它的電路仿真是互動(dòng)的,針對微處理器的應(yīng)用,還可以直接在原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級的實(shí)時(shí)調(diào)試。由此可見,Proteus軟件功能強(qiáng)大,集電路設(shè)計(jì)、制版以及仿真等功能于一身,不僅可以對電路進(jìn)行設(shè)計(jì)與分析,還可以對微處理器進(jìn)行設(shè)計(jì)和仿真,是一款電子線路設(shè)計(jì)與仿真軟件。所以Proteus軟件是一個(gè)基于Pro-SPICE混合模型仿真器、完整的嵌入式系統(tǒng)軟硬件設(shè)計(jì)仿真平臺。 Proteus軟件與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語句執(zhí)行時(shí),單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。對于這樣的仿真,從某種意義上講,彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用不能相結(jié)合的不足。 所以本設(shè)計(jì)采用的仿真軟件是Proteus軟件,通過它實(shí)現(xiàn)電路圖的繪制,并與Keil軟件進(jìn)行相關(guān)的調(diào)試。6.3 仿真結(jié)果 將Keil軟件成的.hex文件加載到單片機(jī)內(nèi),并在Proteus軟件里仿真,會(huì)在液晶顯示屏內(nèi)看到溫度顯示,如圖17所。其中60度是系統(tǒng)設(shè)定的默認(rèn)溫度,即目標(biāo)溫度;27度是DS18B20溫度傳感器的溫度,即實(shí)際溫度。在顯示27度之前,會(huì)看到DS18B20溫度傳感器顯示85度,85度的產(chǎn)生是由于溫度傳感器讀取過快,還沒有復(fù)位,但當(dāng)運(yùn)行一會(huì)之后溫度傳感器就會(huì)復(fù)位。 圖17 仿真圖6.4 調(diào)試結(jié)果 溫度調(diào)節(jié)效果如下: (1)通電源,打開開關(guān),液晶顯示情況如圖18所示,其中TO表示目標(biāo)溫度,NO表示實(shí)際溫度。圖18 通電后,液晶屏顯示情況(2) 通電一段時(shí)間后,隨著溫度的上升,目標(biāo)溫度與實(shí)際溫度的差大于3度,且目標(biāo)溫度是60度,此時(shí)占空比為1/3,周期為15000us。此時(shí)液晶顯示情況,如圖19所示。 圖19 通電一段時(shí)間后,液晶屏顯示情況 (3) 通電一段時(shí)間后,目標(biāo)溫度與實(shí)際溫度的差小于等于3度,此時(shí)占空比為1/3,周期為15000us。此時(shí)液晶顯示情況,如圖20所示。圖20 液晶顯示情況(4)通過按鍵S2,將目標(biāo)溫度增至86度,且目標(biāo)溫度與實(shí)際溫度的差大于3度,此時(shí)占空比為100%,周期為10000us。此時(shí)液晶顯示情況,如圖21所示。圖21 液晶顯示情況(5)通過按鍵S3,將目標(biāo)溫度減至80度,此時(shí)占空比為0,周期不定,自然冷卻。此時(shí)液晶顯示情況,如圖22所示。圖22 液晶顯示情況7 小結(jié) 本次的畢業(yè)設(shè)計(jì),我基本上實(shí)現(xiàn)了“基于單片機(jī)實(shí)現(xiàn)的PWM溫度控制系統(tǒng)的設(shè)計(jì)”。從選擇單片機(jī),并在研究單片機(jī)的管腳性能基礎(chǔ)上,設(shè)計(jì)出相應(yīng)的電路;通過設(shè)計(jì)程序,調(diào)試程序,把設(shè)計(jì)的相應(yīng)電路通過Proteus軟件以及keil軟件結(jié)合起來,達(dá)到實(shí)現(xiàn)系統(tǒng)功能的設(shè)計(jì),在仿真的基礎(chǔ)上,確立電路以及程序的正確性,其中不足的是,Proteus軟件當(dāng)中沒有PTC熱敏電阻元件,而是通過NTC熱敏電阻元件替代,不能實(shí)現(xiàn)相應(yīng)的溫度動(dòng)態(tài)顯示,只能顯示一下傳感器DS18B20的溫度,以及程序設(shè)定的默認(rèn)溫度60度,看不到相應(yīng)的PWM控制加熱的效果,看不到具體的溫度上升;在仿真的基礎(chǔ)上完成實(shí)物,通過實(shí)物看到了具體的溫度上升顯示,基本完成設(shè)計(jì)的要求,不足之處,本設(shè)計(jì)是選擇通過軟件延時(shí)模擬進(jìn)行的脈寬調(diào)制以及與閉環(huán)系統(tǒng)結(jié)合,不能得到準(zhǔn)確的頻率值,進(jìn)而不能算出固定的周期。從這次設(shè)計(jì)中,我學(xué)到很多知識,體會(huì)到理論聯(lián)系實(shí)際的好處,充分鍛煉了我的動(dòng)手能力,提高了我的思維能力,專業(yè)知識更加完善,對自己今后的學(xué)習(xí)、工作都有很大的幫助。參考文獻(xiàn):1 孫立志.PWM與數(shù)字化電動(dòng)機(jī)控制技術(shù)應(yīng)用.北京.中國電力出版社,2008.2 劉昭斌.單片機(jī)控制的溫度控制系統(tǒng).蘭州石化職業(yè)技術(shù)學(xué)院學(xué)報(bào)(綜合版),1992.3 周志敏 周紀(jì)海 紀(jì)愛華等.驅(qū)動(dòng)電路設(shè)計(jì)與應(yīng)用.北京.人民郵電出版社,2006.4 求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航. 人民郵電出版社,2004.8.5 周堅(jiān).單片機(jī)輕松入門.北京航空航天大學(xué)出版社,2004.2.6 沙占友 王彥朋 孟志永等.單片機(jī)外圍電路設(shè)計(jì).電子工業(yè)出版社,2003.7 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京航空航天大學(xué)出版社,1994.24-38.8 楊素行.模擬電子技術(shù)基礎(chǔ)簡明教程.高等教育出版社. 2003.9 鄒應(yīng)全.51系列單片機(jī)原理與實(shí)驗(yàn)教程.西安電子科技大學(xué)出版社,2007.12.10 陳明.一種數(shù)字可調(diào)的升壓型開關(guān)電源的設(shè)計(jì)與實(shí)現(xiàn).西部工控11 梁坤 胡鴻至等.基于單片機(jī)功能的數(shù)控恒流源研制.桂林電子科技大學(xué).12 Alou P.Cobos J A.Uceda J,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)互聯(lián)網(wǎng)平臺霧計(jì)算協(xié)同在智能倉儲(chǔ)物流中的應(yīng)用案例分析報(bào)告
- 2025年農(nóng)村一二三產(chǎn)業(yè)融合發(fā)展的農(nóng)村物流技術(shù)應(yīng)用效果評估報(bào)告001
- 2025年元宇宙社交平臺虛擬現(xiàn)實(shí)技術(shù)專利布局與市場競爭力報(bào)告
- 2025年醫(yī)院信息化建設(shè)關(guān)鍵環(huán)節(jié):電子病歷系統(tǒng)深度優(yōu)化分析報(bào)告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺生物識別技術(shù)在智能工廠生產(chǎn)流程優(yōu)化中的應(yīng)用價(jià)值分析報(bào)告
- 2025年黑龍江省伊春市名校八年級英語第二學(xué)期期末教學(xué)質(zhì)量檢測模擬試題含答案
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式下的知識產(chǎn)權(quán)保護(hù)與法律風(fēng)險(xiǎn)防范報(bào)告
- 四川省成都市天府新區(qū)2025屆英語八年級第二學(xué)期期末教學(xué)質(zhì)量檢測試題含答案
- 表白數(shù)獨(dú)題目及答案
- 地?zé)豳Y源區(qū)域供暖系統(tǒng)設(shè)備選型與國產(chǎn)化進(jìn)程報(bào)告001
- 2025年人教遼寧版八年級語文下冊 第二學(xué)期 期末測試卷
- 2025年考研政治《毛概》必考辨析題庫及答案大全
- 統(tǒng)編版語文一年級上冊新教材解讀及教學(xué)建議 課件
- 2025年春季安全教育主題班會(huì)教育記錄
- 醫(yī)療行業(yè)上云用云研究報(bào)告2024
- 融資擔(dān)保行業(yè)2024年信用回顧與2025年展望 -新世紀(jì)
- 曹楊二中自招數(shù)學(xué)試卷
- (新疆一模)2025屆高三高考適應(yīng)性檢測分學(xué)科第一次模擬考試 生物試卷(含答案解析)
- 中職高二數(shù)學(xué)測試卷01(高教版2023拓展模塊一下冊全部)(原卷版)
- 醫(yī)院反腐倡廉廉潔行醫(yī)專題黨課宣講課件
- 大數(shù)據(jù)分析與應(yīng)用知到智慧樹章節(jié)測試課后答案2024年秋西安理工大學(xué)
評論
0/150
提交評論