日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> PIC匯編編程規(guī)范

PIC匯編編程規(guī)范

關(guān)鍵字:PIC 匯編 編程規(guī)范 作者:admin 來源:不詳 發(fā)布時(shí)間:2018-05-19  瀏覽:3

一、程序命名規(guī)范

程序文件名由兩部分構(gòu)成:一部分為產(chǎn)品型號或功能描述,一部分為軟件版本號。產(chǎn)品型號用字母描述,可為英文或中文拼音。軟件版本號為4位,前一位固定為字母”V”,后3位為數(shù)字,編寫軟件版本號應(yīng)按照從小到大的順序遞增。開發(fā)階段版本號從001開始;中試之后版本號從100開始。

例如:光電感煙探測器JTY-GD-G3程序 GDG3V001

電子差定溫探測器JTW-ZCD-G3N程序 GWG3NV101

二、程序頭格式

在每個(gè)文件的開始要有一個(gè)對該文件總體功能的描述,軟件版本,以及作者及編寫時(shí)間。采用模版統(tǒng)一格式。

1. 在功能描述中,除了對軟件實(shí)現(xiàn)的功能做簡要描述外,還應(yīng)包括使用的單片機(jī),晶振頻率,以及主要I/O口實(shí)現(xiàn)的功能。

2. 如果程序升級時(shí)應(yīng)增加如下說明。

1) 程序升級后的版本號:例如“版本號:Ver105”

2) 程序升級的修改作者:例如“更改人:×××”

3) 程序升級的修改日期:例如“更改日期:01 12 17”

4) 應(yīng)對程序升級進(jìn)行簡單修改說明。

5) 應(yīng)給出程序增加、更改、刪除項(xiàng)說明,每項(xiàng)總處數(shù)。

1.

程序頭如采用如下統(tǒng)一格式:

;****************

;* 文件名 *

;****************

;* 功能描述:

;* 軟件版本

;* 開始編寫—完成日期:

;* 作者:

三、子程序、標(biāo)號及變量命名規(guī)則(推薦)

1.子程序及標(biāo)號命名規(guī)則

子程序命名應(yīng)使用相關(guān)含義英文。子程序入口標(biāo)號應(yīng)使用子程序名相關(guān)含義、常用的英語單詞(拼音)或單詞(拼音)縮寫。如果一個(gè)英語單詞表述不清,應(yīng)使用多個(gè)英語單詞縮寫表示。程序里邊的標(biāo)號應(yīng)與執(zhí)行該分支功能相關(guān)含義、常用的英語單詞(拼音)或單詞(拼音)縮寫,如果沒有確切含義,應(yīng)優(yōu)先選用子程序入口標(biāo)號前面字母縮寫加兩位序號。

2.變量命名規(guī)則

標(biāo)志寄存器使用相關(guān)含義、常用的英語單詞英文+ Flag;暫用寄存器使用:暫存對象英文縮寫+Temp;計(jì)數(shù)寄存器使用暫存對象英文縮寫+ Numb;其它寄存器:與存放對象相關(guān)含義、常用的英語單詞(拼音)或單詞(拼音)縮寫。

3. 標(biāo)志位命名規(guī)則

標(biāo)志對象相關(guān)含義、常用的英語單詞(拼音)縮寫。

四、程序格式書寫規(guī)范

匯編語言的格式為:

[標(biāo)號] <指令助記符> [操作數(shù)] ;[注釋]

編程時(shí)為了程序結(jié)構(gòu)清楚,要求如下:

1. 四個(gè)部分之間以tab鍵分隔(tab鍵定義為8個(gè)空格),而不使用空格。

2. 對于相同的部分要求上下對齊。

3. 標(biāo)號后必須跟冒號(:)

4. 雖然標(biāo)號中的字母大小寫表示不同的含義,但不允許用同樣的字符定義兩個(gè)不同的標(biāo)號。

5. 操作數(shù)的第一個(gè)字母要求大寫,其余字符小寫;如果操作數(shù)為常量,要求第一個(gè)大寫的字符為“C“。

6. 注釋要求使用中文。

五.程序注釋

A.變量及軟件標(biāo)志注釋

對于標(biāo)志寄存器、全局變量和關(guān)鍵的標(biāo)志位應(yīng)加注釋,說明如下:

1. 變量注釋:

l 寫清變量在程序中起的作用

l 注明變化時(shí)刻。

l 當(dāng)使用復(fù)用變量時(shí),應(yīng)注釋變量生命周期。

l 程序升級所涉及到的變量的增加、改變或者刪除。該變量的用途是什么?是否需要初始化? 注釋應(yīng)包括版本號。

2. 標(biāo)志注釋:

l 應(yīng)分別說明邏輯0和邏輯1代表何種狀態(tài)或功能

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

l 如果程序通過判斷該標(biāo)志決定程序走向,應(yīng)說明走向程序執(zhí)行的功能。

l 當(dāng)標(biāo)志位發(fā)生變化時(shí),應(yīng)注釋變化意義。當(dāng)標(biāo)志復(fù)用時(shí),應(yīng)標(biāo)識標(biāo)志的生命周期,用戶關(guān)系。當(dāng)程序升級增加或刪除的變量時(shí),該標(biāo)志的意義是什么?是否需要初始化?注釋應(yīng)包括版本號。

六.程序編寫規(guī)則

1.程序功能模塊應(yīng)相對獨(dú)立。

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

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

4.進(jìn)入中斷時(shí),應(yīng)保護(hù)中斷現(xiàn)場。中斷返回時(shí)應(yīng)恢復(fù)中斷現(xiàn)場。當(dāng)中斷有幾個(gè)分支時(shí),應(yīng)分別中斷返回

5.不允許在不同子程序之間互相跳轉(zhuǎn)。

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

7.程序調(diào)用子程序?qū)訑?shù)不宜太多,調(diào)用語句與子程序返回語句應(yīng)配對。當(dāng)子程序有幾個(gè)分支時(shí),應(yīng)分別子程序返回。

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

七.程序自動(dòng)設(shè)置規(guī)定

為了規(guī)范PIC單片機(jī)設(shè)置位的燒寫,特做如下補(bǔ)充規(guī)定:

1. 在編制程序時(shí),在程序開始應(yīng)明確所使用的單片機(jī)并調(diào)入相應(yīng)頭文件,同時(shí)編寫設(shè)置位。如:

LIST P=16C73B ;明確使用的單片機(jī)

#include;調(diào)入PIC16C73B頭文件

__CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _XT_OSC

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

八.匯編程序?qū)徍艘?guī)范

在程序測試前,應(yīng)進(jìn)行審核。程序?qū)徍瞬捎糜删幊陶呖陬^宣講程序結(jié)構(gòu),講解程序必要時(shí)軟仿運(yùn)行關(guān)鍵程序的形式,審核主要內(nèi)容如下:

1.程序命名是否規(guī)范

2.程序頭格式是否規(guī)范

3.程序變量命名是否規(guī)范

4.程序格式書寫是否規(guī)范

5.程序注釋是否規(guī)范

6.程序編程是否符合規(guī)范

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

8.升級程序調(diào)試完畢后應(yīng)按照更改標(biāo)識恢復(fù)原文件與升級前的程序版本進(jìn)行HEX文件的比較驗(yàn)證,應(yīng)校驗(yàn)通過:

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

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

B.子程序注釋

子程序前應(yīng)加注釋,注釋應(yīng)包括以下幾個(gè)方面:功能說明、入口條件、出口信息、影響資源、執(zhí)行時(shí)間。(根據(jù)實(shí)際情況可刪減)

1. 功能:說明該子程序的作用,如果該子程序內(nèi)部有選擇性執(zhí)行功能,應(yīng)分別說明在什么情況下完成什么功能。

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

3. 出口信息:子程序執(zhí)行完畢時(shí)留下的現(xiàn)場有用信息,這中間有運(yùn)算結(jié)果的存放地址、存放格式、輸出的特征格式(如出錯(cuò)信息)的存放地址和格式。

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

5. 影響資源:子程序在執(zhí)行過程中,必然要?jiǎng)佑萌舾杉拇嫫骰蛭粏卧顾鼈兊膬?nèi)容在子程序執(zhí)行后有可能發(fā)生變化,這些寄存器或位單元即為受影響的資源,應(yīng)一一列出。

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

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

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

2.相對獨(dú)立的功能前面應(yīng)注釋實(shí)現(xiàn)功能的算法。

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

D.程序升級標(biāo)識

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

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

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

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

movlw .9 ;自校驗(yàn)數(shù)據(jù)由8種改為9種,增加靈敏度級別數(shù)的校驗(yàn)(更改內(nèi)容Ver105,0901)

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

編輯:admin  最后修改時(shí)間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

嘉善县| 措勤县| 磴口县| 克拉玛依市| 烟台市| 寿光市| 莱州市| 工布江达县| 乐平市| 卢龙县| 巫山县| 鄂托克旗| 密山市| 共和县| 湘乡市| 河曲县| 那坡县| 唐海县| 吉水县| 申扎县| 昌平区| 盐城市| 佛山市| 普格县| 蒲城县| 伊宁县| 香港 | 五原县| 开鲁县| 台南县| 佛教| 莫力| 崇左市| 福泉市| 盈江县| 崇左市| 虹口区| 延边| 社旗县| 长春市| 永靖县|