硬件工程师:单片机编程,要学习汇编,还是学习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语言编程单片机不难。学习掌握C语言的语法之后,单片机编程就是遵循单片机的技术规范,编写要实现的功能。其实到后来你会发现这个工作和C语言没有什么关系,用...
请问大佬们,学习单片机需要把 C语言 学好,再 学单片机吗 ?你好!作为学过单片机过来人你这个问题我可以来回答。首先肯定一点的是学习单片机不需要先学好C语言再去学单片机,而是在学习单片机的过程中可以促进C语言的学习...
要想弄好 单片机 , C语言 要 学 到什么程度?要想弄好单片机,C语言要达到熟练程度达到熟练水平C语言是一种结构化的高级语言,本着其优点可读性好,移植容易,已成为单片机学习中普遍使用的一种计算机语言...
3 学单片机 有前途吗?3学单片机有前途啊电子技术员2000~4000电子工程师3000~8000单片机嵌入式开发5000+提成什么都会8000+提成什么都不会老板,年收入过百万楼猪努力。。。因为你...
做 单片机 ,会 C语言 ,有 学 C++的必要吗?未来的发展方向如何?就算你硬要转向软件行业,C++也不是必须学,毕竟有大把的语言可选,现在甚至有很多脚本语言可以运行在单片机上。但学了肯定还是很有好处的。如果你并不想成为纯...
我没 学 过 单片机 ,有 c语言 基础,能直接学习stm32吗?可以是可以,不过很痛苦。STM32是arm内核,直接学32位单片机很有难度。建议你从简单的8位单片机如51系列学起。原因很简单,单片机编程是建立在对硬件充分了解的...
二十六岁高中学历自学了一点 c语言 想培训 单片机 开发怎么样?我不建议。当然不是说不行,而是难度大收益低,性价比不行。可能你对这一行不是很了解,我大概讲讲。首先讲讲你要从事单片机开发这一行大概要学哪些东西。1,...
单片机 应该怎么 学 ? c语言 基础不好,不知道从何入手?说一下我学习AVR单片机的过程吧,从这个过程中也许会给一些单片机初学者一些启示。第一阶段:知识准备在学习AVR单片机之前,我对单片机已经有所了解,并且写过...
从事 单片机 的工作, C语言 、电路基础、数字电路、模拟电路分别要掌握到什么程度呢?做研发类人员使用工业软件的。目前正在制作低代码嵌入式系统开发平台。问题中提到的技术都涉及了。掌握到什么程度,关键是公司要求怎样?一般重点大学毕业,有...
单片机 大专 学吗 ?学,专科学校学单片机,专科里面可以学的,一般在信息工程系计算机通信专业,大二学C语言,汇编程序语言,模电,单片机等学,专科学校学单片机,专科里面可以学的,一...