哪几种编程语言可以用到单片机编程里?

haiyicha haiyicha
804
2022-05-11
感谢邀请。 首先解释一下什么是单片机。 单片机也被称为微控制器,英文为Microcontroler,它最早被用在工业控制领域。“单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的...

感谢邀请。

首先解释一下什么是单片机。

单片机也被称为微控制器,英文为Microcontroler,它最早被用在工业控制领域。“单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。”早期的单片机是4位或者8位。其中最成功的是INTEL的8031。

单片机有一个很重要的优势,就是可编程,通过程序可以实现各种各样的逻辑功能,修改更灵活,更能减少硬件成本,尤其单片机已经发展到16位,32位,片上集成了各种丰富的片上资源后,单片机已经渗透到了我们生活的各个领域、各个方面。

控制单片机执行逻辑功能,就需要编程。编程需要用到汇编语言或者是C语言。

1.汇编语言

汇编语言,英文为assembly language,是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间移植较为困难。早期单片机编程汇编比较普遍。

2. C语言

C语言是一门通用计算机编程语言,应用广泛。比较汇编,C语言是高级语言,可移植性好,颗结构化编程。使用标准C语言的程序,几乎都可以不作改变移植到不同的微机平台上,对于嵌入式等的微控制芯片,属于标准C语言的部分也很少需要修改,而且程序很容易读懂。

现在单片机编程,C语言已经很普及了,汇编用的少了,从写代码、读代码的角度来讲,C语言的优势太明显了。

以上就是我的观点,欢迎评论。更多精彩问答,请关注我的头条号“玩转嵌入式”。谢谢。

简单说一下单片机。

单片机从数据总线的位宽来说,最早有4位单片机(我曾经用过4位单片机编程,是EPSON的单片机),8位单片机(51,AVR,PIC等)、16位单片机(MSP430等),32位单片机(一般32位的都称作ARM,)。

从单片机的开发语言来说,有:机器语言、汇编语言、C语言、BASIC、C++、PYTHON,JAVA等。

单片机编程语言的发展历程也基本是这个顺序。

从执行效率来看,也基本是机器语言、汇编语言、C语言这个顺序。

首先需要着重说明的是,单片机只能识别机器语言,但是机器语言最难记忆和使用,所以人们九不断地开发出更适合、更方便、更快捷、更高效的语言来编写单片机程序,但是,最终这些语言都会经由编译器变成机器语言才能让单片机“识别并执行”。

下面分别介绍一下几种单片机编程语言:1、机器语言

所谓机器语言就是用用二进制代码编写程序的语言。在用机器语言编程时,不同的指令用不同的二进制代码代表,这种二进制代码构成的指令就是机器指令。在用机器语言编写程序的时候,由于需要记住大量的二进制代码指令及这些代码代表的功能,很不方便且容易出错,现在基本上很少有人用机器语言对单片机进行编程了。

01110100 00000010 (机器语言)

2、汇编语言

由于机器语言的指令需要死记硬背(当然,绝大部分人都记不住,所以需要随时查阅机器语言指令。)于是就用了一些特殊的字符来代替机器语言指令(二进制码指令),用这些助记符编写的程序就称为汇编语言程序。

MOV A, #02H (汇编语言)

在20年前,基本上都是用汇编语言,直到现在在大学里入门单片机基本还是从汇编语言开始,这个是基础,很有必要学习一下。当然,现在完全没有汇编语言的基础也可以学习单片机。

3、高级语言

高级语言是依据数学语言设计的,在用高级语言编程时不用过多的考虑单片机的内部结构。与汇编语言相比,高级语言易学易懂,而且通用性很强。

目前来看,C语言是应用最广泛的单片机编程语言,C语言的执行效率介于汇编语言和高级语言之间,非常适合用来做单片机编程语言。当然,C语言用来做单片机编程语言还要有一些改进,不完全等同于标准C语言,所以单片机C语言又称为“嵌入式C语言”。

其它可以用来编写单片机程序的高级语言我本人接触不多,也就不介绍了,大家可以在用的时候专门学习一下。

综合以上介绍,我们可以说:高级语言编程较为方便,更便于“读懂”,非常易于移植,但是在一些对时效性要求很高的场合,需要在高级语言中“插入汇编语言”,以求程序能够更高效、稳定的工作。

但实现相同的功能,汇编语言代码少,运行效率高,另外对于初学单片机的朋友,学习汇编语言编程有利于更好的理解单片机的结构与原理,也能为以后学习高级语言编程打下扎实的基础。

常规的汇编啊 c啊 c++啊就不过多的介绍了 这可能是现在比较常用和最简单的玩单片机的语言了 我这里说的单片机是最简单的单片机 就8位的。其实 很多语言都能来玩单片机的 给你一个简单的思路 你可以去看看johnny-five这个开源项目 这就可以直接使用js来玩atmage328p了 类似的例子还有很多 我近期在做怎么使用python来玩这种简单的单片机。当然高端一点的单片机 可选择的语言就更多了 像32位的arm的话 就直接可以用python了 可以去了解micropython。希望这个回答能给你一点帮助。

现在单片机的型号比较多,绝大部分编写单片机程序都用的比较多的语言有两种,一种是苦涩难懂而执行效率高的汇编语言;另一种是普遍受广大嵌入式工作者喜爱的C语言。以上两种语言是目前编写单片机程序用的最多的。

这两种语言各有优缺点,汇编语言好处是执行的效率高,它直截访问的是单片机内部的寄存器,但其可读性和维护性不好;而C语言好处是容易维护、可读性好并且接近人类语言,但执行效率只是汇编的80%。在做单片机大型控制系统时所用C语言较多;而在控制时间精度和实时性要求较强的场和应用汇编语言较多。现在有的编程软件可以支持c语言和汇编语言的混合编程,比如KeiI软件就是支持混合编程的。

当然还有一些单片机也有一些自己的编程语言,它们用的是精简指令,类似汇编语言的编程模式,比如OTP(一次性编程单片机)、PIC单片机等;还有一种是可编程的逻辑芯片(CPLD)运用的是硬件描述语言(VHDL)类似C语言风格。总体来说汇编语言和C语言是单片机两大主流编程语言!

以上是我对这个问题的回答,欢迎大家参与讨论并观注电子及工控技术!

其他相关 RELEVANT MATERIAL
从知行合一的角度来看,绝大多数国人学不好英语是不是一种必然?

从知行合一的角度来看,绝大多数国人学不好英语是不是一种必然?

haiyicha haiyicha
782
2022-05-11
题主说的非常正确。语言最大的作用是交流,如果语言不用来交流,不是每天运用的话,很容易忘记。只是作为一种知识存在的语言是不能长久的。而实际运用的语言能力比学到知识的语言能力更为有用。就像是一些农村老太太,可能他们一天都没有上过学,根本不懂的什么是主语、谓语、宾语。但是他们......
宝宝几个月可以进行早教,早教内容有哪些?

宝宝几个月可以进行早教,早教内容有哪些?

haiyicha haiyicha
238
2022-05-11
宝宝应该是从生出来那一刻开始就在接受早教了吧!只是根据大脑发育的情况接受的东西不同而已,从简到繁,从少到多,却也时刻都在进步。 对孩子的早期教育是从孩子出生那一刻就开始的,不知妈妈是否问的是早教机构那种早教课? 广义地看,早教是孩子从后天环境中获得的任何有意识地对其心......
有一定基础的C++ 学习者该如何学习Windows编程?

有一定基础的C++ 学习者该如何学习Windows编程?

haiyicha haiyicha
447
2022-05-11
windows编程,对初学者有点难度。windows多彩多姿的应用程序,吸引着广大的编程爱好者,我就是其中之一,从win98开始,就用其为平台,开发windows应用程序,现在已有二十余载了。 一般初学者理解的windows编程,就是做一个应用程序。有点经验的,会把wi......
哪些编程语言适合人工智能?

哪些编程语言适合人工智能?

haiyicha haiyicha
643
2022-05-11
自谷歌的AI击败了一位围棋大师后,人工智能的概念轰轰烈烈出现,各种人工智能科技公司如雨后春笋般冒出。2017年年初BAT大佬们也纷纷出声看好人工智能未来发展,揭示了这些技术的发展潜力和将来可以如何发展的途径。 首先,你所熟练掌握的每一种编程语言都可以是人工智能的开发语言......
为何编程语言都是英文的?用中文编程不可以吗?

为何编程语言都是英文的?用中文编程不可以吗?

haiyicha haiyicha
915
2022-05-11
因为是外国人开发的底层。 可以啊,只有有人做出编译器就可以了。把中文编辑编译成机器码让电脑识别就可以了。唯一的一个中文编程的是易语言,高仿的VB啊。很不错哦 既然有心钓鱼,我乐于上钩。 其他回答已经提到有不止一个中文语法的编程语言。不少包括中文关键字和中文API的标......
程序员、写过代码的人们,你们都用过哪些编程语言?

程序员、写过代码的人们,你们都用过哪些编程语言?

haiyicha haiyicha
533
2022-05-11
从上学到现在的我用过了好多编程语言,由于我在高中读的是职高的计算机专业,所以在高中的时候就接触了计算机编程语言,到现在已经用过好几种编程语言了,如:Basic,Visual Basic,java,python,javascript等,由于我从事的java开发所以现在用到......
评论 SAY SOMETHING
年度爆文