<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PIC匯編編程規范

PIC匯編編程規范

作者: 時(shí)間:2013-05-04 來(lái)源:網(wǎng)絡(luò ) 收藏

2. 標志注釋?zhuān)?P>l 應分別說(shuō)明邏輯0和邏輯1代表何種狀態(tài)或功能

l 注明軟件標志的變化時(shí)刻

l 如果程序通過(guò)判斷該標志決定程序走向,應說(shuō)明走向程序執行的功能。

l 當標志位發(fā)生變化時(shí),應注釋變化意義。當標志復用時(shí),應標識標志的生命周期,用戶(hù)關(guān)系。當程序升級增加或刪除的變量時(shí),該標志的意義是什么?是否需要初始化?注釋?xiě)ò姹咎枴?P>六.程序編寫(xiě)規則

1.程序功能模塊應相對獨立。

2.有關(guān)聯(lián)的模塊應安排在ROM空間靠近的地方。

3.程序須翻頁(yè)時(shí),頻繁調用的程序盡量安排在第一頁(yè),關(guān)聯(lián)的模塊應安排在同一頁(yè),不被常調用的程序盡量安排在第二頁(yè)。

4.進(jìn)入中斷時(shí),應保護中斷現場(chǎng)。中斷返回時(shí)應恢復中斷現場(chǎng)。當中斷有幾個(gè)分支時(shí),應分別中斷返回

5.不允許在不同子程序之間互相跳轉。

6.對于一個(gè)子程序或中斷子程序,應避免程序執行不同的出口,如果可能,最好只有一個(gè)出口。

7.程序調用子程序層數不宜太多,調用語(yǔ)句與子程序返回語(yǔ)句應配對。當子程序有幾個(gè)分支時(shí),應分別子程序返回。

8.使用復用標志和寄存器時(shí),應注意其生命周期,避免互相影響。

七.程序自動(dòng)設置規定

為了單片機設置位的燒寫(xiě),特做如下補充規定:

1. 在編制程序時(shí),在程序開(kāi)始應明確所使用的單片機并調入相應頭文件,同時(shí)編寫(xiě)設置位。如:

LIST P=16C73B ;明確使用的單片機

#include ;調入16C73B頭文件

__CONFIG _CP_OFF _WDT_ON _BODEN_ON _PWRTE_ON _XT_OSC

;設置為:代碼保密 OFF,看門(mén)狗 ON,掉電檢測 ON,上電延時(shí)ON,晶振 XT

八.匯編程序審核

在程序測試前,應進(jìn)行審核。程序審核采用由編程者口頭宣講程序結構,講解程序必要時(shí)軟仿運行關(guān)鍵程序的形式,審核主要內容如下:

1.程序命名是否

2.程序頭格式是否規范

3.程序變量命名是否規范

4.程序格式書(shū)寫(xiě)是否規范

5.程序注釋是否規范

6.程序編程是否符合規范

7.對照程序流程圖審核程序與流程圖的符合性

8.升級程序調試完畢后應按照更改標識恢復原文件與升級前的程序版本進(jìn)行HEX文件的比較驗證,應校驗通過(guò):

9.重點(diǎn)仿真運行重要的時(shí)序、關(guān)鍵算法等程序。

10. 檢查是否可以自動(dòng)設置燒寫(xiě)位。

B.子程序注釋

子程序前應加注釋?zhuān)⑨寫(xiě)ㄒ韵聨讉€(gè)方面:功能說(shuō)明、入口條件、出口信息、影響資源、執行時(shí)間。(根據實(shí)際情況可刪減)

1. 功能:說(shuō)明該子程序的作用,如果該子程序內部有選擇性執行功能,應分別說(shuō)明在什么情況下完成什么功能。

2. 入口條件:設計輸入的參數說(shuō)明。有的子程序不需要入口條件,如固定延時(shí)子程序。

3. 出口信息:子程序執行完畢時(shí)留下的現場(chǎng)有用信息,這中間有運算結果的存放地址、存放格式、輸出的特征格式(如出錯信息)的存放地址和格式。

4. 子程序調用:說(shuō)明本子程序還要調用哪些低級子程序,將其標號一一列出。

5. 影響資源:子程序在執行過(guò)程中,必然要動(dòng)用若干寄存器或位單元,使它們的內容在子程序執行后有可能發(fā)生變化,這些寄存器或位單元即為受影響的資源,應一一列出。

6. 執行時(shí)間:在一些實(shí)時(shí)控制系統中,對程序的運行速度有嚴格要求,這時(shí)應標明程序執行時(shí)間。當子程序有各種分支轉移時(shí),子程序的執行時(shí)間可能是不定的,這時(shí)應計算出最短執行時(shí)間和最長(cháng)執行時(shí)間,并按概率統計的方法核算出平均執行時(shí)間。為主程序調整運行節奏提供參考數據。

C.程序分支、I/O注釋

1.如果程序執行GOTO、BTFSS、BTFSC、CALL語(yǔ)句,應注釋執行程序分支的功能。

2.相對獨立的功能前面應注釋實(shí)現功能的算法。

3.關(guān)鍵I/O口變化,重要時(shí)序、定時(shí),關(guān)鍵參數應加注釋。

D.程序升級標識

1)對于新增的程序語(yǔ)句,應該分別在其開(kāi)始、結束位置注明與修改注釋內容相對應的更改版本號的第幾項內容的第幾處。例如:

movfw classl ;從EEPROM中取出的靈敏度級別數(五位三進(jìn)制)(Ver105,0701開(kāi)始)

該語(yǔ)句的文字注釋內容的含義是:從該語(yǔ)句起為新增的內容——程序升級Ver105中第7項修改內容所涉及的第1處。

2) 對于更改(包括刪除)的程序語(yǔ)句,應注明更改前及更改后的不同之處,如有必要還需注明更改的原因。例如:

movlw .9 ;自校驗數據由8種改為9種,增加靈敏度級別數的校驗(更改內容Ver105,0901)

該語(yǔ)句的文字注釋內容的含義是:該語(yǔ)句為更改的內容——更改前為8,更改后為9,更改的原因是增加靈敏度級別數的校驗,同時(shí)還注明了該更改是程序升級Ver105中第9項修改內容所涉及的第1處。

晶振相關(guān)文章:晶振原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: PIC 匯編編程 規范

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>