恒溫箱,修改版_第1頁(yè)
恒溫箱,修改版_第2頁(yè)
恒溫箱,修改版_第3頁(yè)
恒溫箱,修改版_第4頁(yè)
恒溫箱,修改版_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、西南科技大學(xué)計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)報(bào)告設(shè)計(jì)名稱(chēng): 恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì) 姓 名: 孫蘭 學(xué) 號(hào): 2 0 1 21856 班 級(jí): 自動(dòng)1201 班 指導(dǎo)教師: 聶詩(shī)良 起止日期: 2015.9.15-2012.12.15 西南科技大學(xué)信息工程學(xué)院制28設(shè) 計(jì) 任 務(wù) 書(shū)學(xué)生班級(jí): 自動(dòng)1201 學(xué)生姓名: 孫蘭 學(xué)號(hào): 20121856 設(shè)計(jì)名稱(chēng): 恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì) 起止日期: 9月15日12月25日 指導(dǎo)教師: 聶詩(shī)良 設(shè)計(jì)要求: (1)溫度采集傳感器采用熱電阻或熱電偶,或一體化數(shù)字溫度傳感器DS18B20。(2)控制燈泡亮度或發(fā)熱量,采用繼電器開(kāi)關(guān)控制或用可控硅平滑控制。

2、(3)采用單片機(jī)或PLC作為控制器。(4)采用LED或LCD或PC機(jī)的液晶顯示器作為顯示器,同時(shí)顯示給定溫度和實(shí)際溫度。(5)采用自制按鍵或PC機(jī)的鍵盤(pán)作為溫度給定值輸入。(6)恒溫箱實(shí)際溫度達(dá)到給定值時(shí)(誤差要求±1)需聲光提示,聲音時(shí)延5秒后停止。(7)恒溫箱最高溫度60。(8)系統(tǒng)操作流程是:1)確認(rèn)系統(tǒng)各硬件連線就緒,無(wú)安全隱患;2)系統(tǒng)上電;3)設(shè)置溫度給定值后,啟動(dòng)系統(tǒng)工作,系統(tǒng)進(jìn)入溫度自動(dòng)控制工作狀態(tài)。4)系統(tǒng)工作完畢后,若不需系統(tǒng)工作,則可關(guān)閉系統(tǒng)電源,查看并確保系統(tǒng)無(wú)安全隱患后可離開(kāi)。恒溫箱溫度計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)摘要:本設(shè)計(jì)的溫度測(cè)量及加熱控制系統(tǒng)以AT89S52單

3、片機(jī)為核心部件,外加溫度采集電路、鍵盤(pán)及顯示電路、加熱控制電路和越限報(bào)警等電路。采用單總線型數(shù)字式的溫度傳感器DS18B20,及行列式鍵盤(pán)和動(dòng)態(tài)顯示的方式,以容易控制的固態(tài)繼電器作加熱控制的開(kāi)關(guān)器件。本作品既可以對(duì)當(dāng)前溫度進(jìn)行實(shí)時(shí)顯示又可以對(duì)溫度進(jìn)行控制,以使達(dá)到用戶(hù)需要的溫度,并使其恒定在這一溫度。人性化的行列式鍵盤(pán)設(shè)計(jì)使設(shè)置溫度簡(jiǎn)單快速,兩位整數(shù)一位小數(shù)的顯示方式具有更高的顯示精度。建立在模糊控制理論上的控制算法,使控制精度完全能滿(mǎn)足一般社會(huì)生產(chǎn)的要求。通過(guò)對(duì)系統(tǒng)軟件和硬件設(shè)計(jì)的合理規(guī)劃,發(fā)揮單片機(jī)自身集成眾多系統(tǒng)級(jí)功能單元的優(yōu)勢(shì),在不減少功能的前提下有效降低了硬件成本,系統(tǒng)操控簡(jiǎn)便。關(guān)鍵

4、詞:?jiǎn)纹瑱C(jī);恒溫控制;模糊控制The design of incubator temperature computer control system Abstract: The design of the temperature measurement and heating control systems to AT89S52 microcontroller core component, plus the temperature acquisition circuit, keyboard and display circuit, heating circutal temperature s

5、ensor DS18B20, and the determinant of the keyboard and dynamic display in order to easily control the solid-state relays for heating control of the switching device. This works both on the current temperature in real-time display of temperature can be controlled in order to enable users to reach the

6、 required temperature, and make it constant at this temperature. Humanized design keyboard determinant temperature easy Express, the two decimal integer, a display shows a higher accuracy. Set up in the fuzzy control theory, control algorithms, so that the control accuracy can meet the general requi

7、rements of social production. Through the system software and hardware design of rational planning, exert their own single-chip integration of many system-level functional unit of the advantages, does not reduce the functions at the premise of effectively reducing the cost of hardware, the system ea

8、sy to manipulate. Key words: microcontroller, temperature control, fuzzy control一、 設(shè)計(jì)目的和意義1.1概述利用AT89S52對(duì)溫度進(jìn)行控制,采用單總線傳輸方式讀取DS18B20當(dāng)前溫度值并用龍丘小液晶顯示,使用按鍵更改設(shè)定溫度,使用PID算法控制箱體溫度到一個(gè)恒定值,這樣一個(gè)控制系統(tǒng)涵蓋了以計(jì)算機(jī)控制系統(tǒng)課程為核心的單片機(jī)原理及應(yīng)用、自動(dòng)控制原理等相關(guān)課程知識(shí),提供了真正將理論課程所學(xué)的知識(shí)應(yīng)用于實(shí)踐的平臺(tái)。從硬件的搭建到軟件算法的探索都需要扎實(shí)的理論基礎(chǔ)。在涉及光耦驅(qū)動(dòng)晶閘管電路的設(shè)計(jì)過(guò)程中還考察了器件選型的

9、重要性,對(duì)于箱體的設(shè)計(jì)還考察了學(xué)生對(duì)于實(shí)際的考慮。整個(gè)設(shè)計(jì)過(guò)程需要工程的思想,正是迎合了我自動(dòng)化專(zhuān)業(yè)優(yōu)秀學(xué)生所必須具備的知識(shí)與能力!1.2 設(shè)計(jì)要求(1)溫度采集傳感器采用熱電阻或熱電偶,或一體化數(shù)字溫度傳感器DS18B20。(2)控制燈泡亮度或發(fā)熱量,采用繼電器開(kāi)關(guān)控制或用可控硅平滑控制。(3)采用單片機(jī)或PLC作為控制器。(4)采用LED或LCD或PC機(jī)的液晶顯示器作為顯示器,同時(shí)顯示給定溫度和實(shí)際溫度。(5)采用自制按鍵或PC機(jī)的鍵盤(pán)作為溫度給定值輸入。(6)恒溫箱實(shí)際溫度達(dá)到給定值時(shí)(誤差要求±1)需聲光提示,聲音時(shí)延5秒后停止。(7)恒溫箱最高溫度60。(8)系統(tǒng)操作流程是

10、:1)確認(rèn)系統(tǒng)各硬件連線就緒,無(wú)安全隱患;2)系統(tǒng)上電;3)設(shè)置溫度給定值后,啟動(dòng)系統(tǒng)工作,系統(tǒng)進(jìn)入溫度自動(dòng)控制工作狀態(tài)。4)系統(tǒng)工作完畢后,若不需系統(tǒng)工作,則可關(guān)閉系統(tǒng)電源,查看并確保系統(tǒng)無(wú)安全隱患后可離開(kāi)。二、系統(tǒng)的總體結(jié)構(gòu)2.1 總體方案設(shè)計(jì)系統(tǒng)整體框圖如下圖: 圖1 系統(tǒng)原理總框圖上面的系統(tǒng)總體框圖中,該系統(tǒng)中微控制器采用AT89S52單片機(jī)小系統(tǒng),溫度顯示采用LCD1602液晶顯示模塊、聲光報(bào)警器模塊、DS18B20溫度采集模塊、鍵盤(pán)輸入設(shè)定溫度模塊、繼電器驅(qū)動(dòng)模塊。2.2 溫度控制方案選擇該溫度控制系統(tǒng)的控制對(duì)象是箱體內(nèi)的溫度,但是溫度這個(gè)量的控制必須借助其他產(chǎn)熱原件才能實(shí)現(xiàn)。經(jīng)過(guò)

11、多方調(diào)查,我總結(jié)到可行又比較簡(jiǎn)單的方案大體都是使用燈泡發(fā)光產(chǎn)熱來(lái)改變箱體內(nèi)溫度,控制燈泡產(chǎn)熱的方案分別如下所述:方案一:采用繼電器作為程控開(kāi)關(guān),控制燈泡的開(kāi)或關(guān),進(jìn)而控制其產(chǎn)熱。這種方案簡(jiǎn)單易行,但是繼電器控制的頻率一般只有10Hz左右,不能在50Hz交流電的每個(gè)周期都控制燈泡開(kāi)關(guān)一次,也就是只能控制燈泡的亮或滅,不能調(diào)節(jié)燈泡的亮度。方案二:采用開(kāi)關(guān)器件晶閘管作為控制燈泡亮度的執(zhí)行部件,由于晶閘管的開(kāi)關(guān)速度可以達(dá)到很快,因而可以控制燈泡的亮度。由于本裝置要求控制調(diào)節(jié)控制溫度的精度要達(dá)到1°C,用繼電器方案也可以達(dá)到要求,但是不能實(shí)現(xiàn)平滑控制燈泡發(fā)熱量的要求。為了能夠平滑控制燈泡亮度,

12、最終選定使用晶閘管控制方案,即方案二。2.3 主控芯片的選擇對(duì)于本系統(tǒng)這樣一個(gè)典型而又全面的控制系統(tǒng)來(lái)說(shuō),用八位的52單片機(jī)或者AVR單片機(jī)就可以滿(mǎn)足控制要求。方案一:采用52系列單片機(jī),有兩個(gè)外部中斷口、3路定時(shí)器、4路8位I/O口,資源豐富,編程簡(jiǎn)單。方案二:使用AVR系列的ATMEGA16單片機(jī),除了擁有一般的中斷、定時(shí)、輸入輸出功能外,還有PWM輸出功能,JTAG等外加功能,但是需要燒寫(xiě)熔絲位,編程相對(duì)復(fù)雜些,而且價(jià)格要高出好多。綜合考慮到價(jià)格因素以及資源需求,最終選定AT89S52單片機(jī)作為主控芯片。2.4 液晶顯示方案選擇方案一:使用的最為廣泛的方案也就是使用1602字符型液晶顯示

13、器,該液晶價(jià)格便宜,編程簡(jiǎn)單,但是只能顯示兩行16個(gè)字符以?xún)?nèi)的英文字符。方案二:使用龍丘小液晶,分辨率128*64,可以顯示不同大小的漢字和字符,功耗很低,采用3.3V供電。由于本系統(tǒng)使用便宜的7805線性穩(wěn)壓芯片供電,其發(fā)熱功率與輸入與輸出電壓差以及負(fù)載電流的大小乘積正相關(guān)。所以采用LCD1602字符型液晶繼電器,選擇方案一。三、 系統(tǒng)模塊設(shè)計(jì)3.1 AT89S52單片機(jī)小系統(tǒng)模塊設(shè)計(jì)3.1.1 AT89S52單片機(jī)簡(jiǎn)介AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指

14、令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。3.1.2 單片機(jī)最小系統(tǒng)電路單片機(jī)工作的基本要

15、求包括必要的5V電源(40引腳),接地(20引腳),晶振電路(18、19引腳),復(fù)位電路(9引腳)以及使用內(nèi)部存儲(chǔ)器需要給31腳接高。 圖2 AT89S52最小系統(tǒng)電路圖3.2 DS18B20溫度采集模塊設(shè)計(jì)3.2.1 DS18B20簡(jiǎn)介DS18B20數(shù)字溫度計(jì)是Dallas公司生產(chǎn)的1Wire器件,即單總線器件。與傳統(tǒng)的熱敏電阻有所不同,DS18B20可直接將被測(cè)溫度轉(zhuǎn)化成串行數(shù)字信號(hào),以供單片機(jī)處理,具有連線簡(jiǎn)單、微型化、低功耗、高性能、抗干擾能力強(qiáng)、精度高等特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有電路簡(jiǎn)單,在一根通信線上可以掛很多這樣的數(shù)字溫度計(jì),十分方便。目前已被眾多行業(yè)進(jìn)行廣泛的運(yùn)用(

16、鍋爐、溫控表糧庫(kù)、冷庫(kù)、工業(yè)現(xiàn)場(chǎng)溫度監(jiān)控、儀器儀表溫度監(jiān)控、農(nóng)業(yè)大棚溫度監(jiān)控等)。通過(guò)編程,DS18B20可以實(shí)現(xiàn)912位的溫度讀數(shù)。3.2.2 溫度檢測(cè)部分電路溫度檢測(cè)部分很簡(jiǎn)單,因?yàn)樾畔⒔?jīng)過(guò)單線接口送入DS18B20或從DS18B20送出,因此從微處理器到DS18B20僅需連接一條信號(hào)線和地線就可以正常工作,這里我還是給它接入了電源線。 圖3 溫度檢測(cè)部分電路3.3 LCD1602液晶顯示器顯示模塊設(shè)計(jì)該款液晶顯示器與單片機(jī)通信屬于串行口數(shù)據(jù)通信方式,可以直接與單片機(jī)引腳連接,接受5V電平邏輯。 圖4 小液晶連接電路3.4 鍵盤(pán)輸入溫度設(shè)定模塊設(shè)計(jì)為了簡(jiǎn)便,我只使用了5個(gè)獨(dú)立按鍵作為按鍵輸

17、入,分別作為模式切換鍵、溫度升高鍵、溫度降低鍵。 圖5 按鍵檢測(cè)電路3.5 聲光報(bào)警模塊本設(shè)計(jì)用一個(gè)LED燈來(lái)顯示此刻恒溫箱內(nèi)的溫度狀態(tài),采用NPN三極管控制蜂鳴器的鳴叫, 當(dāng)BUZZER端高電平的時(shí)候,NPN三極管導(dǎo)通,蜂鳴器叫;相反,當(dāng)BUZZER端低電平的時(shí)候,三極管截止,蜂鳴器也不發(fā)出叫聲。圖6 聲光報(bào)警電路3.6 過(guò)零檢測(cè)模塊過(guò)零檢測(cè)原件采用光耦,在交流電過(guò)零點(diǎn)的時(shí)候,會(huì)產(chǎn)生下降沿,進(jìn)而產(chǎn)生中斷,穩(wěn)定性好,原理簡(jiǎn)單,如圖7。圖7 過(guò)零檢測(cè)電路3.7 可控硅驅(qū)動(dòng)模塊設(shè)計(jì)可控硅使用的型號(hào)是BT137,配合使用光耦MOC3021驅(qū)動(dòng)它,MOC3021又用了一個(gè)PNP三極管來(lái)驅(qū)動(dòng),這里也就是

18、運(yùn)用了兩級(jí)驅(qū)動(dòng)來(lái)控制強(qiáng)電的燈泡亮滅,完全隔離保證安全。 圖8 可控硅驅(qū)動(dòng)部分電路四、 系統(tǒng)軟件設(shè)計(jì)整個(gè)軟件系統(tǒng)的流程圖繪制在下面圖中。系統(tǒng)初始化液晶顯示 是否按鍵重設(shè)溫度重設(shè)溫度Y N開(kāi)中斷讀一次溫度顯示當(dāng)前溫度和設(shè)定溫度再讀一次溫度判斷正確性并顯示現(xiàn)實(shí)判斷PID調(diào)光檢測(cè)溫度=設(shè)定溫度 NY聲光報(bào)警 Y圖9 軟件流程圖4.1 液晶顯示程序設(shè)計(jì)4.1.1 LCD顯示當(dāng)前實(shí)際溫度的個(gè)、十位和小數(shù)位void lcdntemp(uchar sw,uchar gw,uchar xs)write_com(0x80+0x09);/指針的位置移至第一行第9個(gè)位置write_dat(tmsw);delay1ms

19、();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x0a);write_dat(tmgw);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x0c);write_dat(tmxs);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間4.1.2 LCD1602液晶模塊的操作程序sbit lcdrs=P02;/定義lcdrs腳sbit lcdwr=P01;/定義lcdwr腳 sbit lcde=P00;/定義lcde腳 sbit lcdBLK = P37;/BLKuchar tm="0123456789"/定義字符數(shù)組uc

20、har no="now temp="uchar set="set temp="/定義字符串顯示uchar sn="input st="/定義設(shè)置時(shí)字符串4.1.3 對(duì)LCD的顯示模式進(jìn)行初始化設(shè)置void init()delaynms(15);/延時(shí)15ms,首次寫(xiě)指令時(shí)應(yīng)給LCD一段較長(zhǎng)的反應(yīng)時(shí)間write_com(0x38);/顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x38);delaynms(5);/延時(shí)5ms,給硬件一

21、點(diǎn)反應(yīng)時(shí)間write_com(0x38);/連續(xù)三次,確保初始化成功delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x0c); /顯示控制:顯示開(kāi),光標(biāo)關(guān),閃爍關(guān)delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x06); /輸入方式設(shè)置:數(shù)據(jù)讀寫(xiě)操作后,AC自動(dòng)加1,畫(huà)面不動(dòng)delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x01);/清屏幕指令,將以前的顯示內(nèi)容清除delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間 4.2 溫度檢測(cè)程序設(shè)計(jì)DS18B20采集溫度的精度可以設(shè)置,我們使用了最高精度的模

22、式,也就是12位。其源碼在官方資料上以及網(wǎng)上隨處可見(jiàn),經(jīng)過(guò)修改后,該模塊簡(jiǎn)化程序如下。4.2.1 18B20讀溫度函數(shù)uchar ds18b20_temp()/18B20讀溫度函數(shù)uchar temp=0,temph=0,templ=0;ds18b20_reset();/將DS18B20初始化ds18b20_write(0xcc);/ 跳過(guò)讀序號(hào)列號(hào)的操作ds18b20_write(0x44);/ 啟動(dòng)溫度轉(zhuǎn)換delaynms(10); /轉(zhuǎn)換一次需要延時(shí)一段時(shí)間 ds18b20_reset();/將DS18B20初始化ds18b20_write(0xcc);/跳過(guò)讀序號(hào)列號(hào)的操作ds18b2

23、0_write(0xbe);/讀取溫度寄存器,前兩個(gè)分別是溫度的低位和高位 templ=ds18b20_read();/將讀取到的溫度的低位存在templ中temph=ds18b20_read();/高位存在temph中temp=temph*16+templ/16;/讀出溫度整數(shù)部分,2位xs=(templ%16)*10/16;/讀出溫度的小數(shù)部分,1位return temp;/返回溫度的整數(shù)部分4.3 按鍵輸入溫度設(shè)定模塊設(shè)計(jì)sbit KEY1=P14;/按鍵1+1 sbit KEY2=P15;/按鍵2-1sbit KEY3=P16;/按鍵3+5sbit KEY4=P15;/按鍵2-5sbi

24、t KEY_I=P35;/模式切換按鍵uchar st;/存放設(shè)定溫度值uchar c=0;/存放小數(shù)int flag=0;/定義模式切換標(biāo)志位,初始化為0,默認(rèn)為工作模式4.3.1 檢測(cè)模式切換按鍵程序int KEY_IJC()if(KEY_I=0)delaynms(10);/延時(shí)10ms,按鍵消抖處理if(KEY_I=0)flag=flag;while(KEY_I);/按鍵消抖處理,釋放按鍵有效return flag;5、 調(diào)試過(guò)程及結(jié)果分析5.1 軟件調(diào)試軟件調(diào)試首先是在keil編譯器下進(jìn)行,包括源程序編譯及運(yùn)行調(diào)試。接著鏈接proteus進(jìn)行硬件實(shí)時(shí)調(diào)試。 5.2 硬件調(diào)試 硬件調(diào)試時(shí)

25、,主要檢查印制板及焊接的質(zhì)量是否符合要求,有無(wú)虛焊點(diǎn)及線路間有無(wú)短路、斷路。檢查無(wú)誤后,通電檢查 LCD 液晶顯示器亮度情況,再依次檢查各部分結(jié)構(gòu)安裝是否牢固。5.3 系統(tǒng)調(diào)試系統(tǒng)調(diào)試在硬件調(diào)試結(jié)束后,將程序下載到單片機(jī)上面,然后通電檢查運(yùn)行效果。5.4 結(jié)果分析 能夠達(dá)到基本的控制要求,即恒溫箱實(shí)際溫度達(dá)到給定值時(shí),有聲光提示,并且聲音時(shí)延5秒后才停止。六、心得體會(huì)通過(guò)本次制作恒溫箱,對(duì)于計(jì)算機(jī)控制系統(tǒng)有更實(shí)際的了解,以前學(xué)習(xí)的知識(shí),都是基于理論,實(shí)踐動(dòng)手的機(jī)會(huì)不是很多,實(shí)踐動(dòng)手能力低。但是,這次的課程設(shè)計(jì),從買(mǎi)器材,到電路設(shè)計(jì),畫(huà)電路圖,焊電路板,軟件程序設(shè)計(jì)及仿真都靠自己完成。這樣一個(gè)控

26、制系統(tǒng)運(yùn)用了以計(jì)算機(jī)控制系統(tǒng)課程為核心的單片機(jī)原理及應(yīng)用、自動(dòng)控制原理等相關(guān)課程知識(shí),提供了真正將理論課程所學(xué)的知識(shí)應(yīng)用于實(shí)踐的平臺(tái)。從硬件的搭建到軟件算法的探索都需要扎實(shí)的理論基礎(chǔ)。在涉及光耦驅(qū)動(dòng)晶閘管電路的設(shè)計(jì)過(guò)程中還考察了器件選型的重要性,對(duì)于箱體的設(shè)計(jì)還考察了學(xué)生對(duì)于實(shí)際的考慮。整個(gè)設(shè)計(jì)過(guò)程需要工程的思想。 通過(guò)這次的設(shè)計(jì)制作,我學(xué)習(xí)到了如何把理論上的東西運(yùn)用到實(shí)踐當(dāng)中,并且對(duì)于PID參數(shù)的調(diào)整有了更加深入的理解,體會(huì)頗深,對(duì)于以后做項(xiàng)目又增加了不少經(jīng)驗(yàn)。參考文獻(xiàn)1姜志海.單片機(jī)原理及應(yīng)用M.北京:電子工業(yè)出版社,2013.8 2陳伯時(shí).電力拖動(dòng)自動(dòng)控制系統(tǒng)M.第3版.北京:機(jī)械工業(yè)出

27、版社, 2003.3 徐瑋.51單片機(jī)快速入門(mén)M.北京:機(jī)械工業(yè)出版社,2011.114閻石數(shù)字電子技術(shù)基礎(chǔ)(第四版)M北京:高等教育出版社,2005.125程國(guó)鋼.51單片機(jī)典型模塊開(kāi)發(fā)查詢(xún)手冊(cè)M.北京:電子工業(yè)出版社,2012.56康華光數(shù)字電子技術(shù)基礎(chǔ)(第五版)M北京:高等教育出版社,2006.17康華光模擬電子技術(shù)基礎(chǔ)(第五版)M北京:高等教育出版社,2006.18畢效輝.自動(dòng)控制原理M.北京:科學(xué)出版社,2014.69 譚浩強(qiáng). C程序設(shè)計(jì)(第四版)M. 北京: 清華大學(xué)出版社,2010.610 何克忠. 計(jì)算機(jī)控制系統(tǒng)(第二版)M. 北京: 清華大學(xué)出版社,2015附錄一 元器件清

28、單numberCommentQuantity1各種型號(hào)電容若干2LED發(fā)光二極管53一般二極管24各種阻值型號(hào)電阻若干5電源座16NPN三極管27蜂鳴器18L7805模塊19按鍵510單片機(jī)11111M晶振1121.5V電池313DS18B20溫度傳感器114LCD1602液晶顯示器115晶閘管116光耦117白熾燈118燈座1附錄二 完整程序#include<reg52.h> /包含單片機(jī)寄存器的頭文件#include<intrins.h> /包含_nop_()函數(shù)定義的頭文件#define uchar unsigned char/宏定義uchar#define ui

29、nt unsigned int/宏定義uintsbit CF=P24; /定義觸發(fā)脈沖發(fā)送引腳 /*以下是延時(shí)函數(shù)模塊*/*函數(shù)功能:延時(shí)1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以認(rèn)為是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i<4;i+) for(j=0;j<33;j+) ; /*函數(shù)功能:延時(shí)若干毫秒入口參數(shù):n*/void delaynms(unsigned int n)unsigned int i;for(i=0;i<n;i+) delay1ms();/*以下是DS

30、18B20的操作程序 */ sbit DQ=P26;/定義18B20數(shù)據(jù)引腳uchar time;/設(shè)置全局變量,專(zhuān)門(mén)用于嚴(yán)格延時(shí)uchar xs;/存放讀取溫度的小數(shù)位/*函數(shù)功能:將DS18B20傳感器初始化*/void ds18b20_reset()/18b20復(fù)位函數(shù)while(1)DQ=1;DQ=0;time=250; /540us延時(shí),當(dāng)delay=1時(shí)延時(shí)為2us ,T=2*xwhile(-time);DQ=1;time=25;while(-time);while(DQ=0) time=220; while(-time); if(DQ) break; time=150;while

31、(-time);break; /*函數(shù)功能:向DS18B20寫(xiě)入一個(gè)字節(jié)數(shù)據(jù)入口參數(shù):dat*/ void ds18b20_write(uchar dat)/18B20寫(xiě)函數(shù)uchar i=0;for (i=0; i<8; i+) DQ=0;/將數(shù)據(jù)線從高拉低時(shí)即啟動(dòng)寫(xiě)時(shí)序 DQ=dat&0x01;/利用與運(yùn)算取出要寫(xiě)的某位二進(jìn)制數(shù)據(jù), /并將其送到數(shù)據(jù)線上等待DS18B20采樣for(time=0;time<25;time+);/延時(shí)約45us,DS18B20在拉低后的約1560us期間從數(shù)據(jù)線上采樣DQ=1;/釋放數(shù)據(jù)線 dat>>=1;/將dat中的各二進(jìn)

32、制位數(shù)據(jù)右移1位for(time=0;time<25;time+);/稍作延時(shí),給硬件一點(diǎn)反應(yīng)時(shí)間 /*函數(shù)功能:從DS18B20讀取一個(gè)字節(jié)數(shù)據(jù)出口參數(shù):dat*/uchar ds18b20_read()/18B20讀函數(shù)uchar i=0,dat=0;/儲(chǔ)存讀出的一個(gè)字節(jié)數(shù)據(jù)for (i=0;i<8;i+) DQ=1; DQ=0; _nop_();_nop_();_nop_(); _nop_();/延時(shí)4個(gè)機(jī)器周期,給系統(tǒng)反應(yīng)時(shí)間 DQ=1;/拉高數(shù)據(jù)線 _nop_();_nop_();_nop_();_nop_();/延時(shí)4個(gè)機(jī)器周期,給系統(tǒng)反應(yīng)時(shí)間 if(DQ) dat|=

33、0x01<<i; time=25; while(-time); DQ=1;/拉高數(shù)據(jù)線 _nop_(); return(dat);/返回讀出的十六進(jìn)制數(shù)據(jù)/*函數(shù)功能:從DS18B20讀取溫度出口參數(shù):temp*/uchar ds18b20_temp()/18B20讀溫度函數(shù)uchar temp=0,temph=0,templ=0;ds18b20_reset();/將DS18B20初始化ds18b20_write(0xcc);/ 跳過(guò)讀序號(hào)列號(hào)的操作ds18b20_write(0x44);/ 啟動(dòng)溫度轉(zhuǎn)換delaynms(10); /轉(zhuǎn)換一次需要延時(shí)一段時(shí)間 ds18b20_res

34、et();/將DS18B20初始化ds18b20_write(0xcc);/跳過(guò)讀序號(hào)列號(hào)的操作ds18b20_write(0xbe);/讀取溫度寄存器,前兩個(gè)分別是溫度的低位和高位 templ=ds18b20_read();/將讀取到的溫度的低位存在templ中temph=ds18b20_read();/高位存在temph中temp=temph*16+templ/16;/讀出溫度整數(shù)部分,2位xs=(templ%16)*10/16;/讀出溫度的小數(shù)部分,1位return temp;/返回溫度的整數(shù)部分/*以下是LCD1602液晶模塊的操作程序 */sbit lcdrs=P02;/定義lcdr

35、s腳sbit lcdwr=P01;/定義lcdwr腳 sbit lcde=P00;/定義lcde腳 /sbit lcdBLK = P37;/BLKuchar tm="0123456789"/定義字符數(shù)組uchar no="now temp="uchar set="set temp="/定義字符串顯示uchar sn="input st="/定義設(shè)置時(shí)字符串 /*函數(shù)功能:將模式設(shè)置指令或顯示地址寫(xiě)入液晶模塊入口參數(shù):com*/void write_com(uchar com) P1=com;/將數(shù)據(jù)送入P1口,即寫(xiě)

36、入指令或地址lcdrs=0;lcdwr=0;/根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫(xiě)入指令delaynms(5);lcde=0;delaynms(5);lcde=1;/*函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫(xiě)入液晶模塊入口參數(shù):dat(為字符常量)*/void write_dat(uchar dat)P2=dat;/將數(shù)據(jù)送入P2口,即將數(shù)據(jù)寫(xiě)入液晶模塊lcdrs=1;lcdwr=0;/RS為高電平,RW為低電平時(shí),可以寫(xiě)入數(shù)據(jù)delaynms(5);lcde=0;delaynms(5);lcde=1;/*函數(shù)功能:對(duì)LCD的顯示模式進(jìn)行初始化設(shè)置*/void init()dela

37、ynms(15);/延時(shí)15ms,首次寫(xiě)指令時(shí)應(yīng)給LCD一段較長(zhǎng)的反應(yīng)時(shí)間write_com(0x38);/顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x38);delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x38);/連續(xù)三次,確保初始化成功delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x0c); /顯示控制:顯示開(kāi),光標(biāo)關(guān),閃爍關(guān)delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x06); /輸

38、入方式設(shè)置:數(shù)據(jù)讀寫(xiě)操作后,AC自動(dòng)加1,畫(huà)面不動(dòng)delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x01);/清屏幕指令,將以前的顯示內(nèi)容清除delaynms(5);/延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間/*函數(shù)功能:LCD在第一行顯示"now temp= . °C "字符串*/void lcdnt()uchar i;write_com(0x80);for(i=0;i<9;i+)write_dat(noi);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x0b);write_dat('.&

39、#39;);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x0d);write_dat(0xDF);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x0e);write_dat('C');delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間/*函數(shù)功能:LCD在第二行顯示"set temp= . °C "字符串*/void lcdgg()uchar i;write_com(0x80+0x40);for(i=0;i<9;i+)write_dat(seti);delay1m

40、s();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x40+0x0b);write_dat('.');delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間?write_com(0x80+0x40+0x0d);write_dat(0xDF);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x40+0x0e);write_dat('C');delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間/*函數(shù)功能:設(shè)置模式下LCD在第二行顯示"input st"字符串*/void lcdst()ucha

41、r i;write_com(0x80+0x40);for(i=0;i<9;i+)write_dat(sni);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間/*函數(shù)功能:LCD顯示當(dāng)前實(shí)際溫度的個(gè)、十位和小數(shù)位入口參數(shù):sw,gw,xs*/void lcdntemp(uchar sw,uchar gw,uchar xs)write_com(0x80+0x09);/指針的位置移至第一行第9個(gè)位置write_dat(tmsw);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x0a);write_dat(tmgw);delay1ms();/延時(shí)1ms

42、給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x0c);write_dat(tmxs);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間/*函數(shù)功能:LCD顯示設(shè)置溫度的個(gè)、十位和小數(shù)位入口參數(shù):a,b,c*/void lcdxs(uchar a,uchar b,uchar c)write_com(0x80+0x40+0x09);/將指針移至第二行第9個(gè)位置write_dat(tma);/顯示設(shè)置溫度的十位delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間write_com(0x80+0x40+0x0a);write_dat(tmb);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)

43、時(shí)間write_com(0x80+0x40+0x0c);write_dat(tmc);delay1ms();/延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間/*以下是按鍵模塊的操作程序 */sbit KEY1=P14;/按鍵1+1 sbit KEY2=P15;/按鍵2-1sbit KEY3=P16;/按鍵3+0.1/sbit KEY4=P17;/按鍵4-5sbit KEY_I=P17;/模式切換按鍵uchar st;/存放設(shè)定溫度值uchar c=0;/存放小數(shù)int flag=0;/定義模式切換標(biāo)志位,初始化為0,默認(rèn)為工作模式/*函數(shù)功能:檢測(cè)模式切換按鍵,按下后改變模式出口參數(shù):flag*/int KEY_IJC()if(KEY_I=0)delaynms(10);/延時(shí)10ms,按鍵消抖處理if(KEY_I=0)flag=flag;while(KEY_I);/按鍵消抖處理,釋放按鍵有效return flag;/*函數(shù)功能:按鍵檢測(cè),在設(shè)置模式下修改給定值入口參數(shù):st出口參數(shù):st*/uchar aj(uchar st)if(KEY1=0)delaynms(10);/延時(shí)10ms,按

溫馨提示

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

評(píng)論

0/150

提交評(píng)論