单片机c语言编程,51单片机C语言编程100例.docx

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

单片机c语言编程,51单片机C语言编程100例.docx


单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言 。这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适 。一、单片机编程的特点对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间 。
第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制 。第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担 。二、高级语言编写单片机程序的缺陷高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多 。
这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积 。高级语言无法实现精确的时序控制 。三、C语言是一个折中选择其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序 。
单片机用C语言编程很好学,为什么还要用汇编呢?
单片机c语言编程,51单片机C语言编程100例.docx


C语言是发展趋势,汇编可以帮助学生熟悉单片机内部结构 。首先汇编语言和C语言都是编程语言,汇编是一种机器语言直接面对底层,与单片机底层硬件构架息息相关,相对于C语言,是一门低级语言,C语言面向过程的语言,在编译执行会转为汇编在生成单片机可执行文件 。是一门高级语言,两种语言各有优缺点 。一,C语言/汇编优缺点 。
1学习难度 。汇编因为的理解难度和开发难度比C语言大,所以学习难度大,都是对寄存器操作,学习汇编就要学习这个单片机的硬件结构和基本组成、存储器访问方式、单片机I/O操作时序、定时计数器、中断处理、指令系统、寻址方式等知识点;而且每个系列芯片的内部寄存地址和寄存器都有差异,维护起来也十分困难 。2执行效率汇编实时性比C语言好,占用单片机资源少,生成的执行文件更小,汇编语言程序直接被转换成机器指令 。
【单片机c语言编程,51单片机C语言编程100例.docx】而C语言编译过程会先形成汇编,在转为机器语言 。3移植性C语言比汇编移植性好,程序可读性比汇编要强 。实现相同功能,C语言的代码数量会比较短,对于汇编来说,每一种单片机汇编语言都不一样 。所以移植性差 。C语言通过结构体,指针映射寄存器地址,当有需要时候,只需要简单更改寄存器地址,或者更改寄存器定义,即可满足程序和工程的移植 。
4,调试C语言调试方便,例如STM32开发过程中,可以使用jlink通过SWD进行在线仿真,调试各语法,语句执行情况,还可以查看各变量值的变化,很容易就能定位到BUG问题 。而汇编调试困难,很多时候难以很快定位问题 。二,单片机开发不一定都能用C语言单片机在上个世纪七十年代开始出现,早期都使用汇编语言进行开发,随着技术的发展进步,制程工艺快速提升,单片机的处理速度越来越快,很多单片机的开发环境都使用C语言编译,生产二进制文件 。

推荐阅读