畢業(yè)設計(論文)基于單片機簡易溫度閉環(huán)控制系統(tǒng)設計_第1頁
畢業(yè)設計(論文)基于單片機簡易溫度閉環(huán)控制系統(tǒng)設計_第2頁
畢業(yè)設計(論文)基于單片機簡易溫度閉環(huán)控制系統(tǒng)設計_第3頁
畢業(yè)設計(論文)基于單片機簡易溫度閉環(huán)控制系統(tǒng)設計_第4頁
畢業(yè)設計(論文)基于單片機簡易溫度閉環(huán)控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘 要2第1章 緒論3第2章 系統(tǒng)總體方案42.1簡易溫度控制系統(tǒng)的整體設計42.2簡易溫度控制系統(tǒng)的工作原理5第3章 系統(tǒng)硬件設計53.1 主控芯片介紹53.2 復位電路83.3 時鐘電路93.4 直接編碼輸入鍵盤電路93.5 顯示電路103.6 電平轉換電路113.7 a/d轉換電路123.8 測溫電路13第4章 系統(tǒng)軟件設計154.1 主程序模塊164.2 lcd顯示模塊174.3 tlc1543模數(shù)轉換模塊20第5章溫度閉環(huán)控制系統(tǒng)調試235.1 溫度閉環(huán)控制系統(tǒng)靜態(tài)調試235.2溫度閉環(huán)控制系統(tǒng)動態(tài)調試235.3 溫度控制系統(tǒng)調試情況23結論25參考文獻26摘 要 設計了一種基于ss

2、t89e516rd單片機及熱敏電阻ttc101的溫度閉環(huán)控制系統(tǒng)。單片機由于其比較高的性價比,在工業(yè)控制中的應用非常廣泛,而溫度的檢測與控制是工業(yè)生產過程中比較典型的應用之一,隨著傳感器在生產和生活中的更加廣泛的應用,利用溫度傳感器實現(xiàn)對溫度的檢測與控制得到更快的開發(fā)。該系統(tǒng)硬件方面主要分為測溫電路、模數(shù)轉換電路以及液晶顯示電路三部分。利用熱敏電阻和運放構成測溫電路,通過tlc1543進行模數(shù)轉換,最后用lcm1602b作為液晶屏進行溫度顯示。軟件方面運用c語言進行編程,程序分為主程序、lcd1602顯示程序、tlc1543模數(shù)轉換程序。整個設計過程簡單,使用方便,具有一定的開發(fā)價值。關鍵詞:

3、 sst89e516rd;溫度測量;液晶顯示29第1章 緒論單片機技術作為計算機技術的一個重要分支,廣泛應用于工業(yè)控制、智能化儀器儀表、家用電器,甚至電子玩具等各個領域,它具有體積小、功能多、價格低廉、使用方便、系統(tǒng)設計靈活等優(yōu)點,因此具有非常大的應用空間。而作為信息獲取的重要手段之一,傳感器是將電子系統(tǒng)無法處理的外界物理量或者化學量轉換為電信號的主要器件。對于測量與控制系統(tǒng)而言,傳感器是構成對外界物理量或者化學量加以檢測的前端器件。傳感器是實現(xiàn)信息化的基礎技術之一,在科學技術領域占有十分重要的地位。目前傳感器已經(jīng)廣泛應用于國防、環(huán)保、工業(yè)、農業(yè)、交通運輸、日常生活等所有領域,并伴隨著現(xiàn)代科學

4、技術的進步而不斷發(fā)展。本設計介紹了一種基于sst89e516rd單片機及熱敏電阻ttc101的溫度閉環(huán)控制系統(tǒng),具有讀數(shù)方便,測溫范圍廣等優(yōu)點,其溫度通過液晶屏采用十進制數(shù)字顯示,主要用于測量電路板溫度。測溫傳感器使用熱敏電阻ttc101,a/d轉換電路采用tlc1543,用lcm1602b實現(xiàn)溫度的顯示。第2章 系統(tǒng)總體方案2.1簡易溫度控制系統(tǒng)的整體設計溫度控制系統(tǒng)是由硬件和軟件兩部分組成。硬件部分主要由單片機sst89e516rd,負溫度系數(shù)熱敏電阻ttc101,tlc1543模數(shù)轉換電路,lcm1602b液晶顯示器,按鍵電路,串行通信電路組成。其硬件總體結構圖如圖2-1所示。熱敏電阻(

5、ttc101)電壓放大電路a/d轉換sst89e516rd串行通信接口液晶顯示器(lcm1602b)按鍵電路圖2-1溫度傳感器結構圖本設計主要由單片機、溫度采集模塊、溫度顯示模塊和按鍵設定模塊組成。本系統(tǒng)能實現(xiàn)溫度實時測量,同時顯示在1602液晶顯示器上;能實現(xiàn)溫度的設定;通過串行通信電路,將溫度采集數(shù)據(jù)傳送到pc機。2.2簡易溫度控制系統(tǒng)的工作原理熱敏電阻和電壓放大電路組成溫度采集模塊,它通過熱敏電阻感應出電路的溫度,然后由運放電路將熱敏電阻兩端的電壓進行放大,放大后的電壓模擬信號經(jīng)模數(shù)轉換后把十位二進制信號輸入單片機,然后由單片機進行處理,最后送入1602液晶屏進行顯示。同時由單片機控制溫

6、度的設定。第3章 系統(tǒng)硬件設計3.1 主控芯片介紹本設計選用的主芯片為sst89e516rd,是sst公司生產的超高性價比、超高靈活性的一款單片機內核芯片,其主要特性如下: (1)兼容80c51系列,內置超級flash存儲器。 (2)工作電壓,5v工作電壓時頻率范圍為040mhz. (3)與現(xiàn)行的80c52系列單片機硬件pin-to-pin完全兼容,軟件、開發(fā)工具也完全兼容。 (4)1k*8的內部ram,可放心使用c語言編程。(5)兩塊超級flash eeprom,分別為64k*8的基本存儲塊和8k*8的二級存儲塊(扇區(qū)大小為128字節(jié))。 (6)獨立的塊加密。 (7)iap下的并行操作。 (

7、8)塊地址重映射。 (9)最大片外程序/數(shù)據(jù)地址空間為64k*8(也可以通過i/o口進行切換,實現(xiàn)超64k擴展)。 (10)三個搞電流驅動引腳(每個16ma,可直接驅動led)。(11)三個16位定時器/計數(shù)器。(12)全雙工增強型uart,具有幀錯誤檢測及自動地址識別。(13)9個中斷源,4個中斷優(yōu)先級。(14)看門狗定時器。且看門狗溢出時間可調(15)可編程計數(shù)陣列(pca),標準為每個機器周期12個時鐘周期,器件可選擇在每個機器周期為6個時鐘周期上加倍,掉電檢測(brow-out缺省為產生復位,也可以設置成產生中斷)。(16)降低emi模式(通過auxr sfr部允許ale輸出時鐘)。(

8、17)四個8位i/o口(32根輸入輸出線)。(18)雙dptr指針(查表,尋址更方便)。(19)spi串行接口。(20)兼容ttl和cmos(21)擴展省電模式。包括以下三種:idle模式、由外部中斷喚醒的省電模式、standly模式。(22)溫度范圍:商業(yè)級為070攝氏度,工業(yè)級為-40+85攝氏度。 sst89e516rd的芯片封裝有dip和plcc兩種形式,在本設計中采用的是dip雙列直插式,其引腳排列圖如圖3-1所示 圖3-1 sst89e516rd芯片引腳排列其引腳功能如下:port 0:p0是一個漏極開路的8位雙向i/o口。作為輸出口,每位能驅動多個ls型ttl負載。p0浮空,鎖存

9、器為“1”,可作為高阻抗輸入。在訪問外部存儲器時,p0口作為低8位地址和數(shù)據(jù)總線時分復用。在這種應用中,當轉為高電平是,它用了強大的內部上拉。在外部主模式編程狀態(tài)下,p0接收代碼字節(jié),在外部主模式校驗過程中輸出代碼字節(jié)。在程序校驗過程中需要外部上拉。port 1:p1是一個帶內部上拉電阻的8位準雙向i/o口。每位能驅動ls型ttl負載。當p1口作為輸入口用時,向內部鎖存器寫入“1”,p1引腳被內部上拉電阻拉為高電平。由于內部上拉電阻,被拉低的p1引腳能向外部提供電流。p15,6,7有16ma的高電流驅動能力。當外部主模式在編程和測試時,p1也接收低8位地址。p1口的每個單獨的引腳除了可作為i/

10、o引腳外,還具有第二i/o功能,但是在本設計中,僅作為一般i/o引腳使用。port 2: p2口是一個帶內部上拉電阻的8位準雙向i/o端口,當被作為輸入時,向它寫入“1”,p2引腳被內部上拉電阻拉為高電平。作為輸入使用時,被內部上拉電阻下拉為低電平的p2會產生電流。當從片外程序存儲器取數(shù)和訪問片外數(shù)據(jù)存儲器時,p2能提供高8位地址。在此應用中,當轉為時,它利用了功能極強的內部上拉電阻。當外部主模式在編程和測試時,它還接收控制信號和部分高8位地址。port 3: p3口是一個帶內部上拉電阻的8位準雙向i/o端口。p3的輸出緩沖功能驅動多個ls型ttl。當被作為輸入時,向它寫入“1”,p3引腳被內

11、不上啦電阻拉為高電平,作為輸入使用時,被外部拉為低,能驅動電流。當外部主機在編程和校驗時,它還能接收控制信號和部分高8位地址。p3口的每個單獨的引腳除了可作為i/o引腳外,還具有第二i/o功能,在此設計中使用的是p3口的第二輸入/輸出功能。具體如下p3.0:rxd,串行數(shù)據(jù)接收;p3.1:txd,串行數(shù)據(jù)發(fā)送;p3.2:int0,外部中斷0輸入;p3.3: int1,外部中斷1輸入;p3.4:t0,定時/計數(shù)器0的外部計數(shù)輸入;p3.5:t1,定時/計數(shù)器1的外部計數(shù)輸入;p3.6:wr,外部數(shù)據(jù)存儲器寫選通,低電平有效;p3.6:rd,外部數(shù)據(jù)存儲器讀選通,低電平有效;rst:復位輸入,當振

12、蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。psen:低電平有效,外部程序存儲器的選通信號

13、。在由外部程序存儲器取指期間,每個機器周期兩次psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的psen信號將不出現(xiàn)。:當ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內部程序存儲器。注意加密方式1時,ea將內部鎖定為reset;當ea端保持高電平時,此間內部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。vdd:供電電壓。vss:接地。sst89e516rd的程序和數(shù)據(jù)存儲空間分開獨立尋址。程序存儲器包括兩個片內flash存儲塊。基本fl

14、ash存儲塊(block 0)占用64k字節(jié),二級flash存儲塊(block 1)占用 8k字節(jié)。因為整個內部程序空間被限制為64k字節(jié),sfcf1:0位用于控制存儲塊的低8k之間的切換。當sfcf1:0為00時,由于block 1覆蓋了程序空間的低8k即0000h-1fffh的地址空間,所以當pc下降到0000h-1fffh時,指令將從block 1讀取而不是從block 0讀取。在0000h-1fffh外,block 0可用。block 0被組織成512個扇區(qū),每個扇區(qū)有128個字節(jié)組成。程序存儲塊切換是在復位后根據(jù)sc0位的狀態(tài)來初始化的。sc0是根據(jù)外部主模式或iap命令來編程的。一

15、旦退出復位,sfcf0能根據(jù)設計需要通過編程動態(tài)改變。改變sfcf0將不會改變sc0。在動態(tài)改變sfcf0時,必須小心謹慎,因為這將導致不同的物理存儲器被映射到邏輯程序地址空間。使用者必須避免在空間0000h-1fffh之間執(zhí)行塊切換命令。sst89e516rd具有1k片內數(shù)據(jù)存儲器, 64k的外部數(shù)據(jù)存儲器。1k的片內數(shù)據(jù)存儲器包括:1ram 的低128 字節(jié)(00h7fh)通過直接和間接尋址訪問。 2ram 的高128 字節(jié)(80hffh)只能通過直接尋址訪問。 3特殊功能寄存器(sfrs,80hffh)只能通過直接尋址訪問。4768 字節(jié)(00h2ffh)的內部擴展ram通過清零 ext

16、ram 和外部傳送指令(movx)來實現(xiàn)間接尋址。單片機sst89e516rd的大部分特性都是由特殊功能寄存器的相應位來控制的。本設計中主要用到的是與中斷有關的寄存器。3.2 復位電路為確保兩點間溫度控制系統(tǒng)中電路穩(wěn)定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般電路正常工作需要供電電源為5v5%,即4.755.25v。復位是單片機的初始化操作,其目的是使cpu及各專用寄存器處于一個確定的初始狀態(tài)。如:把pc的內容初始化為0000h,使單片機從0000h單元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化之外,當單片機系統(tǒng)在運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也

17、需要復位以使其恢復正常工作狀態(tài)。rst端的外部復位電路有兩種操作方式:上電自動復位和按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種,本系統(tǒng)設計采用脈沖式按鍵手動復位,如圖3-2所示。 圖3-2 復位電路按鍵手動復位電路中,未按下復位按鈕時,5v電源對電容進行充電,芯片的reset為低電平;當按下按鈕時,電容進行放電,放電結束后,芯片的reset引腳變成高電平;松開按鍵時,電容再次進行充電,使得芯片復位引腳緩慢變?yōu)榈碗娖健?.3 時鐘電路單片機的時鐘信號用來提供單片機內各種微操作的時間基準,時鐘電路用于產生單片機工作所需要的時鐘信號。單片機的時鐘信號用來提供單片機片內各種微操作的時間基準,時

18、鐘信號通常用內部振蕩或者外部振蕩這兩種電路形式得到:。本設計采用內部振蕩方式,如圖3-3所示。 圖3-3 時鐘振蕩電路引腳xtall和xtal2分別是系統(tǒng)時鐘信號的輸入端和輸出端,由于采用內部方式時,電路簡單,所得的時鐘信號比較穩(wěn)定,實際使用中常采用這種方式。因為選用的是石英晶體振蕩器,所以電容選擇電容值為22pf的無極性電容。3.4 直接編碼輸入鍵盤電路通過檢測單片機i/o口引腳電平狀態(tài)來判別有無按鍵輸入就構成直接輸入鍵盤,如圖3-4所示。之所以采用這種鍵盤電路形式,是因為在此設計中只有少量需要控制的系統(tǒng)。而直接編碼輸入鍵盤的接口電路簡單,采用它可以簡化電路。 圖3-4 鍵盤電路在本設計中,

19、主芯片的p1口的四個引腳p1.0,p1.1,p1.2,p1.3分別與四個按鍵k1,k2,k3,k4相連接,且分別外接了10k的上拉電阻。四個按鍵在設計中作為設定閉環(huán)控制系統(tǒng)的溫度時的控制按鍵,由于本次設計只需要通過按鍵進行數(shù)字加減,故實際應用是只用到k1,k2兩個按鍵,按鍵k1作為加的按鍵,k2作為減的按鍵。3.5 顯示電路在單片機應用系統(tǒng)中,對于系統(tǒng)的運行狀態(tài)和運行結果,通常都需要直觀交互顯示出來。單片機應用系統(tǒng)中最常用的顯示器有l(wèi)ed和lcd兩種。這兩種顯示器都可以顯示數(shù)字、字符及系統(tǒng)的狀態(tài),本設計采用的是更為環(huán)保的lcd顯示器。字符型液晶顯示模塊是一種專門用于顯示字母,數(shù)字,字符等點陣式

20、lcd,目前常用的有16x1,16x2,20x2,40x2等模塊,本設計采用的是lcm1602b,即最多可顯示1602即32個字符。1602字符型lcd通常有14條引腳線或16條引腳線的lcd,多出來的2條線是背光電源線。該模塊也可以只用d4-d7作為四位數(shù)據(jù)分兩次傳送,這樣的話可以節(jié)省cpu的i/o口資源。lcm1602b引腳圖如圖3-5所示 圖3-5 1602引腳圖其詳細引腳功能如附錄1所示。vss,vcc分別接地和5v電源。v0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生“鬼影”,使用時可以通過一個10k的電位器調整對比度)。rs為寄存器選擇,

21、高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。r/w為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。e(或en)端為使能(enable)端,下降沿使能。db0db7為雙向數(shù)據(jù)總線。bla為背光電源正極,blk為背光電源負極。另外1602內置了ddram和cgrom。ddram就是顯示數(shù)據(jù)ram,用來寄存待顯示的代碼,共80個字節(jié),其地址和屏幕的對應關系如表3-1 表3-1 ddram地址與顯示位置的對應關系顯示位置123456740ddram地址第一行00h01h02h03h04h05h06h27hddram地址第二行40h41h42h43h44h45h46h67h就是說想要在lcd1

22、602屏幕的第一行第一列顯示一個“a”字,就要向ddram的00h地址寫入“a”字的代碼41h就行了。但具體的寫入是要按lcd模塊的指令格式進行的。而41h這一個字符的代碼要在屏幕的陣點上顯示“a”字,就需要用到lcd模塊的固化了的字模存儲器,這就是cgrom,1602內置了192個常用字符的字模,存于cgrom中。本設計中1602用來顯示當前溫度和所設定的溫度。其中第一行用來顯示當前溫度,第二行用來顯示想要設定的溫度。它與主芯片的連接如圖3-6 圖3-6 1602與sst89e516rd的連接圖 此設計中將1602的rs,r/w,e分別與主芯片的p2.0,p2.1,p2.2相接,則可以通過控

23、制p2口這三個引腳的高低電平來控制1602的狀態(tài)。而db0-db7與主芯片的p0口相連接,在主芯片對1602進行寫入時,db0-db7先作為地址總線進行地址的傳送,控制1602的被寫入的位置,然后再作為數(shù)據(jù)線,傳送需要顯示的數(shù)據(jù)的相應的字符代碼。3.6 電平轉換電路當單片機與pc機進行串行通信時,一般都需要一個電平轉換電路,因為pc機所采用的是eia電平,與pc機相連的串口rs232也是采用eia電平,即傳送數(shù)字“1”時,傳輸線上的電平在-3v-15v之間;傳送數(shù)字“0”時,傳輸線上的電平在+3v+15v之間。但是單片機串行口采用正邏輯的ttl電平,其高電平為+5v,低電平為0v。這樣就存在t

24、tl電平與eia電平之間的轉換問題。通常這個電路都選擇專用的rs232接口電平轉換集成電路進行設計,如max232、hin232等。max232芯片集成度高,單+5v電源工作,只需要外接四個小容量的電容即可完成兩路rs232與ttl電平之間的轉換。故在本設計中采用max232與計算機串口rs232相連接,作為電平轉換電路。max232有兩個接收器和兩個發(fā)送器,每一個接收器將eia電平轉換成5v的ttl電平,每一個發(fā)送器將ttl電平轉換成eia電平,在本設計中只用到了接收器2和收發(fā)器2,其具體電路如圖3-7所示 圖3-7 電平轉換電路其中txd為主芯片sst89e516rd的串行數(shù)據(jù)發(fā)送端,與m

25、ax232的t2in連接,當主芯片發(fā)送出來的ttl電平的數(shù)據(jù)由t2in進入,經(jīng)過max232的作用,從t2out輸出相應的eia電平的數(shù)據(jù),此數(shù)據(jù)再經(jīng)過計算機串口rs232到達pc機,從而完成由單片機到pc機的數(shù)據(jù)傳送。而rxd為sst89e516rd的串行數(shù)據(jù)接收端,與max232的r2out相連,當由pc機發(fā)送過來的eia電平的數(shù)據(jù)由串口rs232的3腳r2in進入max232,在其內部完成由eia到ttl電平的轉換,最后由r2out輸出相應的ttl電平的數(shù)據(jù),將數(shù)據(jù)送入主芯片sst89e516rd的串行數(shù)據(jù)接收端rxd那里,從而完成了由pc機到單片機的數(shù)據(jù)傳送。3.7 a/d轉換電路由于

26、測溫電路所輸出的信號為電壓模擬信號,而主芯片sst89e516rd本身只能處理二進制或者十六進制的數(shù)字信號,因此,要通過sst89e516rd來控制測溫系統(tǒng)正常工作,必須先將需要讓主芯片進行處理和控制的模擬信號轉換為可被主芯片處理的數(shù)字信號。因此,在測溫電路與主芯片之間,必須增加一個a/d轉換的電路來進行模數(shù)信號的轉換。a/d轉換電路種類很多,在選擇模數(shù)轉換器時,主要考慮以下幾個技術指標:轉換時間、轉換頻率、誤差、分辨率、轉換精度、接口形式。目前,較為流行的a/d轉換器件有很多都采用串行接口 ,這使得芯片與單片機的硬件連接非常簡單,而軟件編程相對要復雜些。綜合考慮本設計所需a/d轉換器的性能要

27、求和價格問題,在本設計中選用了性價比相對較高的tlc1543作為模數(shù)轉換芯片。該芯片有如下特點:10位精度、11通道、3種內建的自測模式、提供eoc(轉換完成)信號等。該芯片與單片機的接口采用串行接口方式,引線很少,與單片機連接簡單。其中a0-a10是11路輸入,vcc和gnd分別是電源引腳,ref+和ref-分別是參考電源的正負引腳,使用時一般將ref-接到系統(tǒng)的地,達到一點接地的要求,以減少干擾,在本設計中,將ref+設置為電壓可調,并通過外接一個三端可調分流基準電壓源tl431來設置ref+的電壓值。其余的引腳是tlc1543與單片機主芯片的接口,其中cs為片選端,低電平有效,clk是芯

28、片的時鐘端,add是地址選擇端,dat是數(shù)據(jù)輸出端。本設計中這4根引腳分別接到主芯片的p2.3,p2.4,p2.5,p2.6這四個i/o端。eoc接到p2.7,當它為低電平時,表示一次a/d轉換已經(jīng)完成,cpu可以讀取數(shù)據(jù)了。在程序中cpu通過查詢該引腳的狀態(tài)來了解當前的狀態(tài)。其在本設計中的具體電路如圖3-8所示 圖3-8 模數(shù)轉換電路右邊電路中是由tl431加滑動變阻器構成的穩(wěn)壓基準,溫漂小,又有相當?shù)呢撦d能力,且輸出電壓可調,電路簡單,且使得ref+的設置更加靈活。而tlc1543的a0腳與測溫電路的輸出端相連接,測溫電路輸出的模擬電壓信號由a0腳進入tlc1543進行模數(shù)轉換,轉換出的相

29、應的十位二進制數(shù)字信號從dat引腳串行輸出,由于p2.4與dat引腳相連,故可將輸出的數(shù)字信號被送入cpu進行處理。3.8 測溫電路測量溫度所采用的元器件主要是熱敏電阻,之所以采用熱敏電阻是由于它具有一下幾個特點:熱敏電阻的主要特點是:(1)靈敏度較高,其電阻溫度系數(shù)要比金屬大10100倍以上;(2)工作溫度范圍寬,常溫器件適用于-55315,高溫器件適用溫度高于315(目前最高可達到2000),低溫器件適用于-27355;(3)體積?。唬?)使用方便,電阻值可在0.1100k間任意選擇;(5)穩(wěn)定性好、過載能力強。在本設計中采用ttc101,即負溫度系數(shù)熱敏電阻(ntc)進行溫度感應,ntc

30、是指隨溫度上升電阻呈指數(shù)關系減小、具有負溫度系數(shù)的熱敏電阻和材料。熱敏電阻的電阻溫度特性可近似地用下式表示: ; :溫度時的電阻值;:溫度時的電阻值;:值,實際上,熱敏電阻的b值并非是恒定的,其變化大小因材料構成而異,本設計中的ttc101在25攝氏度下阻值為100歐姆,b值為3200;其中為熱力學溫度,單位是k,而是攝氏溫度,單位是;具體的測溫電路如圖3-9所示 圖3-9 溫度閉環(huán)控制電路圖中r10即為負溫度系數(shù)熱敏電阻ttc101,而r8為15歐姆的加熱電阻,測溫電路的輸入端與主芯片的p1.4口相接,當對p1.4寫入0即寫入低電平時,測溫電路的三極管q1導通,加熱電阻r8有電流流過,溫度升

31、高,而另一支路中r9、r10中也有電流流過,熱敏電阻r10感應到溫度的變化,其電阻值相應的發(fā)生變化,從而引起其兩端電壓也發(fā)生變化,由于一般傳感器感應出來的電量變化都相對較小,不適合直接作為后續(xù)電路的輸入信號,因此在后面又接上通過運放電路和穩(wěn)壓電路,最終實現(xiàn)了電壓的放大和穩(wěn)定輸出。運放電路的放大倍數(shù)可以通過滑動變阻器r12來進行調節(jié),不過一般 為了計算方便,將r12調至1k阻值,即使r12與r11電壓相同。限流電阻r13的后面接2.5v的穩(wěn)壓二極管,當穩(wěn)壓管兩端電壓大于2.5v時,輸出電壓為2.5v;當穩(wěn)壓管兩端電壓小于2.5v時,輸出電壓為實際電壓值。輸出端電壓經(jīng)過a/d轉換電路最終送入cpu

32、進行處理。當設定好了溫度,需要對測溫電路的溫度進行調節(jié)時,可以通過對主芯片的p1.4進行高低電平操作來控制發(fā)熱電阻是否有電流流過,從而控制電路溫度的升高或者降低。本設計在后期修改了此圖,將r9改為120歐姆的電阻,同時將熱敏電阻兩端的電壓直接接入tlc1543中進行模數(shù)轉換。且將ref+設為+5v。其具體推到公式如下 (1)為熱敏電阻溫度為阻值將上面這些值帶入公式(1)中可得 (2)其中v為a/d轉換前的電壓即熱敏電阻兩端的電壓;通過推到求的 (3)后面編程時就是用公式(3)來進行溫度與電壓間的轉換的。第4章 系統(tǒng)軟件設計整個系統(tǒng)的功能是由硬件電路與軟件相結合來實現(xiàn)的,當硬件基本定型的時候軟件

33、也基本定下來了,從軟件的功能不同,可以分為兩大類:一是主程序,它是整個軟件的核心,專門用來協(xié)調各個執(zhí)行模塊和操作者的聯(lián)系;二是子程序,它是用來完成各種實質性的工作的,如測量、計算、顯示、通訊等。每一個執(zhí)行軟件就是一個小的執(zhí)行模塊,這里將每一個模塊一一列出來,并為每個執(zhí)行模塊進行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好以后,就可以規(guī)劃監(jiān)控軟件了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的主程序結構,然后根據(jù)實時性的條件,合理安排監(jiān)控軟件和執(zhí)行軟件之間的調度關系。本系統(tǒng)軟件設計主要包括主程序以及各個模塊程序:溫度采集模塊、溫度顯示模塊、按鍵設定模塊和通信模塊等,以及擴展功能的若干個控制子程序。主程序分別

34、調用這些子程序實現(xiàn)對液晶顯示器、a/d轉換和pc機通信的操作控制。4.1 主程序模塊 主程序主要完成硬件初始化,子程序調用等功能,其具體流程圖如圖4-1所示開始初始化數(shù)據(jù)采集并進行a/d轉換cpu計算并得到溫度值輸入值大于設定值進行溫度調節(jié)程序啟動控制系統(tǒng)結束顯示當前溫度值ny 圖4-1主程序流程圖在實際編程中,由于實力有限,并未編寫溫度調節(jié)程序,因此在主程序中,也沒有pwm調制的程序,而是直接給p1.4口賦值為0,即給p1.4低電平。主程序函數(shù)如下#include #include lcd.hsbit p1_4=p14;void main (void) double ad_res, temp

35、; p1_4=0; /使三極管導通,從而使r8發(fā)熱 init_lcd( ); /初始化 clear_lcd( ); /清屏 display_lcd_string(ad result:); /第一行固定顯示ad result gotoxy(2,1); / 光標定位到第二行 display_lcd_string(temp:); / 在第二行固定顯示temp while(1) /* 無窮循環(huán) */ ad_res = adcselchannel(0);/ad_res為經(jīng)過模數(shù)轉換后的十位二進制數(shù)值 gotoxy(1,11); display_lcd_number(ad_res);/顯示熱敏電阻的兩端的

36、模擬電壓值 temp = temperature(ad_res);/temp為熱敏電阻測得的溫度值 gotoxy(2,6); display_lcd_number1(temp);/顯示溫度值 delay100us(200); delay100us(200); delay100us(200); delay100us(200); delay100us(200); delay100us(200); delay100us(200); delay100us(200); delay100us(200); delay100us(200); delay100us(200); delay100us(200);

37、delay100us(200); delay100us(200); delay100us(200);4.2 lcd顯示模塊lcd1602的顯示是編程中非常重要的一部分,其具體流程圖如圖4-2所示入口初始化1602延時檢測忙信號lcd_busy=0?獲得顯示ram地址延時寫入相應的數(shù)據(jù)數(shù)據(jù)顯示完畢返回主程序nyny 圖4-2 lcd1602液晶顯示流程圖lcd液晶顯示子程序如下 #include #include #include char code int2charlcd=0123456789;void write_lcd_command(unsigned command) /寫指令子程序 r

38、w=write; /write為0,向lcd寫入指令 rs=command; /command為0,輸入指令enable=enable; /enable為1,讀取信息p0=command; delay100us(20);enable=disable; /disenable為0,下降沿執(zhí)行指令rw=1; /從lcd讀取信息void write_lcd_data(unsigned lcddata) /寫數(shù)據(jù)子程序rw=write;rs=data; /data為1,輸入數(shù)據(jù)enable=enable; /enable為1,讀取信息p0=lcddata;delay100us(20);enable=di

39、sable; rw=1;void init_lcd(void) /初始化write_lcd_command(twoline_8bit); / 0x38 write_lcd_command(cursor_off);/ 0x0cwrite_lcd_command(cursor_right); / 0x06void clear_lcd( ) /清屏write_lcd_command(clear);write_lcd_command(cursor_home);void display_lcd_string(char *p) /顯示字符串while(*p)write_lcd_data(*p);p+;vo

40、id display_lcd_number(double number) /顯示ad轉換前的電壓值unsigned char x,y,z;x = (int)(number*5/1024);y = (int)(number*5/1024*10)%10;z = (int)(number*5/1024*100)%10;write_lcd_data(int2charlcdx);display_lcd_string(.);write_lcd_data(int2charlcdy);write_lcd_data(int2charlcdz);void gotoxy(unsigned x,unsigned y)

41、 /光標定位子程序if(x=1) write_lcd_command(goto_line_1+y);else write_lcd_command(goto_line_2+y);double temperature(double num) /計算溫度值double t,v;v = num*5/1024;t = 1 / (1 / 298.15 + log(1.2*v/(5-v)/3200) -273.15;return t;void display_lcd_number1(double number) / 顯示溫度值unsigned char x,y,z;x=(int)(number/10);y=

42、(int)(number-10*x);z=(int)(number*10/10);write_lcd_data(int2charlcdx);write_lcd_data(int2charlcdy);display_lcd_string(.); write_lcd_data(int2charlcdz);4.3 tlc1543模數(shù)轉換模塊tlc1543是一個模數(shù)轉換芯片,它能將輸入其中的模擬電壓轉換成是為二進制數(shù)值,本設計中將熱敏電阻兩端的電壓直接作為tlc1543的單路輸入值,從0通道輸入,取ref+為5v,取ref-為0v接地。具體程序如下#define wait1us _nop_();#de

43、fine wait2us _nop_();_nop_();#define wait4us wait2us;wait2us;#define wait8us wait4us;wait4us;#define wait10us wait8us;wait2us;#include intrins.h#include /*定義接口總線*/sbit clock = p26; /時鐘口線clksbit datain = p25; /數(shù)據(jù)輸入口線addsbit dataout = p24; /數(shù)據(jù)輸出口線datsbit chipselect = p23; /片選口線cs,低電平選通sbit eoc = p27;

44、/轉換完成口線/*接口總線定義結束*/unsigned int adcselchannel(unsigned char channel) /轉換指定通道的模擬量為數(shù)字量 unsigned int convertvalue; unsigned char i, chan; unsigned char convertvaluel, convertvalueh; unsigned char delay; convertvaluel = convertvalueh = 0; /初始化轉換結果 delay = 0; if (eoc) clock = 0; chipselect = 1; wait2us;

45、chipselect = 0; wait2us; channel = channel 4; for (i = 0; i 7; datain = (bit)chan; wait2us; clock = 1; clock = 0; channel = channel 1; for (i = 0; i 6;i +) /輸入轉換時鐘 clock = 1; clock = 0; chipselect = 1; /開始檢測轉換結束標志,或者轉換超時出錯 while (!eoc) & (delay 10) wait10us; delay +; if (delay = 10) return (0xffff);

46、 /轉換超時,返回錯誤代碼 else wait10us; clock = 0; chipselect = 1; wait1us; chipselect = 0; wait1us; for (i = 0; i 2; i +) /讀取高二位bit值 clock = 1; dataout = 1; convertvalueh = 1; if (dataout) convertvalueh |= 0x1; clock = 0; wait1us; for (i = 0; i 8; i +) /讀取低八位bit值 clock = 1; dataout = 1; convertvaluel = 1; if

47、(dataout) convertvaluel |= 0x1; clock = 0; wait1us; chipselect=1; convertvalue = convertvalueh; convertvalue = 8; convertvalue |= convertvaluel; return (convertvalue); /返回轉換結果 第5章 溫度閉環(huán)控制系統(tǒng)調試系統(tǒng)調試是對所設計的系統(tǒng)進行硬件調試,軟件調試以及綜合調試。系統(tǒng)調試可分靜態(tài)調試和動態(tài)調試兩步進行。5.1 溫度閉環(huán)控制系統(tǒng)靜態(tài)調試靜態(tài)調試是在用戶系統(tǒng)未工作時的一種硬件檢查。在硬件的檢查過程中,一般分三個步驟:一,目測

48、。目測就是通過自己先觀察硬件的外表。如焊點是否虛焊,是否與其他焊點粘連,看導線是否有破損等。按照設計的電路圖進行檢查,看是否出現(xiàn)線路接錯的地方。二,用萬用表進行測試。用萬用表對每一個連接點進行測試,看其導通狀態(tài)與設計要求是否符合。三,上電檢查。給硬件上電,測試是否所有的電路都是符合設計要求的。在對各芯片、器件上電過程中,還要注意觀察芯片是否出現(xiàn)、火花、過熱、變色、冒煙、異味等現(xiàn)象,如出現(xiàn)這些現(xiàn)象,應立即斷電,仔細檢查電源加載等情況,找出產生異味的原因并加以解決。5.2溫度閉環(huán)控制系統(tǒng)動態(tài)調試動態(tài)調試是在用戶系統(tǒng)中的工作的情況下發(fā)現(xiàn)和排除系統(tǒng)硬件中存在的故障、器件間連接邏輯錯誤等的一種硬件檢查。

49、由于單片機及應用系統(tǒng)的硬件動態(tài)調試是在開發(fā)系統(tǒng)的支持下完成的,故又稱為聯(lián)機仿真或聯(lián)機調試。動態(tài)調試的一般方法是由近及遠、有分到合。由分到合指的是,首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊,如程序儲器電路、ad轉換電路等,先分塊調試。當調試某塊電路時,與該電路無關的器件全部從用戶系統(tǒng)中去掉,這樣,可將故障范圍限定在某個局部電路上。當各塊電路的調試無故障后,將各塊電路逐塊加入系統(tǒng)中,再對各塊電路功能及各電路間可能存在的相互聯(lián)系進行試驗。此時若出現(xiàn)故障,則最大可能是出現(xiàn)在各電路的協(xié)調關系上,如交互信息的聯(lián)絡是否正確,時序是否達到技術要求等。直到所有電路加入系統(tǒng)后各部分電路能正確工作為止,由分到合的

50、調試即告完成。在經(jīng)歷了這樣一個調試過程后,大部分硬件故障基本上可以排除。在有些情況下,由于功能要求高或設備較復雜使某些邏輯功能塊電路較為復雜龐大,為故障的準確定位帶來一定的難度。這時對每塊電路以處理信號的流向為線索,將信號流經(jīng)的各器件按照距離單片機的邏輯距離進行有近及遠的分層,然后分層調試,調試時仍采用去掉無關器件的方法,這樣逐次依次調試下去,就可能將故障定位在具體器件上。例如,調試外部數(shù)據(jù)存儲器時,可按層先調試總線電路,然后調試譯碼電路,最后加上存儲芯片,利用開發(fā)系統(tǒng)對其進行讀寫操作,就能有效的調試數(shù)據(jù)存儲器。5.3 溫度控制系統(tǒng)調試情況(1)出現(xiàn)漏焊的情況,按照設計電路圖進行補焊。(2)接

51、通電源后發(fā)現(xiàn)液晶未亮,檢查電路發(fā)現(xiàn)有飛線沒有接。連接號飛線后,電路正常。(3)在電路檢查中,由于發(fā)現(xiàn)可用資源有限,同時有些電路是可以簡化或者省略的,故進行了適當?shù)母膭印V饕膭佑校海?)將熱敏電阻輸出的電壓直接送入tlc1543芯片中進行模數(shù)轉換,省略掉了運放op07,以及后面的2.5v穩(wěn)壓二極管。原因是op07需要接正負12v的雙電源進行工作,這樣才能比較穩(wěn)定。而設計中由于缺少正負12v的電源,且如果將10k的電阻r9換成阻值較小的120歐姆的電阻,同樣可以使熱敏電阻分壓更大,而無需通過op07進行電壓放大。綜合考慮實際情況,省略了運放及穩(wěn)壓二極管。(2)對tlc1543的參考電壓ref+進行了修改。最初設計電路時,考慮到轉換精度問題,將參考電壓ref+的值通過電壓基準電路設計為電壓值可調,而在實際編程過程中,發(fā)現(xiàn)這樣設計的

溫馨提示

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

評論

0/150

提交評論