• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C语言是如何控制硬件的?比如单片机C语言设置寄存器某位高低电

香龙十八 2017-02-08 浏览量:2029
    提到C语言就会想到单片机编程,像java python 这些就是纯软件编程语言,不会和硬件打交道。为什么C可以和硬件打交道,做底层驱动? 
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 一般来说,处理器能够处理的只有0和1那种二进制代码.这些高级语言一般是要转换为汇编,最后单片机自身还是要将汇编语言翻译成二进制代码.java python 这些只要有相应的编译器支持照样能给单片机编程,最近有个PYboard很流行,就是它自身的固件能够将python转换为汇编语言,因而能够支持python.还有什么不懂可以追问

    满意请采纳,

    • 发布于 2017-02-08
    • 举报
    • 评论 1
    • 0
    • 0
dos 回复了 chen0000009:真的是这样子么 回复

其他答案 数量:8
  • 是靠寄存器来控制硬件动作的,寄存器其实就是个接口,根据传进来的参数再决定做什么工作。并不是只有C语言能控制,汇编、pascal等能编译成二进制的语言都可以控制。其他的高级语言、托管、解释性的语言,由于需要运行时库不能直接控制,而需要转义后才能控制。
    • 发布于2017-02-08
    • 举报
    • 评论 0
    • 0
    • 0

  • C 语言应该算是高级语言,在使用单片机的C语言进行编程时,只是由于增强了程序的可读性,对于逻辑设计比较方便才使用C语言的,一开始学习51时,一定是学习的汇编的,而汇编也不是单片机可以识别的,单片机可以识别的是机器语言,而机器语言的执行又与单片机或是CPU的架构有关,同样的机器语言,在ARM、X86或是51上是不同的含义,大多数情况下是不能通用执行的。单片机C语言到机器码的过程就是编译了,一般使用集成IDE如Keil,或是使用gcc.
    java、python、go等等也可以控制硬件,但是其底层是C语言写的,这些高级语言只是在调用。
    • 发布于2017-02-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个其实是通过 编译器来实现的 C语言并没有控制硬件的功能,编译器会把C语言编译成cpu可识别的汇编指令 cpu通过这些指令实现硬件的控制,

    cpu外部的ic都是通过时序电路或者组合电路来实现的,cpu控制器其IO输出输入 完成对外部IC 寄存器等操作

    • 发布于2017-02-08
    • 举报
    • 评论 0
    • 0
    • 0

  • C语言是高级语言,实际上只是增加了可读性,C语言操作寄存器,然后操作硬件,实际上来说都是要转成机器语言的
    • 发布于2017-02-08
    • 举报
    • 评论 0
    • 0
    • 0

  • Java和Python也可以和底層溝通喔,只是多半都會包成Library並提供API使用,這好比Andorid中的HAL層一樣

    而C/C++多半就是底層直接描述的語言,這是因為C提供了Pointer的這項強大的功能使得C/C++更直覺地可以和底層溝通

    也因此眾多系統也從C/C++改寫,例如UNIX,方便移植到其他系統和硬體架構,提供了較佳的彈性

    Java和Python的優點則是只需要安裝對應的直譯器,例如JVM,就可以完成跨平台的移植,所以各有優缺點

    以上我的見解

    • 发布于2017-02-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个只能说Java一类的是调用的底层的驱动,没有底层的驱动他也是什么都做不了的,如果你自己弄个51的底层驱动库,然后最后你也可以不用和硬件打交道了!不过51这类的不是那么的复杂不用底层了!直接驱动就可以了!我个人是这么理解的!所有的语言都是在开发环境下最后变成0和1的码。
    • 发布于2017-02-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 有个本质区别,java必须运行在java虚拟机上,python是解释性语言,而控制硬件必须是编译成的二进制,确定的语言,而不是运行一句执行一句像python那样。

    所以,换句话说,如果java,python要来控制硬件,必须是专门重新做的库,底层还是C,只不过语法是java和python的语法罢了,不能完全算是python,java,因为他们二者强大的功能完全丢失了

    • 发布于2017-02-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有任何一种高级语言是可以直接控制硬件的,C也是编译成机器语言之后才可以的,其实任何语言都能够控制硬件
    • 发布于2017-02-09
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C语言是如何控制硬件的?比如单片机C语言设置寄存器某位高低电