技术文档

汇编语言 c语言 单片机 硬件工程师:单片机编程,要学习汇编,还是学习C语言,我用C语言

小编 2024-10-06 技术文档 23 0

硬件工程师:单片机编程,要学习汇编,还是学习C语言,我用C语言

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

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

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

编程

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

1.汇编语言

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

汇编

2. C语言

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

C语言

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

你用C语言,还是用汇编,欢迎评论。更多精彩,请关注我的头条号“玩转嵌入式 ”。谢谢。

精彩推荐:

如何才能成为一名出色的硬件工程师?我有三点建议

搞技术,一定不要眼高手低

对于程序员来说写代码并不是最难的事情!

单片机为什么一直用C语言,不用其他编程语言?只有学过的知道

单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。

这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。

一、单片机编程的特点

对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。

第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。

第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。

二、高级语言编写单片机程序的缺陷

高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。

高级语言无法实现精确的时序控制。

三、C语言是一个折中选择

其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序。

而C语言代码执行效率高,也比较精简,更便于移植......所以在现今的单片机编程语言中,C语言才会占据绝对主导地位

作者丨悟空问答:老马识途单片机

想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,学习C/C++的话笔者有一个C/C++的编程俩千人羣(Q艘索:C/C++编程学习13群 )你如果感觉自学C语言/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的小伙伴就可以进来交流。

相关问答

单片机汇编语言 c语言 区别?

学了C语言和单片机,来挑战下这个问题。Keil5同时支持汇编语言.asm和C语言.c。以下以51单片机为例。对于汇编语言,你要掌握100多条指令,背下来更好[呲牙]要区分...

单片机 为什么还在用 C语言 编程?

答案是:C语言是最适合单片机编程的高级语言。这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为...单片机为什么还在用C语言编程?答案...

AT89 C 51 单片机 怎么用 汇编语言 让4个数码管同时显示1234?

ORG00HAJMPMAINORG30HMAIN:LCALLDISPMOV20H,#1MOV21H,#2MOV22H,#3MOV23H,#4AJMPMAINDISP:MOVA,...

单片机 除了可以用 汇编 c语言 编程,还有其他什么编程语言吗?

除了C和汇编,超子还接触过使用Arduino、Labview、Python以及Lua对单片机进行程序开发。不过这些相对比较小众,没有普适性。一、ArduinoArduino应该算是一种对...

单片机 编程用 汇编 好还是 C语言 好?

开发当然是用C,又快又易懂好维护,但是想要优化程序还是要懂汇编的,要不然实现同样一个功能的程序,好的程序员可以把程序设计得又短又快,而不做优化的可能会...

C语言 单片机C语言 的区别急求?

单片机c语言比起普通C语言增加了一些基本的指令,变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言的基础部分。具体体现在:1、单片机中C的语法一般...

JAVA、 C C ++、Python同样是高级 语言 ,为什么只有 C C ++可以编写 单片机 程序?

菜农从1981年开始就涉足与嵌入式领域的编程,开始是汇编语言和宏汇编语言,后来是C语言及C++语言,其他语言可能有,但很少且无大出路。因为嵌入式领域的编程与...

单片机 的编程?

单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的...

怎样用 单片机 C语言 编写直流电机两轴联动驱动程序?

编写直流电机两轴联动驱动程序的具体步骤如下:1.首先,确定使用的单片机型号和开发环境,并准备好相应的开发板和电机驱动模块。2.在C语言中,需要使用相应...

JAVA和Python编程 语言 可以编写 单片机 程序吗?

理论上,C语言、JAVA语言、VB语言、python等任何一门语言都可以用作上位机开发语言,这个是毋庸置疑的。但是选择哪一门语言,会有一些考虑。首先,要考虑...javaj...

猜你喜欢