学单片机必须学汇编语言吗,还是学好c语言就足够了?
单片机要做工程的话还是用c好,用汇编太复杂。c要100行的在汇编里面要300-500行。。。。我已经学了c语言(不是专门用来编单片机的)然后学的单片机汇编,下学期还要开单片机c语言,足见c还是更加适用于单片机。我们现在做的单片机课程设计很多人用汇编编不出来的用c就很容易。先学c,汇编大致了解一下就可以了1、对于普通的项目,只要学好c就行了,但不是足够了。2、现在流行的单片机开发编程语言有汇编、c、c++。3、它们是可以相互依托的,比如要求开发速度,我们可以尽量用c或c++,因为它们都比用汇编完成任务速度要快。比如要求执行速度,我们必须考虑使用汇编,因为汇编的速度大体要比c或c++快5%~15%,另外我们还可以考虑用c或c++来嵌套汇编完成。4、通过以上说明,只会c是不够的,有空还是要看看汇编和c++的。
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
C语言,使用单片机C语言的好处:
将C向MCU(俗称单片机)8051上的移植始于80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。如: ·8051的非冯·诺依慢结构(程序与数据存储器空间分立),再加上片上又多了位寻址存储空间; ·片上的数据和程序存储器空间过小和同时存在着向片外扩展它们的可能; ·片上集成外围设备的被寄存器化(即SFR),而并不采用惯用的I/O地址空间; ·8051芯片的派生门类特别多(达到了上百种之多),而C语言对于它们的每一个硬件资源又无一例外地要能进行操作。 这些都是过去以MPU为基础的C语言所没有的。经过Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艰若不懈的努力,终于于90年代开始而趋成熟,成为专业化的MCU高级语言了。过去长期困扰人们的所谓“高级语言产生代码太长,运行速度太慢,因此不适合单片机使用”的致使缺点已被大幅度地克服。目前,8051上的C语言的代码长度,已经做到了汇编水平的1.2~1.5倍。4K字节以上的程度,C语言的优势更能得到发挥。至于执行速度的问题,只要有好的仿真器的帮助,找出关键代码,进一步用人工优化,就可很简单地达到十分美满的程度。如果谈到开发速度、软件质量、结构严谨、程序坚固等方面的话,则C语言的完美绝非汇编语言编程所可比拟的。今天,确实已经到MCU开发人员拿起C语言利器的时候了。 下面结合8051介绍单片机C语言的优越性: ·不懂得单片机的指令集,也能够编写完美的单片机程序; ·无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序; ·不同函数的数据实行覆盖,有效利用片上有限的RAM空间; ·程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏; ·C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性; ·提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址; ·提供small、compact、large等编译模式,以适应片上存储器的大小; ·中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办; ·提供常用的标准函数库,以供用户直接使用; ·头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发; ·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉; ·可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。
单片机要做工程的话还是用c好,用汇编太复杂。c要100行的在汇编里面要300-500行。。。。
我已经学了c语言(不是专门用来编单片机的)然后学的单片机汇编,下学期还要开单片机c语言,足见c还是更加适用于单片机。我们现在做的单片机课程设计很多人用汇编编不出来的用c就很容易。
先学c,汇编大致了解一下就可以了
1、对于普通的项目,只要学好c就行了,但不是足够了。
2、现在流行的单片机开发编程语言有汇编、c、c++。
3、它们是可以相互依托的,比如要求开发速度,我们可以尽量用c或c++,因为它们都比用汇编完成任务速度要快。比如要求执行速度,我们必须考虑使用汇编,因为汇编的速度大体要比c或c++快5%~15%,另外我们还可以考虑用c或c++来嵌套汇编完成。
4、通过以上说明,只会c是不够的,有空还是要看看汇编和c++的。
学单片机必须学汇编语言吗,还是学好c语言就足够了
单片机要做工程的话还是用c好,用汇编太复杂。c要100行的在汇编里面要300-500行。。。我已经学了c语言(不是专门用来编单片机的)然后学的单片机汇编,下学期还要开单片机c语言,足见c还是更加适用于单片机。我们现在做的单片机课程设计很多人用汇编编不出来的用c就很容易。先学c,汇编大致了解一下就...
想学好51单片机,是不是要先学习汇编语言?
汇编语言是我们在掌握和了解了单片机的工作原理后,对单片机进行软件开发的工具。想学好51单片机,你必须对单片机的结构和工作原理了如指掌,然后是对特殊功能寄存器的编程(即用汇编语言或C语言)来对单片机内部进行初始化,初始化是最关键的因为它是后继工作的必要条件,在此基础上才是用户的程序要实现的...
现在单片机的应用主要是汇编语言还是C语言?
如果你是初学,还是建议你学汇编,因为使用汇编能够使你明白到单片机内部工作原理.现在开发产品,除非使用了资源非常紧缺的小芯片型号,不然都是使用C语言,现在好多单片机,例如AVR单片机,有专门针对C语言开发的硬件结构,而且它们的速度非常的快,所以高级语言和汇编语言相比的效率问题,早已经成为过去(除非你是做...
单片机开发是用C语言好还是汇编语言好
而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C...
请问学习单片机要先学习汇编语言吗?
把每条指令功能都讲一遍。最后讲51的部件:C\/T,I\/O口,中断等等,当中有很多编程内容。她讲课的顺序明显和书本不一样,我觉得她这么先讲汇编还是有点道理的。当然书上的实例一定要多看,汇编思路非常重要,还有51只有111条指令,不可以随便自创。学习别的系列的单片机也是一样的方法吧 ...
在单片机开发过程中,经常会用到什么语言。
此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流,作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。单片机中的基本语言是机器语言,汇编语言和它是一一对应...
学51单片机用汇编还是用C语言比较好?先学汇编可以吗?
绝对可以,我就是先学习的汇编语言,只有学习了汇编才能真正的了解单片机。。 如果不了解单片机的构造及原理,学c很快就会厌倦。不过c就是简单点,容易上手, 我先学的是汇编,也感觉不是很难。
学单片机要不要学汇编
汇编只是加深你对硬件的认识和计算机的理解。当然这个是很有必要的 但是初学单片机建议用c语言开始
单片机C语言与汇编语言各有什么特点?
也在初期单片机所需要提供小型的控制功能得以发挥,但是功能越来越复杂的单片机的编程汇编显得越来越麻烦,开发的效率也大大降低,所以发展到现在很多地方已经以c语言代替了汇编,尤其现在的单片机资源丰富,不怕代码复杂点,我们要的就是开发效率,当然这两种语言还是有它的各自的优势,所以还是都有存在。概括...
学习STM32一定要用到汇编语言吗?我只会C语言怎么办?
不用考虑程序的初始化地址,不用考虑ACC,PSW以及工作寄存器的保护,不用考虑溢出进位CY。而汇编这些都需要考虑到。四、当然c语言的简单与方便这是汇编不能比的,个人觉得把单片机c语言和汇编语言结合来编成是最好的。在需要很精确的地方就嵌套一个汇编的子程序,其他就用c语言。
乘洪宜欣: 单片机要做工程的话还是用c好,用汇编太复杂.c要100行的在汇编里面要300-500行....我已经学了c语言(不是专门用来编单片机的)然后学的单片机汇编,下学期还要开单片机c语言,足见c还是更加适用于单片机.我们现在做的单片机...
永济市17178909688: 初学单片机还需学习汇编语言吗?我现在从零开始学单片机,请教一下有无必要学汇编语言?请大侠们指教 - ?
乘洪宜欣: 只为了学单片机的话,不学也没关系,但如果你时间比较充足而且有想法深入学习的话,还是学学汇编比较好,因为汇编是直接对底层硬件进行操作,学好它,你会对底层硬件的运行原理了如指掌,这样你学其他的语言或者有关的硬件将会事半功倍,得心应手,当然前提是你的汇编也要学的比较扎实,不能只在表面.如果你不想学汇编的话,没问题,建议你看看郭天祥的视频,对你应该会非常有用,祝你好运!
永济市17178909688: 学单片机有没有必要从汇编开始学习? - ?
乘洪宜欣: 应用方面 完全没必要学汇编..c语言即可...而且汇编 你根本应付不过来 每套单片机 其汇编指令都不同,,虽然大体上差不多..但差异还是有的..我以过来人的身份告诉你,应用方面没必要学汇编..望采纳.
永济市17178909688: 学单片机可以不学汇编语言吗??
乘洪宜欣: 可以不学,但是要学也十分简单,也不用啥视频教程,随便找本单片机的书把有关章节(也就两章,当然,前提是你要知道单片机的硬件资源)你就可以学会了,不难.他就那么几句,你只要知道都有什么指令就行了,具体英语字母是啥不用记,写上几个程序,不知道的就查,自然就记住了.然后你就可以超深里学了,比如c 与汇编的混合等,汇编的宏声明.
永济市17178909688: 学习单片机,要一定的 汇编语言或者C语言基础吗 - ?
乘洪宜欣: 必须要会汇编和C语言.至于从哪个学起,看你对哪种语言跟熟悉吧.这两种语言各有优点,汇编可以让你更清楚的了解程序运行的内部情况,C语言通用性更强.
永济市17178909688: 如今学单片机,还需要掌握汇编语言吗 - ?
乘洪宜欣: 如果想学习并在以后的工作中大量使用单片机的话,最好要掌握汇编语言,这样才能深入了解单片机,否则可能只能浮光掠影的学习了单片机而已,以后利用单片机的话就会有力不从心之感.
永济市17178909688: 学单片机之前一定要掌握汇编语言吗? - ?
乘洪宜欣: 学单片机之前,一定要掌握汇编语言吗?不是.而是:学单片机之后,再想要提高,一定要掌握汇编语言.其实,在学习单片机的寄存器时,用汇编,用C,分量都是相同的.就是在编写““计算量较大的程序””时,用C,比汇编容易的多.
永济市17178909688: 请问:现在学单片机有必要学汇编吗?还有学完51 后应该朝哪个方向发展,是嵌入式还是????
乘洪宜欣: 学单片机的话,是必须要学汇编的.汇编语言是单片机的基础,实际上你要学习过C语言的话,学习汇编是很容易的.基本的思路和方法很相似的. 学习过单片机的话,还是向嵌入式发展的比较好的,现在嵌入式的就业形势挺好的
永济市17178909688: 学习avr单片机有必要学汇编语言吗 - ?
乘洪宜欣: 支持一楼的 看你是学来玩玩还是要真正使用它.学来玩玩的话那学不学无所谓.但要是真正好用好某个单片机,不管是不是AVR,都必须先学它的结构和指令,而指令就是汇编.因为不管是C语言还是Basic语言,最后还是要编译成为单片机能识别的指令文件才能烧写到单片机里运行.很多情况下,调试单片机程序都需要看指令文件.比如说,你用单片机做个系统,发现程序怎么调试都有问题,就需要看C编译成会汇编的文件了.
永济市17178909688: 学51单片机是不是一定要学汇编语言 - ?
乘洪宜欣: 我认为你还是要学点基础的汇编语言,否则,你看不懂有些用汇编语言编的程序.