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

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

    关注

    6079

    文章

    45660

    浏览量

    676603
  • C语言
    +关注

    关注

    183

    文章

    7650

    浏览量

    146639
  • 调制器
    +关注

    关注

    3

    文章

    981

    浏览量

    48953

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    手把手教你学51单片机-C语言

    和规范,都是与实际项目开发相结合的,这样读者入门后,能够很快的投入到实际开发中去。 5、重点关注实用技术 本书的内容偏重于单片机的应用而非详尽的理论阐述。传统的书籍一般会把和
    发表于 03-05 11:47

    C语言主要特点

    。 5.语法限制不太严格,程序设计自由度大。 6.C语言允许直接访问物理地址,能进行位(bit)操作,能够实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C
    发表于 01-05 07:41

    这几个单片机技巧如果不了解,真的很难再进阶

    效率的开发,小编总结了几个技巧,帮助大家进阶,优秀的开发者路上越走越远! 如何提高C的代码效率? 用C
    发表于 01-05 07:22

    C语言C++的区别及联系

    过程和面向对象的优缺点 面向过程语言: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程
    发表于 12-24 07:23

    请问芯源CW32 MCU支持哪些汇编语言

    芯源CW32 MCU支持哪些汇编语言
    发表于 12-23 06:14

    C语言中可以嵌套汇编语言吗?

    请问C语言中可以嵌套汇编语言吗?
    发表于 12-15 08:14

    C语言和C++之间的区别是什么

    区别 1、面向对象编程 (OOP): C语言是一种面向过程的语言,它强调的是通过函数将任务分解为一系列步骤进行执行。 C++
    发表于 12-11 06:23

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

    的存储空间非常有限,我们使用者需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。高级语言也无法实现精确的时序控制。 三、C语言是一个折中选择 其实用
    发表于 11-28 07:37

    汇编语言还有必要学习吗

    1、嵌入式操作系统需要汇编语言 2、实时性要求非常高的地方,需要汇编语言,比如FFT算法。 3、汇编语言做运算那叫一个痛苦,下面是一段双字节乘法,浮点数就更难搞
    的头像 发表于 11-25 11:46 883次阅读
    <b class='flag-5'>汇编语言</b>还有必要学习吗

    汇编语言的起源

    一、汇编语言是什么? 我们知道,CPU 只负责计算,本身不具备智能。你输入一条指令(instruction),它就运行一次,然后停下来,等待下一条指令。 这些指令都是二进制的,称为操作码
    发表于 11-20 07:19

    C语言和单片机C语言有什么差异

    语言的功能特性外,它可以很好的操作底层的硬件接口。C语言的基础上,如果你把一些单片机的端口或特殊功能寄存器加于定义,使用的时候会更加方便,
    发表于 11-14 07:55

    开发单片机需要学习什么?软件编程的 4 个关键层次

                        开发单片机需要学习什么?软件编程的 4 个关键层次 单片机的 “智能” 全靠软件实现,编程技能需从基础语法逐步进阶到复杂逻辑,每个层次对应不同的开发需求
    的头像 发表于 08-25 11:32 1189次阅读

    汇编语言教学中文资料

    电子发烧友网站提供《汇编语言教学中文资料.rar》资料免费下载
    发表于 06-30 15:15 9次下载

    Windows环境下32位汇编语言中文资料

    电子发烧友网站提供《Windows环境下32位汇编语言中文资料.rar》资料免费下载
    发表于 06-30 15:14 0次下载

    单片机原理及应用

    本书全面系统地介绍了 MCS-51 系列单片机的基本结构、工作原理及应用技术。主要内容包括:微型计算机的基础知识、MCS-51 单片机的基本结构、汇编语言和 C51
    发表于 06-16 16:58