0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎么使用C語言控制硬件

要長(zhǎng)高 ? 來源:電工之家 ? 作者:電工之家 ? 2022-06-04 17:31 ? 次閱讀

C語言的應(yīng)用編程單片機(jī)的領(lǐng)域占了很大一部分,使用的比較多的51單片機(jī)STM32單片機(jī)都可以使用MDK軟件編寫固件。

單片機(jī)燒寫了固件后可以點(diǎn)亮LED燈,可以驅(qū)動(dòng)ADC檢測(cè)電壓,也可以驅(qū)動(dòng)蜂鳴器發(fā)聲,這就是簡(jiǎn)單地控制硬件。稍微復(fù)雜一點(diǎn)的,可以驅(qū)動(dòng)NRF2401進(jìn)行無線的連接,也可以使用ESP8266這類wifi芯片連接網(wǎng)絡(luò)

接下來,簡(jiǎn)單地講講如何使用C語言控制硬件。

1、電路連接

簡(jiǎn)單的模塊可以直接使用高低電平來控制,比如紅外線發(fā)射模塊,當(dāng)你在驅(qū)動(dòng)引腳上的電壓達(dá)到3.3v,就能發(fā)出紅外線;然后將電平設(shè)置為0v,紅外線發(fā)射就停止了。

一般而言,單片機(jī)的引腳輸出電壓能夠達(dá)到3.3v,也是可以點(diǎn)亮紅外線LED,但是可能會(huì)導(dǎo)致電流不穩(wěn)定的問題,所以一般會(huì)使用一個(gè)三極管接在引腳和LED之間放大電流的驅(qū)動(dòng)能力。

從原理來說,通過加在LED上的電平不停的變化,并且嚴(yán)格按照一定的時(shí)間設(shè)置為高電平,然后變更為低電平,如此的反復(fù)循環(huán),那就能夠發(fā)出一段紅外線控制碼。只要手速夠快,時(shí)間夠精準(zhǔn)完全能夠控制家里的電視機(jī)、空調(diào)。

2、單片機(jī)控制硬件

上面說到純手工控制模塊遙控電視機(jī)、空調(diào),但是實(shí)際上誰有這樣的手速呢,即便有這樣的手速那開關(guān)也受不了這樣的操作頻率。

到了這會(huì)我們的單片機(jī)該閃亮登場(chǎng)了。以常用的51單片機(jī)而言,頻率可以達(dá)到12MHZ。翻譯成大白話就是,一秒鐘可以按下開關(guān)12x10的6次方次。這簡(jiǎn)直是魔鬼手速,不僅快而且精準(zhǔn)。關(guān)鍵是價(jià)錢也不太貴。比如,diy一個(gè)遙控器,電路板上IC的價(jià)格不過3塊錢。

單片機(jī)在這里就替代了手的作用,那么C語言就相當(dāng)于控制手的大腦。

其實(shí)這里只是舉例了硬件控制中最常用的IO控制,實(shí)際的應(yīng)用情況中除了IO控制,還有常用的ADC控制,這個(gè)就相當(dāng)于單片機(jī)替你把使用萬用表測(cè)量電壓的活給干了。

3、C語言控制單片機(jī)

如果要從原理上來說,C語言并不能直接控制單片機(jī)。C語言是高級(jí)語言,是給我們?nèi)祟悂砜吹?,單片機(jī)作為機(jī)器自然不懂這個(gè)。它只懂機(jī)器語言,說白了就是高低電平。但是為了減少歧義,就將這高低電平規(guī)格化了,變成了數(shù)字的0和1。

編譯器的工作其實(shí)就是將我們編寫的C原因翻譯成了數(shù)字0和1存到單片機(jī)里面。然后,單片機(jī)就按照這個(gè)固定的模式去比對(duì),然后去執(zhí)行。有點(diǎn)像上學(xué)時(shí),老師在臺(tái)上點(diǎn)名的意思。

總的來說,C語言控制單片機(jī),單片機(jī)控制硬件

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44452

    瀏覽量

    630784
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3161

    瀏覽量

    66003
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135541
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PLC編程語言C語言的區(qū)別

    在工業(yè)自動(dòng)化和計(jì)算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們?cè)诙鄠€(gè)方面存在顯
    的頭像 發(fā)表于 06-14 17:11 ?2055次閱讀

    C語言:嵌入式開發(fā)中的關(guān)鍵編譯器角色

    嵌入式程序開發(fā)跟硬件密切相關(guān),需要使用C語言來讀寫底層寄存器、存取數(shù)據(jù)、控制硬件等,C
    發(fā)表于 04-26 14:53 ?477次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>:嵌入式開發(fā)中的關(guān)鍵編譯器角色

    fpga是用c語言還是verilog

    FPGA(現(xiàn)場(chǎng)可編程邏輯門陣列)開發(fā)主要使用的編程語言硬件描述語言(HDL),其中Verilog是最常用的編程語言之一。而C
    的頭像 發(fā)表于 03-27 14:38 ?1501次閱讀

    fpga語言是什么?fpga語言c語言的區(qū)別

    FPGA語言,即現(xiàn)場(chǎng)可編程門陣列編程語言,是用于描述FPGA(Field Programmable Gate Array)內(nèi)部硬件結(jié)構(gòu)和行為的特定語言。它允許設(shè)計(jì)師以
    的頭像 發(fā)表于 03-15 14:50 ?833次閱讀

    C語言編程的七大陷阱與高效避坑指南

    在微控制器單元(MCU)開發(fā)領(lǐng)域,C語言因其接近硬件的特性、高效性和靈活性而廣泛應(yīng)用。
    的頭像 發(fā)表于 02-21 09:09 ?428次閱讀

    plc編程語言c語言的聯(lián)系 c語言和PLC有什么區(qū)別

    PLC編程語言C語言的聯(lián)系 PLC(可編程邏輯控制器)是一種針對(duì)自動(dòng)化控制系統(tǒng)的特殊計(jì)算機(jī)。PLC編程
    的頭像 發(fā)表于 02-05 14:21 ?3514次閱讀

    c語言,c++,java,python區(qū)別

    C語言、C++、Java和Python是四種常見的編程語言,各有優(yōu)點(diǎn)和特點(diǎn)。 C語言
    的頭像 發(fā)表于 02-05 14:11 ?1627次閱讀

    C語言控制器模組用戶手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《C語言控制器模組用戶手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 12-26 09:25 ?0次下載

    如何在Saber中使用C語言進(jìn)行建模呢?

    Saber不僅支持MAST語言和VHDL‐AMS語言建立模型,也支持C語言建立器件模型,這對(duì)熟悉C語言
    的頭像 發(fā)表于 12-05 11:30 ?1000次閱讀
    如何在Saber中使用<b class='flag-5'>C</b><b class='flag-5'>語言</b>進(jìn)行建模呢?

    C語言運(yùn)行環(huán)境是什么

    C語言運(yùn)行環(huán)境(C language runtime environment)是指在執(zhí)行C語言程序時(shí)所需的軟件及
    的頭像 發(fā)表于 11-27 16:13 ?3140次閱讀

    如何選擇創(chuàng)建c語言c++

    選擇創(chuàng)建 C 語言C++ 都需要綜合考慮多個(gè)因素。在決定使用哪種語言之前,我們需要對(duì)這兩種語言的特點(diǎn)、優(yōu)缺點(diǎn)、適用場(chǎng)景、學(xué)習(xí)成本等進(jìn)行全
    的頭像 發(fā)表于 11-27 15:58 ?525次閱讀

    嵌入式C語言的結(jié)構(gòu)特點(diǎn)

    嵌入式開發(fā)中既有底層硬件的開發(fā)又涉及上層應(yīng)用的開發(fā),即涉及系統(tǒng)的硬件和軟件,C語言既具有匯編語言操作底層的優(yōu)勢(shì),又具有高級(jí)
    的頭像 發(fā)表于 11-24 16:16 ?581次閱讀
    嵌入式<b class='flag-5'>C</b><b class='flag-5'>語言</b>的結(jié)構(gòu)特點(diǎn)

    \0在c語言中怎么用

    C語言是一種廣泛使用的程序設(shè)計(jì)語言,具有高效、簡(jiǎn)潔和可移植等特點(diǎn)。本文將詳盡介紹C語言的基本語法、數(shù)據(jù)類型、
    的頭像 發(fā)表于 11-24 09:59 ?2884次閱讀

    c語言程序設(shè)計(jì)概述

    電子發(fā)燒友網(wǎng)站提供《開源硬件-開發(fā)者智慧之c語言程序設(shè)計(jì)(帶書簽).pdf》資料免費(fèi)下載
    發(fā)表于 11-20 10:25 ?1次下載
    <b class='flag-5'>c</b><b class='flag-5'>語言</b>程序設(shè)計(jì)概述

    介紹一個(gè)用C語言編寫的硬件外設(shè)訪問庫(kù)

    今天要介紹的開源軟件叫 c-periphery,一個(gè)用 C 語言編寫的硬件外設(shè)訪問庫(kù)。
    的頭像 發(fā)表于 10-26 10:36 ?1061次閱讀
    介紹一個(gè)用<b class='flag-5'>C</b><b class='flag-5'>語言</b>編寫的<b class='flag-5'>硬件</b>外設(shè)訪問庫(kù)