大家好,今天小编关注到一个比较有意思的话题,关于松翰c语言的问题,于是小编就整理了2个相关介绍松翰c语言的解答,让我们一起看看吧。
单片机用C语言编程很好学,为什么还要用呢?
目前很多主流单片机都是支持C语言编写,厂商会提供相应的C语言库,编译器也大都支持C语言开发,C语言上手快学习成本低,只是应用层面的话其实C语言就差不多够用了。但是使用C编写最后还是会被编译器变成汇编代码,实质还是在写汇编。汇编效率高,对机器直接操作,更加底层,所以想深入的学习单片机,汇编是不可不学的,并且一般最底层设置都是汇编写的,还有不少底层设置是无法用C去调用或者改写的,这个时候看懂汇编和使用汇编就很重要了。
C语言是发展趋势,汇编可以帮助学生熟悉单片机内部结构。
首先汇编语言和C语言都是编程语言,汇编是一种机器语言直接面对底层,与单片机底层硬件构架息息相关,相对于C语言,是一门低级语言,C语言面向过程的语言,在编译执行会转为汇编在生成单片机可执行文件。是一门高级语言,两种语言各有优缺点。
1学习难度。
汇编因为的理解难度和开发难度比C语言大,所以学习难度大,都是对寄存器操作,学习汇编就要学习这个单片机的硬件结构和基本组成、存储器访问方式、单片机I/O操作时序、定时计数器、中断处理、指令系统、寻址方式等知识点;而且每个系列芯片的内部寄存地址和寄存器都有差异,维护起来也十分困难。
2执行效率
汇编实时性比C语言好,占用单片机***少,生成的执行文件更小,汇编语言程序直接被转换成机器指令。而C语言编译过程会先形成汇编,在转为机器语言。
3移植性
C语言比汇编移植性好,程序可读性比汇编要强。实现相同功能,C语言的代码数量会比较短,对于汇编来说,每一种单片机汇编语言都不一样。所以移植性差。
C语言通过结构体,指针映射寄存器地址,当有需要时候,只需要简单更改寄存器地址,或者更改寄存器定义,即可满足程序和工程的移植。
4,调试
现在常见的用汇编的一些场合,往往有严格的时间要求。比如中断,特别是arm的快速中断,还比如一些对时间要求非常高的测控场合,可能要求微秒甚至纳秒级别的响应速度。这些应用在编程的时候有可能会一条指令的执行时间也会考虑。还有一些重复进行的运算函数,如果重复的次数多,又对时间有要求,那函数的执行时间又需要一条一条指令的扣。
还有一些场合,应用的cpu ,比如有些pic单片机,只有1k甚至512字节的空间,rom空间比较小,c语言优化后的编译代码,可能还是不如纯粹的汇编精简,这就需要汇编。
还有一些其他场合也是对代码空间有要求,比如linux启动的bootloader,还有PC上常见的常见文件系统mbr代码,也需要用汇编来编写。
此外对于单纯的学习来讲,汇编语言跟硬件的关系更密切,更直接,学习汇编更有利于理解单片机的结构。
要看是什么单片机。
32位单片机
如STM32。用C语言很合适,绝大多数工作都可以而且应该用C或者更高级的语言完成。只有极少数对性能或代码空间要求高的部分需要用汇编语言实现。
这类单片机在实际工作中也很少用到汇编,C语言基本能满足开发各种功能的需求。
8位单片机
如51系列,部分AVR。性能低,C编译器也不够标准。尤其因为历史上C编译器较昂贵,所以在这些平台上有大量汇编语言开发的积累。
另外,低端单片机往往实现的是简单逻辑,用汇编语言开发惯了的人,也没有太大动力改用C语言。
这样以来,学校课程中使用汇编语言也就正常了:既体现了一定的历史惯性、也有助于更深入的理解单片机系统。
从自己学习来说,汇编语言了解一下还是不错的。深入学习还是选C,以后单片机上直接用汇编的会越来越少。
现在一般单片机都支持C语言和晦涩难懂的汇编语言,在许多介绍单片机应用技术的教材中有相当一部分是用汇编语言编写的这说明汇编语言在学习单片机和编写单片机程序时尤其独特的优势,现在我把学习单片机使用汇编语言的一些优势来发表自己的看法,希望能够通过我说的这几点给学习单片机的朋友们一个参考意见并顺便解答一下这个问题。
第一点单片机汇编语言在执行效代码效率非常高
虽然单片机汇编语言在刚学初期会显得“晦涩难懂”但也并不是“一无是处”,在有些方面是单片机C语言所不能企及的,比如汇编语言首先在机器码生成方面其效率要比C语言高20%,所以用汇编语言编写程序能够减少占用单片机里的寄存器[_a***_],特别是对于容量小的单片机而言很重要。总之汇编语言要比C语言执行效率更高。
第二点单片机汇编语言执行速度快
我们知道任何编程语言最终都要生成单片机能够“识别”和执行的二进制码,由于汇编语言可以直接访问单片机的内部寄存器,所以单片机的汇编语言执行速度要比C语言快的多,可以实施精细而准确 的控制,在一些实时控制要求比较严格的控制场合一般要求用汇编语言。
第三点单片机汇编语言能够帮助有助于了解单片机内部的结构,尤其是寄存器
由于汇编语言的每条指令与单片机的指令码是一一对应的,所以通过学习单片机的汇编语言有助于学习单片机内部结构组成以及它的外设。尤其是对熟悉单片机内部的各种寄存器有很大的帮助。
鉴于以上三点我认为,单片机C语言编程和汇编语言编程各有各的特点,要想学好单片机并运用好单片机就要把这两种单片机语言都要学好才行。
以上就是我对这个问题的看法,欢迎朋友们参与讨论。敬请关注电子及工控技术,欢迎大家点赞
现在流行什么单片机?
对于初学者来说,可能对单片机品牌和体系划分不太熟悉,本人从事十多年单片机开发,对最近十多年的单片机行业发展情况还是可以介绍下。
在2010年之前,国内其实大家比较熟悉的单片机和品牌比较少,只有51系列,MSP430,PIC ,ATMEL的AVR,瑞萨,国产单片机品牌就靠台系几个品牌撑着,当时我所在的一家公司使用的AVR单片机,2010的时候,AVR出现一段时间缺货,导致那段时间价格也是涨了多,十几块钱一颗ATMEL16,市面上要二三十块钱一颗。那时候AVR的市场份额确实不小,正好就给了刚开始在国内推广的意法半导体机会。
然后10年以正点原子为代表的的开发板厂商推广意法半导体的STM32系列单片机至今,STM32单片机已经成为目前最出名和学习者最多的单片机之一。2010到2020之间,最流行的单片机就以stm32莫属了。
随着这几年美国开始制裁我们的半导体行业,国家层面积极鼓励发展国内半导体产业,推行国产替代,很多制造业厂家和开发工程师,也都转向国产单片机,尤其是因为疫情两三年,物流环节不顺畅,导致晶圆价格飞涨,接着出现恐慌性囤货进一步加剧国外单片机和半导体芯片缺货情况,这种情况传导到国内,包括晶圆物料,封测环节等,都出现缺货。
但整体来说,由于这一波缺货情况,很多个单片机品牌。比如老牌国产单片机GD单片机,还有极海,雅特力,国民技术,航顺,华大,沁恒,辉芒微,灵动微,新唐等品牌。还有RISC-V构架的单片机开始急速出现,因为其具有可替代,极速开发,价格便宜等因素,瓜分国外单片机品牌市场份额。很多公司的主控都换成了国产单片机。
我就有很多的客户之前用ST或者PIC单片机,因为交期问题,或者担心国外芯片限购,选用国产单片机替代原有芯片。所以经过这段时间,国产单片机品牌得到很***展,并且市场占有率也大增。
语言就是C 8位单片机 ,一部分人还用51,PIC工业控制用的也比较多但价格贵。 性价比高的是ST的和松翰的,AVR,三星等等都有用。 32位的PIC,ST,TI,NXP,都比较多用
这个问题问得好,目前流行的单片机个人觉得stm32受之无愧!为什么这样子说呢?且听我细细道来。
1.首先stm32作为一款入门级的嵌入式产品,虽说上手程度比arm9、coxter-a8要简单的多,但是其实现的功能却是不亚于这些高端的设备,操作系统没问题!界面so aeasy!而且还具有官方函数库的的大力支持,系统想不稳定都难!而且有不同的型号面向于不同的领域,可谓是令人佩服。
2.其次stm32的学习途径多,论坛多,人也多,出现问题了,可以及时地得到解决。这些因素都决定了stm32能问鼎第一的宝座!
你觉得呢?有兴趣的可以在下方评论区一起探讨嵌入式领域的知识。
看到单片机就不请自来了吧!
就目前而言,单片机技术被广泛应用于生活中,各种电器,各种电子设备都离不开单片机,花样太多,所以目前流行的单片机还是蛮多,主要看应用领域,下面简单介绍几种!
51单片机。
特点,够老够经典,很多人估计都是从它入门的吧!简单易用,资料齐全,发展这么多年也有它自己的领域。主要应用在一些简单的控制场所,比如玩具,小电器,小控制系统,还有其在教学场合的地位还是很高的。虽然经典,但是缺点蛮多。随着时代的进步,它已经不能满足我们的需求了,性能跟不上,ram,rom有限,ad速度精度都不高,串口数量少等问题。特别说一下,国内新一代51单片机STC还是可以的!
MSP430单片机
TI的片子。突出特点,功耗低。整体来看,这款单片机还是相当强大,运算速度和处理能力上都还是可以,主要是其低功耗这块,可以说是超低功耗,比较适合智能家居穿戴产品啥子。个人觉得主要缺点就是资料少的问题,一般只有通过***入手,不大适合初学者,上手不易
AVR单片机。
说到AVR就要说一下Arduino了。开源电子平台,说的是牛逼哄哄的,其实也是***用AVR作为主控设计的,说是德国人用AVR做飞控,可见性能上还是很牛逼的,其实我没用过AVR^_^!据说c语言编程写法上与传统的有些差异,不晓得能习惯不!
PIC单片机
今年也流行了,其强大的性能还是可以,分高中低,分别针对自己的领域。其低工作电压,低功耗,驱动能力强也是可圈可点。能满足大部分需求。在工业控制领域还是有一定地位。
Freescale
这个问题怎么回答呢,在各个领域内所用的单片机都不一样,并不是某一种单片机就适合所有环境。现在教课书还是老式的51单片机,但是老也代表成熟,好多型号还是很方便的。我个人用的较多的是AVR单片机,价格便宜,代码及学习材料充足,当前入门学习的arduino大部分用的就是这类芯片。低功耗就选sp430功耗极低,做手持设备再好不过了。再有就是高端大气上档次的arm芯片,可以直接用来上系统,等等等。无法确定那个好,那个不好。只能说那个适应罢了。你想学单片机做什么呢。
到此,以上就是小编对于松翰c语言的问题就介绍到这了,希望介绍关于松翰c语言的2点解答对大家有用。