0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言和汇编语言在开发单片机时各有哪些优缺点?

GReq_mcu168 来源:玩转单片机 2019-11-26 14:21 次阅读

1. C语言汇编语言在开发单片机时各有哪些优缺点?

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU, 其汇编语言可能有所差异,所以不易移植。

C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。

对于目前普遍使用的RISC 架构的8bit MCU来说,其内部ROMRAM、 STACK 等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。

2. C或汇编语言可以用于单片机,C++能吗?

在单片机开发中,主要是汇编和C。

3. 搞单片机开发,一定要会 C 吗?

汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU, 其汇编语言可能有所差异,所以不易移植。

C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、 有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。

此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。

综上所述,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程

4. 当开发一个较复杂而又开发时间短的项目时,用C还是用汇编开发好?

对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。如果对这些特性不了解,那调试起来就有的烦了,到头来可能还不如用汇编来的快。

5. 在教学中要用到8088和196芯片单片机教材,请问那里可以找到关于这方面的书或资料

有关这方面的教材,大学里常用的一本是《IBM-PC 汇编语言程序设计》(清华大学出版社出版),在网上以及书店都是可以找到的,另外网上还可以搜索到很多其他的教材如:《微机原理及汇编语言教程》(杨延双 张晓冬等编著 )和《16/32 位微机原理、汇编语言及接口技术》(作者:钟晓捷 陈涛 ,机械工业出版社出版)等,可以在较大型的科技书店里查找或者直接从网上订购。

6. 初学者到底是应该先学C还是汇编?

对于单片机的初学者来说,应该从汇编学起。因为汇编语言是最接近机器码的一种语言,可以加深初学者对单片机各个功能模块的了解,从而打好扎实的基 础。

7. 在芯片集成技术日益进步的今天,单片机的集成技术发展也很迅速,在传统的40引脚的基础上,推出20引脚的单片机系列,使很多的引脚可以复用,这种复用技术的使用在实际应用中会不会影响其功能的执行?

在实际应用中不会影响其功能的执行,但是要注意的是, 有的MCU如果采用复用引脚的话,该引脚会有一些应用上的限制,这在相应的datasheet里面都会有描述,所以在系统规划的时候都要予以注意。

8. Delta-Sigma软件测量方式,是什么概念?

Delta-Sigma原理一般应用在ADC应用中。具体来说,Delta-Sigma ADC的工作原理是由差动器、积分器和比较器构成调制器,它们一起构成一个反馈环路。

调制器以大大高于模拟输入信号带宽的速率运行,以便提供过采样。模拟输入与反馈信号(误差信号)进行差动 (delta)比较。该比较产生的差动输出馈送到积分器(sigma)中。然后将积分器的输出馈送到比较器中。比较器的输出同时将反馈信号(误差信号)传送到差动器,而自身被馈送到数字滤波器中。这种反馈环路的目的是使反馈信号(误差信号)趋于零。

比较器输出的结果就是 1/0 流。该流如果 1 密度较高,则意味着模拟输入电压较高;反之,0 密度较高,则意味着模拟输入电压较低。接着将 1/0 流馈送到数字滤波器中,该滤波器通过过采样与抽样,将 1/0 流从高速率、低精度位流转换成低速率、高精度数字输出。

简而言之,Delta就是差动,Sigma就是积分的意思。Delta-Sigma软件测试,简单理解应该是通过软件模拟差动积分的过程。具体来说,就是侦测外部输入的 电压(或者电流)信号变化,然后通过软件积分运算,得出外部信号随时间变化的基本状况。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5996

    文章

    43941

    浏览量

    620340
  • C语言
    +关注

    关注

    180

    文章

    7519

    浏览量

    126935
  • 调制器
    +关注

    关注

    3

    文章

    780

    浏览量

    44703

原文标题:单片机编程语言及应用技巧解析

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【RISC-V开放架构设计之道|阅读体验】汇编语言和扩展指令集

    【RISC-V开放架构设计之道|阅读体验】汇编语言和扩展指令集 汇编语言C语言翻译成可执行的机器语言的重要步骤包括编译过程,
    发表于 02-03 13:29

    汽车ECU编程是单片机C语言还是汇编语言

    汽车ECU编程是单片机C语言吗?还是汇编语言
    发表于 01-26 06:08

    C语言能够实现单片机功能,为什么还要使用汇编呢?

    C语言能够实现单片机功能,为什么还要使用汇编呢? C语言是一种高级编程语言,它具有跨平台、可移植性强、易于使用的特点,使得
    的头像 发表于 01-15 14:59 204次阅读

    你用过哪些编程语言开发单片机

    C语言是最常用的一种用于单片机开发语言,也是一种高级编程语言,具有较好的可移植性和可读性。对于单片机
    发表于 12-04 10:18 315次阅读

    单片机应用编程技巧问答

    1. C语言和汇编语言开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器
    的头像 发表于 11-03 17:20 164次阅读

    请问C语言和汇编语言开发单片机时各有哪些优缺点

    C语言和汇编语言开发单片机时各有哪些优缺点
    发表于 10-30 06:32

    请问C语言和汇编语言开发单片机时各有哪些优缺点

    C语言和汇编语言开发单片机时各有哪些优缺点
    发表于 10-26 07:47

    汇编语言和C语言哪个好用一点?

    汇编语言和C语言哪个好用一点
    发表于 10-25 08:02

    51单片机C语言入门教程

    的选择之一。51 的编程语言常用的有二种,一种是汇编语言,一种是 C 语言汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就
    发表于 09-28 08:01

    51单片机汇编语言教程

    51单片机汇编语言教程(全28讲),十分全面以及详细介绍
    发表于 09-27 07:56

    51单片机汇编语言教程

    51单片机汇编语言教程(25讲),十分详细的介绍
    发表于 09-25 07:49

    ARM汇编语言入门

    语言,只比处理器的母语机器代码高出一步。 用汇编语言编写整个程序,即使是相对简单的程序,也很复杂。这就是为什么大多数人使用CC++等高级语言
    发表于 08-08 07:28

    单片机的c语言入门指南

    随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使 用高级语言开发,其中主要是以 C
    发表于 07-07 14:34 1次下载

    单片机汇编语言的结构/数据类型/汇编指令

    开发汇编语言是为了为机器级代码指令提供助记符或符号,汇编语言程序由助记符组成,因此应将它们翻译成机器代码。负责这种转换的程序称为汇编程序。汇编语言
    的头像 发表于 07-07 12:28 1960次阅读

    神经元汇编语言参考

    神经元汇编语言参考
    发表于 07-04 20:47 0次下载
    神经元<b class='flag-5'>汇编语言</b>参考