单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。

这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。

一、单片机编程的特点

对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。

第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。

第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。

二、高级语言编写单片机程序的缺陷

高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。

高级语言无法实现精确的时序控制。

三、C语言是一个折中选择

其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序。

而C语言代码执行效率高,也比较精简,更便于移植......所以在现今的单片机编程语言中,C语言才会占据绝对主导地位

作者丨悟空问答:老马识途单片机

想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,学习C/C++的话笔者有一个C/C++的编程俩千人羣(Q艘索:C/C++编程学习13群)你如果感觉自学C语言/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的小伙伴就可以进来交流。

单片机单口不可用或被占用_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...相关推荐

  1. 单片机单口不可用或被占用_昆明工业控制单片机应用开发价格

    昆明工业控制单片机应用开发价格 jwsndfc 昆明工业控制单片机应用开发价格结构图组成推挽结构,从理论上讲是可以通过调配管子的参数轻松实现输出大电流,带载能力,两个管子根据通断状态有四种不同的组合, ...

  2. 单片机单口不可用或被占用_新唐单片机代码评审总结

    昨晚上,我们一个同事组织了一个小会议,大家一起讨论了一个项目的单片机代码,这个单片机用的是新唐单片机,期间大家也讨论了一些问题,总结一下,希望对写单片机的同学们有帮助. 我这个同事写的代码非常优秀,具 ...

  3. 单片机单口不可用或被占用_KQD:快驱动单片机

    公测阶段测试进度: 状态代码含义 X:规划中,尚未进入开发阶段. A:原型验证阶段,代表本驱动模块完成原型验证,仅表示此算法或方案可行. B:主要功能完成阶段,代表本驱动模块主要功能已经完成并可以跑通 ...

  4. 单片机中存储器扩展位地址线怎么算_单片机外部扩展存储器时,分时复用做数据线和低8位地址线的是( )。 (2.0分)_学小易找答案...

    [判断题]数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程() [单选题]单片机的P1口的功能是( ). (2.0分) [单选题]当52单片机应用系统需要扩展外部存储器或其他接口芯片时, ...

  5. hc05与单片机连接图_单片机科普:单片机的IO口不够用了怎么办?如何扩展单片机的IO口...

    单片机是一种可编程器件,在各种消费类电子.工业电子.汽车电子等行业应用广泛,目前开发产品的构架就是以单片机为核心,根据不同的功能搭建不同的外设电路.同样的功能,每个人.每个团队所做的技术方案都不会相同 ...

  6. m0单片机io口_51单片机独立按键和矩阵按键实现

    独立按键实验 按键是一种电子开关,使用时轻轻按开关按钮就可使开关接通,当松开手时, 开关断开.我们开发板上使用的按键及内部简易图如下图所示 管脚与管脚之间(注意是距离)距离长的是导通状态,短的是接通状 ...

  7. 如何利用单片机IO口产生两倍的电源电压

    简介 在很多情况下,电子系统中需要获得比工作电源高的电压电源,或者负电源.比如在一些功率器件(MOS)的基极驱动信号.扩展运算放大器的动态范围.一些通信信号(UART232). 现在有很多专门的芯片, ...

  8. 按键防抖_单片机用一个IO口采集多个按键信号

    一般按键信号都是高低电平,对于每一个按键信号单片机都需要一个IO口进行采集,这种按键采集方式比较简单,但是占用的单片机IO口比较多. 如果按键非常多,例如键盘,可以采用行列阵列方式进行信号采集.这种方 ...

  9. 单片机IO口模拟串口程序(发送+接收

    单片机IO口模拟串口程序(发送+接收)[转] qcmc 发表于 - 2011-6-23 0:42:00 前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口.经过若干曲折并参考了一些 ...

最新文章

  1. HTTPS的七个神话(译文)
  2. perl unload gbk oracle 数据库
  3. 鸿蒙之下5怎么跳城池,鸿蒙之空间道尊
  4. php连接mysql学习过程中遇到的各种问题总结
  5. Linux故障解决(3)——YUM安装任何软件 报错:ERROR: XZ COMPRESSION NOT AVAILABLE
  6. 语义分割之图像经镜像、翻转、裁剪后像素点的位置映射
  7. 【WinForm】自己写一个截图软件1 --注册全局热键
  8. servlet+jsp项目改成springboot+jsp+maven
  9. URLEncoder和URLDecoder;cookie中保存特殊字符以及URL中乱码问题解决方案
  10. EDU教育版Office365使用教程(一):邮箱登陆及使用
  11. java 避免gc_减少JAVA GC
  12. Domino未来三年的版本
  13. 四川大学计算机学院彭德中,四川省计算机学会
  14. 云服务器文件打包,如何把云服务器的文件打包出来
  15. Tunnel命令操作
  16. python 爬取天猫店铺商品评论
  17. 2021年全球开关收入大约4944.1百万美元,预计2028年达到6146.3百万美元
  18. CodeForces--ZeptoLab Code Rush 2015 (我参加的第一场cf比赛)
  19. Drools 规则文件语法概述
  20. 关于Oracle的参数是游标,如何处理(mirth)

热门文章

  1. Java JPA学习与使用小记
  2. GCC-windows的预编译版本——nuwen MinGW
  3. spring事务源码解析
  4. PyQt窗体视觉样式
  5. Careercup - Microsoft面试题 - 5672369481842688
  6. 9.20–9.24 三亚
  7. oracle 系统检查点,检查点(Checkpoint)优化及故障排除指南
  8. Win10+CUDA10.0.130+cudnn7.4.1+tensorflow1.13.1+anaconda3 5.2.0+GTX1060
  9. 动态规划——最大子段和(洛谷 P1115)
  10. 贪心策略——部分背包问题