




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《嵌入式系統及應用》
(大作業)
(題目:嵌入式水溫控制系統)
姓爸___________________________
學號:__________________________
專業:_________自動化班_________
院系:電子通信工程學院
指導老師:_________________________
完成時間:2013年X月X日
安徽新華學院《嵌入式系統及應用》大作業
水溫控制系統設計
摘要
該實驗設計基于飛思卡爾MC9S12DG128開發板平臺,通過在
codewarrior開發環境編程而組成的一個水溫自動控制系統。容
器內的水溫可以通過外部掃描鍵盤來人工設定。溫度值設定后系
統將通過熱電阻絲來測定當前的溫度值。當系統的水溫下降時,
當前的水溫值會由LED顯示出來。系統的可實現的功能:1、四
位數碼管顯示容器里的當前溫度,水溫可以顯示到小數點后一
位;2、可以用鍵盤人工設定水的溫度值;3、利用串口使實驗面
板與計算機進行通信。4.采用PID控制算法,使得溫度穩定在一
定范圍內。
關鍵字:水溫控制,單片機MC9s12DG128
安徽新華學院《嵌入式系統及應用》大作業
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
安徽新華學院《嵌入式系統及應用》大作業
目錄
1緒論.............................................4
1.1水溫控制系統設計要求..............................4
1.2水溫控制系統部分..................................4
2系統設計總體框圖及各模塊作用......................5
2.1系統設計總體框圖..................................5
2.2每個功能模塊作用介紹..............................5
3硬件設計原理圖及內容...............................7
3.1硬件設計原理.......................................7
3.2串口通信部分的電路................................8
3.3鍵盤輸入電路......................................8
?4數碼/J:電路9
4系統軟件設計流程...................................10
5調試過程及數據.....................................11
5.1串口調試..........................................11
5.2LED數碼管調試....................................11
5.3鍵盤輸入模塊調試..................................11
6實驗心得和結果.....................................12
致謝................................................13
參考文獻..............................................14
附錄...............................................15
in
安徽新華學院《嵌入式系統及應用》大作業
1緒論
溫度控制電路廣泛應用于社會生活的各個領域,如家用電
器、汽車、材料、電力電子等,同時在很多工業應用場合都需要
溫度的恒定控制,比如電加熱爐,煙葉初烤炕房,某些傳感器的
工作環境溫度等。同時,在實際工作和科研中,許多實驗均需耍
用加熱器來加熱實驗對象,使其達到并保持在某一設定溫度,而
且在實驗過程中,對象的溫度有時要求穩定性很高,有時需要不
斷地調節。正因為如此,恒溫的控制在工業和科研中占有非同一
般的地位。
水溫恒溫控制就是其中的一種。水的恒溫控制是利用對加熱
系統(熱源)的控制,使之在不同的溫度輸出不同的功率,使得
在水溫我們預設的溫度附近作為小的變動,而不會超出太大的范
圍,從而達到我們使用的要求。在預設溫度的附近時,溫度與加
熱器、散熱器之間的關系是很微妙的,我們沒辦法控制任意時刻
的準確的水溫,但是我們可以通過測量來判斷其變化的趨勢,和
變化的幅度,從而來使之朝著我們預想的方向進行。
1.1水溫控制系統設計要求
(1)溫度設定范圍為40?90℃,最小區分度為1℃,標定溫度
<lro
1
安徽新華學院《嵌入式系統及應用》大作業
(2)環境溫度降低時(例如用電風扇降溫)溫度控制的靜態誤
差W1C。
(3)用十進制數碼管顯示水的實際溫度保留一位小數。
(4)采用適當的控制方法(如數字PID),當設定溫度突變(由
40℃提高到60℃)時,減小系統的調節時間和超調量。
(5)溫度控制的靜態誤差《0.2℃。
(6)從串口輸出水溫隨時間變化的數值。
1.2水溫控制系統部分
圖1控制系統框圖
從圖中易可知,本設計系統主要包括如下幾部分:單片機
控制模塊、溫度傳感器采樣模塊、A/D轉換模塊、溫度顯示模塊、
設置/存儲預定溫度模塊、加熱/散熱電路模塊。
系統的工作流程是這樣的:首先用戶要先使用設置/存儲預
定溫度模塊設置和存儲預定的溫度;溫度傳感器采樣模塊對水溫
進行采樣,將采集到的溫度傳給A/D轉換模塊,A/D轉換模塊將
此溫度對應的數值傳給單片機控制模塊,單片機控制模塊會判斷
此溫度是否在用戶預定的溫度+/-0.5。的范圍內,如果兩個溫度
不等就會調用加熱/散熱電路模塊,即如果此溫度高于用戶設定
溫度0.5。以上,則散熱電路就會開啟以將當前的水溫降到預定
2
安徽新華學院《嵌入式系統及應用》大作業
的溫度+/-0.5°的范圍內,反正則會啟動加熱電路以加熱當前的
水。同時如果用戶想顯示當前的水溫或者預定的水溫,都可以通
過溫度顯示模塊顯示,而如果用戶要改變當前的預定水溫,可以
通過設置/存儲預定溫度模塊進行設置。
3
安徽新華學院《嵌入式系統及應用》大作業
2系統設計總體框圖及各模塊作用
2.1系統設計總體框圖
電源電路
O驅動電路匚=:LED顯示
=晶振電路
熱
電
阻
絲復位電路
BDM調試電路
鍵盤輸入電
路
圖2系統設計總框圖
2.2每個功能模塊作用介紹
單片機:單片機是整個控制系統的核心,在此我用MC9s12DG128
提供系統控制所需要的I/O口,中斷、定時以及存放中
間結果的RAMo
數據采樣:數據采樣模塊是由熱電阻絲、調理電路和MCU內部
的A/D轉換器組成的。其功能是將由熱敏傳感器及相
關電路采集到的溫度轉換為電壓信號,經A/D轉換器
4
安徽新華學院《嵌入式系統及應用》大作業
后送入MC9s12DG128中,換算成溫度值,用于控制和
顯示。
串行口傳輸:將采樣溫度值上傳到PC機,利用PC的端口下載程
序。
鍵盤設定:用于溫度值的人工設定。
SSR固態繼電器/電熱絲:通過控制繼電器的開關來完成對熱電
絲的加熱,從而達到溫度的控制。
電源電路:電源電路部分的兩個電容構成濾波電路,用來改善系
統的電磁兼容性,降低電源波動對系統的影響,增強
電路工作穩定性。
PLL電路:片內PLL電路兼有頻率放大和信號提純的功能,可以
使系統以較低的外部時鐘信號獲得較高的工作頻率,
以降低因高速開關時鐘造成的高頻噪聲。
復位電路:MCU在響應各種外部或偵測到的內部故障是可以進行
系統復位。當MCU檢測到需要復位時,它將寄存器和
控制位設置成已知的起始默認值。
晶振電路:向MCU提供基準頻率,以保證MCU正常工作。
BDM電路:操作人員可以通過它初次向目標板下載程序,同時也
可以通過BDM調試器對目標板MCU的Flash存儲器進
行寫入、擦除等操作
5
安徽新華學院《嵌入式系統及應用》大作業
3硬件設計原理及內容
3.1硬件設計原理圖
圖3硬件設計原理圖
從上圖可知從溫度傳感器采樣模塊標記采集溫度值的電壓
6
安徽新華學院《嵌入式系統及應用》大作業
V0輸入到A/D轉換器MAX153的VIN端,單片機控制模塊通過給
出MAX153的RD、WR、MAX153_CS控制信號來控制它的工作,同
時從MAX153的D0-D7獲取轉換出來的標記實時溫度值的數值。
從溫度傳感器采樣模塊標記采集溫度值的電壓V0輸入到A/D轉
換器MAX153的VIN端,單片機控制模塊通過給出MAX153的RD、
WR.MAX153CS控制信號來控制它的工作,同時從MAX153的D0-D7
獲取轉換出來的標記實時溫度值的數值。
3.2串口通信部分的電路圖
圖4串口通信電路圖
串口電路是由一個MAX232ACPE和一個9芯接口的串行口構成。
串口電路的作用:用于連接計算機與實驗模版,實現數據傳輸與
通信。
本次采用9芯接口的串行口,其中,各個引腳的含義如下:
1.接收線信號檢測2.接收數據線(RxD)
3.發送數據線(TxD)4.數據中斷準備就緒
7
安徽新華學院《嵌入式系統及應用》大作業
5.信號地6.數據通信設備準備就緒
7.請求發送(RTS)8.清除發送
9.振鈴提示
3.3鍵盤輸入電路
鍵盤輸入電路采用掃描的方式獲得鍵值。如圖,這里將列線
分別接PPCTPP3,且編程時將PPO?PP3定義為輸入并有內部上拉
電阻,行線分別接PP4~PP7,且編程時將其定義為輸出,那么1
鍵對應PP7?PP0=11101110,依此類推,可得到其他鍵對應的鍵
值。其中,A鍵按下后可以進入溫度設定,B鍵按下后可以對溫
8
安徽新華學院《嵌入式系統及應用》大作業
3.4數碼顯示電路
上圖是4連排8段數碼管的借口電路,在硬件連接上,利用
MCU的PA口控制8個位段,用PT口的低四位控制數碼管的位選
信號。選用支持12c的DS1307芯片作為系統的擴展EEPROM存儲器,它用于
存儲預定的溫度,它的SCL、SDA端要與MAX7219的SCL、
SDA端相連,并同時連上單片機的IOB口的I0B1和I0B2端,
以將用戶設定的預定溫度存儲起來,還可以提供給顯示模塊進行
顯小0
9
安徽新華學院《嵌入式系統及應用》大作業
4系統軟件設計流程
溫顯
溫顯掃描鍵盤按巴型___一-
度示
度示
I加(減)1鍵按下
鍵預
鍵當
按定
按前
調整預定溫度值
數碼管顯示溫度
圖13.系統軟件總流程圖
根據系統的工作原理,對本系統的軟件總流程要進行比較嚴
格的設計,其流程圖如上圖
10
安徽新華學院《嵌入式系統及應用》大作業
5調試過程及數據
在做實驗開始時,按照老師的要求,把系統的每個部分分成
不同的模塊,每個模塊單獨作為一個工程建立,每個模塊調試成
功后才將各部分組合在一起,最終調試。
5.1串口調試
通過串口RS232和PC機進行連接,同時利用PC機上的超級
終端進行串口調試,輸入串口通信函數,并把單片機和PC機的
波特率設置為相同的值,即9600bit/s,調試完成后輸入數據和
輸出數據符合理論要求,說明通信正常,此時串口調試完畢。
調試遇到的問題:鍵盤輸入的字符或數字不再計算機上顯
z]\O
解決方法:將串行口默認波特率改為9600,重新調試。
5.2LED數碼管調試
調試過程中按實驗電路上數碼管與單片機的連接,在計算機
中載入程序,若數碼管顯示“0000”,說明數碼管模塊可以使用,
否則不能,需要繼續對程序進行修改和編譯。
調試遇到的問題:數碼管不能正常顯示。
解決方法:經過仔細的檢查,發現課本上的數碼管管腳和控
制位端口和老師給的不一樣,修正后繼續調試測驗。
5.3鍵盤輸入模塊調試
在調試過程中按下A鍵后,按下鍵盤上要設定的數值,如果
LED上顯示正確,說明鍵盤模塊的使用正常,否則,不正。此時
就要繼續對程序進行修改和編譯。
調試遇到的問題:鍵盤使用不正常,按鍵執行后,LED沒有
顯不。
11
安徽新華學院《嵌入式系統及應用》大作業
解決方法:經過檢查,才知道鍵盤函數沒有在main,c中調
用,調用后,使用正常。
由于本系統采用凌陽系列單片機的SPCE061單片機作為控
制核心來實現對溫度的恒定控制。因為原來在本科階段學習時接
觸過這款單片機,對它有一定的了解,配合它的開發工具非常簡
單可靠,它的開發環境(unSPIDE)非常經典易用,但是要想將這
個系統完整的調試成功,還是很要下一些苦功夫的!
它的軟件編程采用C語言實現系統主要的工作流程,另外
還要帶一些匯編方面的程序以實現某些芯片底層驅動及12c協
議,所以本系統的軟件實現的數據結構和軟件算法相對非常簡
單,在此就不加以詳細講述了,下面將主要對本系統的軟件實現
全過程加以較詳細的講解。
首先安裝unSPIDE開發環境,它的界面比較類似于微軟的
VisualStudio開發環境,操作方式也比較的類似。在里面新建一
個SPIDEProject,它就會自動的為我們創建一個SourceFile文
件夾和一個HeaderFile文件夾,為了實現我們的系統功能,首
先我們創建一個I2C.asm(注:參考過網上的一些資料寫出來的),
它主要的功能是完成對12c協議的支持;然后我們創建一個
MAX7219.asm文件,它主要的功能是完成對MAX7219、單片機
IOA/B口等芯片底層驅動的實現;然后我們創建一個Main.c文
件,它功能是完成我們的主要系統流程。下面列出Main.c文件
中的main()函數,它的執行流程基本上就是按照上面圖示13的
軟件總流程圖來實現的。
12
安徽新華學院《嵌入式系統及應用》大作業
main()
(
floattmp_measure,tmp_setting;
〃初始化相應器件
Init_IOA(OxFFFF,OxFFFF,OxFFFF);
Init_IOB(OxFFFF,OxFFFF,OxFFFF);
Init_7219();
status=show_measure_tmp;
〃初始化設定溫度為50°
if(readTmp()<0||readTmp()>100)
writeTmp(50);
while(l)
(
delay();
〃通過A/D轉換器采集當前的實際溫度值
tmp_measure=GetADC()*(maxtmp-mintmp)/256;
tmp_setting=readTmpO;
〃判斷實測的溫度值是否在預定的溫度范圍內(+-0.5。)
〃根據判斷的結果控制加熱器和電風扇的開關
if(tmp_measure<tmp_setting-0.5)
fanOFF();
13
安徽新華學院《嵌入式系統及應用》大作業
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
安徽新華學院《嵌入式系統及應用》大作業
tmp_setting二readTmp();
tmp_setting++;
writeTmp(tmp_setting);
break;
case4:
tmp_setting=readTmp();
tmp_setting—;
writeTmp(tmp_setting);
break;
)
//判斷顯示系統當前的溫度或者是用戶預定的溫度
if(status==show_measure_tmp)
ShowResult(tmp_measure);
elseShowResult(tmp_setting);
}
)
其中的初始化函數包括Init」OA,Init_7219(),
前面兩個函數的引用來自MAX7219.asm文件,而后者的實現如
下,其中的Send_7219函數也來之MAX7219.asm文件。
voidInit_7219()//max7219初始化
Send_7219(0x0C01);
15
安徽新華學院《嵌入式系統及應用》大作業
Send_7219(OxOFOO);
Send_7219(0xO9FF);
Send_7219(0xOAO2);
Send_7219(0x()B07);
}
Main()函數中引用的其他函數包括系統延遲函數delay。,顯
示溫度函數ShowResult(floatCount),讀測量溫度函數GetADC。,
寫設定的溫度writeTmp(floattmp),讀設定的溫度函數
readTmpO,掃描鍵盤函數keyScan(),開加熱器函數themONO,
關加熱器函數themOFF(),開風扇函數fanON(),關風扇函數
fanOFF(),它們均在Main.c文件中實現了,具體代碼請查看上交
的電子版的設計內容的附錄。
16
安徽新華學院《嵌入式系統及應用》大作業
6實驗心得和結果
雖然老師沒有要求我們將軟件編程完全實現出來,但是由于
上次課堂討論的時候大家做出來的東西都只是在理論上進行了
設計,而離實際的實現還是有很大的差距的,所以我特別想在本
次的課程設計中將設計的系統實現出來。正好原來在本科階段學
習時接觸過SPCE061這款單片機,對它有一定的了解,再加上
它的開發環境(unSPIDE)相對較為簡單,所以最后就選擇了使用
這塊單片機構建一個嵌入式設計系統,由于原來還沒有在軟件、
硬件上完全設計實現過一個系統,所以心里也明白要學的東西會
很多的,難度也會很大的,再加上平時在實驗室還要忙著做自己
的項目,給我自己設計實現的時間肯定不多,因此就選擇設計了
這樣一個相對較為簡單的系統,由于不用設計端口譯碼系統、存
儲系統以及中斷響應系統,使得它的外圍電路圖確實稍顯簡單。
就是這么樣的一個相對較簡單的系統,在實際的實現當中我還是
遇到了很多的困難,例如在硬件實現上,剛開始設計時對雙向可
控硅的不了解,在它的使用上遇到了很多預想不到的問題,剛開
始加熱電路始終沒有工作,從很多地方找原因,都沒有發現問題
所在,后來還是在原來本科同學的幫助下發現雙向可控硅的1、
2腳接錯了,后來又遇到可控硅不能關斷等問題,不過還是通過
不斷的查資料,調整電路的各個參數才慢慢的解決。在軟件實現,
由于采取大部分用C語言編寫的方法,但在實際完成后,我們發
現存在很多漏洞,C語言代碼過長,效率不高,使得調試工作花
17
安徽新華學院《嵌入式系統及應用》大作業
費了很多的時間。不過最后還是大致的將這個系統實現出來了,
雖然由于時間的關系,此系統還有一些地方需要調整,特別是采
樣溫度與實際溫度的誤差控制上存在這一些誤差,恒溫控制的超
調量比較大,特別是在高溫恒溫的時候效果不是特別的理想,但
是能實現出來已經感到很滿意了。通過這次課程設計,讓我體會
最深的是:實際調試中需要考慮的問題是很復雜的,需要對事物
的考慮更全面。
補充:本人上交的電子文檔中的附錄部分有三個目錄,一個
是主要芯片的Datasheet,一個是程序代碼(包含在unSPIDE中新
建的項目的所有文件),一個是硬件設計全圖。
18
安徽新華學院《嵌入式系統及應用》大作業
致謝
本《嵌入式系統》大作業是嵌入式水溫控制系統,我們對于
該課程的理論部分有了更客觀、更直接的認識,大作業給了我們
將理論應用的真實的系統開發上的機會,對嵌入試系統的開發設
計流程、設計思路和設計方法有了深刻的印象,培養了我們開發
集成系統的初步思想,對今后進一步深入研究嵌入式系統開發有
重要的指導意義。同時,在課程設計的過程中,我們發現了以下
3點我們自身的不足:在理論學習當中,我們仍有知識盲區,對
于易混淆知識點認識模糊;在編程時,對于某些指令的含義仍不
是很清楚,需要通過查詢資料才能獲得,降低了編程效率;編程
的整體性思維不好。
在今后的學習中,我們要努力通過學習來改掉這些不足。
最后,感謝指導老師王華本對我們的指導,還要感謝和我
們一起進行討論和研究的各位同學,這次大作業的順利完成離不
開你們的幫助。
19
安徽新華學院《嵌入式系統及應用》大作業
參考文獻
[1]徐千洋.LinuxC函數庫參考手冊CM]中國青年出版社.2中2
[2]陳堅,孫志月.MODEM通信編程技術[M].西安電子科技大學出
版社.1998
[3]李現勇.VisualC++串口通信技術與工程實踐[M].人民郵電
出版社.2004
[4]何小平.選擇適合ARM的嵌入式操作系統[J].BMRfech
Inc.2003
[5]馬忠梅,馬廣云,徐英慧,田譯.ARM嵌入式處理結構與應用
基礎[M].北京航空航天大學出版社.2002
[6]鄒思鐵.嵌入式Linux設計與應用北京清華大學出版
社.2002
[7]杜春雷.ARM體系結構與編程[M].清華大學出版社.2003
[8]KirkZurell[M].CProgramingForEmbeddedSystems
[9]楊海清,周安棟,羅勇,陳牧.嵌入式系統實時網絡通信中的
LCD顯示設計方法[J].計算機與數字工程.2010年02期
20
安徽新華學院《嵌入式系統及應用》大作業
附錄
實驗程序
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];
數碼管顯示數if(i=2){
組LEDdata=
INT8UFlag_Send,Flag_ADC;CDtable[c])&0x7f;
INT16UNUM;}else{
INT16UTemperature_Set;LEDdata=^Dtable[c];
INT8URCVData[16];//}
接收數據幀}
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〃;〃數據內容
x7d,0x07,0x7f,0x6f,0x00);constINT8UDataLenth=6;
externCStable[4]=//數據長度
(0xf7,Oxfb,Oxfd,Oxfe};INT16UID;〃標示符
voidLEDinit(void){//INT8Ui;
LEDdata_D=Oxff;
LEDcs_D|=OxOf;1NT16UWaitTime=0;//
循環延時
〃發送標志=0,沒有空閑發
voidLEDShow(int*Buf,inti){送緩沖區,發送不成功;=1,發送成
intc;功
intj;1NT8USNDFlag;
for(i=0:i<=3;i++){〃接收標志二Oxff,未收到
c=Buf[i]-0,;幀;二1,收到數據幀;二2,收到遠程幀
LEDShowl;3-i,c);1NT8URCVFlag;
21
安徽新華學院《嵌入式系統及應用》大作業
DDRB=OXFF;示未收到數據
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();數據
SCIInitO;(
KB_Init();
//CANInitO;SClSendN(13,^ReceiveError!z,);
TemperatureSet=500;}//Endof
Pwm_Init0;RCVFlag
)
//ID=Oxff;//(TNT16UJ(CANOTDAROV〃發送不成功
?8)+CAN0IDAR1V;else
EnableSCIRelnt;{
Enablelnterrupts;
while(l){SCISendN(10,“SendError!”);
/*WaitTime+-;}//EndofSNDFlag
//發送〃Hello!!!”WaitTime=0;
if(WaitTime>60000)}//EndofWaitTime
(*/
SNDFlag=
CANSND1DFRM(ID,(INT8UKey_Del();
木)(Data),DalaLenlh);Sample0;
〃發送成功SendToSCI();
if(SNDFlag二二1)}
(for(;;){}/*waitforever*/
RCVFlag=/*pleasemakesurethatyou
CANRCV1FRM((INT8U*)RCVData);//neverleavethisfunction*/
接收子程序
if(RCVFlag!=
OxFF)//接收子程序返回OXFF,表
a.c
22
安徽新華學院《嵌入式系統及應用》大作業
//*******AD子函數⑶*******〃
#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
安徽新華學院《嵌入式系統及應用》大作業
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藝術團管理管理制度
- 花粉俱樂部管理制度
- 茶葉發酵室管理制度
- 陜西省工會管理制度
- 財務會計分崗實訓崗位職責13篇
- 財務管理實訓心得體會15篇
- 財務人員會計處理注意事項
- 自動控制原理中及復習試題材料答案解析
- 計算機基礎知識題庫(含答案)
- 貴州省黔西南金成實驗學校等四校2024-2025學年八年級下學期6月測試語文試題
- T/CSPSTC 112-2023氫氣管道工程施工技術規范
- DB31/T 1249-2020醫療廢物衛生管理規范
- 四川省宜賓市翠屏區2025屆數學七下期末綜合測試試題含解析
- 鄉鎮合法性審查工作報告
- 2025屆四川成都錦江區數學七下期末質量檢測試題含解析
- 2025年發展對象考試題題庫及答案
- 2025上半年山東文旅集團有限公司直屬企業招聘88人筆試參考題庫附帶答案詳解
- 《臨床精準用血培訓》課件
- 《外國文學》課件-說不盡的莎士比亞教學課件:《麥克白》
- 2025中國新型儲能行業發展白皮書
- 油氣管道輸送試題及答案
評論
0/150
提交評論