怎么使用C语言控制硬件

描述

  C语言的应用编程在单片机的领域占了很大一部分,使用的比较多的51单片机和STM32单片机都可以使用MDK软件编写固件。

  单片机烧写了固件后可以点亮LED灯,可以驱动ADC检测电压,也可以驱动蜂鸣器发声,这就是简单地控制硬件。稍微复杂一点的,可以驱动NRF2401进行无线的连接,也可以使用ESP8266这类wifi芯片连接网络。

  接下来,简单地讲讲如何使用C语言控制硬件。

  1、电路连接

  简单的模块可以直接使用高低电平来控制,比如红外线发射模块,当你在驱动引脚上的电压达到3.3v,就能发出红外线;然后将电平设置为0v,红外线发射就停止了。

  一般而言,单片机的引脚输出电压能够达到3.3v,也是可以点亮红外线LED,但是可能会导致电流不稳定的问题,所以一般会使用一个三极管接在引脚和LED之间放大电流的驱动能力。

  从原理来说,通过加在LED上的电平不停的变化,并且严格按照一定的时间设置为高电平,然后变更为低电平,如此的反复循环,那就能够发出一段红外线控制码。只要手速够快,时间够精准完全能够控制家里的电视机、空调。

  2、单片机控制硬件

  上面说到纯手工控制模块遥控电视机、空调,但是实际上谁有这样的手速呢,即便有这样的手速那开关也受不了这样的操作频率。

  到了这会我们的单片机该闪亮登场了。以常用的51单片机而言,频率可以达到12MHZ。翻译成大白话就是,一秒钟可以按下开关12x10的6次方次。这简直是魔鬼手速,不仅快而且精准。关键是价钱也不太贵。比如,diy一个遥控器,电路板上IC的价格不过3块钱。

  单片机在这里就替代了手的作用,那么C语言就相当于控制手的大脑。

  其实这里只是举例了硬件控制中最常用的IO控制,实际的应用情况中除了IO控制,还有常用的ADC控制,这个就相当于单片机替你把使用万用表测量电压的活给干了。

  3、C语言控制单片机

  如果要从原理上来说,C语言并不能直接控制单片机。C语言是高级语言,是给我们人类来看的,单片机作为机器自然不懂这个。它只懂机器语言,说白了就是高低电平。但是为了减少歧义,就将这高低电平规格化了,变成了数字的0和1。

  编译器的工作其实就是将我们编写的C原因翻译成了数字0和1存到单片机里面。然后,单片机就按照这个固定的模式去比对,然后去执行。有点像上学时,老师在台上点名的意思。

  总的来说,C语言控制单片机,单片机控制硬件

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分