現(xiàn)在生產(chǎn)的許多單片機(jī)對8051的內(nèi)核進(jìn)行了擴(kuò)展,比如,內(nèi)部看門狗,ADC轉(zhuǎn)換、EEPROM、PWM等功能。在編程控制程序時,如需要利用這些擴(kuò)展模塊,一般程序體積會變大,文本的長度較長。在調(diào)試程序時就顯得不太方便了,較好的方法是根據(jù)程序段的功能進(jìn)行模塊化編程。
當(dāng)然在利用一般的單片機(jī)編程時,將實現(xiàn)同一目的的程序段進(jìn)行封裝,進(jìn)行模塊化編程,對于程序的維護(hù)和調(diào)試也是很有幫助的。
1、在運用C語言進(jìn)行編程時,要養(yǎng)成良好的編程書寫習(xí)慣。
在程序的開始一般的格式:
/**********************
File name: 文件名稱
Author: 作者
Version: 版本號
Description: 功能描述
Data: 日期
*************************/
2、{}
按Tab鍵,這樣程序的層次比較清晰。
3、模塊化編程
將完成某一特定功能的程序段進(jìn)行封裝。比如delay(WOED n),eeprom();等。
具體步驟如下:
1、創(chuàng)建頭文件
在KEIL軟件中兩次點擊“新建”,創(chuàng)建兩個新的文檔。保存成.C文件(源文件)和一個.H文件(頭文件)。.C和.H文件要同名,名稱要有意義,最好可以體現(xiàn)該文件的功能。如建立一個延時程序,delay.c;delay.h。
2、防重復(fù)包含處理
在.H文件中加入如下代碼:
#ifndef xxx 如 #ifndef __DELAY_H__
#define xxx 如 #define __DELAY_H__
……
#endif
3、 代碼封裝
將需要模塊化的代碼封裝成函數(shù)或宏定義。
函數(shù)要在頭文件中聲明一下。
函數(shù)體放在.C文件中。
需要被外部調(diào)用的宏定義放在.H頭文件中。
盡量少用或不用全局變量,必須要用全局的申明放在.C文件中,當(dāng)需要調(diào)用外部全局變量,需要在.H文件中用extern 重新申明。
4、 使用源文件
在KEIL軟件的工程中,將需要調(diào)用的.C文件添加到工程中。若是.C源文件中調(diào)用了那個.H文件中的宏定義或者函數(shù),必須在該.C源文件中增加代碼將.H文件包含進(jìn)去。
5、 所包含的頭文件中的函數(shù),宏定義、全局變量可以在.C文件中自由調(diào)用。
具體細(xì)節(jié),有時間在整理