设计与开发

单片机程序编码 单片机软件编码规则介绍

小编 2024-10-09 设计与开发 23 0

单片机软件编码规则介绍

单片机软件编码规范是为了保证单片机系统软件可读性、可维护性、稳健性和跨平台性而建立的标准。以下是单片机软件编码规范的详细介绍:

1. 命名规则:变量、函数、宏等的命名应遵循清晰、表意、简短的原则。命名应采用英文小写字母+下划线的方式。同时,驼峰命名法可以有效提高代码可读性。

2. 编码样式规范:提高代码的可读性和易于维护性,推荐使用以下编码样式:

(1) 所有大括号独占一行。

(2) 所有语句以分号结束。

(3) 在二元操作符两边加空格。

(4) 在函数名和接口之间加空格,例如:Function_Name (param1, param2);

(5) 将 if、for、while 等的参数用括号包括起来。

(6) 缩进量固定,最好是 4 个空格。

3. 变量和函数定义规范:没有必要定义未使用的变量,应删除无用的代码,确保代码干净整洁。函数定义的参数应确定其类型,包括输入参数、输出参数和返回值类型。

4. 代码实现规范:

(1) 优先使用局部变量,而非全局变量。

(2) 尽量不使用 goto 语句,防止产生不可控制的逻辑。

(3) 及时地处理所有错误和异常,并养成记录日志的好习惯。

(4) 检查程序是否符合消除警告级别的编译器标准等编译器标准。

(5) 注释必要的语句,包括变量、函数、方法、行为等的解释。

5. 版本控制:使用版本控制软件,例如 Git,来跟踪代码版本。当多个开发人员在项目上工作时,版本控制工具可以确保每个开发人员对相同代码进行工作,并可调换代码。

6. 单元测试:测试是软件开发过程中的一个重要阶段。单元测试可以在整个开发周期中的更早阶段捕获和纠正逻辑缺陷。

综上所述,符合单片机软件编码规范的程序应遵循一些常规标准,旨在改善代码质量、可读性、可维护性和可再利用性。

单片机编码及译码器工作原理分析

我们把所使用的每一种二进制代码状态都赋于特定的含义,表示一个特定的信号或对象,叫编码。如用四位二进制数的0000~1001这十种状太,分别表示0~9这十个十进制数码,称为8421编码。反过来把代码的特定含义翻译出来,称为译码。

计算机在处理各种文字符号或数码时,必须把这些信息进行二进制编码,在编码时所使用的第一种二进制代码状态都赋予了特定的含义,即表示一个确定的信号或者对象,实现这种功能的电路叫编码器,如用于键盘的BCD码,ASCII码编码器等。

单片机外围电路用译码器较多,所以在这节课我们主要与大家一起来学习下译码器的工作原理,把代码的含义‘翻译’成相应的输出信号,以表示其原意。其功能恰恰与编码器相反。

译码器可以将输入代码的状态翻译成相应的输出信号,以高、低电平的形式在各自的输出端口送出,以表示其意愿。译码器有多个输入端和多个输出端。假如输入的端个数为,每个输出端只能有两个状态,则输出端个数最多有2n个。常用译码器输入、输出端头数来称呼译码器,如3线-8线译码器,4线-10线译码器等。我们经常用到的74138就是一个三线-八线译码器,

编码、译码的概念我们了解下,下面我们就来重点来讲一下三-八译码器的工作原理,这在我们51单片机的接口电路中也是经常用到的。

从上图可看出,74138有三个输入端:A0、A1、A2和八个输出端Q0~Q7。当输入端A0、A1、A2的编码为000时,译码器输出为Q0=0,而Q1~Q7=1。即Q0对应于A0、A1、A2为000状态,低电平有效。A0、A1、A2的另外7种组合见后面的真值表。

图中S1、S2、S3为使能控制端,起到控制译码器是否能进行译码的作用。只有S1为高电平,S2、S3均为低电平时,才能进行译码,否则不论输入羰输入为何值,每个输出端均为1。

下图是输入端A0、A1、A2为000,控制端S1=1、S1=0、S2=0的电平示意图(红色数字为端口电平),也可以分析输出端另外七种组合时的输出情况。

相关问答

单片机 有编号吗?

单片机是一种集成电路芯片,它通常由微处理器核心、存储器、输入输出接口等组成,用于控制和执行各种任务。单片机的生产厂家通常会给每个型号的芯片赋予一个特...

单片机 步进电机 编码 是什么意思?

这里的编码指的是驱动电机的I/O口状态。比如用P0.0到P0.3四个端口去控制电机的4个线圈(4相),并分别对应线圈A、B、C、D,则P0=0x00时,电机无电,P0=0x01时,A...

什么是 单片机 十进制?

单片机十进制是指十进制数在单片机中的使用。十进制数,N(D)符号集:0~9;规则:逢十进一;十进制数的后缀为D但可省略;十进制数可用加权展开式表示,例...单...

单片机 中8*8点阵中汉字的 编码 是怎么获得的?

8*8造汉字很困难的,你可以找一个8*8的汉字库(如果有的话),用字模提取软件(网上很多的)获取点阵字库数据,之后写入这个8*8点阵就OK了。8*8造汉字很困难的,你可...

请问大神 单片机 中的地址是什么意思,什么叫位寻址和字寻址?

在单片机中,地址是数据存放的具体存储单元位置。一般用16进制(或二进制、8进制)数来表示(下同)。位地址则是一个二进制位存放的具体物理单元位置,每一个二...

单片机 怎样获取卷帘门遥控器的 编码 ?

要获取卷帘门遥控器的编码,单片机需要与遥控器进行通信。通常,卷帘门遥控器会使用红外线(IR)或无线电信号进行通信。下面我将分别介绍两种通信方式:红外线...

51 单片机 外部存储器地址编号为什么是16位的?

51单片机外部存储器地址编号为16位的原因是因为51单片机的地址总线宽度为16位。地址总线用于传输地址信息,它决定了单片机可以寻址的存储器空间大小。在51单片...

51 单片机 怎样处理偏移二进制 编码 ?

以8位二进制数来说明。看看插图,即可知道如何处理了。看出来了吗?只要把符号位取反,就大功告成了。这是多么简单的事!以8位二进制数来说明。看看插图,即可...

不同编程语言最终生成的机器码是否一样?

比如说一个简单的两个数相加,最终都调用同一条硬件指令来完成。可能机器码的差异会比较小。但是尽管如此简单的程序,不同编译器生成的机器码完全一样的可能性...

我可以问个问题么。就是 单片机 的IO口( P0,P1,P2,P3),在进行十六进制 编码 的时候,高四位,低四位是怎么看的。比如说P0口,八个引脚,P0.0 -P0.3,P0.4-P0.7对应一个十六进制的数比如0x31,“3”是高四位么,对应P0哪几个引脚呢,这里面有什么对应规则原理?

猜你喜欢