教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 小学教育 >

单片机程序设计编程规范(2)

来源:网络收集 时间:2026-08-28
导读: 2.说明部分: 1)源文件说明部分位于每个源文件的最前面,主要描述:文件名、作者、生成日期、联络方式、功能描述、版本号、软硬件平台、版权说明、修改记录等的简要说明,以英文书写。 例如: /*******************

2.说明部分:

1)源文件说明部分位于每个源文件的最前面,主要描述:文件名、作者、生成日期、联络方式、功能描述、版本号、软硬件平台、版权说明、修改记录等的简要说明,以英文书写。

例如:

/*************************************************

Filename:;文件名

Author:;作者

Date:;日期

Email:;邮箱地址

Description:;功能描述

Version:;版本号

Hardware&IDE

Copyright(C),SONIXTECHNOLOGYCo.,Ltd.

History:

*************************************************/;软硬件平台;修改记录

2)子程序说明部分位于每个子程序的最前面,主要描述:子程序名称、功能、设计原理、所用变量、入口条件、出口信息、调用模块、堆栈层数、影响资源、算法简述、使用说明和修改记录等。

例如:

/**************************************************

Subroutine:;子程序名称

Description:;子程序功能的描述

Principium:;程序设计原理

Calls:;被本子程序调用的子程序清单Variables:;本子程序中所用到的临时变量

Input:;子程序调用所需要基本参数的说明Output:;子程序调用后运算结果的说明Stack:;占用的堆栈层数

History:;修改记录

*************************************************/

3.边写代码边注释,修改代码的同时修改相应注释,以保证注释与代码的一致性。不再有用的注释要删除。

4.要避免在注释中使用缩写,特别是非常用缩写。

5.程序在必要的地方必须有注释,注释要准确、易懂、简洁。注释要有意义,如果有需要,还要详细描述相关含义。

例如:

以下是无意义的注释

mova,#5;把5赋给acc

movwk00,a;把acc赋给wk00

应该如下注释:

mova,#5;设置循环次数为5次

movwk00,a

6.注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)的相邻位置,不可放在下方,如放于上方则需与其上面的代码用空行隔开。

例如:

clrwk00

;CheckReadindex=FiFoLimit

cmprsa,r;IsReadindex=Limit

jmp@f

7.注释格式尽量统一,对多行注释建议使用“/*……*/”,对单行的注释建议使用“;”。

8.注释应考虑程序易读及外观排版因素,语言尽量统一。对不能进行准确英文表达的建议使用中文。

9.对有含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其含义。

变量命名规则五、五、变量命名规则

1.变量的名称要采用有意义的英文单词小写缩写。可以采用以下几种方式进行缩写命名:

1)去掉所有不在词头的元音字母。如screen可以简写为scrn。

2)使用每个单词的头几个字母。如channelactivation可以简写为chanactiv。

3)使用变量名中具有典型意义的单词。如numberofcycle可以简写为cyclenumber。

4)去掉无用的单词后缀ing、ed等。如pagingrequest可以简写为pagreq。

5)尽量使用标准或惯用的缩写形式,缩写应该保持一致性。如serialperipheralinterface可以简写为spi。

6)部门已经完成函式的变量名称,如果没有特别原因,发展人员延续使用以增加可读性

2.

3.

4.

5.在定义部分要加入注释来说明变量的含义。变量的定义要在“.DATA“段中。变量标识符的长度不超过16个字符。程序会用到起码三种变量

1)全局变量名称前面不加任何修饰

2)局部变量利用wk00,wk01….wk0n来表示,每个独立程序里面用到的Localvar.可有效节省RAM

3)中断局部变量中断里面用的Interruptlocalvar.利用Iwk00,Iwk01以作为区隔(注意中断使用的变量必定要小心的跟主程序区隔开,不然影响系统稳定性相当大)例如:

.DATA

accbufds1;全局变量

l_numberds5;局部变量

6.位定义。程序多处会经常对寄存器的某一位进行操作,可以在变量定义时对需要用到的位进行定义,建议名称以”f_”开头。

7.临时工作寄存器的定义。程序中经常需要用到一些临时存储数据的寄存器,我们称之为临时工作寄存器,这些临时工作寄存器的命名方法为“wk”加上一个二位数字组成,这个数字可以从“00”开始随着需要定义的临时工作寄存器的数量的增加而增加。需要特别说明的是,临时工作寄存器的使用可以大量节省RAM空间,但是要注意相应的生命周期,必须在子程序退出之前,将空间释放以便其它子程序使用。

8.在中断处理程序中用到的寄存器,为了和一般的临时工作寄存器作以区分,可以在寄存器前面加英文字母“i”来命名。在使用时需要加以注意,不要和主程序中的变量复用。例如:

.DATA

wk00ds1

wk01ds1

wk02ds1

iwk00ds1;中断中要用到的临时工作寄存器iwk01ds1;中断中要用到的临时工作寄存器…

mov

mov

mov

mov

…a,rwk00,aa,wk01r,a

常量命名规则六、六、常量命名规则

1.

2.

3.

4.常量的名称要采用有意义的英文单词大写缩写。常量要定义在“.CONST“段中。在定义部分要加入注释来说明常量含义。常量标识符的长度不超过16个字符。

5.系统寄存器中常用到的某些位可以再额外进行定义,但要有意义:

P_key1EQUP1.0;P_打头表示为Port定义

Pm_key1EQUP1m.0;Pm_打头表示为Port方向定义

标号命名规则七、七、标号命名规则

1.标号的名称要采用有意义的英文单词小写缩写。

2.子程序标号定义。在同一个子程序中,所有的标号应该有规律可寻。建议第一个标号为子程序名,下面所用到的标号用子程序名添加数字表示,从而便于今后程序的添加和修改。数字尽量使用两位数,在子程序的退出位置,数字一般为”90”。

例如:

在一段按键扫描程序中,如下的标号是不可取的。

Label:

LabelOK

LabelFail

LabelQuit

Labelfun:

LabelEnd:

Ret

(设计师要花许多精神命名label,同时不容易看出子程序的结构关西,所以建议在子程序里面别在花精神命名,都用号码表示)(详细的动作都用注解来说明)

应该改为:

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

;Sub-routine,Name:label

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

Label:

IftheconditionfailthengotoLabel90

;programbeginhere

;注解都写在这里

Label20:

;最后结尾结束的label都用90当做结尾

:有助于程序的阅读

Label90:

Ret

3.为了使程序的结构更加清晰,子程序的命名要尽量能显示出相互间的调用关系。

由main主循环中直接调用的程序,要以“mn_”作为标号的开头,下面仅列出一些常用的子程序名称,其它类似情况可同样处理。

mn_app;系统应用程序

mn_intgnd;中断与主程序之间的界面子程序

mn_key;按键扫描子程序

mn_lcd;LCD显示子程序

mn_led;LED显示子程序

mn_tone;声音处理子程序

mn_eppEEPROM读写操作

mn_bio;基本输入/输出控制

mn_adc;ADC输入及处理

mn_debug;debug处理程序

4.程序的几个常用入口地址命名如下:

复位入 …… 此处隐藏:3102字,全部文档内容请下载后查看。喜欢就下载吧 ……

单片机程序设计编程规范(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/42567.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)