当前位置:首页 > 单片机 > 单片机
[导读] 现在单片机的程序设计,C51已经得到广泛的推广和应用,算是单片机的主流设计程序,甚至可以说作为单片机开发人员必须要掌握的一门语言了。作为一门工具,最终的目的就是实现功能。在满足这个前提条件

现在单片机的程序设计C51已经得到广泛的推广和应用,算是单片机的主流设计程序,甚至可以说作为单片机开发人员必须要掌握的一门语言了。

作为一门工具,最终的目的就是实现功能。在满足这个前提条件下,我们希望我们的程序能很容易地被别人读懂,或者能够很容易地读懂别人的程序,在团体合作开发中就能起到事半功倍之效。在网上请求帮助时,如能以规范的写法贴出程序,网友会比较容易地明白你的问题,则会比较快的得到网友的帮助,否则让人看上半天也不明所以然,这样就达不到预期的效果了。因此,为了便于源程序的交流,减少合作开发中的障碍,希望大家能够探讨一下C51的编程规范。把各人认为好的建议提出来,然后做一个总结,作为一种大家一致认同的规范,我认为将会是一件很有意义的事。我先提出一些自已的想法,以此抛砖引玉。

一、注释

1,采用中文;
2,开始的注释:

文件(模块)注释内容:
公司名称、版权、作者名称、修改时间、模块功能、背景介绍等,复杂的算法需要加上流程说明;

比如:
/*********************************************************************/
/*公司名称:*/

/*模块名:LCD模块LCD型号:HD44780*/
*/
/*功能描述:*/
/*其他说明:*/
/*版本:
/**********************************************************************/

函数开头的注释内容:
函数名称、功能、说明输入、返回、函数描述、流程处理、全局变量、调用样例等,复杂的函数需要加上变量用途说明;

/*********************************************************************
*
*函数名:v_LcdInit
*功能描述:LCD初始化
*函数说明:初始化命令:0x3c,0x08,0x01,0x06,0x10,0x0c
*调用函数:v_Delaymsec(),v_LcdCmd()
*全局变量:
*输入:无
*返回:无
*版本:
***********************************************************************/

3、程序中的注释内容:

修改时间和作者、方便理解的注释等。注释内容应简炼、清楚、明了,一目了然的语句不加注释。

二、命名:

命名必须具有一定的实际意义。

1、常量的命名:全部用大写。

2、变量的命名:
变量名加前缀,前缀反映变量的数据类型,用小写,反映变量意义的第一个字母大写,其他小写。
其中变量数据类型:
unsignedchar前缀ucsignedchar前缀sc
unsignedint前缀uisignedint前缀si
unsignedlong前缀ulsignedlong前缀sl
bit前缀b指针前缀p

例:ucReceivData接收数据
3、结构体命名:

4、函数的命名:
函数名首字大写,若包含有两个单词的每个单词首字母大写。
函数原型说明包括:引用外来函数及内部函数,外部引用必须在右侧注明函数来源:模块名及文件名,内部函数,只要注释其定义文件名;

三、编辑风格

1、缩进:缩进以Tab为单位,一个Tab为四个空格大小。预处理语句、全局数据、函数原型、标题、附加说明、函数说明、标号等均顶格书写。语句块的“{”“}”配对对齐,并与其前一行对齐;

2、空格:数据和函数在其类型,修饰名称之间适当空格并据情况对齐。关键字原则上空一格,如:
if(...)等,运算符的空格规定如下:“->”、“[”、“]”、“++”、“--”、“~”、“!”、“+”、“-”(指正负号),“&”(取址或引用)、“*”(指使用指针时)等几个运算符两边不空格(其中单目运算符系指与操作数相连的一边),其它运算符(包括大多数二目运算符和三目运算符“?:”两边均空一格,“(”、“)”运算符在其内侧空一格,在作函数定义时还可据情况多空或不空格来对齐,但在函数实现时可以不用。“,”运算符只在其后空一格,需对齐时也可不空或多空格,对语句行后加的注释应用适当空格与语句隔开并尽可能对齐。

3、对齐:原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在“,”处或运算符处,换行后最好以运算符打头,并且以下各行均以该语句首行缩进,但该语句仍以首行的缩进为准,即如其下一行为“{”应与首行对齐。

4、空行:程序文件结构各部分之间空两行,若不必要也可只空一行,各函数实现之间一般空两行

5、修改:版本封存以后的修改一定要将老语句用/**/封闭,不能自行删除或修改,并要在文件及函数的修改记录中加以记录。

6、形参:在定义函数时,在函数名后面括号中直接进行形式参数说明,不再另行说明。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

写一篇关于“PLC程序设计方法与技巧”的文章3000字可能内容过多,我可以为您提供一个文章大纲,供您参考:

关键字: PLC 程序设计 自动化

微控制器单元(Microcontroller Unit,简称MCU)芯片是一种集成了中央处理器(CPU)、存储器和各种输入输出接口的微型计算机芯片。MCU芯片广泛应用于嵌入式系统领域,具有体积小、功耗低、成本低等特点。M...

关键字: MCU器件 程序设计

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。

关键字: matlab 程序设计 计算机视觉

在单片机系统设计中,程序设计是重要的一环,它的质量直接影响到整个系统的功能。用汇编语言进行程序设计的过程和用高级语言设计程序有相似之处,其设计过程大致可以分为以下几个步骤:

关键字: 汇编语言 程序设计 单片机

摘 要:针对《计算机程序设计基础》教学中存在的具体问题,文中从教学内容、教学方法、教学模式等环节入手,在以“学生为主体,教师为主导”的教学理念指导下,整合优化教学内容,丰富教学资源,实践混合教学、分层教学等教学模式,广泛...

关键字: 程序设计 教学内容 教学模式 学科竞赛

摘 要:针对《计算机程序设计基础》教学中存在的问题,从教学内容、教学方法、教学模式等环节提出了一系列改革措施,利用多媒体技术开发了丰富的课程教学资源,满足学生在线学习的需要。从教学效果来看,这些改革措施充分激发了学生学习...

关键字: 程序设计 教学模式 教学改革 课程建设 分级教学

对,你没看错,本文就是教你怎么写出让同事无法维护的代码。 原文:http://mindprod.com/jgloss/unmain.html 译者:陈皓 (@左耳朵耗子) 译文:http:...

关键字: 代码 程序命名 程序设计

有这样一位年轻人。 他获得过百度之星程序设计大赛冠军、谷歌编程挑战赛第三名。

关键字: 编程 李开复 程序设计

pic单片机在学习和工作中均扮演着重要角色,在往期文章中,小编曾对pic单片机汇编指令加以介绍,以帮助大家更好掌握pic单片机。而在本文中,将介绍pic单片机程序设计内容,以助大家写出更为优美的pic单片机程序,主要内容...

关键字: pic单片机 单片机 程序设计

2019年,东卓公司凭借着敏锐的嗅觉、雄厚的实力和拼搏的精神,抓住发展机遇,成立了吉林省首家协作机器人生产企业——长春市遨博机器人有限公司,再度领跑行业。公司开展协作机器人的研发、生产和技术服务,为传统制造企业提供全方...

关键字: 电子设计 程序设计 smt贴装技术
关闭
关闭