一種高速單片機(jī)數(shù)據(jù)采集處理系統(tǒng)設(shè)計(jì)
4 軟件設(shè)計(jì)
單片機(jī)用C語言編程具有開發(fā)周期短、可讀性強(qiáng)、可移植性好和修改方便等特點(diǎn),但是C語言反匯編生成的匯編代碼往往較長。直接用匯編語言編程雖然編寫的程序較短,在直接對機(jī)器配件進(jìn)行控制方面具有相當(dāng)?shù)膬?yōu)勢,但是開發(fā)周期長,修改也不方便。較好的解決辦法是程序的框架或主體部分用C語言編寫,要求執(zhí)行效率高的部分用匯編語言編寫。這種混合編程的方法將C語言和匯編語言的優(yōu)點(diǎn)結(jié)合起來,所以成為目前單片機(jī)開發(fā)最流行的編程方法。
根據(jù)設(shè)計(jì)要求,按照實(shí)現(xiàn)功能的分類,系統(tǒng)軟件主要完成五項(xiàng)任務(wù):系統(tǒng)初始化、數(shù)據(jù)采集、數(shù)據(jù)處理、鍵盤響應(yīng)和數(shù)據(jù)顯示。在數(shù)據(jù)處理中,需要進(jìn)行大量浮點(diǎn)數(shù)的乘除法和正弦、余弦運(yùn)算,因此數(shù)據(jù)處理部分采用C語言編寫,在Keil環(huán)境中模塊化編程,充分利用C語言強(qiáng)大的計(jì)算能力,系統(tǒng)初始化、鍵盤響應(yīng)和數(shù)據(jù)顯示也采用C語言編程,在數(shù)據(jù)采集部分中,MAX1241對時(shí)序要求比較嚴(yán)格,采用匯編語言實(shí)現(xiàn),所有功能模塊均為獨(dú)立的C文件或ASM文件。而實(shí)現(xiàn)C語言和匯編語言的混合編程是軟件設(shè)計(jì)中的難點(diǎn)和關(guān)鍵之一。本文中,匯編語言采用單獨(dú)的文件,通過寄存器傳遞函數(shù)參數(shù),相關(guān)具體程序如下所示:
5 結(jié)束語
為保證數(shù)據(jù)的準(zhǔn)確性,可多次采樣后,利用程序來進(jìn)行數(shù)字濾波,以減少各種噪聲和干擾帶來的錯(cuò)誤數(shù)據(jù),提高系統(tǒng)的可靠性和穩(wěn)定性,而不需增加任何硬件開銷.
參考文獻(xiàn)
1 MAXIM公司. MAXIM產(chǎn)品資料全集[M/CD]. 1999
2 薛鈞義,張彥斌. 單片微型計(jì)算機(jī)及其應(yīng)用[D]. 西安:西安交通大學(xué)出版社,2001.06
3 (美)Charlie Calvert,et al.著 徐科等譯C++Builder應(yīng)用開發(fā)大全[M].北京:清華大學(xué)出版社,1999。
評論