PIC汇编编程规范
2. 标志注释:
l 应分别说明逻辑0和逻辑1代表何种状态或功能
l 注明软件标志的变化时刻
l 如果程序通过判断该标志决定程序走向,应说明走向程序执行的功能。
l 当标志位发生变化时,应注释变化意义。当标志复用时,应标识标志的生命周期,用户关系。当程序升级增加或删除的变量时,该标志的意义是什么?是否需要初始化?注释应包括版本号。
六.程序编写规则
1.程序功能模块应相对独立。
2.有关联的模块应安排在ROM空间靠近的地方。
3.程序须翻页时,频繁调用的程序尽量安排在第一页,关联的模块应安排在同一页,不被常调用的程序尽量安排在第二页。
4.进入中断时,应保护中断现场。中断返回时应恢复中断现场。当中断有几个分支时,应分别中断返回
5.不允许在不同子程序之间互相跳转。
6.对于一个子程序或中断子程序,应避免程序执行不同的出口,如果可能,最好只有一个出口。
7.程序调用子程序层数不宜太多,调用语句与子程序返回语句应配对。当子程序有几个分支时,应分别子程序返回。
8.使用复用标志和寄存器时,应注意其生命周期,避免互相影响。
七.程序自动设置规定
1. 在编制程序时,在程序开始应明确所使用的单片机并调入相应头文件,同时编写设置位。如:
LIST P=16C73B ;明确使用的单片机
#include
__CONFIG _CP_OFF _WDT_ON _BODEN_ON _PWRTE_ON _XT_OSC
;设置为:代码保密 OFF,看门狗 ON,掉电检测 ON,上电延时ON,晶振 XT
八.汇编程序审核规范
在程序测试前,应进行审核。程序审核采用由编程者口头宣讲程序结构,讲解程序必要时软仿运行关键程序的形式,审核主要内容如下:
1.程序命名是否规范
2.程序头格式是否规范
3.程序变量命名是否规范
4.程序格式书写是否规范
5.程序注释是否规范
6.程序编程是否符合规范
7.对照程序流程图审核程序与流程图的符合性
8.升级程序调试完毕后应按照更改标识恢复原文件与升级前的程序版本进行HEX文件的比较验证,应校验通过:
9.重点仿真运行重要的时序、关键算法等程序。
10. 检查是否可以自动设置烧写位。
B.子程序注释
子程序前应加注释,注释应包括以下几个方面:功能说明、入口条件、出口信息、影响资源、执行时间。(根据实际情况可删减)
1. 功能:说明该子程序的作用,如果该子程序内部有选择性执行功能,应分别说明在什么情况下完成什么功能。
2. 入口条件:设计输入的参数说明。有的子程序不需要入口条件,如固定延时子程序。
3. 出口信息:子程序执行完毕时留下的现场有用信息,这中间有运算结果的存放地址、存放格式、输出的特征格式(如出错信息)的存放地址和格式。
4. 子程序调用:说明本子程序还要调用哪些低级子程序,将其标号一一列出。
5. 影响资源:子程序在执行过程中,必然要动用若干寄存器或位单元,使它们的内容在子程序执行后有可能发生变化,这些寄存器或位单元即为受影响的资源,应一一列出。
6. 执行时间:在一些实时控制系统中,对程序的运行速度有严格要求,这时应标明程序执行时间。当子程序有各种分支转移时,子程序的执行时间可能是不定的,这时应计算出最短执行时间和最长执行时间,并按概率统计的方法核算出平均执行时间。为主程序调整运行节奏提供参考数据。
C.程序分支、I/O注释
1.如果程序执行GOTO、BTFSS、BTFSC、CALL语句,应注释执行程序分支的功能。
2.相对独立的功能前面应注释实现功能的算法。
3.关键I/O口变化,重要时序、定时,关键参数应加注释。
D.程序升级标识
1)对于新增的程序语句,应该分别在其开始、结束位置注明与修改注释内容相对应的更改版本号的第几项内容的第几处。例如:
movfw classl ;从EEPROM中取出的灵敏度级别数(五位三进制)(Ver105,0701开始)
该语句的文字注释内容的含义是:从该语句起为新增的内容——程序升级Ver105中第7项修改内容所涉及的第1处。
2) 对于更改(包括删除)的程序语句,应注明更改前及更改后的不同之处,如有必要还需注明更改的原因。例如:
movlw .9 ;自校验数据由8种改为9种,增加灵敏度级别数的校验(更改内容Ver105,0901)
该语句的文字注释内容的含义是:该语句为更改的内容——更改前为8,更改后为9,更改的原因是增加灵敏度级别数的校验,同时还注明了该更改是程序升级Ver105中第9项修改内容所涉及的第1处。
晶振相关文章:晶振原理
评论