电工学习网

 找回密码
 立即注册
查看: 2854|回复: 0
打印 上一主题 下一主题

开发单片机学什么语言好?

[复制链接]
跳转到指定楼层
楼主
发表于 2019-7-23 07:52:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主流的单片机开发主要有两种语言,即汇编语言和C语言,下面我来说说我的理解。
1、汇编语言,对于初学者最好掌握,因为它更贴切地表达单片机寄存器间的逻辑转移关系,让你理解单片机更加透彻。汇编是一种更接近于硬件底层的低级语言。硬件在编程时总线和地址非常重要,在汇编语言中,一般用助记符来替代机器指令的操作码,用标号代表操作数的地址,所以汇编语言和机器指令之间存在着唯一对应的关系,这就导致了不通系列的单片机其汇编指令集是完全不通的。这样做是比较麻烦的,因为更改了单片机或者升级老产品之后,原有的汇编代码难以跨平台移植,只能再重新编写。所以,汇编的移植性非常差,由于是直接操作机器指令,所以在可读性上也非常差。这是汇编语言的两个最大的缺点,但是其优点就是执行效率非常高。从方便的角度上来说,汇编方便了硬件,但对工程师却不友好。
2、C语言,主流的开发语言,程序设计起来更加容易,不需要太深入了解单片机的内部结构即可开发。
3、其实,编译软件是把C语言转化为汇编语言,再转为单片机能读懂的二进制文件即HEX文件,然后烧录到单片机里。
在前几年使用汇编编程的人还是挺多的,现在使用汇编的人原来越少,即使是写驱动的人也不完全使用汇编而是使用汇编和C语言结合的方式。单片机的C语言编程具有两个最大的优点。
第一个优点:易于移植
有过单片机C语言编程的同行都有这样的经历,在编程时,首先要在初始化中配置单片机的寄存器,配置完之后的代码不再频繁的和寄存器打交道,所以使得C语言的层次非常清晰,在移植代码时,只需要根据新的平台修改一下寄存器的配置部分就可以了,功能主体部分几乎不用修改。这也就是很多优秀程序员所倡导的当文档层次化编程的原因,每个功能块都对应一个C文件和H头文件,在移植时只需要把这两个文件拷走即可,方便了移植。从这个方面来讲,完全可以抛开单片机的寄存器配置来实现编程,这方面做的比较好的如STM32的官方库编程和CMSIS等。
第二个优点:易于阅读
由于C语言通过寄存器和硬件驱动/接口建立关系,编程者不用再去记忆枯燥的指令,而且C语言编程的层次化、模块化编程也大大提高了代码的可读性。相比于汇编,C语言可以用更少的代码实现更复杂的功能,而且还更易于理解。这也是C语言越来越受欢迎的原因。
C语言对比汇编的优势通过前面的描述可以看得出来,C语言占有更多得优势,C语言易于跨平台移植、C语言易于理解、C语言易于延续。总之,从编程得角度C语言更受程序员们得欢迎。
随着技术的发展,单片机变得越来越模块化,目前用C语言来开发的居多,这两种语言各有各的优缺点点,不能说谁好谁不好。
其实,语言本身是没啥好纠结的,一个优秀的设计师并不是敲代码的,而是设计整个程序的架构,这才是核心。试想一下,假如程序的逻辑结构设计得不清晰,你再熟练各种语言又有何用呢?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-8-30 17:29

Powered by © 2011-2022 www.shop-samurai.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表