




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《嵌入式系統(tǒng)及應(yīng)用》
(大作業(yè))
(題目:嵌入式水溫控制系統(tǒng))
姓爸___________________________
學(xué)號(hào):__________________________
專業(yè):_________自動(dòng)化班_________
院系:電子通信工程學(xué)院
指導(dǎo)老師:_________________________
完成時(shí)間:2013年X月X日
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
水溫控制系統(tǒng)設(shè)計(jì)
摘要
該實(shí)驗(yàn)設(shè)計(jì)基于飛思卡爾MC9S12DG128開發(fā)板平臺(tái),通過在
codewarrior開發(fā)環(huán)境編程而組成的一個(gè)水溫自動(dòng)控制系統(tǒng)。容
器內(nèi)的水溫可以通過外部掃描鍵盤來人工設(shè)定。溫度值設(shè)定后系
統(tǒng)將通過熱電阻絲來測定當(dāng)前的溫度值。當(dāng)系統(tǒng)的水溫下降時(shí),
當(dāng)前的水溫值會(huì)由LED顯示出來。系統(tǒng)的可實(shí)現(xiàn)的功能:1、四
位數(shù)碼管顯示容器里的當(dāng)前溫度,水溫可以顯示到小數(shù)點(diǎn)后一
位;2、可以用鍵盤人工設(shè)定水的溫度值;3、利用串口使實(shí)驗(yàn)面
板與計(jì)算機(jī)進(jìn)行通信。4.采用PID控制算法,使得溫度穩(wěn)定在一
定范圍內(nèi)。
關(guān)鍵字:水溫控制,單片機(jī)MC9s12DG128
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
Designoftemperaturecontrolsystem
ABSTRACT
TheexperimentaldesignbasedonFreescaleMC9S12DG128Carle
developmentboardplatform,IntheCodeWarriordevelopment
environmentprogrammingandawatertemperatureautomatic
controlsystemthatconsistsof.Thewatercontainercanbeset
byanexternalkeyboardscanningtoartificial.Thetemperature
valuesetbythethermalresistancewiresystemtodetermine
thecurrenttemperature.Whenthetemperaturedrops,the
currenttemperaturevaluescanbedisplayedbyLED.Thesystem
canrealizethefunction:1,fourdigitaltubedisplaythe
currenttemperatureinthecontainer,thewatertemperaturecan
bedisplayedtoonedecimalplace;2,youcanusethekeyboard
tosetthetemperatureofthewatervalue;3,usingserial
experimentalpanelandcomputercommunication.4theP1D
controlalgorithm,sothatthetemperatureisstablewithina
certainrange.
Keywords:temperaturecontrol,singlechipmicrocomputer
MC9S12DG128
n
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
目錄
1緒論.............................................4
1.1水溫控制系統(tǒng)設(shè)計(jì)要求..............................4
1.2水溫控制系統(tǒng)部分..................................4
2系統(tǒng)設(shè)計(jì)總體框圖及各模塊作用......................5
2.1系統(tǒng)設(shè)計(jì)總體框圖..................................5
2.2每個(gè)功能模塊作用介紹..............................5
3硬件設(shè)計(jì)原理圖及內(nèi)容...............................7
3.1硬件設(shè)計(jì)原理.......................................7
3.2串口通信部分的電路................................8
3.3鍵盤輸入電路......................................8
?4數(shù)碼/J:電路9
4系統(tǒng)軟件設(shè)計(jì)流程...................................10
5調(diào)試過程及數(shù)據(jù).....................................11
5.1串口調(diào)試..........................................11
5.2LED數(shù)碼管調(diào)試....................................11
5.3鍵盤輸入模塊調(diào)試..................................11
6實(shí)驗(yàn)心得和結(jié)果.....................................12
致謝................................................13
參考文獻(xiàn)..............................................14
附錄...............................................15
in
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
1緒論
溫度控制電路廣泛應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域,如家用電
器、汽車、材料、電力電子等,同時(shí)在很多工業(yè)應(yīng)用場合都需要
溫度的恒定控制,比如電加熱爐,煙葉初烤炕房,某些傳感器的
工作環(huán)境溫度等。同時(shí),在實(shí)際工作和科研中,許多實(shí)驗(yàn)均需耍
用加熱器來加熱實(shí)驗(yàn)對(duì)象,使其達(dá)到并保持在某一設(shè)定溫度,而
且在實(shí)驗(yàn)過程中,對(duì)象的溫度有時(shí)要求穩(wěn)定性很高,有時(shí)需要不
斷地調(diào)節(jié)。正因?yàn)槿绱?,恒溫的控制在工業(yè)和科研中占有非同一
般的地位。
水溫恒溫控制就是其中的一種。水的恒溫控制是利用對(duì)加熱
系統(tǒng)(熱源)的控制,使之在不同的溫度輸出不同的功率,使得
在水溫我們預(yù)設(shè)的溫度附近作為小的變動(dòng),而不會(huì)超出太大的范
圍,從而達(dá)到我們使用的要求。在預(yù)設(shè)溫度的附近時(shí),溫度與加
熱器、散熱器之間的關(guān)系是很微妙的,我們沒辦法控制任意時(shí)刻
的準(zhǔn)確的水溫,但是我們可以通過測量來判斷其變化的趨勢,和
變化的幅度,從而來使之朝著我們預(yù)想的方向進(jìn)行。
1.1水溫控制系統(tǒng)設(shè)計(jì)要求
(1)溫度設(shè)定范圍為40?90℃,最小區(qū)分度為1℃,標(biāo)定溫度
<lro
1
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
(2)環(huán)境溫度降低時(shí)(例如用電風(fēng)扇降溫)溫度控制的靜態(tài)誤
差W1C。
(3)用十進(jìn)制數(shù)碼管顯示水的實(shí)際溫度保留一位小數(shù)。
(4)采用適當(dāng)?shù)目刂品椒ǎㄈ鐢?shù)字PID),當(dāng)設(shè)定溫度突變(由
40℃提高到60℃)時(shí),減小系統(tǒng)的調(diào)節(jié)時(shí)間和超調(diào)量。
(5)溫度控制的靜態(tài)誤差《0.2℃。
(6)從串口輸出水溫隨時(shí)間變化的數(shù)值。
1.2水溫控制系統(tǒng)部分
圖1控制系統(tǒng)框圖
從圖中易可知,本設(shè)計(jì)系統(tǒng)主要包括如下幾部分:單片機(jī)
控制模塊、溫度傳感器采樣模塊、A/D轉(zhuǎn)換模塊、溫度顯示模塊、
設(shè)置/存儲(chǔ)預(yù)定溫度模塊、加熱/散熱電路模塊。
系統(tǒng)的工作流程是這樣的:首先用戶要先使用設(shè)置/存儲(chǔ)預(yù)
定溫度模塊設(shè)置和存儲(chǔ)預(yù)定的溫度;溫度傳感器采樣模塊對(duì)水溫
進(jìn)行采樣,將采集到的溫度傳給A/D轉(zhuǎn)換模塊,A/D轉(zhuǎn)換模塊將
此溫度對(duì)應(yīng)的數(shù)值傳給單片機(jī)控制模塊,單片機(jī)控制模塊會(huì)判斷
此溫度是否在用戶預(yù)定的溫度+/-0.5。的范圍內(nèi),如果兩個(gè)溫度
不等就會(huì)調(diào)用加熱/散熱電路模塊,即如果此溫度高于用戶設(shè)定
溫度0.5。以上,則散熱電路就會(huì)開啟以將當(dāng)前的水溫降到預(yù)定
2
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
的溫度+/-0.5°的范圍內(nèi),反正則會(huì)啟動(dòng)加熱電路以加熱當(dāng)前的
水。同時(shí)如果用戶想顯示當(dāng)前的水溫或者預(yù)定的水溫,都可以通
過溫度顯示模塊顯示,而如果用戶要改變當(dāng)前的預(yù)定水溫,可以
通過設(shè)置/存儲(chǔ)預(yù)定溫度模塊進(jìn)行設(shè)置。
3
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
2系統(tǒng)設(shè)計(jì)總體框圖及各模塊作用
2.1系統(tǒng)設(shè)計(jì)總體框圖
電源電路
O驅(qū)動(dòng)電路匚=:LED顯示
=晶振電路
熱
電
阻
絲復(fù)位電路
BDM調(diào)試電路
鍵盤輸入電
路
圖2系統(tǒng)設(shè)計(jì)總框圖
2.2每個(gè)功能模塊作用介紹
單片機(jī):單片機(jī)是整個(gè)控制系統(tǒng)的核心,在此我用MC9s12DG128
提供系統(tǒng)控制所需要的I/O口,中斷、定時(shí)以及存放中
間結(jié)果的RAMo
數(shù)據(jù)采樣:數(shù)據(jù)采樣模塊是由熱電阻絲、調(diào)理電路和MCU內(nèi)部
的A/D轉(zhuǎn)換器組成的。其功能是將由熱敏傳感器及相
關(guān)電路采集到的溫度轉(zhuǎn)換為電壓信號(hào),經(jīng)A/D轉(zhuǎn)換器
4
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
后送入MC9s12DG128中,換算成溫度值,用于控制和
顯示。
串行口傳輸:將采樣溫度值上傳到PC機(jī),利用PC的端口下載程
序。
鍵盤設(shè)定:用于溫度值的人工設(shè)定。
SSR固態(tài)繼電器/電熱絲:通過控制繼電器的開關(guān)來完成對(duì)熱電
絲的加熱,從而達(dá)到溫度的控制。
電源電路:電源電路部分的兩個(gè)電容構(gòu)成濾波電路,用來改善系
統(tǒng)的電磁兼容性,降低電源波動(dòng)對(duì)系統(tǒng)的影響,增強(qiáng)
電路工作穩(wěn)定性。
PLL電路:片內(nèi)PLL電路兼有頻率放大和信號(hào)提純的功能,可以
使系統(tǒng)以較低的外部時(shí)鐘信號(hào)獲得較高的工作頻率,
以降低因高速開關(guān)時(shí)鐘造成的高頻噪聲。
復(fù)位電路:MCU在響應(yīng)各種外部或偵測到的內(nèi)部故障是可以進(jìn)行
系統(tǒng)復(fù)位。當(dāng)MCU檢測到需要復(fù)位時(shí),它將寄存器和
控制位設(shè)置成已知的起始默認(rèn)值。
晶振電路:向MCU提供基準(zhǔn)頻率,以保證MCU正常工作。
BDM電路:操作人員可以通過它初次向目標(biāo)板下載程序,同時(shí)也
可以通過BDM調(diào)試器對(duì)目標(biāo)板MCU的Flash存儲(chǔ)器進(jìn)
行寫入、擦除等操作
5
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
3硬件設(shè)計(jì)原理及內(nèi)容
3.1硬件設(shè)計(jì)原理圖
圖3硬件設(shè)計(jì)原理圖
從上圖可知從溫度傳感器采樣模塊標(biāo)記采集溫度值的電壓
6
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
V0輸入到A/D轉(zhuǎn)換器MAX153的VIN端,單片機(jī)控制模塊通過給
出MAX153的RD、WR、MAX153_CS控制信號(hào)來控制它的工作,同
時(shí)從MAX153的D0-D7獲取轉(zhuǎn)換出來的標(biāo)記實(shí)時(shí)溫度值的數(shù)值。
從溫度傳感器采樣模塊標(biāo)記采集溫度值的電壓V0輸入到A/D轉(zhuǎn)
換器MAX153的VIN端,單片機(jī)控制模塊通過給出MAX153的RD、
WR.MAX153CS控制信號(hào)來控制它的工作,同時(shí)從MAX153的D0-D7
獲取轉(zhuǎn)換出來的標(biāo)記實(shí)時(shí)溫度值的數(shù)值。
3.2串口通信部分的電路圖
圖4串口通信電路圖
串口電路是由一個(gè)MAX232ACPE和一個(gè)9芯接口的串行口構(gòu)成。
串口電路的作用:用于連接計(jì)算機(jī)與實(shí)驗(yàn)?zāi)0?,?shí)現(xiàn)數(shù)據(jù)傳輸與
通信。
本次采用9芯接口的串行口,其中,各個(gè)引腳的含義如下:
1.接收線信號(hào)檢測2.接收數(shù)據(jù)線(RxD)
3.發(fā)送數(shù)據(jù)線(TxD)4.數(shù)據(jù)中斷準(zhǔn)備就緒
7
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
5.信號(hào)地6.數(shù)據(jù)通信設(shè)備準(zhǔn)備就緒
7.請(qǐng)求發(fā)送(RTS)8.清除發(fā)送
9.振鈴提示
3.3鍵盤輸入電路
鍵盤輸入電路采用掃描的方式獲得鍵值。如圖,這里將列線
分別接PPCTPP3,且編程時(shí)將PPO?PP3定義為輸入并有內(nèi)部上拉
電阻,行線分別接PP4~PP7,且編程時(shí)將其定義為輸出,那么1
鍵對(duì)應(yīng)PP7?PP0=11101110,依此類推,可得到其他鍵對(duì)應(yīng)的鍵
值。其中,A鍵按下后可以進(jìn)入溫度設(shè)定,B鍵按下后可以對(duì)溫
8
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
3.4數(shù)碼顯示電路
上圖是4連排8段數(shù)碼管的借口電路,在硬件連接上,利用
MCU的PA口控制8個(gè)位段,用PT口的低四位控制數(shù)碼管的位選
信號(hào)。選用支持12c的DS1307芯片作為系統(tǒng)的擴(kuò)展EEPROM存儲(chǔ)器,它用于
存儲(chǔ)預(yù)定的溫度,它的SCL、SDA端要與MAX7219的SCL、
SDA端相連,并同時(shí)連上單片機(jī)的IOB口的I0B1和I0B2端,
以將用戶設(shè)定的預(yù)定溫度存儲(chǔ)起來,還可以提供給顯示模塊進(jìn)行
顯小0
9
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
4系統(tǒng)軟件設(shè)計(jì)流程
溫顯
溫顯掃描鍵盤按巴型___一-
度示
度示
I加(減)1鍵按下
鍵預(yù)
鍵當(dāng)
按定
按前
調(diào)整預(yù)定溫度值
數(shù)碼管顯示溫度
圖13.系統(tǒng)軟件總流程圖
根據(jù)系統(tǒng)的工作原理,對(duì)本系統(tǒng)的軟件總流程要進(jìn)行比較嚴(yán)
格的設(shè)計(jì),其流程圖如上圖
10
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
5調(diào)試過程及數(shù)據(jù)
在做實(shí)驗(yàn)開始時(shí),按照老師的要求,把系統(tǒng)的每個(gè)部分分成
不同的模塊,每個(gè)模塊單獨(dú)作為一個(gè)工程建立,每個(gè)模塊調(diào)試成
功后才將各部分組合在一起,最終調(diào)試。
5.1串口調(diào)試
通過串口RS232和PC機(jī)進(jìn)行連接,同時(shí)利用PC機(jī)上的超級(jí)
終端進(jìn)行串口調(diào)試,輸入串口通信函數(shù),并把單片機(jī)和PC機(jī)的
波特率設(shè)置為相同的值,即9600bit/s,調(diào)試完成后輸入數(shù)據(jù)和
輸出數(shù)據(jù)符合理論要求,說明通信正常,此時(shí)串口調(diào)試完畢。
調(diào)試遇到的問題:鍵盤輸入的字符或數(shù)字不再計(jì)算機(jī)上顯
z]\O
解決方法:將串行口默認(rèn)波特率改為9600,重新調(diào)試。
5.2LED數(shù)碼管調(diào)試
調(diào)試過程中按實(shí)驗(yàn)電路上數(shù)碼管與單片機(jī)的連接,在計(jì)算機(jī)
中載入程序,若數(shù)碼管顯示“0000”,說明數(shù)碼管模塊可以使用,
否則不能,需要繼續(xù)對(duì)程序進(jìn)行修改和編譯。
調(diào)試遇到的問題:數(shù)碼管不能正常顯示。
解決方法:經(jīng)過仔細(xì)的檢查,發(fā)現(xiàn)課本上的數(shù)碼管管腳和控
制位端口和老師給的不一樣,修正后繼續(xù)調(diào)試測驗(yàn)。
5.3鍵盤輸入模塊調(diào)試
在調(diào)試過程中按下A鍵后,按下鍵盤上要設(shè)定的數(shù)值,如果
LED上顯示正確,說明鍵盤模塊的使用正常,否則,不正。此時(shí)
就要繼續(xù)對(duì)程序進(jìn)行修改和編譯。
調(diào)試遇到的問題:鍵盤使用不正常,按鍵執(zhí)行后,LED沒有
顯不。
11
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
解決方法:經(jīng)過檢查,才知道鍵盤函數(shù)沒有在main,c中調(diào)
用,調(diào)用后,使用正常。
由于本系統(tǒng)采用凌陽系列單片機(jī)的SPCE061單片機(jī)作為控
制核心來實(shí)現(xiàn)對(duì)溫度的恒定控制。因?yàn)樵瓉碓诒究齐A段學(xué)習(xí)時(shí)接
觸過這款單片機(jī),對(duì)它有一定的了解,配合它的開發(fā)工具非常簡
單可靠,它的開發(fā)環(huán)境(unSPIDE)非常經(jīng)典易用,但是要想將這
個(gè)系統(tǒng)完整的調(diào)試成功,還是很要下一些苦功夫的!
它的軟件編程采用C語言實(shí)現(xiàn)系統(tǒng)主要的工作流程,另外
還要帶一些匯編方面的程序以實(shí)現(xiàn)某些芯片底層驅(qū)動(dòng)及12c協(xié)
議,所以本系統(tǒng)的軟件實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和軟件算法相對(duì)非常簡
單,在此就不加以詳細(xì)講述了,下面將主要對(duì)本系統(tǒng)的軟件實(shí)現(xiàn)
全過程加以較詳細(xì)的講解。
首先安裝unSPIDE開發(fā)環(huán)境,它的界面比較類似于微軟的
VisualStudio開發(fā)環(huán)境,操作方式也比較的類似。在里面新建一
個(gè)SPIDEProject,它就會(huì)自動(dòng)的為我們創(chuàng)建一個(gè)SourceFile文
件夾和一個(gè)HeaderFile文件夾,為了實(shí)現(xiàn)我們的系統(tǒng)功能,首
先我們創(chuàng)建一個(gè)I2C.asm(注:參考過網(wǎng)上的一些資料寫出來的),
它主要的功能是完成對(duì)12c協(xié)議的支持;然后我們創(chuàng)建一個(gè)
MAX7219.asm文件,它主要的功能是完成對(duì)MAX7219、單片機(jī)
IOA/B口等芯片底層驅(qū)動(dòng)的實(shí)現(xiàn);然后我們創(chuàng)建一個(gè)Main.c文
件,它功能是完成我們的主要系統(tǒng)流程。下面列出Main.c文件
中的main()函數(shù),它的執(zhí)行流程基本上就是按照上面圖示13的
軟件總流程圖來實(shí)現(xiàn)的。
12
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
main()
(
floattmp_measure,tmp_setting;
〃初始化相應(yīng)器件
Init_IOA(OxFFFF,OxFFFF,OxFFFF);
Init_IOB(OxFFFF,OxFFFF,OxFFFF);
Init_7219();
status=show_measure_tmp;
〃初始化設(shè)定溫度為50°
if(readTmp()<0||readTmp()>100)
writeTmp(50);
while(l)
(
delay();
〃通過A/D轉(zhuǎn)換器采集當(dāng)前的實(shí)際溫度值
tmp_measure=GetADC()*(maxtmp-mintmp)/256;
tmp_setting=readTmpO;
〃判斷實(shí)測的溫度值是否在預(yù)定的溫度范圍內(nèi)(+-0.5。)
〃根據(jù)判斷的結(jié)果控制加熱器和電風(fēng)扇的開關(guān)
if(tmp_measure<tmp_setting-0.5)
fanOFF();
13
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
themON();
)
elseif(tmp_measure>tmp_setting+0.5)
(
themOFF();
fanON();
)
else
(
fanOFF();
themOFF();
)
〃掃描鍵盤按鍵情況
switch(keyScan())
(
case1:
status=show_measure_tmp;
break;
case2:
status=show_setting_tmp;
break;
case3:
14
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
tmp_setting二readTmp();
tmp_setting++;
writeTmp(tmp_setting);
break;
case4:
tmp_setting=readTmp();
tmp_setting—;
writeTmp(tmp_setting);
break;
)
//判斷顯示系統(tǒng)當(dāng)前的溫度或者是用戶預(yù)定的溫度
if(status==show_measure_tmp)
ShowResult(tmp_measure);
elseShowResult(tmp_setting);
}
)
其中的初始化函數(shù)包括Init」OA,Init_7219(),
前面兩個(gè)函數(shù)的引用來自MAX7219.asm文件,而后者的實(shí)現(xiàn)如
下,其中的Send_7219函數(shù)也來之MAX7219.asm文件。
voidInit_7219()//max7219初始化
Send_7219(0x0C01);
15
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
Send_7219(OxOFOO);
Send_7219(0xO9FF);
Send_7219(0xOAO2);
Send_7219(0x()B07);
}
Main()函數(shù)中引用的其他函數(shù)包括系統(tǒng)延遲函數(shù)delay。,顯
示溫度函數(shù)ShowResult(floatCount),讀測量溫度函數(shù)GetADC。,
寫設(shè)定的溫度writeTmp(floattmp),讀設(shè)定的溫度函數(shù)
readTmpO,掃描鍵盤函數(shù)keyScan(),開加熱器函數(shù)themONO,
關(guān)加熱器函數(shù)themOFF(),開風(fēng)扇函數(shù)fanON(),關(guān)風(fēng)扇函數(shù)
fanOFF(),它們均在Main.c文件中實(shí)現(xiàn)了,具體代碼請(qǐng)查看上交
的電子版的設(shè)計(jì)內(nèi)容的附錄。
16
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
6實(shí)驗(yàn)心得和結(jié)果
雖然老師沒有要求我們將軟件編程完全實(shí)現(xiàn)出來,但是由于
上次課堂討論的時(shí)候大家做出來的東西都只是在理論上進(jìn)行了
設(shè)計(jì),而離實(shí)際的實(shí)現(xiàn)還是有很大的差距的,所以我特別想在本
次的課程設(shè)計(jì)中將設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)出來。正好原來在本科階段學(xué)
習(xí)時(shí)接觸過SPCE061這款單片機(jī),對(duì)它有一定的了解,再加上
它的開發(fā)環(huán)境(unSPIDE)相對(duì)較為簡單,所以最后就選擇了使用
這塊單片機(jī)構(gòu)建一個(gè)嵌入式設(shè)計(jì)系統(tǒng),由于原來還沒有在軟件、
硬件上完全設(shè)計(jì)實(shí)現(xiàn)過一個(gè)系統(tǒng),所以心里也明白要學(xué)的東西會(huì)
很多的,難度也會(huì)很大的,再加上平時(shí)在實(shí)驗(yàn)室還要忙著做自己
的項(xiàng)目,給我自己設(shè)計(jì)實(shí)現(xiàn)的時(shí)間肯定不多,因此就選擇設(shè)計(jì)了
這樣一個(gè)相對(duì)較為簡單的系統(tǒng),由于不用設(shè)計(jì)端口譯碼系統(tǒng)、存
儲(chǔ)系統(tǒng)以及中斷響應(yīng)系統(tǒng),使得它的外圍電路圖確實(shí)稍顯簡單。
就是這么樣的一個(gè)相對(duì)較簡單的系統(tǒng),在實(shí)際的實(shí)現(xiàn)當(dāng)中我還是
遇到了很多的困難,例如在硬件實(shí)現(xiàn)上,剛開始設(shè)計(jì)時(shí)對(duì)雙向可
控硅的不了解,在它的使用上遇到了很多預(yù)想不到的問題,剛開
始加熱電路始終沒有工作,從很多地方找原因,都沒有發(fā)現(xiàn)問題
所在,后來還是在原來本科同學(xué)的幫助下發(fā)現(xiàn)雙向可控硅的1、
2腳接錯(cuò)了,后來又遇到可控硅不能關(guān)斷等問題,不過還是通過
不斷的查資料,調(diào)整電路的各個(gè)參數(shù)才慢慢的解決。在軟件實(shí)現(xiàn),
由于采取大部分用C語言編寫的方法,但在實(shí)際完成后,我們發(fā)
現(xiàn)存在很多漏洞,C語言代碼過長,效率不高,使得調(diào)試工作花
17
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
費(fèi)了很多的時(shí)間。不過最后還是大致的將這個(gè)系統(tǒng)實(shí)現(xiàn)出來了,
雖然由于時(shí)間的關(guān)系,此系統(tǒng)還有一些地方需要調(diào)整,特別是采
樣溫度與實(shí)際溫度的誤差控制上存在這一些誤差,恒溫控制的超
調(diào)量比較大,特別是在高溫恒溫的時(shí)候效果不是特別的理想,但
是能實(shí)現(xiàn)出來已經(jīng)感到很滿意了。通過這次課程設(shè)計(jì),讓我體會(huì)
最深的是:實(shí)際調(diào)試中需要考慮的問題是很復(fù)雜的,需要對(duì)事物
的考慮更全面。
補(bǔ)充:本人上交的電子文檔中的附錄部分有三個(gè)目錄,一個(gè)
是主要芯片的Datasheet,一個(gè)是程序代碼(包含在unSPIDE中新
建的項(xiàng)目的所有文件),一個(gè)是硬件設(shè)計(jì)全圖。
18
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
致謝
本《嵌入式系統(tǒng)》大作業(yè)是嵌入式水溫控制系統(tǒng),我們對(duì)于
該課程的理論部分有了更客觀、更直接的認(rèn)識(shí),大作業(yè)給了我們
將理論應(yīng)用的真實(shí)的系統(tǒng)開發(fā)上的機(jī)會(huì),對(duì)嵌入試系統(tǒng)的開發(fā)設(shè)
計(jì)流程、設(shè)計(jì)思路和設(shè)計(jì)方法有了深刻的印象,培養(yǎng)了我們開發(fā)
集成系統(tǒng)的初步思想,對(duì)今后進(jìn)一步深入研究嵌入式系統(tǒng)開發(fā)有
重要的指導(dǎo)意義。同時(shí),在課程設(shè)計(jì)的過程中,我們發(fā)現(xiàn)了以下
3點(diǎn)我們自身的不足:在理論學(xué)習(xí)當(dāng)中,我們?nèi)杂兄R(shí)盲區(qū),對(duì)
于易混淆知識(shí)點(diǎn)認(rèn)識(shí)模糊;在編程時(shí),對(duì)于某些指令的含義仍不
是很清楚,需要通過查詢資料才能獲得,降低了編程效率;編程
的整體性思維不好。
在今后的學(xué)習(xí)中,我們要努力通過學(xué)習(xí)來改掉這些不足。
最后,感謝指導(dǎo)老師王華本對(duì)我們的指導(dǎo),還要感謝和我
們一起進(jìn)行討論和研究的各位同學(xué),這次大作業(yè)的順利完成離不
開你們的幫助。
19
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
參考文獻(xiàn)
[1]徐千洋.LinuxC函數(shù)庫參考手冊CM]中國青年出版社.2中2
[2]陳堅(jiān),孫志月.MODEM通信編程技術(shù)[M].西安電子科技大學(xué)出
版社.1998
[3]李現(xiàn)勇.VisualC++串口通信技術(shù)與工程實(shí)踐[M].人民郵電
出版社.2004
[4]何小平.選擇適合ARM的嵌入式操作系統(tǒng)[J].BMRfech
Inc.2003
[5]馬忠梅,馬廣云,徐英慧,田譯.ARM嵌入式處理結(jié)構(gòu)與應(yīng)用
基礎(chǔ)[M].北京航空航天大學(xué)出版社.2002
[6]鄒思鐵.嵌入式Linux設(shè)計(jì)與應(yīng)用北京清華大學(xué)出版
社.2002
[7]杜春雷.ARM體系結(jié)構(gòu)與編程[M].清華大學(xué)出版社.2003
[8]KirkZurell[M].CProgramingForEmbeddedSystems
[9]楊海清,周安棟,羅勇,陳牧.嵌入式系統(tǒng)實(shí)時(shí)網(wǎng)絡(luò)通信中的
LCD顯示設(shè)計(jì)方法[J].計(jì)算機(jī)與數(shù)字工程.2010年02期
20
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
附錄
實(shí)驗(yàn)程序
Main,c
nclude<hidef.h>//for(j=0;j
/*commondefinesandmacros*/<=100;j++){
ttinclude<mc9sl2dgl28.h>//_FEED_COP();
/*derivativeinfornation*///}
ttpragmaLINK_INFODERIVATIVE}
〃mc9sl2dgi28b〃)
ttinclude<a.h>voidLEDShowl(inti,intc){
INT8ULEDbuf[4]=LEDcs=CStable[i];
數(shù)碼管顯示數(shù)if(i=2){
組LEDdata=
INT8UFlag_Send,Flag_ADC;CDtable[c])&0x7f;
INT16UNUM;}else{
INT16UTemperature_Set;LEDdata=^Dtable[c];
INT8URCVData[16];//}
接收數(shù)據(jù)幀}
voidLEDinit(void);*/
voidLEDShow(int*Buf):voidmain(void){
voidLEDShowl(inti,intc);/*putyourowncodehere*/
/*bytei,j,ge,shi,bai,point;
externDtableEl1]二constINT8UData[]=
(0x3f,0x06,0x5b,0x4f,0x66,0x6d,0“Hello!!!oooo〃;〃數(shù)據(jù)內(nèi)容
x7d,0x07,0x7f,0x6f,0x00);constINT8UDataLenth=6;
externCStable[4]=//數(shù)據(jù)長度
(0xf7,Oxfb,Oxfd,Oxfe};INT16UID;〃標(biāo)示符
voidLEDinit(void){//INT8Ui;
LEDdata_D=Oxff;
LEDcs_D|=OxOf;1NT16UWaitTime=0;//
循環(huán)延時(shí)
〃發(fā)送標(biāo)志=0,沒有空閑發(fā)
voidLEDShow(int*Buf,inti){送緩沖區(qū),發(fā)送不成功;=1,發(fā)送成
intc;功
intj;1NT8USNDFlag;
for(i=0:i<=3;i++){〃接收標(biāo)志二Oxff,未收到
c=Buf[i]-0,;幀;二1,收到數(shù)據(jù)幀;二2,收到遠(yuǎn)程幀
LEDShowl;3-i,c);1NT8URCVFlag;
21
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
DDRB=OXFF;示未收到數(shù)據(jù)
PORTB=OXff;(
ECT_Init();for(i=4;
LEDInitO;i<4+DataLenth;i++)
NUM=O;
Flag_ADC=0x00;SCIScndl(RCVData[i]);
Flag_Send=0:)
//ADCInitO;else〃未收到
AD_Init();數(shù)據(jù)
SCIInitO;(
KB_Init();
//CANInitO;SClSendN(13,^ReceiveError!z,);
TemperatureSet=500;}//Endof
Pwm_Init0;RCVFlag
)
//ID=Oxff;//(TNT16UJ(CANOTDAROV〃發(fā)送不成功
?8)+CAN0IDAR1V;else
EnableSCIRelnt;{
Enablelnterrupts;
while(l){SCISendN(10,“SendError!”);
/*WaitTime+-;}//EndofSNDFlag
//發(fā)送〃Hello!!!”WaitTime=0;
if(WaitTime>60000)}//EndofWaitTime
(*/
SNDFlag=
CANSND1DFRM(ID,(INT8UKey_Del();
木)(Data),DalaLenlh);Sample0;
〃發(fā)送成功SendToSCI();
if(SNDFlag二二1)}
(for(;;){}/*waitforever*/
RCVFlag=/*pleasemakesurethatyou
CANRCV1FRM((INT8U*)RCVData);//neverleavethisfunction*/
接收子程序
if(RCVFlag!=
OxFF)//接收子程序返回OXFF,表
a.c
22
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
//*******AD子函數(shù)⑶*******〃
#include<mc9sl2dgl28.h>
#include<a.h>
externINT8UFlag_ADC;
externINT8ULEDbuf[4];
INT16UAD_wData;
externINT16UTemperature_Set;
voidADInit(void){
ATD0TEST1=ObOOOOOOOO;〃禁止特殊通道
ATD0CTL2=ObllOOOOlO;〃快速清除模式,完成中斷允許
ATD0CTL3=ObOOOOlOOO;〃隊(duì)列長度為1
ATD0CTL4=ObOWOOOH;//ATDclock=lM
ATD0CTL5=OblOlOOHO;
_interrupt22Int_ADO(void){
ADwData=ATDODRO;//ReadouttheResultRegister
//PORTB=ATD0DR6L;
}
voidADCInit(void){
ATD0CTL2=OXCO:
ATD0CTL3=OXOB:
ATD0CTL4=0X07:
ATD0CTL4&=0X7F;
TNT16UADCvalue(INT8Uchannel){
INT16Utemp;
ATD0CTL5=(0x20|channel);
while(l){
if((ATD0STA70&(l?SCFBit))!=0)[
temp=ATDODRO;
temp=Uemp?6);
break;
)
}
returntemp;
)
bytePID(dwordresult)(
staticsignedintekl,Pikl;
signedintek,Ppk,Pik,Pdk,Pk;
23
安徽新華學(xué)院《嵌入式系統(tǒng)及應(yīng)用》大作業(yè)
unsignedchartmp;
ek=(result-Temperature_Set);
Ppk=kp*ok;
Pik=ki*ek-Pikl;
Pdk=kd*(ek-ekl);
Pk=Ppk+Pik+Pdk;
ekl=ek
Pikl=Pik;
if(Pk>0){
if(Pk>25500;{
tmp=255;
}else{
tmp=(byte)(Pk/100);
returntmp;
}else{
tmp=0;
returntmp;
)
)
voidSample(void){
bytege,shi,bai,point;
dwordresult;
if(FlagADC=Oxff){
resu1t=(dword;(ADwData)*1000/1023;
bai=(byte)(result/1000+,0));
shi-(byte)(Iresult%1000)/100+,0,);
ge=(byte)((result%100)/10+,0*);
point=(byte);result%10+,0));
if(bai=='0'){
LEDbuf[3]=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 租貨安全協(xié)議書范本
- 餐飲企業(yè)股東權(quán)益糾紛仲裁協(xié)議合同
- 車輛借用合同車輛狀態(tài)及驗(yàn)收協(xié)議
- 車輛掛靠與租賃業(yè)務(wù)風(fēng)險(xiǎn)投資及收益分配合同
- 茶園承包與茶葉深加工技術(shù)研發(fā)合同
- 科技成果轉(zhuǎn)化收益分配合同
- 高端火鍋店品牌授權(quán)及店鋪轉(zhuǎn)讓合同
- 采購人員廉潔自律與產(chǎn)品質(zhì)量保障協(xié)議
- 綠色環(huán)保離婚協(xié)議書及生態(tài)補(bǔ)償條款
- 宮外孕手術(shù)之后的護(hù)理
- 無人機(jī)飛行器結(jié)構(gòu)與性能試題及答案
- 南京二模 南京市2025屆高三年級(jí)第二次模擬考試 數(shù)學(xué)試卷
- 廣東深圳2025年公開招聘農(nóng)村(村務(wù))工作者筆試題帶答案分析
- 《蔚來汽車》課件
- 建筑工地安全應(yīng)急預(yù)案
- 25春國家開放大學(xué)《中級(jí)財(cái)務(wù)會(huì)計(jì)(二)》形考任務(wù)1-4參考答案
- 《義務(wù)教育生物課程標(biāo)準(zhǔn)(2022年版)》解讀
- 膝關(guān)節(jié)滑膜炎試題及答案
- 2025年白芷種植市場調(diào)研報(bào)告
- 全國行政區(qū)域身份證代碼表(電子表格版)
- 期末復(fù)習(xí)人教PEP版英語五年級(jí)下冊
評(píng)論
0/150
提交評(píng)論