嵌入式系統(tǒng)及應用大作業(yè)嵌入式水溫控制系統(tǒng)_第1頁
嵌入式系統(tǒng)及應用大作業(yè)嵌入式水溫控制系統(tǒng)_第2頁
嵌入式系統(tǒng)及應用大作業(yè)嵌入式水溫控制系統(tǒng)_第3頁
嵌入式系統(tǒng)及應用大作業(yè)嵌入式水溫控制系統(tǒng)_第4頁
嵌入式系統(tǒng)及應用大作業(yè)嵌入式水溫控制系統(tǒng)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《嵌入式系統(tǒng)及應用》

(大作業(yè))

(題目:嵌入式水溫控制系統(tǒng))

姓爸___________________________

學號:__________________________

專業(yè):_________自動化班_________

院系:電子通信工程學院

指導老師:_________________________

完成時間:2013年X月X日

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

水溫控制系統(tǒng)設(shè)計

摘要

該實驗設(shè)計基于飛思卡爾MC9S12DG128開發(fā)板平臺,通過在

codewarrior開發(fā)環(huán)境編程而組成的一個水溫自動控制系統(tǒng)。容

器內(nèi)的水溫可以通過外部掃描鍵盤來人工設(shè)定。溫度值設(shè)定后系

統(tǒng)將通過熱電阻絲來測定當前的溫度值。當系統(tǒng)的水溫下降時,

當前的水溫值會由LED顯示出來。系統(tǒng)的可實現(xiàn)的功能:1、四

位數(shù)碼管顯示容器里的當前溫度,水溫可以顯示到小數(shù)點后一

位;2、可以用鍵盤人工設(shè)定水的溫度值;3、利用串口使實驗面

板與計算機進行通信。4.采用PID控制算法,使得溫度穩(wěn)定在一

定范圍內(nèi)。

關(guān)鍵字:水溫控制,單片機MC9s12DG128

安徽新華學院《嵌入式系統(tǒ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

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

目錄

1緒論.............................................4

1.1水溫控制系統(tǒng)設(shè)計要求..............................4

1.2水溫控制系統(tǒng)部分..................................4

2系統(tǒng)設(shè)計總體框圖及各模塊作用......................5

2.1系統(tǒng)設(shè)計總體框圖..................................5

2.2每個功能模塊作用介紹..............................5

3硬件設(shè)計原理圖及內(nèi)容...............................7

3.1硬件設(shè)計原理.......................................7

3.2串口通信部分的電路................................8

3.3鍵盤輸入電路......................................8

?4數(shù)碼/J:電路9

4系統(tǒng)軟件設(shè)計流程...................................10

5調(diào)試過程及數(shù)據(jù).....................................11

5.1串口調(diào)試..........................................11

5.2LED數(shù)碼管調(diào)試....................................11

5.3鍵盤輸入模塊調(diào)試..................................11

6實驗心得和結(jié)果.....................................12

致謝................................................13

參考文獻..............................................14

附錄...............................................15

in

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

1緒論

溫度控制電路廣泛應用于社會生活的各個領(lǐng)域,如家用電

器、汽車、材料、電力電子等,同時在很多工業(yè)應用場合都需要

溫度的恒定控制,比如電加熱爐,煙葉初烤炕房,某些傳感器的

工作環(huán)境溫度等。同時,在實際工作和科研中,許多實驗均需耍

用加熱器來加熱實驗對象,使其達到并保持在某一設(shè)定溫度,而

且在實驗過程中,對象的溫度有時要求穩(wěn)定性很高,有時需要不

斷地調(diào)節(jié)。正因為如此,恒溫的控制在工業(yè)和科研中占有非同一

般的地位。

水溫恒溫控制就是其中的一種。水的恒溫控制是利用對加熱

系統(tǒng)(熱源)的控制,使之在不同的溫度輸出不同的功率,使得

在水溫我們預設(shè)的溫度附近作為小的變動,而不會超出太大的范

圍,從而達到我們使用的要求。在預設(shè)溫度的附近時,溫度與加

熱器、散熱器之間的關(guān)系是很微妙的,我們沒辦法控制任意時刻

的準確的水溫,但是我們可以通過測量來判斷其變化的趨勢,和

變化的幅度,從而來使之朝著我們預想的方向進行。

1.1水溫控制系統(tǒng)設(shè)計要求

(1)溫度設(shè)定范圍為40?90℃,最小區(qū)分度為1℃,標定溫度

<lro

1

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

(2)環(huán)境溫度降低時(例如用電風扇降溫)溫度控制的靜態(tài)誤

差W1C。

(3)用十進制數(shù)碼管顯示水的實際溫度保留一位小數(shù)。

(4)采用適當?shù)目刂品椒ǎㄈ鐢?shù)字PID),當設(shè)定溫度突變(由

40℃提高到60℃)時,減小系統(tǒng)的調(diào)節(jié)時間和超調(diào)量。

(5)溫度控制的靜態(tài)誤差《0.2℃。

(6)從串口輸出水溫隨時間變化的數(shù)值。

1.2水溫控制系統(tǒng)部分

圖1控制系統(tǒng)框圖

從圖中易可知,本設(shè)計系統(tǒng)主要包括如下幾部分:單片機

控制模塊、溫度傳感器采樣模塊、A/D轉(zhuǎn)換模塊、溫度顯示模塊、

設(shè)置/存儲預定溫度模塊、加熱/散熱電路模塊。

系統(tǒng)的工作流程是這樣的:首先用戶要先使用設(shè)置/存儲預

定溫度模塊設(shè)置和存儲預定的溫度;溫度傳感器采樣模塊對水溫

進行采樣,將采集到的溫度傳給A/D轉(zhuǎn)換模塊,A/D轉(zhuǎn)換模塊將

此溫度對應的數(shù)值傳給單片機控制模塊,單片機控制模塊會判斷

此溫度是否在用戶預定的溫度+/-0.5。的范圍內(nèi),如果兩個溫度

不等就會調(diào)用加熱/散熱電路模塊,即如果此溫度高于用戶設(shè)定

溫度0.5。以上,則散熱電路就會開啟以將當前的水溫降到預定

2

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

的溫度+/-0.5°的范圍內(nèi),反正則會啟動加熱電路以加熱當前的

水。同時如果用戶想顯示當前的水溫或者預定的水溫,都可以通

過溫度顯示模塊顯示,而如果用戶要改變當前的預定水溫,可以

通過設(shè)置/存儲預定溫度模塊進行設(shè)置。

3

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

2系統(tǒng)設(shè)計總體框圖及各模塊作用

2.1系統(tǒng)設(shè)計總體框圖

電源電路

O驅(qū)動電路匚=:LED顯示

=晶振電路

絲復位電路

BDM調(diào)試電路

鍵盤輸入電

圖2系統(tǒng)設(shè)計總框圖

2.2每個功能模塊作用介紹

單片機:單片機是整個控制系統(tǒng)的核心,在此我用MC9s12DG128

提供系統(tǒng)控制所需要的I/O口,中斷、定時以及存放中

間結(jié)果的RAMo

數(shù)據(jù)采樣:數(shù)據(jù)采樣模塊是由熱電阻絲、調(diào)理電路和MCU內(nèi)部

的A/D轉(zhuǎn)換器組成的。其功能是將由熱敏傳感器及相

關(guān)電路采集到的溫度轉(zhuǎn)換為電壓信號,經(jīng)A/D轉(zhuǎn)換器

4

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

后送入MC9s12DG128中,換算成溫度值,用于控制和

顯示。

串行口傳輸:將采樣溫度值上傳到PC機,利用PC的端口下載程

序。

鍵盤設(shè)定:用于溫度值的人工設(shè)定。

SSR固態(tài)繼電器/電熱絲:通過控制繼電器的開關(guān)來完成對熱電

絲的加熱,從而達到溫度的控制。

電源電路:電源電路部分的兩個電容構(gòu)成濾波電路,用來改善系

統(tǒng)的電磁兼容性,降低電源波動對系統(tǒng)的影響,增強

電路工作穩(wěn)定性。

PLL電路:片內(nèi)PLL電路兼有頻率放大和信號提純的功能,可以

使系統(tǒng)以較低的外部時鐘信號獲得較高的工作頻率,

以降低因高速開關(guān)時鐘造成的高頻噪聲。

復位電路:MCU在響應各種外部或偵測到的內(nèi)部故障是可以進行

系統(tǒng)復位。當MCU檢測到需要復位時,它將寄存器和

控制位設(shè)置成已知的起始默認值。

晶振電路:向MCU提供基準頻率,以保證MCU正常工作。

BDM電路:操作人員可以通過它初次向目標板下載程序,同時也

可以通過BDM調(diào)試器對目標板MCU的Flash存儲器進

行寫入、擦除等操作

5

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

3硬件設(shè)計原理及內(nèi)容

3.1硬件設(shè)計原理圖

圖3硬件設(shè)計原理圖

從上圖可知從溫度傳感器采樣模塊標記采集溫度值的電壓

6

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

V0輸入到A/D轉(zhuǎn)換器MAX153的VIN端,單片機控制模塊通過給

出MAX153的RD、WR、MAX153_CS控制信號來控制它的工作,同

時從MAX153的D0-D7獲取轉(zhuǎn)換出來的標記實時溫度值的數(shù)值。

從溫度傳感器采樣模塊標記采集溫度值的電壓V0輸入到A/D轉(zhuǎn)

換器MAX153的VIN端,單片機控制模塊通過給出MAX153的RD、

WR.MAX153CS控制信號來控制它的工作,同時從MAX153的D0-D7

獲取轉(zhuǎn)換出來的標記實時溫度值的數(shù)值。

3.2串口通信部分的電路圖

圖4串口通信電路圖

串口電路是由一個MAX232ACPE和一個9芯接口的串行口構(gòu)成。

串口電路的作用:用于連接計算機與實驗模版,實現(xiàn)數(shù)據(jù)傳輸與

通信。

本次采用9芯接口的串行口,其中,各個引腳的含義如下:

1.接收線信號檢測2.接收數(shù)據(jù)線(RxD)

3.發(fā)送數(shù)據(jù)線(TxD)4.數(shù)據(jù)中斷準備就緒

7

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

5.信號地6.數(shù)據(jù)通信設(shè)備準備就緒

7.請求發(fā)送(RTS)8.清除發(fā)送

9.振鈴提示

3.3鍵盤輸入電路

鍵盤輸入電路采用掃描的方式獲得鍵值。如圖,這里將列線

分別接PPCTPP3,且編程時將PPO?PP3定義為輸入并有內(nèi)部上拉

電阻,行線分別接PP4~PP7,且編程時將其定義為輸出,那么1

鍵對應PP7?PP0=11101110,依此類推,可得到其他鍵對應的鍵

值。其中,A鍵按下后可以進入溫度設(shè)定,B鍵按下后可以對溫

8

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

3.4數(shù)碼顯示電路

上圖是4連排8段數(shù)碼管的借口電路,在硬件連接上,利用

MCU的PA口控制8個位段,用PT口的低四位控制數(shù)碼管的位選

信號。選用支持12c的DS1307芯片作為系統(tǒng)的擴展EEPROM存儲器,它用于

存儲預定的溫度,它的SCL、SDA端要與MAX7219的SCL、

SDA端相連,并同時連上單片機的IOB口的I0B1和I0B2端,

以將用戶設(shè)定的預定溫度存儲起來,還可以提供給顯示模塊進行

顯小0

9

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

4系統(tǒng)軟件設(shè)計流程

溫顯

溫顯掃描鍵盤按巴型___一-

度示

度示

I加(減)1鍵按下

鍵預

鍵當

按定

按前

調(diào)整預定溫度值

數(shù)碼管顯示溫度

圖13.系統(tǒng)軟件總流程圖

根據(jù)系統(tǒng)的工作原理,對本系統(tǒng)的軟件總流程要進行比較嚴

格的設(shè)計,其流程圖如上圖

10

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

5調(diào)試過程及數(shù)據(jù)

在做實驗開始時,按照老師的要求,把系統(tǒng)的每個部分分成

不同的模塊,每個模塊單獨作為一個工程建立,每個模塊調(diào)試成

功后才將各部分組合在一起,最終調(diào)試。

5.1串口調(diào)試

通過串口RS232和PC機進行連接,同時利用PC機上的超級

終端進行串口調(diào)試,輸入串口通信函數(shù),并把單片機和PC機的

波特率設(shè)置為相同的值,即9600bit/s,調(diào)試完成后輸入數(shù)據(jù)和

輸出數(shù)據(jù)符合理論要求,說明通信正常,此時串口調(diào)試完畢。

調(diào)試遇到的問題:鍵盤輸入的字符或數(shù)字不再計算機上顯

z]\O

解決方法:將串行口默認波特率改為9600,重新調(diào)試。

5.2LED數(shù)碼管調(diào)試

調(diào)試過程中按實驗電路上數(shù)碼管與單片機的連接,在計算機

中載入程序,若數(shù)碼管顯示“0000”,說明數(shù)碼管模塊可以使用,

否則不能,需要繼續(xù)對程序進行修改和編譯。

調(diào)試遇到的問題:數(shù)碼管不能正常顯示。

解決方法:經(jīng)過仔細的檢查,發(fā)現(xiàn)課本上的數(shù)碼管管腳和控

制位端口和老師給的不一樣,修正后繼續(xù)調(diào)試測驗。

5.3鍵盤輸入模塊調(diào)試

在調(diào)試過程中按下A鍵后,按下鍵盤上要設(shè)定的數(shù)值,如果

LED上顯示正確,說明鍵盤模塊的使用正常,否則,不正。此時

就要繼續(xù)對程序進行修改和編譯。

調(diào)試遇到的問題:鍵盤使用不正常,按鍵執(zhí)行后,LED沒有

顯不。

11

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

解決方法:經(jīng)過檢查,才知道鍵盤函數(shù)沒有在main,c中調(diào)

用,調(diào)用后,使用正常。

由于本系統(tǒng)采用凌陽系列單片機的SPCE061單片機作為控

制核心來實現(xiàn)對溫度的恒定控制。因為原來在本科階段學習時接

觸過這款單片機,對它有一定的了解,配合它的開發(fā)工具非常簡

單可靠,它的開發(fā)環(huán)境(unSPIDE)非常經(jīng)典易用,但是要想將這

個系統(tǒng)完整的調(diào)試成功,還是很要下一些苦功夫的!

它的軟件編程采用C語言實現(xiàn)系統(tǒng)主要的工作流程,另外

還要帶一些匯編方面的程序以實現(xiàn)某些芯片底層驅(qū)動及12c協(xié)

議,所以本系統(tǒng)的軟件實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和軟件算法相對非常簡

單,在此就不加以詳細講述了,下面將主要對本系統(tǒng)的軟件實現(xiàn)

全過程加以較詳細的講解。

首先安裝unSPIDE開發(fā)環(huán)境,它的界面比較類似于微軟的

VisualStudio開發(fā)環(huán)境,操作方式也比較的類似。在里面新建一

個SPIDEProject,它就會自動的為我們創(chuàng)建一個SourceFile文

件夾和一個HeaderFile文件夾,為了實現(xiàn)我們的系統(tǒng)功能,首

先我們創(chuàng)建一個I2C.asm(注:參考過網(wǎng)上的一些資料寫出來的),

它主要的功能是完成對12c協(xié)議的支持;然后我們創(chuàng)建一個

MAX7219.asm文件,它主要的功能是完成對MAX7219、單片機

IOA/B口等芯片底層驅(qū)動的實現(xiàn);然后我們創(chuàng)建一個Main.c文

件,它功能是完成我們的主要系統(tǒng)流程。下面列出Main.c文件

中的main()函數(shù),它的執(zhí)行流程基本上就是按照上面圖示13的

軟件總流程圖來實現(xiàn)的。

12

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

main()

(

floattmp_measure,tmp_setting;

〃初始化相應器件

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)換器采集當前的實際溫度值

tmp_measure=GetADC()*(maxtmp-mintmp)/256;

tmp_setting=readTmpO;

〃判斷實測的溫度值是否在預定的溫度范圍內(nèi)(+-0.5。)

〃根據(jù)判斷的結(jié)果控制加熱器和電風扇的開關(guān)

if(tmp_measure<tmp_setting-0.5)

fanOFF();

13

安徽新華學院《嵌入式系統(tǒ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

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

tmp_setting二readTmp();

tmp_setting++;

writeTmp(tmp_setting);

break;

case4:

tmp_setting=readTmp();

tmp_setting—;

writeTmp(tmp_setting);

break;

)

//判斷顯示系統(tǒng)當前的溫度或者是用戶預定的溫度

if(status==show_measure_tmp)

ShowResult(tmp_measure);

elseShowResult(tmp_setting);

}

)

其中的初始化函數(shù)包括Init」OA,Init_7219(),

前面兩個函數(shù)的引用來自MAX7219.asm文件,而后者的實現(xiàn)如

下,其中的Send_7219函數(shù)也來之MAX7219.asm文件。

voidInit_7219()//max7219初始化

Send_7219(0x0C01);

15

安徽新華學院《嵌入式系統(tǒ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(),開風扇函數(shù)fanON(),關(guān)風扇函數(shù)

fanOFF(),它們均在Main.c文件中實現(xiàn)了,具體代碼請查看上交

的電子版的設(shè)計內(nèi)容的附錄。

16

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

6實驗心得和結(jié)果

雖然老師沒有要求我們將軟件編程完全實現(xiàn)出來,但是由于

上次課堂討論的時候大家做出來的東西都只是在理論上進行了

設(shè)計,而離實際的實現(xiàn)還是有很大的差距的,所以我特別想在本

次的課程設(shè)計中將設(shè)計的系統(tǒng)實現(xiàn)出來。正好原來在本科階段學

習時接觸過SPCE061這款單片機,對它有一定的了解,再加上

它的開發(fā)環(huán)境(unSPIDE)相對較為簡單,所以最后就選擇了使用

這塊單片機構(gòu)建一個嵌入式設(shè)計系統(tǒng),由于原來還沒有在軟件、

硬件上完全設(shè)計實現(xiàn)過一個系統(tǒng),所以心里也明白要學的東西會

很多的,難度也會很大的,再加上平時在實驗室還要忙著做自己

的項目,給我自己設(shè)計實現(xiàn)的時間肯定不多,因此就選擇設(shè)計了

這樣一個相對較為簡單的系統(tǒng),由于不用設(shè)計端口譯碼系統(tǒng)、存

儲系統(tǒng)以及中斷響應系統(tǒng),使得它的外圍電路圖確實稍顯簡單。

就是這么樣的一個相對較簡單的系統(tǒng),在實際的實現(xiàn)當中我還是

遇到了很多的困難,例如在硬件實現(xiàn)上,剛開始設(shè)計時對雙向可

控硅的不了解,在它的使用上遇到了很多預想不到的問題,剛開

始加熱電路始終沒有工作,從很多地方找原因,都沒有發(fā)現(xiàn)問題

所在,后來還是在原來本科同學的幫助下發(fā)現(xiàn)雙向可控硅的1、

2腳接錯了,后來又遇到可控硅不能關(guān)斷等問題,不過還是通過

不斷的查資料,調(diào)整電路的各個參數(shù)才慢慢的解決。在軟件實現(xiàn),

由于采取大部分用C語言編寫的方法,但在實際完成后,我們發(fā)

現(xiàn)存在很多漏洞,C語言代碼過長,效率不高,使得調(diào)試工作花

17

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

費了很多的時間。不過最后還是大致的將這個系統(tǒng)實現(xiàn)出來了,

雖然由于時間的關(guān)系,此系統(tǒng)還有一些地方需要調(diào)整,特別是采

樣溫度與實際溫度的誤差控制上存在這一些誤差,恒溫控制的超

調(diào)量比較大,特別是在高溫恒溫的時候效果不是特別的理想,但

是能實現(xiàn)出來已經(jīng)感到很滿意了。通過這次課程設(shè)計,讓我體會

最深的是:實際調(diào)試中需要考慮的問題是很復雜的,需要對事物

的考慮更全面。

補充:本人上交的電子文檔中的附錄部分有三個目錄,一個

是主要芯片的Datasheet,一個是程序代碼(包含在unSPIDE中新

建的項目的所有文件),一個是硬件設(shè)計全圖。

18

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

致謝

本《嵌入式系統(tǒng)》大作業(yè)是嵌入式水溫控制系統(tǒng),我們對于

該課程的理論部分有了更客觀、更直接的認識,大作業(yè)給了我們

將理論應用的真實的系統(tǒng)開發(fā)上的機會,對嵌入試系統(tǒng)的開發(fā)設(shè)

計流程、設(shè)計思路和設(shè)計方法有了深刻的印象,培養(yǎng)了我們開發(fā)

集成系統(tǒng)的初步思想,對今后進一步深入研究嵌入式系統(tǒng)開發(fā)有

重要的指導意義。同時,在課程設(shè)計的過程中,我們發(fā)現(xiàn)了以下

3點我們自身的不足:在理論學習當中,我們?nèi)杂兄R盲區(qū),對

于易混淆知識點認識模糊;在編程時,對于某些指令的含義仍不

是很清楚,需要通過查詢資料才能獲得,降低了編程效率;編程

的整體性思維不好。

在今后的學習中,我們要努力通過學習來改掉這些不足。

最后,感謝指導老師王華本對我們的指導,還要感謝和我

們一起進行討論和研究的各位同學,這次大作業(yè)的順利完成離不

開你們的幫助。

19

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

參考文獻

[1]徐千洋.LinuxC函數(shù)庫參考手冊CM]中國青年出版社.2中2

[2]陳堅,孫志月.MODEM通信編程技術(shù)[M].西安電子科技大學出

版社.1998

[3]李現(xiàn)勇.VisualC++串口通信技術(shù)與工程實踐[M].人民郵電

出版社.2004

[4]何小平.選擇適合ARM的嵌入式操作系統(tǒng)[J].BMRfech

Inc.2003

[5]馬忠梅,馬廣云,徐英慧,田譯.ARM嵌入式處理結(jié)構(gòu)與應用

基礎(chǔ)[M].北京航空航天大學出版社.2002

[6]鄒思鐵.嵌入式Linux設(shè)計與應用北京清華大學出版

社.2002

[7]杜春雷.ARM體系結(jié)構(gòu)與編程[M].清華大學出版社.2003

[8]KirkZurell[M].CProgramingForEmbeddedSystems

[9]楊海清,周安棟,羅勇,陳牧.嵌入式系統(tǒng)實時網(wǎng)絡(luò)通信中的

LCD顯示設(shè)計方法[J].計算機與數(shù)字工程.2010年02期

20

安徽新華學院《嵌入式系統(tǒng)及應用》大作業(yè)

附錄

實驗程序

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;〃標示符

voidLEDinit(void){//INT8Ui;

LEDdata_D=Oxff;

LEDcs_D|=OxOf;1NT16UWaitTime=0;//

循環(huán)延時

〃發(fā)送標志=0,沒有空閑發(fā)

voidLEDShow(int*Buf,inti){送緩沖區(qū),發(fā)送不成功;=1,發(fā)送成

intc;功

intj;1NT8USNDFlag;

for(i=0:i<=3;i++){〃接收標志二Oxff,未收到

c=Buf[i]-0,;幀;二1,收到數(shù)據(jù)幀;二2,收到遠程幀

LEDShowl;3-i,c);1NT8URCVFlag;

21

安徽新華學院《嵌入式系統(tǒ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

安徽新華學院《嵌入式系統(tǒ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;〃隊列長度為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

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

評論

0/150

提交評論