设计与开发

单片机basic 单片机编程语言都有哪些?

小编 2024-11-24 设计与开发 23 0

单片机编程语言都有哪些?

  单片机虽然是计算机技术中的一个小分支,但是其在电子产品领域中的发挥的作用是无可替代的。可以说单片机的出现丰富了电子产品的功能,为智能化电子设备的开发和应用提供了全新的出路,推动电子设备的智能化发展。单片机能够实现各种智能功能,前提都是需要进行编程。对于单片机初学者来说,面对那么多的单片机语言,也是模糊不清,单片机编程语言都有哪些?本文将为你详细介绍。

  从单片机的发展历程来看,主要经过了三大时期,单片机编程语言经历过更新换代,主要有以下四种:

单片机编程语言

  (1)C语言

  单片机C语言是一种编译语言,具有编译语言的特点。C语言具有功能丰富的库函数、计算速度快、编译效率高、可移植性好,可直接控制系统。此外,C语言程序具有完整的程序模块结构,为软件开发中模块化程序设计方法的使用提供了有力的保证。

  (2)汇编语言

  编码语言是一种使用助记符来表示机器指令的符号语言。它是最接近的一种语言。它的主要优点是占用资源少,程序执行效率高。因为它有一个指令,所以每个指令都很清晰,堆叠和调整都很容易控制,调试也很方便。但是不同类型的单片机可能有不同的编码语言,所以不容易移植。很像电影机的编程语言,指的是系统比第一代好,但是不同存储区域的编程变得复杂,但是作为一个电子工程师,懂得编译语言可以帮助你理解影响任何语言效率的特殊规则。例如,如果你知道如何编译语言指令,你可以在电影中使用RAM作为变量,因为外部变量需要几个指令来设置添加和数据针来访问。同样的要求是使用浮点,只有在启用函数时才能避免编程经验,避免生成和效率低下。对于电影机的编程语言,没有大致的编程顺序。

  (3)PL/M编程语言

  P/M是一种具有L/M语言的高级语言,不仅具有L/M语言的高级汇编,而且直接利用CPU的硬件特性进行编程。因此,与其他高级语言相比,它具有更多的功能和更广泛的应用,尤其是在16台单片机的应用领域。但对于51位单片机,P/M系列不支持复杂的算术操作、浮点变量和丰富的库函数支持。学习PL/M相当于学习新语言,这需要更多的时间和精力。

  (4)BASIC编程语言

  BASIC是一种高级语言,其英文意思是初学者通用符号代码。在过去的几十年里,BASIC语言被认为是初学者编程的语言,已经从QBASIC发展到很多版本,有很多结构化的思维和编程方法,比如函数、模块、局部变量、全局变量、数据传输等。早期BASIC语言的执行效率较低,因为生成的代码不是最终目标机器的代码,而是经过RUNTIME程序解释后运行的,但这种逐行解释的方法很容易在程序中发现错误,而不是在程序执行后出现。单片机的BASIC编译器直接将程序代码编译成相应芯片的机器代码,RUNTIME程序不需要停留在单片机的内存中,执行效率与其他编译器编译的相同。此外,初学者还需要注意,BASIC使用浮点值来简化使用变量。

引用:单片机编程语言都有哪些-深圳宇凡微

单片机常用名词解释与常用逻辑电路

MCS-51系列单片机

MCS-51系列单片机分为两大系列,即51子系列与52子系列。

51子系列:基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、8951

52子系列:增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952

这两大系列单片机的主要硬件特性如下表:

从上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。51系列的中断源为5个,52系列的中断源为6个。

8051与80C51的区别:

80C51单片机是在8051的基础上发展起来的,也就是说在单片机的发展过程中是先有8051,然后才有80C51的。

8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反过来,在89C51下开发的软件也可以在8051上应用。这两种单片机是完全可移植的。

既然这两种单片机外形及内部结构都一样,那它们之间的主要差别在哪里呢?

8051与80C51单片机的主要差别就在于芯片的制造工艺上。80C51的制造工艺是在8051基础上进行了改进。

8051系列单片机采用的是HMOS工艺:高速度、高密度;

80C51系列单片机采用的是CHMOS工艺:高速度、高密度、低功耗;

也就是说80C51单片机是一种低功耗单片机。

单片机常用名词解释

总线: 指能为多个部件服务的信息传送线,在微机系统中各个部件通过总线相互通信。

地址总线(AB): 地址总线是单向的,用于传送地址信息。地址总线的宽度为16位,因此基外部存储器直接寻址64K,16位地址总线由P0口经地址锁存器提供低8位地址(A0~A7),P2口直接提供高8位地址(A8~A15)。

数据总线(DB): 一般为双向,用于CPU与存储器,CPU与外设、或外设与外设之间传送数据信息(包括实际意义的数据和指令码)。数据总线宽度为8位,由P0口提供。

控制总线(CB): 是计算机系统中所有控制信号的总称,在控制总线中传送的是控制信息。由P3口的第二功能状态和4根独立的控制总线,RESET、EA、ALE、PSEN组成。

存储器: 用来存放计算机中的所有信息:包括程序、原始数据、运算的中间结果及最终结果等。

只读存储器(ROM):只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。ROM按存储信息的方法又可分为以下几种:

1、掩膜ROM:

掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用户不能更改内部程序,其特点是价格便宜。

2、可编程的只读存储器(PROM):

它的内容可由用户根据自已所编程序一次性写入,一旦写入,只能读出,而不能再进行更改,这类存储器现在也称为OTP(Only Time Programmable)。

3、可改写的只读存储器EPROM:

前两种ROM只能进行一次性写入,因而用户较少使用,目前较为流行的ROM芯片为EPROM。因为它的内容可以通过紫外线照射而彻底擦除,擦除后又可重新写入新的程序。

4、可电改写只读存储器(EEPROM):

EEPROM可用电的方法写入和清除其内容,其编程电压和清除电压均与微机CPU的5V工作电压相同,不需另加电压。它既有与RAM一样读写操作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。现在这种存储器的使用最为广泛。

5、随机存储器(RAM):

这种存储器又叫读写存储器。它不仅能读取存放在存储单元中的数据,还能随时写入新的数据,写入后原来的数据就丢失了。断电后RAM中的信息全部丢失。因些,RAM常用于存放经常要改变的程序或中间计算结果等信息。

RAM按照存储信息的方式,又可分为静态和动态两种。

①静态SRAM: 其特点是只要有电源加于存储器,数据就能长期保存。

②动态DRAM: 写入的信息只能保存若干ms时间,因此,每隔一定时间必须重新写入一次,以保持原来的信息不变。

6、可现场改写的非易失性存储器:

这种存储器的特点是:从原理上看,它们属于ROM型存储器,从功能上看,它们又可以随时改写信息,作用又相当于RAM。所以,ROM、RAM的定义和划分已逐渐的失去意义。

①快擦写存储器(FLASH)

这种存储器是在EPROM和EEPROM的制造基础上产生的一种非易失性存储器。其集成度高,制造成本低于DRAM,既具有SRAM读写的灵活性和较快的访问速度,又具有ROM在断电后可不丢失信息的特点,所以发展迅速。

②铁电存储器FRAM

它是利用铁电材料极化方向来存储数据的。它的特点是集成度高,读写速度快,成本低,读写周期短。

时钟周期:计算机在时钟信号的作用下,以节拍方式工作。因此必须有一个时钟发生电路,输入微处理器的时钟信号的周期称为时钟周期。

机器周期:机器完成一个动作所需的时间称为机器周期,一般由一个或一个以上的时钟周期组成。在我们讲述的MCS-51系列单片机中,一个机器周期由12个时钟周期组成。

指令周期:执行一条指令(如“MOV A,#34H”,该指令的含义是将立即数34H传送到微处理器内的累加器A中)所需时间称为指令周期,它由一个到数个机器周期组成。指令周期的长短取决于指令的类型,即指令将要进行的操作步聚及复杂程度。

汇编: 是能完成一定任务的机器指令的集合。

二进制数: 只有0和1两个数码,基数为二。

16进制数: 采用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等16个数码,其中A-F相应的十进数为10-15,基数是16。

指令: 是计算机所能执行的一种基本操作的描述,是计算机软件的基本单元。

字节:8位二进制数组成一个字节,在存储器中以字节为单位存储信息。

字:2个字节组成一个字。

双字:2个字组成一个双字。

补码:机器数可用不同的码制来表示,补码表示法是最常用的一种,正数采用符号-绝对值表示,即数的最高有效位为0,数的其余部分则表示数的绝对值;负数的表示要麻烦一些,先写出与该负数相对应的正数的补码表示,然后将其按位求反,最后在末位加1,就可以得到该负数的补码表示了。

段地址:8086CPU将1MB的存储器空间分成许多逻辑段,每个段最大限制为64KB,段地址就是逻辑段在主存中的起始位置。为了能用16位寄存器表示段地址,8086规定段地址必须是模16地址,即为xxxx0H形式,省略低4位0,段地址就可以用16位数据表示,它通常被保存在16位的段寄存器中。

偏移地址:存单元距离段起始位置的偏移量简称偏移地址,由于限定每段不超过64KB,所以偏移地址也可以用16位数据表示。

物理地址:在1M字节的存储器里,每一个存储单元都有一个唯一的20位地址,称为该存储单元的物理地址,把段地址左移4位再加上偏移地址就形成物理地址。

代码段:程序员在编制程序时要把存储器划分成段,代码段用来存放程序的指令序列,代码段的段地址存放在CS中,指令指针寄存器IP指示代码段中指令的偏移地址,处理器利用CS:IP取得下一条要执行的指令。

数据段:数据段存放当前运行程序所用的数据,数据段的段地址存放在DS中。

附加段:附加段是附加的数据段,也用于数据的保存,另外,串操作指令将附加段作为其目的操作数的存放区域。附加段的段地址存放在ES中。

堆栈段:堆栈段是堆栈所在的主存区域,堆栈段的段地址存放在SS中,堆栈指针寄存器SP指示堆栈栈顶的偏移地址,处理器利用SS:SP操作堆栈中的数据。

堆栈:堆栈是一个"后进先出"的主存区域,位于堆栈段中,使用SS段寄存器记录其段地址。它只有一个出入口,即当前栈顶,栈顶是地址较小的一端(低端),它用堆栈指针寄存器SP指定。堆栈有两种以字为单位的基本操作,对应两条基本指令:进栈指令PUSH和出栈指令POP。

伪指令:汇编语言程序的语句除指令外还包括伪指令和宏指令,伪指令又称为伪操作,它不象机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编期间由汇编程序处理的操作,完成诸如数据定义、分配存储区、指示程序结束等功能。

宏指令:宏是源程序中一段有独立功能的程序代码,它只需要在源程序中定义一次,就可以多次调用,调用时只需要用一个宏指令语句就可以了。宏指令是用户自定义的指令,在编程时将多次使用的功能用一条宏指令来代替。

子程序:子程序又称为过程,它相当于高级语言中的过程和函数。在一个程序的不同部分,往往要用到类似的程序段,这些程序段的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序形式,以便需要时可以调用它;某些常用的特定功能的程序段也可编制成子程序的形式供用户使用。

中断:中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作,这些引起中断的事件称为中断源,它们可能是来自外设的输入输出请求,也可能是计算机的一些异常事故或其它内部原因。

中断处理程序:当中断发生时,处理器中止当前正在运行的程序,而转到处理特殊事件的程序段中去执行,这种处理中断的子程序就是中断处理程序,又称为中断服务程序。中断处理程序的入口地址被安排在中断向量表中。

BIOS中断:在存储器系统中,从地址0FE000H开始的8K ROM中装有BIOS(Basic Input/Output System)例行程序。驻留在ROM中的基本输入输出程序BIOS提供了系统加电自检、引导装入、主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。BIOS中断给程序员编程带来很大方便,程序员不必了解硬件I/O接口的特性,可直接用指令设置参数,然后中断调用BIOS中的程序。

暂存器: 用来暂存由数据总线或通用寄存器送来的操作数,并把它作为另一个操作数。

中断: 中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。

掉电保护: 指在正常供电电源掉电时,迅速用备用直流电源供电,以保证在一段时间内信息不会丢失,当主电源恢复供电时,又自动切换为主电源供电。

寄存器寻址: 操作数在寄存器中,由指令操作码中的rrr三位的值和PSW中RS1及RS0的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。

波特率: 即每秒钟传送二进制数的位数, 波特率越高,数据传输的速度越快。

D/A转换: 即将二进制数量转换成与其量值成正比的电流信号或电压信号。

A/D转换: 即将模拟量转换成相应的数字量,然而送计算机处理。

串行方式: 指数据的各位分时传送,只需一条数据线,外加一条公共信号地线和若干条控制信号线。

并行方式: 指数据的各位同时传送,每一条数据都需要一条传输线。

伪指令: 用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。

SLEEP MODI 睡觉模式: 保证程序内部运行,但与外部的传输等动作已停止的一种运行模式。

linking 连接: 把编译后生成的 *.obj 文件与其它 *.obj文件合并成机器能识别的机器文件。

I2C:输入与输出共用一条传输线,而时钟由另一条线控制的一种串行传输方式。

SFR 特殊功能寄存器区: 8051 把 CPU 中的专用寄存器、并行端口锁存器、串行口与定时器/计数器内的控制寄存器集中安排到一个区域,离散地分布在地址从 80H 到 FFH 范围内,这个区域称为特殊功能寄存器区 SFR。

常用逻辑电路

在逻辑电路中,输入和输出只有两种状态,即高电平和低电平。通常以逻辑“1”和“0”表示电平高低。

1、与门

是一个能够实现逻辑乘运算的、多端输入、单端输出的逻辑电路。

逻辑解释:

即如右边图所示,当开关A与B当中只有全部闭合(即为高电平1)时,才会有输出(即灯泡才会亮)所以在与门电路中,只有输入的全部条件为高电平“1”时输会有输出。

语言表达为:“有0出0,全1出1”

2、或门

是一个能够实现逻辑加运算的、多端输入、单端输出的逻辑电路。

逻辑解释:

即如右边图所示,当开关A与B当中只要有一个开关闭合(即为高电平1)时,就会有输出(即灯泡才会亮)所以在或门电路中,只要输入的为高电平“1”就会有输出。

语言表达为:“有1出1,全0出0”。

3、非门

是一个能够实现逻辑非运算的、单端输入、单端输出的逻辑电路。非就是反,就是否定,也就是输入与输出的状态总是相反。

逻辑解释:

如右边图所示,当开关K断开时灯亮,开关闭合时灯灭。如以开关断开为灯亮,开关接通为灭为结果,则开关K与灯泡的因果关系为非逻辑关系。

语言表达为:“有0出1,有1出0”。

复合逻辑门电路

1、与非门

将一个与门与一个非门联接起来就构成了一个与非门。

根据与门和非门的逻辑功能,可以列出与非门逻辑关系真值表。其逻辑功能的特点是:“当输入全为1,输出为0;只要输入有0,输出就为1”。

真值表如下:

2、或非门

将一个或门与一个非门联接起来就构成了一个或非门。

根据或门和非门的逻辑功能,可以列出与非门逻辑关系真值表。其逻辑功能的特点是:“当输入全为0,输出为1;只要输入有1,输出就为0”。

真值表如下:

3、异或门

异或门只有两个输入端和一个输出端。

其逻辑功能的特点是:“当两个输入端一个为0,另一个为1时,当两个输入端均为1或均为0时,输出为0”。

真值表如下:

异或门的作用是:把两路信号进行比较,判断是否相同。当两路输入信号不同,即一个为高电平,一个为低电平时,输出为高电平。反之当两个输出端信号相同时,即为高电平或低电平时,输出为低电平”。

触发器

触发器是计算机记忆装置的基本单元,它具有把以前的输入‘记忆’下来的功能,一个触发器能储存一位二进制代码。下面我们简单的来介绍计算机中常用的几中触发器。

1

R-S触发器

R-S触发器的逻辑符号如下图所示,它有两个输入端,两个输出端。其中,S为置位信号输入端,R为复位信号输入端;Q和Q非为输出端。规定Q为高、Q非为低时,该触发器为1状态;反之为0状态。其真值表如下。

2

D触发器

D触发器又称数据触发器,它的逻辑符号如下图所示,R、S分别为强制置0、置1端,触发器的状态是由时钟脉冲CLK上升沿到来时D端的状态决字。当D=1时,触发器为1状态;反之为0状态。其真值表如下

3

J-K触发器

J-K触发器的逻辑符号如下,R、S分别为强制置0、置1端。K为同步置0输入端,J为同步置1输入端。触发器的状态是由时钟脉冲CLK下降沿到来时J、K端的状态决定,其真值表如下

J-K触发器的逻辑功能比较全面,因此在各种寄存器、计算器、逻辑控制等方面应用最为广泛。但在某些情况,如二进制计数、移位、累加等,多用D触发器。由于D触发器线路简章,所以大量应用于移位寄存器等方面。

寄存器

寄存器是由触发器组成的,一个触发器是一个一位寄存器。多个触发器就可以组成一个多位的寄存器。由于寄存器在计算机中的作用不同,从而被命名不同,常用的有缓冲寄存器、移位寄存器、计数器等。下面我们就简单的来介绍下这些寄存器的电路结构及工作原理。

1

缓冲寄存器

它是用来暂存某个数据,以便在适当的时间节拍和给定的计算步骤将数据输入或输出到其它记忆单元中去,下图是一个并行输入、并行输出的4位缓冲器的电路原理图,它由4个D触发器组成。

启动时,先在清零端加清零脉冲,把各触发器置0,即Q端为0。然后,把数据加到触发器的D输入端,在CLK时钟信号作用下,输入端的信息就保存在各触发器中(D0~D3)。

2

移位寄存器

移位寄存器能将所储存的数据逐位向左或向右移动,以达到计算机运行过程中所需的功能,请看下图

启动时,先在清零端加清零脉冲,使触发器输出置0。然后,第一个数据D0加到触发器1的串行输入端,在第一个CLK脉冲的上升沿Q0=Q0,Q1=Q2。Q3=Q0。其后,第二个数据D1加到串行输入端,在第二个CLK脉冲到达时,Q0=Q1,Q1=Q0,Q2=Q3=0。以此类推,当第四个CLK来到之后,各输出端分别是Q0=Q3,Q1=Q2,Q2=Q1,Q3=Q0。输出数据可用串行的形式取出,也可用并行开式取出。

3

计数器

计数器也是由若干个触发器组成的寄存器,它的特点是能够把存款在其中的数据加1或减1。计数器的种类也很多,有行波计数器、同步计数器等,下面我们就以行波计数器向大家作个介绍。

下图就是一个由J-K触发器组成的行波计数器的工作原理图。这种计数器的特点是:第一个时钟脉冲促使其最低有效位加1,使其由0变1;第二个时钟脉冲促使最低有效位由1变0。同时推动第二位,使其由0变1;同理,第二位由1变0时又去推动第三位,使其由0变1,这样有如水波前进一样逐位进位下去。

上图中各位的J、K输入端都是悬浮的,这相当于J、K输入端都是置1的状态,即各位都处于准备翻转的状态。只要时钟脉冲边沿一到,最右边的触发器就会翻转,即Q由0转为1或由1转为0。

上图中的这个计数器是4位的,因此可以计0~15的数。如果要计更多的数,需要增加位数,如8位计数器可计0~255的数,16位则可计0~65535的数。

4

三态门(三态缓冲器)

为减少信息传输线的数目,大多数计算机中的信息传输线均采用总线形式,即凡要传输的同类信息都走同一组传输线,且信息是分时传送的。在计算机中一般有三组总线,即数据总线、地址总线和控制总线。为防止信息相互干扰,要求凡挂在总线上的寄存器或存储器等,它的传输端不仅能呈现0、1两个信息状态,而且还应能呈现第三种状态——高阻抗状态(又称高阻状态),即此时好像它们的输出被断开,对总线状态不起作用,此时总线可由其它器件占用。三态门即可实现上述的功能,它除具有输入输出端之外,还有一控制端,请看下图。

当控制端E=1时,输出=输入,此时总线由该器件驱动,总线上的数据由输入数据决定;

当控制端E=0时,输出端呈高阻抗状态,该器件对总线不起作用。当寄存器输出端接至三态门,再由三态门输出端与总线连接起来,就构成三态输出的级冲寄存器。如下图所示就是一个4位的三态输出缓冲寄存器。由于这里采用的是单向三态门,所以数据只能从寄存器输出到数据总线。如果要实现双向传送,则要用双向三态门。

相关问答

单片机 编程题目?, 单片机 编程哪家优惠力度大?

[回答]建议联系,他们是专业承接电路板设计开发的公司,做产品非常的负责靠谱,可以去咨询咨询。还不错的,他们专业承接单片机解决方案,以前朋友在那做了,还...

单片机 自动控制电调驱动无刷电机,电机滴滴响不会转。- 一...

用单片机自动控制电调驱动无刷电机,电机滴滴响不会转。

麻烦在线的老铁!有人知道吗!有名的小科之家机器人编程企业...

[回答]汇川,三菱,科威以及国内一大堆山寨三菱的都使用三菱的编程软件。类似的还有西门子,欧姆龙。ABB,倍福,施耐德,和利时。。。甚至于步科,他们使用了同...

自动化主要课程是什么?

电气工程及其自动化的课程有:1、电力系统自动化:电力系统自动化主要包括地区调度实时监控、变电站自动化和负荷控制等三个方面。管理系统的自动化通过计算机...

foxbase语言是高级语言吗?

FoxBase是一种数据库编程语言和开发环境,它是一种第四代编程语言(4GL),属于高级语言的范畴。它于1984年由FoxSoftware开发,后来发展成为更流行的xBase编程...

设计机器人用什么软件?

学习机器人需要掌握的基本信息1.创意与概念设计(造型、渲染):3DSMax,Rhino;2.机械设计(零件设计、装配与制图):AutoCAD,SolidWorks,Creo,UG;3.科...

计算机专业主要学哪些课程-ZOL问答

本课程后续课程:计算机控制技术、单片机技术等。8.数据库基础与应用本课程6学分,108学时,开设一学期。数据库基础与应用是计算机应用专业信息管理方向的一门...

求教, 单片机 串口发送文件問題-ZOL问答

楼主先介绍一下什么是《单片机中的文件》吧。串口发送,那是十分简单的,一个字节一个字节的发送就行了。串口工具直接把数据输入点击发送就行了啊。单片机那里...

什么是labview,具有什么特点?

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基...

学习计算机编程该如何开始? - 五月儿? 的回答 - 懂得

主要看你用于什么行业中。一般而言:最容易入门、最常用的就是vb。(要精通也不是很容易)如果要做单片机或工控方面,C是必学的。最难的,但也最强的当...

猜你喜欢