日韩av免费看-一区二区精品在线-高清视频免费在线观看-中文字幕欧美日韩-日韩无套-亚洲国产精品18久久久久久-中文字幕一区二区三区精品-欧美日韩亚洲国产精品-青青草国产精品-日韩少妇激情-av高清一区-91免费看片播放器-a级片黄色-亚洲精品男人天堂-亚洲欧美精品-男女涩涩

信盈達(dá)—您身邊的嵌入式&人工智能專家
全國(guó)免費(fèi)咨詢熱線:400-8788-909
您現(xiàn)在的位置在: 首頁(yè)> 技術(shù)文章>

時(shí)間:2019-01-24 00:00:00 來源:信盈達(dá) 作者:信盈達(dá)

為了提高源程序的質(zhì)量和可維護(hù)性,從而最終提高軟件產(chǎn)品生產(chǎn)力,特編寫此規(guī)范。本標(biāo)準(zhǔn)規(guī)定了程序設(shè)計(jì)人員進(jìn)行程序設(shè)計(jì)時(shí)必須遵循的規(guī)范。本規(guī)范主要針對(duì)單片機(jī)編程語(yǔ)言和08編譯器而言,包括排版、注釋、命名、變量使用、代碼可測(cè)性、程序效率、質(zhì)量保證等內(nèi)容。 
1
.基本規(guī)則
 
格式清晰、注釋簡(jiǎn)明扼要、命名規(guī)范易懂、函數(shù)模塊化、程序易讀易維護(hù)、功能準(zhǔn)確實(shí)現(xiàn)、代碼空間效率和時(shí)間效率高、適度的可擴(kuò)展性、單片機(jī)編程規(guī)范-標(biāo)識(shí)符命名
 
2
.標(biāo)識(shí)符命名 2.1 命名基本原則
 
1)命名清晰明了,有明確含義,使用完整單詞或約定俗成的縮寫。通常,較短的單詞可通過去掉元音字母形成縮寫;較長(zhǎng)的單詞可取單詞的頭幾個(gè)字母形成縮寫。即"見名知意"。(2)命名風(fēng)格要自始至終保持一致。
 
3)命名中若使用特殊約定或縮寫,要有注釋說明。

4)同一軟件產(chǎn)品內(nèi)模塊之間接口部分的標(biāo)識(shí)符名稱之前加上模塊標(biāo)識(shí)。
2.2
宏和常量命名 
宏和常量用全部大寫字母來命名,詞與詞之間用下劃線分隔。對(duì)程序中用到的數(shù)字均應(yīng)用有意義的枚舉或宏來代替。

2.3
變量命名 
變量名用小寫字母命名,每個(gè)詞的第一個(gè)字母大寫。類型前綴(u8\s8 etc.)全局變量另加前綴g_。

局部變量應(yīng)簡(jiǎn)明扼要。局部循環(huán)體控制變量?jī)?yōu)先使用ij、k等;局部長(zhǎng)度變量?jī)?yōu)先使用len、num等;臨時(shí)中間變量?jī)?yōu)先使用temp、tmp等。
2.4
函數(shù)命名 
函數(shù)名用小寫字母命名,每個(gè)詞的第一個(gè)字母大寫,并將模塊標(biāo)識(shí)加在最前面。

2.5
文件命名 
一個(gè)文件包含一類功能或一個(gè)模塊的所有函數(shù),文件名稱應(yīng)清楚表明其功能或性質(zhì)。

每個(gè).c文件應(yīng)該有一個(gè)同名的.h文件作為頭文件。 
3
.注釋 3.1 注釋基本原則
 
有助于對(duì)程序的閱讀理解,說明程序在"做什么",解釋代碼的目的、功能和采用的方法。

一般情況源程序有效注釋量在30%左右。
注釋語(yǔ)言必須準(zhǔn)確、易懂、簡(jiǎn)潔。
邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,不再有用的注釋要?jiǎng)h除。
匯編和C中都用"http://",取消";"  不使用段注釋" /*  */ "(調(diào)試時(shí)可用) 
3.2
文件注釋
 
文件注釋必須說明文件名、函數(shù)功能、創(chuàng)建人、創(chuàng)建日期、版本信息等相關(guān)信息。

修改文件代碼時(shí),應(yīng)在文件注釋中記錄修改日期、修改人員,并簡(jiǎn)要說明此次修改的目的。所有修改記錄必須保持完整。
文件注釋放在文件頂端,用"/*……*/"格式包含。
注釋文本每行縮進(jìn)4個(gè)空格;每個(gè)注釋文本分項(xiàng)名稱應(yīng)對(duì)齊。
/***********************************************************
文件名稱:
作 者:
版 本:
說 明:
修改記錄:
***********************************************************/
3.3
函數(shù)注釋 
3.3.1
函數(shù)頭部注釋

函數(shù)頭部注釋應(yīng)包括函數(shù)名稱、函數(shù)功能、入口參數(shù)、出口參數(shù)等內(nèi)容。如有必要還可增加作者、創(chuàng)建日期、修改記錄(備注)等相關(guān)項(xiàng)目。
函數(shù)頭部注釋放在每個(gè)函數(shù)的頂端,用"/*……*/"的格式包含。其中函數(shù)名稱應(yīng)簡(jiǎn)寫為Name(),不加入、出口參數(shù)等信息。
/***********************************************************
函數(shù)名稱:
函數(shù)功能:
入口參數(shù):
出口參數(shù):
備 注:
***********************************************************/
3.3.2
代碼注釋
代碼注釋應(yīng)與被注釋的代碼緊鄰,放在其上方或右方,不可放在下面。如放于上方則需與其上面的代碼用空行隔開。一般少量注釋應(yīng)該添加在被注釋語(yǔ)句的行尾,一個(gè)函數(shù)內(nèi)的多個(gè)注釋左對(duì)齊;較多注釋則應(yīng)加在上方且注釋行與被注釋的語(yǔ)句左對(duì)齊。
函數(shù)代碼注釋用"http://…//"的格式。
通常,分支語(yǔ)句(條件分支、循環(huán)語(yǔ)句等)必須編寫注釋。其程序塊結(jié)束行""的右方應(yīng)加表明該程序塊結(jié)束的標(biāo)記"end of ……", 尤其在多重嵌套時(shí)。
3.4
變量、常量、宏的注釋 
同一類型的標(biāo)識(shí)符應(yīng)集中定義,并在定義之前一行對(duì)其共性加以統(tǒng)一注釋。對(duì)單個(gè)標(biāo)識(shí)符的注釋加在定義語(yǔ)句的行尾。

全局變量一定要有詳細(xì)的注釋,包括其功能、取值范圍、哪些函數(shù)或過程存取它以及存取時(shí)的注意事項(xiàng)等。
注釋用"http://…//"的格式。 
4
.函數(shù) 4.1 函數(shù)設(shè)計(jì)原則
 
函數(shù)的基本要求:
 
1
)封裝性

1)
正確性:程序要實(shí)現(xiàn)設(shè)計(jì)要求的功能。
2)
穩(wěn)定性和安全性:程序運(yùn)行穩(wěn)定、可靠、安全。
3)
可測(cè)試性:程序便于測(cè)試和評(píng)價(jià)。
4)
規(guī)范/可讀性:程序書寫風(fēng)格、命名規(guī)則等符合規(guī)范。
5)
擴(kuò)展性:代碼為下一次升級(jí)擴(kuò)展留有空間和接口。
6)
全局效率:軟件系統(tǒng)的整體效率高。
7)
局部效率:某個(gè)模塊/子模塊/函數(shù)的本身效率高。
編制函數(shù)的基本原則:
1)
單個(gè)函數(shù)的規(guī)模盡量限制在200行以內(nèi)(不包括注釋和空行)。一個(gè)函數(shù)只完成一個(gè)功能。
2)
函數(shù)局部變量的數(shù)目一般不超過510個(gè)。
3)
函數(shù)內(nèi)部局部變量定義區(qū)和功能實(shí)現(xiàn)區(qū)(包含變量初始化)之間空一行。
4)
函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。通常使用動(dòng)賓詞組為執(zhí)行某操作的函數(shù)命名。
5)
函數(shù)的返回值要清楚明了,尤其是出錯(cuò)返回值的意義要準(zhǔn)確無誤。
6)
不要把與函數(shù)返回值類型不同的變量,以編譯系統(tǒng)默認(rèn)的轉(zhuǎn)換方式或強(qiáng)制的轉(zhuǎn)換方式作為返回值返回。
7)
減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。
8)
盡量不要將函數(shù)的參數(shù)作為工作變量。
4.2
函數(shù)定義 
1)
函數(shù)若沒有入口參數(shù)或者出口參數(shù),應(yīng)用void明確申明。

2)
函數(shù)名稱與出口參數(shù)類型定義間應(yīng)該空一格且只空一格。
3)
函數(shù)名稱與括號(hào)()之間無空格。
4)
函數(shù)形參必須給出明確的類型定義。
5)
多個(gè)形參的函數(shù),后一個(gè)形參與前一個(gè)形參的逗號(hào)分割符之間添加一個(gè)空格。
6)
函數(shù)體的前后花括號(hào)"{}" 各獨(dú)占一行。
4.3
局部變量定義 
1)
同一行內(nèi)不要定義過多變量。

2)
同一類的變量在同一行內(nèi)定義,或者在相鄰行定義。
3)
先定義data型變量,再定義idtata型變量,再定義xdata型變量.(?)
4)
數(shù)組、指針等復(fù)雜類型的定義放在定義區(qū)的最后。
5)
變量定義區(qū)不做較復(fù)雜的變量賦值。
4.4
功能實(shí)現(xiàn)區(qū)規(guī)范 
1)
一行只寫一條語(yǔ)句。

2)
注意運(yùn)算符的優(yōu)先級(jí),并用括號(hào)明確表達(dá)式的操作順序,避免使用默認(rèn)優(yōu)先級(jí)。
3)
各程序段之間使用一個(gè)空行分隔,加以必要的注釋。程序段指能完一個(gè)較具體的功能的一行或多行代碼。程序段內(nèi)的各行代碼之間相互依賴性較強(qiáng)。(1、2、3方式)
4)
不要使用難懂的技巧性很高的語(yǔ)句。

5)
源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。
6)
完成簡(jiǎn)單功能、關(guān)系非常密切的一條或幾條語(yǔ)句可編寫為函數(shù)或定義為宏。 
5
. 單片機(jī)編程規(guī)范-排版
 
5.1
縮進(jìn)
 
代碼的每一級(jí)均往右縮進(jìn)4個(gè)空格的位置。不使用Tab
 
5.2
分行
 
每行語(yǔ)句(?????超過80個(gè)字符)要分成多行書寫;長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首,劃分出的新行要進(jìn)適當(dāng)?shù)目s進(jìn),使排版整齊,語(yǔ)句可讀。避免把注釋插入分行中。

5.3
空行 
1)
文件注釋區(qū)、頭文件引用區(qū)、函數(shù)間應(yīng)該有且只有一行空行。

2)
相鄰函數(shù)之間應(yīng)該有且只有一行空行。
3)
函數(shù)體內(nèi)相對(duì)獨(dú)立的程序塊之間可以用一行空行或注釋來分隔。
4)
函數(shù)注釋和對(duì)應(yīng)的函數(shù)體之間不應(yīng)該有空行。
5)
文件末尾有且只有一行空行。
5.4
空格 
1)
函數(shù)語(yǔ)句尾部或者注釋之后不能有空格。

2)
括號(hào)內(nèi)側(cè)(即左括號(hào)后面和右括號(hào)前面)不加空格,多重括號(hào)間不加空格。
3)
函數(shù)形參之間應(yīng)該有且只有一個(gè)空格(形參逗號(hào)后面加空格)。
4)
同一行中定義的多個(gè)變量間應(yīng)該有且只有一個(gè)空格(變量逗號(hào)后面加空格)。
5)
表達(dá)式中,若有多個(gè)操作符連寫的情況,應(yīng)使用空格對(duì)它們分隔:
6)
在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行對(duì)等操作時(shí),它們之間的操作符前后均加一個(gè)空格;在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行非對(duì)等操作時(shí),其前后均不應(yīng)加空格;
7)
逗號(hào)只在后面加空格;
8)
雙目操作符,如比較操作符, 賦值操作符"=""+=",算術(shù)操作符"+"、"%",邏輯操作符"&&"、"&",位操作符"<<"、"^"等,前后均加一個(gè)空格;
9)
單目操作符,如"!""~""++""-"、"&"(地址運(yùn)算符)等,前后不加空格;
10) "->"
、"."前后不加空格;
11) if
、forwhile、switch等關(guān)鍵字與后面的括號(hào)間加一個(gè)空格;
5.5
花括號(hào) 
1)  if
、else ifelse、for、while語(yǔ)句無論其執(zhí)行體是一條語(yǔ)句還是多條語(yǔ)句都必須加花括號(hào),且左右花括號(hào)各獨(dú)占一行。

2)  do{}while()
結(jié)構(gòu)中,"do""{"均各占一行,"}""while();"共同占用一行。
if ( ) do
{ {
} }while( );
else
{
}
嵌套越少越好,{}不準(zhǔn)超過3  
5.6 switch
語(yǔ)句
 
1)
每個(gè)case和其判據(jù)條件獨(dú)占一行。

2)
每個(gè)case程序塊需用break結(jié)束。特殊情況下需要從一個(gè)case塊順序執(zhí)行到下一個(gè)case塊的時(shí)候除外,但需要花括號(hào)在交界處明確注釋如此操作的原因,以防止出錯(cuò)。
3) case
程序塊之間空一行,且只空一行。
4)
每個(gè)case程序塊的執(zhí)行語(yǔ)句保持4個(gè)空格的縮進(jìn)。
5)
一般情況下都應(yīng)該包含default分支。
Switch ( )
{
case x:
break;
case x:
break;
default:
break;
}
6
.程序結(jié)構(gòu) 6.1 基本要求 
1)
main()函數(shù)的.c文件應(yīng)將main()放在最前面,并明確用void聲明參數(shù)和返回值。

2)
對(duì)由多個(gè).c文件組成的模塊程序或完整監(jiān)控程序,建立公共引用頭文件,將需要引用的庫(kù)頭文件、標(biāo)準(zhǔn)寄存器定義頭文件、自定義的頭文件、全局變量等均包含在內(nèi),供每個(gè)文件引用。通常,標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件采用尖角號(hào)< >標(biāo)志文件名,自定義頭文件采用雙撇號(hào)″″標(biāo)志文件名。
3)
每個(gè).c文件有一個(gè)對(duì)應(yīng)的.h文件,.c文件的注釋之后首先定義一個(gè)唯一的文件標(biāo)志宏,并在對(duì)應(yīng)的.h文件中解析該標(biāo)志。
.c文件中:
#define FILE_FLAG
.h文件中:&
6
.程序結(jié)構(gòu) 6.1 基本要求
 
1)
main()函數(shù)的.c文件應(yīng)將main()放在最前面,并明確用void聲明參數(shù)和返回值。

2)
對(duì)由多個(gè).c文件組成的模塊程序或完整監(jiān)控程序,建立公共引用頭文件,將需要引用的庫(kù)頭文件、標(biāo)準(zhǔn)寄存器定義頭文件、自定義的頭文件、全局變量等均包含在內(nèi),供每個(gè)文件引用。通常,標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件采用尖角號(hào)< >標(biāo)志文件名,自定義頭文件采用雙撇號(hào)″″標(biāo)志文件名。
3)
每個(gè).c文件有一個(gè)對(duì)應(yīng)的.h文件,.c文件的注釋之后首先定義一個(gè)唯一的文件標(biāo)志宏,并在對(duì)應(yīng)的.h文件中解析該標(biāo)志。
.c文件中:
#define FILE_FLAG
.h文件中:
#ifdef FILE_FLAG
#define XXX
#else
#define XXX extern
#endif
4)  
對(duì)于確定只被某個(gè).c文件調(diào)用的定義可以單獨(dú)列在一個(gè)頭文件中、單獨(dú)調(diào)用。
6.2
可重入函數(shù) 
可重入函數(shù)中若使用了全局變量,應(yīng)通過關(guān)中斷、信號(hào)量等操作手段對(duì)其加以保護(hù)。

6.3
函數(shù)的形參 
1)
由函數(shù)調(diào)用者負(fù)責(zé)檢查形參的合法性。

2)
盡量避免將形參作為工作變量使用。
6.4
循環(huán) 
1)
盡量減少循環(huán)嵌套層數(shù)

2)
在多重循環(huán)中,應(yīng)將最忙的循環(huán)放在最內(nèi)層
3)
循環(huán)體內(nèi)工作量最小
4)
盡量避免循環(huán)體內(nèi)含有判斷語(yǔ)句
7
.工程中所包含的文件 7.1 頭文件 
7.1.1  
頭文件的形式

MCU
程序中的頭文件包括面向硬件對(duì)象頭文件、公共頭文件和總頭文件。
MCU C
工程編程是面向硬件對(duì)象的。例如,要用MCU控制電機(jī)(Motor),在這樣一個(gè)系統(tǒng)中,面向硬件對(duì)象概念體現(xiàn)在,工程中會(huì)創(chuàng)建“Motor.c”的源程序文件專門用于電機(jī)控制。相應(yīng)的,也要?jiǎng)?chuàng)建一個(gè)同名頭文件“Motor.h”,用于控制電機(jī)的MCU引腳定義、相關(guān)宏定義和電機(jī)控制函數(shù)聲明等。像這樣的頭文件,就是面向硬件對(duì)象頭文件。與之同名的“*.c”文件可以包含它,來完成控制此硬件對(duì)象的MCU引腳定義和相關(guān)宏定義;調(diào)用該硬件對(duì)象控制函數(shù)的文件也可以通過調(diào)用它來進(jìn)行函數(shù)聲明。
還有一類頭文件不是專門針對(duì)于特定的硬件對(duì)象的,而是有一定的通用性。這類頭文件被稱為公共頭文件。如工程中包含的“Type.h”文件,該文件用于C語(yǔ)言中類型的別名定義,用戶還可以根據(jù)自己的需要,隨時(shí)在該文件中添加條目。在工程的任一文件中,需要用到這些別名時(shí),都要包含“Type.h”??梢姽差^文件并不拘泥于具體的硬件對(duì)象,它是為整個(gè)工程的和諧運(yùn)作而建立的。
總頭文件(includes.h)是一個(gè)較特殊的頭文件。它只被主函數(shù)文件包含,用于包含主函數(shù)文件中需要的頭文件,宏定義,函數(shù)聲明等。它使得主函數(shù)文件能夠盡量避免改動(dòng),結(jié)構(gòu)更加清晰。
7.1.2  
頭文件的命名
總的來說頭文件的命名應(yīng)盡量做到簡(jiǎn)短易懂,見名知意。
面向硬件對(duì)象頭文件的名稱一定要與相應(yīng)的硬件對(duì)象驅(qū)動(dòng)文件同名。例???
公共頭文件,如果對(duì)應(yīng)于相應(yīng)的源程序文件而建立,必須與之同名。如,“GeneralFun.c”
是工程中的通用函數(shù)定義文件,(像內(nèi)存數(shù)據(jù)移動(dòng)函數(shù),延時(shí)函數(shù)都屬于通用函數(shù)),其他文件在用到這些函數(shù)之前,必須進(jìn)行函數(shù)原型聲明,從而建立與之同名的“GeneralFun.h”文件,專門用于相應(yīng)的函數(shù)聲明。其它的公共頭文件沒有同名要求,只要表清文件含義即可,如“Type.h”,“GP32C.h”等。

總頭文件在一個(gè)工程中只有一個(gè),它的名稱較為固定,一般取為“Includes.h”。
7.1.3  
頭文件注意事項(xiàng)
1)
為了防止重復(fù)定義需要使用偽指令 #ifndef VarType ……
例:

#ifndef VarType
#define VarType
typedef unsigned char  INT8U;         //
無符號(hào)8位數(shù)
typedef signed   char  INT8S;         //
有符號(hào)8位數(shù)
typedef unsigned int   INT16U;        //
無符號(hào)16位數(shù)
typedef signed   int   INT16S;        //
有符號(hào)16位數(shù)
typedef unsigned long  INT32U;        //
無符號(hào)32位數(shù)
typedef signed   long  INT32S;        //
有符號(hào)32位數(shù)
typedef float          FP32;          //
單精度浮點(diǎn)數(shù)
typedef double         FP64;          //
雙精度浮點(diǎn)數(shù)
#endif 
2)
對(duì)于一個(gè)項(xiàng)目中的頭文件與芯片相關(guān)的寄存器映像文件不可擅自改動(dòng),如果的確存在需要改動(dòng)的地方另外開辟頭文件。
3)  typedef
#define的用法
① typedef
的用法
C/C++語(yǔ)言中,typedef常用來定義一個(gè)標(biāo)識(shí)符及關(guān)鍵字的別名,它是語(yǔ)言編譯過程的一部分,但它并不實(shí)際分配內(nèi)存空間,實(shí)例像:
typedef int INT;
typedef int ARRAY[10];
typedef (int*) pINT;
typedef
可以增強(qiáng)程序的可讀性,以及標(biāo)識(shí)符的靈活性,但它也有非直觀性等缺點(diǎn)。
② #define
的用法
#define
為一宏定義語(yǔ)句,通常用它來定義常量(包括無參量與帶參量),以及用來實(shí)現(xiàn)那些表面似和善、背后一長(zhǎng)串的宏,它本身并不在編譯過程中進(jìn)行,而是在這之前(預(yù)處理過程)就已經(jīng)完成了,但也因此難以發(fā)現(xiàn)潛在的錯(cuò)誤及其它代碼維護(hù)問題,它的實(shí)例像:
#define INT int
#define TRUE 1
#define Add(a,b) ((a)+(b));
#define Loop_10 for (int i=0; i<10; i++)
③ typedef
#define的區(qū)別
從以上的概念便也能基本清楚,typedef只是為了增加可讀性而為標(biāo)識(shí)符另起的新名稱(僅僅只是個(gè)別名),而#define原本在C中是為了定義常量,到了C++,const、enuminline的出現(xiàn)使它也漸漸成為了起別名的工具。為了盡可能地兼容,一般都遵循#define定義可讀的常量以及一些宏語(yǔ)句的任務(wù),而typedef則常用來定義關(guān)鍵字、冗長(zhǎng)的類型的別名。
宏定義只是簡(jiǎn)單的字符串代換(原地?cái)U(kuò)展),而typedef則不是原地?cái)U(kuò)展,它的新名字具有一定的封裝性,以致于新命名的標(biāo)識(shí)符具有更易定義變量的功能。請(qǐng)看上面第一大點(diǎn)代碼的第三行:
typedef (int*) pINT;
以及下面這行:
#define pINT2 int*
效果相同?實(shí)則不同!實(shí)踐中見差別:

pINT a,b;
的效果同int *a; int *b;
表示定義了兩個(gè)整型指針變量。

pINT2 a,b;的效果同int *a, b;表示定義了一個(gè)整型指針變量a和整型變量b。
注意:兩者還有一個(gè)行尾;號(hào)的區(qū)別哦?。????)
7.2
源程序文件 
源程序文件包括主函數(shù)文件、通用函數(shù)文件、硬件對(duì)象控制文件、芯片初始化文件、中斷向量定義文件和中斷使能文件。

源程序文件的分類和命名類同于頭文件,但也有它自己的特點(diǎn)。
7.2.1
主程序文件
(Main.s
Main.c)?????
工程中有且僅有一個(gè)主程序文件,它包含了工程的主處理流程。
主函數(shù)文件中包含:
1)工程描述
  ①
工程名
   
工程名中每個(gè)意義單詞(或單詞縮寫)的首字母大寫,后綴為.prj。
  ②
硬件連接索引
   
工程所要控制的硬件對(duì)象索引,詳細(xì)描述在相應(yīng)的硬件對(duì)象控制文件中給出。
  ③
工程的功能、目的和說明
注意要點(diǎn)
   
可以注明編程要點(diǎn)和心得
  ⑤
日期
   
注明工程完成日期
2)總頭文件
3)主函數(shù)
如:
7.2.2  
芯片初始化文件(“SetUp.c” “SetUp.s”
該文件與具體的芯片型號(hào)有關(guān),并且只包含一個(gè)芯片初始化函數(shù),若想由編譯器自動(dòng)調(diào)用芯片初始化函數(shù),其函數(shù)名必須為"_HC08Setup",否則編譯器會(huì)自動(dòng)建立并調(diào)用一個(gè)空的"__HC08Setup"匯編子程序,而不理會(huì)用戶創(chuàng)建的芯片初始化函數(shù)。為了統(tǒng)一,將該函數(shù)起名為"MCUInit",并在主函數(shù)中調(diào)用該函數(shù)。
7.2.3  
通用函數(shù)頭文件和通用函數(shù)文件
通用函數(shù)頭文件和通用函數(shù)文件,“GenneralFun.h”“GeneralFun.c”。  
//[GenneralFun.h]
通用函數(shù)頭文件---------------------------------------------i nclude"Type.h"      //類型別名定義void Delay(INT16U);   //延時(shí)函數(shù)聲明
     
“GenneralFun.h”
中包含:

1)文件名
2)通用函數(shù)所需用到的頭文件
3)通用函數(shù)用到的宏定義
4)通用函數(shù)聲明
外部函數(shù)要用到通用函數(shù)時(shí),可包含這個(gè)頭文件進(jìn)行函數(shù)聲明。
7.2.4  
對(duì)象控制文件
7.2.5  
中斷處理函數(shù)和中斷向量表文件
   
9
. 硬件封裝的思想
1)
與硬件相關(guān)的程序文件
與某個(gè)硬件相關(guān)的子程序放到1個(gè)程序文件中,該硬件的頭文件放到一個(gè)文件中。
程序文件的開始處是有關(guān)說明:本文件所包含的子程序及簡(jiǎn)要的功能說明,子程序分為內(nèi)部調(diào)用和外部調(diào)用;硬件的連接說明。
  
2)
中斷的開放和禁止
使用宏定義方式開放或禁止中斷,宏定義語(yǔ)句放在EnDisInt.h頭文件中。宏名的定義方法:
開放中斷以Enable標(biāo)識(shí),宏名中包含中斷名,宏名最后以Int結(jié)束。如:開放串行接收中斷的宏名為:EnableSCIReInt。
禁止中斷以Disable標(biāo)識(shí),宏名中包含中斷名,宏名最后以Int結(jié)束。如:禁止串行接收中斷的宏名為:DisableSCIReInt。
開放所有中斷宏名:EnableMCUInt。
禁止所有中斷宏名:DisableMCUInt。

日韩av免费看-一区二区精品在线-高清视频免费在线观看-中文字幕欧美日韩-日韩无套-亚洲国产精品18久久久久久-中文字幕一区二区三区精品-欧美日韩亚洲国产精品-青青草国产精品-日韩少妇激情-av高清一区-91免费看片播放器-a级片黄色-亚洲精品男人天堂-亚洲欧美精品-男女涩涩
  • <bdo id="4osu4"><source id="4osu4"></source></bdo>
    <li id="4osu4"></li>
  • <li id="4osu4"></li>
    <rt id="4osu4"><delect id="4osu4"></delect></rt>
    <button id="4osu4"><strong id="4osu4"></strong></button>
    <bdo id="4osu4"></bdo>
    主站蜘蛛池模板: 日韩成人av在线| 国产日本亚洲高清| 先锋影音国产精品| 久久亚洲私人国产精品va媚药| 欧美成人精品在线观看| 国产日产欧美一区| 中文字幕日韩在线视频| 一区二区三区久久久| 久久精品亚洲一区二区| 国产精品高潮呻吟久久| 精品视频久久久| 亚洲人成在线观看网站高清| 你懂的国产精品永久在线| 国产欧美一区二区精品性| 最近更新的2019中文字幕 | 精品亚洲aⅴ在线观看| 久久影院中文字幕| 久久国产精品久久精品国产| 国产欧美视频在线观看| 美日韩精品视频免费看| 裸体一区二区三区| 99精品99久久久久久宅男| 久久亚洲色图| 日韩久久免费电影| 午夜亚洲视频| 黄色精品一区二区| 亚洲日本欧美在线| 国产精品成人av性教育| 久久久精品2019中文字幕神马| 欧美一区精品| 亚洲精品国产品国语在线| 99视频精品| 国产精品久久国产精麻豆99网站| www.xxxx精品| 欧美极品一区二区三区| 日韩在线观看网站| 欧美区亚洲区| 久久人体大胆视频| 欧美国产日产韩国视频| 亚洲一区999| 久久精品夜色噜噜亚洲a∨| 精品1区2区| 妖精成人www高清在线观看| 国产精品高潮呻吟久久av无限| 日韩在线免费视频| 欧美韩国日本一区| 欧美大尺度在线观看| 欧美日韩一区二区三区四区五区 | 欧美区一区二| 伊人久久大香线蕉av一区二区| 欧美在线中文字幕| 亚洲欧美日韩一区在线| 每日更新成人在线视频| 久久影视电视剧免费网站清宫辞电视| 蜜臀av在线播放一区二区三区| 久久久水蜜桃| 国产午夜精品视频| 欧美精品乱人伦久久久久久 | 亚洲欧美日韩在线一区| 日韩大片在线观看视频| 美女诱惑黄网站一区| 久久视频免费在线播放| 国产精品色网| 久久九九国产精品| 久久久精品一区二区| 国产精品久久久久久超碰| 亚洲私人影吧| 亚洲欧美中文在线视频| 欧美精品七区| 亚洲午夜精品久久| 这里只有视频精品| 国产日韩欧美夫妻视频在线观看| 亚洲欧美精品在线| 日韩一区二区久久久| 国产精品一区二区久久久久| 欧美一区二区三区四区高清| zzjj国产精品一区二区| 黑人操亚洲美女惩罚| 美日韩精品视频| 亚洲黄色片网站| **欧美日韩vr在线| 欧美四级剧情无删版影片| 香蕉久久一区二区不卡无毒影院| 久久久精品日本| 国产性做久久久久久| 蜜桃视频一区| 亚洲一区国产精品| 欧美高清视频| 亚洲午夜在线观看| 久久99亚洲热视| 亚洲精品美女在线观看播放| 国产精品午夜在线| 欧美激情导航| 久久久久网站| 亚洲欧美国产va在线影院| 不卡av电影院| 日韩电影免费在线观看中文字幕| 欧美日产在线观看| 久久久久久久一区二区三区| 99亚洲精品| 亚洲国产精品精华液2区45| 国产婷婷成人久久av免费高清| 欧美午夜片在线观看| 免费观看一区| 久久精品国产综合精品| 亚洲欧美日韩在线| 一区二区欧美在线观看| 亚洲国内在线| 亚洲欧洲综合另类| 亚洲国产精品va在线看黑人动漫| 中文字幕在线观看亚洲| 亚洲欧美中文另类| 日韩av在线免费观看一区| 韩国三级电影一区二区| 国产精品视频网址| 欧美日韩在线免费观看| 欧美激情综合五月色丁香| 久久久99精品免费观看不卡| 久久国内精品自在自线400部| 亚洲视频一区二区在线观看 | 亚洲第一在线| 国产亚洲欧美日韩精品| 亚洲人高潮女人毛茸茸| 亚洲国产精品悠悠久久琪琪| 亚洲国产精品成人av| 国外成人在线视频网站| 国内精品亚洲| 在线观看成人av电影| 在线观看亚洲精品视频| 亚洲福利在线视频| 亚洲人成毛片在线播放| 在线播放精品一区二区三区| 中文字幕久热精品在线视频 | 永久域名在线精品| 在线精品国产欧美| 日韩电影中文 亚洲精品乱码| 一区二区视频免费在线观看 | 欧美视频在线一区二区三区| 欧美日韩在线免费视频| 国产精品成人aaaaa网站| 欧美午夜免费影院| 国产欧美va欧美va香蕉在| 国模大胆一区二区三区| 欧美一级淫片aaaaaaa视频| 亚洲在线成人| 久久久久久久波多野高潮日日 | 欧美色网在线| 国产精品青草久久| 精品电影在线观看| 国产亚洲a∨片在线观看| 久久精品国产视频| 一本久道久久久| 亚洲淫片在线视频| 麻豆精品91| 国产精品国产自产拍高清av王其 | 亚洲国产精品小视频| 亚洲性视频网址| 美乳少妇欧美精品| 一区二区三区四区精品| 久久人体大胆视频| 国产精品日日摸夜夜摸av| 一区在线电影| 久久成人av网站| 一区二区久久久久| 久久精品91久久久久久再现| 欧美日本国产| 一区二区在线看| 久久久91精品国产| 亚洲一区视频| 中文字幕日韩精品在线| 亚洲级视频在线观看免费1级| 亚洲视屏一区| 欧美国产精品久久| 一区二区三区在线不卡| 久久国产精品久久国产精品| 亚洲在线第一页| 欧美人体xx| 日韩高清中文字幕| 亚洲精品专区| 欧美激情按摩在线| 在线看片成人| av成人福利| 欧美三级网址| 伊人亚洲福利一区二区三区| 亚洲伊人伊色伊影伊综合网| 欧美日韩在线视频观看| 国产亚洲视频在线| 亚洲欧美日韩久久精品 | 亚洲一级在线| 国产精品扒开腿做爽爽爽软件| 日韩精品在线观| 一区二区三区精密机械公司| 欧美精品国产一区二区| 亚洲人在线观看| 欧美一区二区三区男人的天堂| 亚洲视频axxx| 欧美日韩国产精品成人| 国产亚洲成av人片在线观看桃| 亚洲无玛一区| 国产精品夜夜夜一区二区三区尤| xxxx欧美18另类的高清| 久久亚洲图片| 亚洲视频精品在线| 欧美亚洲日本国产| 亚洲大胆人体av| 亚洲一区二区欧美日韩| 国产欧美精品xxxx另类| 亚洲国产毛片完整版| 欧美成人免费小视频| 亚洲精品少妇网址| 久久国产一区二区三区| 亚洲国产91色在线| 欧美一区二区三区四区在线| 红桃视频国产一区| 亚洲欧美日韩国产综合在线| 娇妻被交换粗又大又硬视频欧美| 中文高清一区| 国产在线精品自拍| 亚洲欧美日韩在线播放| 尹人成人综合网| 午夜精品福利在线观看| 亚洲精品大尺度| 久久国产精品久久国产精品 | 欧美成人免费全部观看天天性色| 免费精品视频| 美日韩丰满少妇在线观看| 欧美精品久久久久久久久久| 久久99亚洲精品| 国产精品区一区二区三区| 亚洲精选国产| 黄色成人片子| 久久精品一本| 久久精品国产精品| 欧美特黄一级| 亚洲国产精品va在线| 久久av免费一区| 日韩最新中文字幕电影免费看| 你懂的视频一区二区| 欧美插天视频在线播放| 国产女人水真多18毛片18精品视频| 日韩一区二区精品视频| 国产在线精品二区| 久久久久一区二区三区| 欧美另类暴力丝袜| 国产一区二区欧美日韩| 久久精品国产久精国产一老狼 | 国产精品mv在线观看| 亚洲精品中文字幕在线| 在线精品视频一区二区三四| 久热精品视频在线观看一区| 亚洲国产日韩欧美在线图片| 国产在线不卡| 欧美成人影音| 国产精品99久久久久久有的能看 | 欧美精品亚洲| 亚洲图片欧洲图片av| 亚洲奶大毛多的老太婆| 欧美日韩一区二区视频在线| 亚洲伦理久久| 亚洲天堂免费观看| 国产美女一区二区| 一区二区三区在线播放欧美| 欧美日韩一区二区三区在线 | 亚洲精品色婷婷福利天堂| 国外成人在线视频| 欧美激情一区二区三级高清视频| 亚洲人成7777| 在线看欧美日韩| 黄色一区三区| 国产精品久久久久久久7电影| 欧美在线亚洲| 亚洲美女在线一区| 色偷偷88888欧美精品久久久| 国产毛片久久| 欧美女激情福利| 欧美一级大片在线免费观看| 亚洲人成在线免费观看| 一区三区二区视频| 一区三区视频| 国产精品久久夜| 欧美本精品男人aⅴ天堂| 午夜精品三级视频福利| 亚洲毛片在线免费观看| 九九热最新视频//这里只有精品| 亚洲国产中文字幕在线观看| 国产精品狠色婷| 欧美国产日韩一区二区三区| 午夜亚洲视频| 亚洲天堂av图片| 亚洲观看高清完整版在线观看| 精品视频www| 在线观看视频一区二区欧美日韩 | 最近2019年日本中文免费字幕| 国产一区高清视频| 国产精品久久久久久久久久免费 | 亚洲一区二区三区中文字幕| 亚洲二区在线视频| 久久久精品影院| 国产亚洲精品综合一区91| 日韩不卡在线观看| 亚洲精品av在线播放| 国外成人在线| 激情懂色av一区av二区av| 国产午夜精品全部视频播放 | 99热精品在线| 亚洲激情婷婷| 亚洲高清久久网| 久久成人亚洲精品| 久久国产加勒比精品无码| 中文一区二区视频| 色偷偷噜噜噜亚洲男人| 日韩中文字幕视频在线| 在线观看欧美成人| 久久精品国产精品| 亚洲高清免费视频| 最新国产乱人伦偷精品免费网站| 久久91亚洲精品中文字幕| 欧美日韩午夜| 欧美高清不卡在线| 欧美日韩国产综合视频在线观看| 欧美美女喷水视频| 欧美日韩免费观看一区二区三区| 欧美激情综合网| 欧美视频免费在线观看| 国产精品老牛| 国产一区二区久久精品| 在线播放亚洲一区| 国产亚洲在线播放| 亚洲丶国产丶欧美一区二区三区 | 国产一区二区三区在线观看网站| 在线观看久久av| 美女啪啪无遮挡免费久久网站| 亚洲动漫精品| 亚洲综合视频1区| 久久视频免费观看| 欧美手机在线视频| 国产精品久久久久久久第一福利 | 久久久九九九九| 久久综合色88| 欧美三级网址| 国外成人性视频| 永久免费看mv网站入口亚洲| 粗暴蹂躏中文一区二区三区| 亚洲美女一区| 久久精品久久综合| 欧美四级剧情无删版影片| 国产综合av| 国产亚洲一区精品| 99re6这里只有精品| 久久精品系列| 日韩视频国产视频| 性欧美暴力猛交另类hd| 欧美黄色成人网| 国内精品久久久久久久97牛牛| 亚洲免费一在线| 亚洲精品美女免费| 噜噜噜噜噜久久久久久91| 欧美视频一区二| 日韩高清人体午夜| 亚洲精品国产精品乱码不99按摩| 久久狠狠一本精品综合网| 欧美性久久久| 一区二区三区视频免费在线观看| 日韩午夜视频在线观看| 另类尿喷潮videofree| 国产亚洲人成网站在线观看| 久久亚洲精品网站| 欧美中文字幕| 国自产拍偷拍福利精品免费一| 色婷婷综合久久久久| 欧美亚洲视频在线观看| 国产精品久久久久久久7电影| 亚洲午夜精品久久久久久久久久久久 | 国产亚洲女人久久久久毛片| 国产一区二区三区在线视频| 亚洲一二区在线| 欧美日韩成人精品| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 尤物精品国产第一福利三区| 99国内精品久久| 欧美激情bt| 国产视频在线一区二区| 亚洲一区免费观看| 国产精品任我爽爆在线播放 | 亚洲精选一区| 欧美极品色图| 亚洲午夜激情免费视频| 久久精品视频在线看| 国产欧美一区二区在线观看| 久久高清视频免费| 免费成人黄色av| 亚洲小视频在线观看| 久久国产精品毛片| 日韩激情在线视频| 久久av红桃一区二区小说| 影音先锋在线一区| 亚洲已满18点击进入久久| 国产日韩1区| 99视频精品免费观看| 国产欧美日韩一区| 99国产精品自拍| 国产亚洲精品bv在线观看| 亚洲美女视频网| 国产精品免费一区二区三区在线观看 | 久久久久久电影| 在线免费观看视频一区| 午夜精品久久久| 亚洲国产精品中文| 久久久久se| 在线视频欧美性高潮| 裸体丰满少妇做受久久99精品| 色悠悠久久久久| 欧美视频在线免费看| 91久久综合亚洲鲁鲁五月天| 国产精品亚洲综合久久| 一区二区三区精品视频在线观看| 国产日韩av一区二区| 亚洲综合视频一区| 亚洲福利在线播放| 嫩草成人www欧美| 九色91av视频| 国产女主播视频一区二区| 亚洲视频在线一区观看| 亚洲第一页自拍| 欧美 日韩 国产 一区| 久久精品国产亚洲| 国产欧美一区二区色老头| 欧美一区二区三区视频| 中文字幕视频在线免费欧美日韩综合在线看 | 蜜臀av性久久久久蜜臀aⅴ四虎| 精品视频在线播放色网色视频| 久久这里只有精品视频首页| 欧美日韩xxxxx| 国内精品久久久久久久影视蜜臀 | 亚洲欧美日韩中文播放| 亚洲男人天堂视频| 欧美激情精品| 国产日韩亚洲欧美综合| 亚洲欧美日韩一区在线| 一道本无吗dⅴd在线播放一区| 欧美日韩精品在线视频| 国产精品99久久久久久久久久久久 | 久久亚洲综合国产精品99麻豆精品福利| 欧美成人综合网站| 日韩视频免费观看| 亚洲网站在线观看| 国产精品视频内| 老司机一区二区三区| 日韩一区二区精品视频| 亚洲欧洲视频在线| 国产精品多人| 久久精视频免费在线久久完整在线看| 久久在精品线影院精品国产| 激情久久综艺| 国产精品国产三级国产a| 欧美一区二区视频在线观看2020| 九九精品视频在线观看| 在线欧美日韩精品| 国产精品成人在线| 欧美不卡一卡二卡免费版| 亚洲欧美中文日韩v在线观看| 北条麻妃久久精品| 日韩av网址在线观看| 国产九九精品| 欧美连裤袜在线视频| 久久精品国产99国产精品澳门| 日韩视频―中文字幕| 日韩在线视频免费观看高清中文| 国内自拍亚洲| 国产精品久久久久久久久久久久久久| 久久婷婷麻豆| 午夜在线精品偷拍| 日韩一区二区久久| 亚洲国产日日夜夜| zzijzzij亚洲日本成熟少妇| 亚洲欧美成人在线| 麻豆成人在线播放| 香港久久久电影| 夜夜嗨av一区二区三区四区| 欧美猛少妇色xxxxx| 亚洲视频一区二区| 亚洲高清在线观看| 国产综合色精品一区二区三区| 欧美成在线视频| 久久久久久久999| 久久av一区二区| 亚洲欧美日韩区| 亚洲性线免费观看视频成熟| 欧美日本亚洲视频| 欧美另类极品videosbestfree| 亚洲午夜性刺激影院| 日韩电影免费在线观看中文字幕 | 久久精品国产成人| 欧美一区二区在线视频| 性欧美1819性猛交| 欧美中文字幕视频在线观看| 亚洲综合首页| 欧美一区二区私人影院日本| 午夜精品一区二区三区电影天堂| 日韩天堂在线观看| 99亚洲伊人久久精品影院红桃| 亚洲品质自拍| 在线综合视频| 欧美一区二区日韩一区二区| 久久成人18免费网站| 久久久久免费观看| 亚洲欧洲三级电影| 日韩午夜激情| 亚洲一区国产精品| 亚洲欧美精品一区| 久久精品在线观看| 久久手机免费观看| 欧美激情一区二区三区在线视频观看 | 久久久久久9| 免费看成人av| 欧美区在线播放| 国产精品美女午夜av| 国产真实乱偷精品视频免| 国外成人网址| 久久婷婷麻豆| 一区二区电影免费观看| 欧美激情亚洲国产| 亚洲精品一区二区三区蜜桃久| 一区二区视频免费完整版观看| 欧美精品福利| 欧美精品亚洲精品| 欧美日韩国产二区| 国产精品免费看久久久香蕉| 国产真实乱子伦精品视频| 亚洲国产成人久久综合| 在线观看国产精品日韩av| 欧美日韩爱爱视频| 亚洲午夜免费视频| 久久精品亚洲精品| 欧美伦理a级免费电影| 国产精品自在线| 亚洲精品国产欧美| 亚洲国产一区二区三区高清| 亚洲无线视频| 久久综合九色欧美综合狠狠| 国产精品va在线播放我和闺蜜| 国产一区二区三区高清播放| 一夜七次郎国产精品亚洲| 亚洲精品美女91| 欧美专区18| 国产精品夫妻自拍| 精品爽片免费看久久| 亚洲日韩中文字幕在线播放| 久久久久se| 国产一区二区毛片| 久久伊人精品天天| 久久av红桃一区二区小说| 欧美日韩综合在线| 日韩av在线免费观看一区| 欧美理论片在线观看| 久久不射中文字幕| 国产精品一区在线播放| 中文日韩在线视频| 欧美亚洲自偷自偷| 国产精品久久久久一区二区三区 | 欧美日韩一区二区三区在线| 在线观看亚洲a| 亚洲欧洲在线看| 欧美mv日韩mv国产网站app| 国产一区二区日韩精品| www.亚洲成人| 久久精品二区三区| 国产亚洲福利一区| 亚洲精品乱码久久久久久久久| 米奇777在线欧美播放| 亚洲国产精品va在线| 日韩一级精品视频在线观看| 欧美夫妇交换俱乐部在线观看| 1024国产精品| 亚洲图片自拍偷拍| 国产精品伊人日日| 亚洲韩国一区二区三区| 欧美精品在线观看一区二区| 日韩精品免费综合视频在线播放| 99国产精品99久久久久久粉嫩| 欧美日韩成人一区二区| 亚洲美女喷白浆| 亚洲欧美激情四射在线日| 国产精品视频免费观看| 免费不卡在线观看av| 欧美夫妇交换俱乐部在线观看| 国产视频精品自拍| 久久久精品免费视频| 亚洲国产又黄又爽女人高潮的| 亚洲一级免费视频| 国产精品综合久久久| 欧美老少做受xxxx高潮| 欧美人与性动交a欧美精品| 久久精品国产亚洲精品| 欧美激情视频一区二区三区不卡| 亚洲乱码国产乱码精品精天堂| 香蕉久久夜色精品国产| 在线播放国产一区中文字幕剧情欧美 | 色yeye香蕉凹凸一区二区av| 久久综合五月| 中文字幕少妇一区二区三区| 裸体素人女欧美日韩| 亚洲最新中文字幕| 欧美xxxx在线观看| 不卡av电影院| 欧美午夜片欧美片在线观看| 亚洲三级影片| 含羞草久久爱69一区| 欧美在线视频一区二区三区| 亚洲国产一区二区三区在线观看| 欧美在线视频在线播放完整版免费观看 | 欧美日韩国产欧| 欧美国产精品中文字幕| 中文字幕日韩高清| 欧美成人免费网|