PIC單片機(jī)匯編編程規(guī)范_第1頁(yè)
PIC單片機(jī)匯編編程規(guī)范_第2頁(yè)
PIC單片機(jī)匯編編程規(guī)范_第3頁(yè)
PIC單片機(jī)匯編編程規(guī)范_第4頁(yè)
PIC單片機(jī)匯編編程規(guī)范_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、Pic匯編編程及審核規(guī)范(VL1)、程序命名規(guī)范程序文件名由兩部分構(gòu)成:一部分為產(chǎn)品型號(hào)或功能描述,一部分為軟件版本號(hào)。產(chǎn)品型號(hào)用字母描述,可為英文或中文拼音。軟件版本號(hào)為4位,前一位固定為字母"V"后3位為數(shù)字,編寫軟件版本號(hào)應(yīng)按照從小到大的順序遞增。開發(fā)階段版本號(hào)從001開始;中試之后版本號(hào)從100開始。例如:光電感煙探測(cè)器JTY-GD-G3程序GDG3V001電子差定溫探測(cè)器JTW-ZCD-G3N程序GWG3NV101二、程序頭格式在每個(gè)文件的開始要有一個(gè)對(duì)該文件總體功能的描述,軟件版本,以及作者及編寫時(shí)間。采用模版統(tǒng)一格式。1. 在功能描述中,除了對(duì)軟件實(shí)現(xiàn)的功能做

2、簡(jiǎn)要描述外,還應(yīng)包括使用的單片機(jī),晶振頻率,以及主要I/O口實(shí)現(xiàn)的功能。如果程序升級(jí)時(shí)應(yīng)增加如下說(shuō)明。2. 程序升級(jí)后的版本號(hào):例如1) 程序升級(jí)的修改作者:例如版本號(hào)更:Ver105”2) 程序升級(jí)的修改日期:例如改人:更XXX”3) 改日期:01124) 應(yīng)對(duì)程序升級(jí)進(jìn)行簡(jiǎn)單修改說(shuō)明。應(yīng)給出程序增加、5) 更改、刪除項(xiàng)說(shuō)明,每項(xiàng)總處數(shù)。3.程序頭如采用如下統(tǒng)一格式:*;*文件名;*功能描述:;*軟件版本;*開始編寫一完成日期:;*作者:三、子程序、標(biāo)號(hào)及變量命名規(guī)則(推薦)1.子程序及標(biāo)號(hào)命名規(guī)則子程序命名應(yīng)使用相關(guān)含義英文。子程序入口標(biāo)號(hào)應(yīng)使用子程序名相關(guān)含義、常用的英語(yǔ)單詞(拼音)或單

3、詞(拼音)縮寫。如果一個(gè)英語(yǔ)單詞表述不清,應(yīng)使用多個(gè)英語(yǔ)單詞縮寫表示。程序里邊的標(biāo)號(hào)應(yīng)與執(zhí)行該分支功能相關(guān)含義、常用的英語(yǔ)單詞(拼音)或單詞(拼音)縮寫,如果沒有確切含義,應(yīng)優(yōu)先選用子程序入口標(biāo)號(hào)前面字母縮寫加兩位序號(hào)。2.變量命名規(guī)則標(biāo)志寄存器使用相關(guān)含義、常用的英語(yǔ)單詞英文+Flag;暫用寄存器使用:暫存對(duì)象英文縮寫+Temp;計(jì)數(shù)寄存器使用暫存對(duì)象英文縮寫+Numb;其它寄存器:與存放對(duì)象相關(guān)含義、常用的英語(yǔ)單詞(拼音)或單詞(拼音)縮寫。3.標(biāo)志位命名規(guī)則標(biāo)志對(duì)象相關(guān)含義、常用的英語(yǔ)單詞(拼音)縮寫。四、程序格式書寫規(guī)范匯編語(yǔ)言的格式為:標(biāo)號(hào)<指令助記符>操作數(shù);注釋編程時(shí)

4、為了程序結(jié)構(gòu)清楚,要求如下:1. 四個(gè)部分之間以tab鍵分隔(tab鍵定義為8個(gè)空格),而不使用空格。2. 對(duì)于相同的部分要求上下對(duì)齊。3. 標(biāo)號(hào)后必須跟冒號(hào)(:)4. 雖然標(biāo)號(hào)中的字母大小寫表示不同的含義,但不允許用同樣的字符定義兩個(gè)不同的標(biāo)號(hào)。5. 操作數(shù)的第一個(gè)字母要求大寫,其余字符小寫;如果操作數(shù)為常量,要求第一個(gè)大寫的字符為“C6. 注釋要求使用中文。五.程序注釋A,變量及軟件標(biāo)志注釋對(duì)于標(biāo)志寄存器、全局變量和關(guān)鍵的標(biāo)志位應(yīng)加注釋,說(shuō)明如下:1 .變量注釋:寫清變量在程序中起的作用注明變化時(shí)刻。當(dāng)使用復(fù)用變量時(shí),應(yīng)注釋變量生命周期。程序升級(jí)所涉及到的變量的增加、改變或者刪除。該變量的

5、用途是什么?是否需要初始化?注釋應(yīng)包括版本號(hào)。2 .標(biāo)志注釋:應(yīng)分別說(shuō)明邏輯0和邏輯1代表何種狀態(tài)或功能注明軟件標(biāo)志的變化時(shí)刻如果程序通過(guò)判斷該標(biāo)志決定程序走向,應(yīng)說(shuō)明走向程序執(zhí)行的功能。當(dāng)標(biāo)志位發(fā)生變化時(shí),應(yīng)注釋變化意義。當(dāng)標(biāo)志復(fù)用時(shí),應(yīng)標(biāo)識(shí)標(biāo)志的生命周期,用戶關(guān)系。當(dāng)程序升級(jí)增加或刪除的變量時(shí),該標(biāo)志的意義是什么?是否需要初始化?注釋應(yīng)包括版本號(hào)。B.子程序注釋子程序前應(yīng)加注釋,注釋應(yīng)包括以下幾個(gè)方面:功能說(shuō)明、入口條件、出口信息、影響資源、執(zhí)行時(shí)間。(根據(jù)實(shí)際情況可刪減)功能:說(shuō)明該子程序的作用,如果該子程序內(nèi)部有選擇性執(zhí)行功能,1.應(yīng)分別說(shuō)明在什么情況下完成什么功能。入口條件:設(shè)計(jì)輸入

6、的參數(shù)說(shuō)明。有的子程序不需要入口條件,如固定延時(shí)子程序。出口信息:子程序執(zhí)行2,完畢時(shí)留下的現(xiàn)場(chǎng)有用信息,這中間有運(yùn)算結(jié)果的存放地址、存放格式、輸出的特征格式(如出錯(cuò)信息)的3,存放地址和格式。子程序調(diào)用:說(shuō)明本子程序還要調(diào)用哪些低級(jí)子程序,將其標(biāo)號(hào)一一列出。影響資源:子程序在執(zhí)行過(guò)程4,中,必然要?jiǎng)佑萌舾杉拇嫫骰蛭粏卧?,使它們的?nèi)容在子程序執(zhí)行后有可能發(fā)生變化,這些寄存器或位單元5,即為受影響的資源,應(yīng)一一列出。執(zhí)行時(shí)間:在一些實(shí)時(shí)控制系統(tǒng)中,對(duì)程序的運(yùn)行速度有嚴(yán)格要求,這時(shí)應(yīng)標(biāo)明程序執(zhí)行時(shí)間。當(dāng)子程序有各種分支轉(zhuǎn)移時(shí),子程序的執(zhí)行時(shí)間可能是不定的,這時(shí)應(yīng)計(jì)算出最短執(zhí)6.行時(shí)間和最長(zhǎng)執(zhí)行時(shí)間

7、,并按概率統(tǒng)計(jì)的方法核算出平均執(zhí)行時(shí)間。為主程序調(diào)整運(yùn)行節(jié)奏提供參考數(shù)據(jù)。C.程序分支、I/O注釋1 .如果程序執(zhí)行GOTO、BTFSS、BTFSC、CALL語(yǔ)句,應(yīng)注釋執(zhí)行程序分支的功能。2 .相對(duì)獨(dú)立的功能前面應(yīng)注釋實(shí)現(xiàn)功能的算法。3 .關(guān)鍵I/O變化,重要時(shí)序、定時(shí),關(guān)鍵參數(shù)應(yīng)加注釋。D.程序升級(jí)標(biāo)識(shí)1)對(duì)于新增的程序語(yǔ)句,應(yīng)該分別在其開始、結(jié)束位置注明與修改注釋內(nèi)容相對(duì)應(yīng)的更改版本號(hào)的第幾項(xiàng)內(nèi)容的第幾處。例如:movfwclassi;從EEPROM中取出的靈敏度級(jí)別數(shù)(五位三進(jìn)制)(Verl05,0701開始)該語(yǔ)句的文字注釋內(nèi)容的含義是:從該語(yǔ)句起為新增的內(nèi)容一一程序升級(jí)中第7項(xiàng)修改

8、內(nèi)容所涉及的第1處。2)對(duì)于更改(包括刪除)的程序語(yǔ)句,應(yīng)注明更改前及更改后的不同之處,如有必要還需注明更改的原因。例如:movlw.9;自校驗(yàn)數(shù)據(jù)由8種改為9種,增加靈敏度級(jí)別數(shù)的校驗(yàn)(更改Verl05內(nèi)容Verl05,0901)該語(yǔ)句的文字注釋內(nèi)容的含義是:該語(yǔ)句為更改的內(nèi)容一一更改前為8,更改后為9,更改的原因是增加靈敏度級(jí)別數(shù)的校驗(yàn),同時(shí)還注明了該更改是程序升級(jí)Verl05中第9項(xiàng)修改內(nèi)容所涉及的第1處。六.程序編寫規(guī)則1 .程序功能模塊應(yīng)相對(duì)獨(dú)立。2 .有關(guān)聯(lián)的模塊應(yīng)安排在ROM空間靠近的地方。3 .程序須翻頁(yè)時(shí),頻繁調(diào)用的程序盡量安排在第一頁(yè),關(guān)聯(lián)的模塊應(yīng)安排在同一頁(yè),不被常調(diào)用的

9、程序盡量安排在第二頁(yè)。4 .進(jìn)入中斷時(shí),應(yīng)保護(hù)中斷現(xiàn)場(chǎng)。中斷返回時(shí)應(yīng)恢復(fù)中斷現(xiàn)場(chǎng)。當(dāng)中斷有幾個(gè)分支時(shí),應(yīng)分別中斷返回5 .不允許在不同子程序之間互相跳轉(zhuǎn)。6 .對(duì)于一個(gè)子程序或中斷子程序,應(yīng)避免程序執(zhí)行不同的出口,如果可能,最好只有一個(gè)出口。7 .程序調(diào)用子程序?qū)訑?shù)不宜太多,調(diào)用語(yǔ)句與子程序返回語(yǔ)句應(yīng)配對(duì)。當(dāng)子程序有幾個(gè)分支時(shí),應(yīng)分別子程序返回。8 .使用復(fù)用標(biāo)志和寄存器時(shí),應(yīng)注意其生命周期,避免互相影響。七.程序自動(dòng)設(shè)置規(guī)定為了規(guī)范PIC單片機(jī)設(shè)置位的燒寫,特做如下補(bǔ)充規(guī)定:L在編制程序時(shí),在程序開始應(yīng)明確所使用的單片機(jī)并調(diào)入相應(yīng)頭文件,同時(shí)編寫設(shè)置位。如LISTP-16C73B;明確使用的

10、單片機(jī)iiinclude<pl6c73b.inc>;調(diào)入PIC16C73B頭文件CONFIGCPOFF&WDTON&BODENON&PWRTEON&XTOSC;設(shè)置為:代碼保密OFF,看門狗ON,掉電檢測(cè)ON,上電延時(shí)ON,晶振XT八.匯編程序?qū)徍艘?guī)范在程序測(cè)試前,應(yīng)進(jìn)行審核。程序?qū)徍瞬捎糜删幊陶呖陬^宣講程序結(jié)構(gòu),講解程序必要時(shí)軟仿運(yùn)行關(guān)鍵程序的形式,審核主要內(nèi)容如下:1.2.程序命名是否規(guī)范程序頭格式是否規(guī)范程序變量命名是否規(guī)范程序格式書寫是否規(guī)范3 .程序注釋是否規(guī)范程序編程是否符合規(guī)范對(duì)照程序流程圖審核程序與流程圖4 .的符合性升級(jí)程序調(diào)試完畢后應(yīng)按照更改標(biāo)識(shí)恢復(fù)原文件與升級(jí)前的程序版本5 .進(jìn)行驗(yàn)證,應(yīng)校驗(yàn)通過(guò):重點(diǎn)仿真運(yùn)行重要的時(shí)序、關(guān)鍵算法等程序。6 .7 .8 .HEX文件的比較9 .10 .檢查是否可以自動(dòng)設(shè)置燒寫位。匯編程序?qū)徍速|(zhì)量記錄表程序名稱程序版本號(hào)設(shè)計(jì)負(fù)責(zé)人提交口期審核負(fù)責(zé)人審核日期序號(hào)審核項(xiàng)目審核要素審核建議采取措施1程序頭格式程序版本、作者、完成日期的規(guī)范性程序功能描述程序升級(jí)版本、作者、完成日期的規(guī)范性程序升級(jí)更改的說(shuō)明2程序變量程序標(biāo)志命名的規(guī)范性

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論