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

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

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

代碼如何控制硬件的?

汽車電子技術(shù) ? 來(lái)源:華維單片機(jī)編程 ? 作者: 華維 ? 2023-02-09 17:21 ? 次閱讀


我們學(xué)習(xí)單片機(jī)時(shí),把代碼編譯后燒錄到單片機(jī)上,單片機(jī)就能控制外設(shè)工作,如LED的亮滅閃爍。

那么,代碼是如何控制硬件的呢?

敲入代碼,其實(shí)就是通過(guò)鍵盤敲入高低電平,雖然之間經(jīng)過(guò)了好幾輪抽象和轉(zhuǎn)換。


程序本身就是高低電平的組合;它通過(guò)在CPU上執(zhí)行來(lái)模擬各種決策過(guò)程;同時(shí),計(jì)算機(jī)就是一堆開關(guān)。


那么,通過(guò)指令向某些地址寫出數(shù)據(jù)(訪問(wèn)特定地址是通過(guò)各種尋址機(jī)制/指令完成的,歸根結(jié)底也可以說(shuō)是通過(guò)開關(guān)切換,改變了電路拓?fù)洌?,就等于開啟/關(guān)閉了對(duì)應(yīng)地址上的某個(gè)開關(guān);這個(gè)開關(guān)可以是類似CPU內(nèi)部那樣的一組三極管,也可以是通向另外一個(gè)繼電器的信號(hào)線——這個(gè)信號(hào)就促使繼電器閉合,于是電機(jī)導(dǎo)通……


就好象人開汽車一樣,神經(jīng)發(fā)出的微不足道的電脈沖經(jīng)過(guò)肌肉放大,影響了涉及數(shù)百甚至數(shù)千馬力的能量洪流的發(fā)動(dòng)機(jī)/變速箱的運(yùn)轉(zhuǎn),然后汽車就開走了。

軟件在工作的時(shí)候也是實(shí)體,軟件的實(shí)質(zhì)就是電流信號(hào),用電壓的高低代表不同是信息,用這些電流信號(hào)去控制邏輯電路的通斷,靠邏輯電路的通斷來(lái)控制硬件的工作。


說(shuō)到底軟件就是起到一個(gè)開關(guān)信號(hào)的作用,開關(guān)要工作,必須保證硬件是加電的,沒(méi)有接通電源的硬件是無(wú)法用軟件來(lái)控制的。就好比沒(méi)有插上電源的臺(tái)燈,你怎么按開關(guān)都是不會(huì)亮的。


任何軟件在運(yùn)行前都要有一個(gè)將其轉(zhuǎn)化為電流信號(hào)的實(shí)體化過(guò)程,你寫在紙上的軟件代碼是永遠(yuǎn)也不能控制硬件的。


早期電腦用人工接線輸入程序,相當(dāng)于用人體的力量將軟件代碼實(shí)體化為電信號(hào);現(xiàn)在我們用的軟盤、硬盤是通過(guò)磁頭將程序代碼轉(zhuǎn)化為電信號(hào),光盤需要通過(guò)光頭將程序代碼轉(zhuǎn)化為電信號(hào)等等。


比如CPU從存儲(chǔ)器或高速緩沖存儲(chǔ)器中取出指令,放入指令寄存器,并對(duì)指令譯碼。它把指令分解成一系列的微操作,然后發(fā)出各種控制命令,執(zhí)行微操作系列,從而完成一條指令的執(zhí)行。


利用你輸入的能量改變輸出的結(jié)果,形成多米諾骨牌一樣的效應(yīng),最后輸出了結(jié)果,就比如你按手機(jī)音量鍵,給單片機(jī)一個(gè)信號(hào),就是用硬件控制了硬件,屏幕顯示音量變化,通過(guò)你按鍵開始的,或者你觸摸屏幕,用語(yǔ)音控制,總之就是人為的輸入一個(gè)能量,在硬件上形成了一個(gè)信號(hào),才能驅(qū)動(dòng)信號(hào),而軟件只是一種顯現(xiàn)出來(lái)的狀態(tài)而已,你用鍵盤輸入的匯編,C,Java,都是人為輸入了硬件的信號(hào),才有你以為的軟件控制硬件,但是啟始的信號(hào)都來(lái)自人為的輸入。


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

    關(guān)注

    6040

    文章

    44594

    瀏覽量

    636963
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4810

    瀏覽量

    68827
  • 燒錄
    +關(guān)注

    關(guān)注

    8

    文章

    265

    瀏覽量

    35653
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用MATLAB代碼控制連接到Arduino板的LED

    在 MATLAB 軟件中為 Arduino 設(shè)置硬件支持包后,我們將使用 MATLAB 代碼控制連接到 Arduino 板的 LED。
    的頭像 發(fā)表于 11-16 17:36 ?7864次閱讀
    如何使用MATLAB<b class='flag-5'>代碼</b><b class='flag-5'>控制</b>連接到Arduino板的LED

    單片機(jī)基礎(chǔ):代碼如何控制硬件的?

    繼電器是一種利用電磁鐵控制的開關(guān);當(dāng)向電磁鐵通電時(shí)就產(chǎn)生磁場(chǎng),而這個(gè)磁場(chǎng)就會(huì)吸合或者分離開關(guān),從而實(shí)現(xiàn)“以微弱電流控制另一條電路的通斷”這個(gè)功能。
    發(fā)表于 02-21 14:43 ?1224次閱讀
    單片機(jī)基礎(chǔ):<b class='flag-5'>代碼</b>如何<b class='flag-5'>控制</b><b class='flag-5'>硬件</b>的?

    零編碼生成智能硬件APP代碼

    本帖最后由 機(jī)智小編 于 2017-3-29 13:59 編輯 為了降低開發(fā)智能硬件APP開發(fā)門檻,降低開發(fā)資源的投入,機(jī)智云在《APP開源框架》基礎(chǔ)上進(jìn)一步推出了實(shí)現(xiàn)項(xiàng)目完整控制功能的APP
    發(fā)表于 03-29 09:52

    如何優(yōu)化控制算法的代碼

    編者按:在電力電子控制應(yīng)用中,優(yōu)化控制算法的代碼,是開發(fā)人員常常要考慮的問(wèn)題。在更多的時(shí)間內(nèi)執(zhí)行更多的算法,就意味著更高的控制頻率和更快的系統(tǒng)響應(yīng)。下面這篇文章來(lái)網(wǎng)絡(luò),很全面的總結(jié)了在
    發(fā)表于 08-30 07:57

    Python控制硬件

    端口,使用 pyvisa 庫(kù)來(lái)控制儀器設(shè)備等。首先,你需要在計(jì)算機(jī)上安裝相應(yīng)的庫(kù),然后就可以使用 Python 代碼來(lái)控制硬件了。例如,如果你要
    發(fā)表于 03-26 19:42

    基于開放源代碼硬件設(shè)計(jì)方法研究

    基于開放源代碼硬件設(shè)計(jì)方法研究 摘要:可重用性是當(dāng)今超大規(guī)模集成電路設(shè)計(jì)的必要元素。與傳統(tǒng)的封閉源代碼付費(fèi)IP 相比,開源硬件以共享設(shè)計(jì)文檔和IP
    發(fā)表于 02-10 13:50 ?9次下載

    基于開放源代碼硬件設(shè)計(jì)方法研究

    可重用性是當(dāng)今超大規(guī)模集成電路設(shè)計(jì)的必要元素。與傳統(tǒng)的封閉源代碼付費(fèi)IP 相比,開源硬件以共享設(shè)計(jì)文檔和IP 模塊的方式為硬件設(shè)計(jì)的重用提供了更加徹底有效的解決辦法。
    發(fā)表于 04-23 08:40 ?18次下載

    STM32按鍵控制小車代碼

    好用的stm32小車代碼,STM32按鍵控制小車代碼,STM32按鍵控制小車代碼,STM32按鍵控制
    發(fā)表于 06-08 16:28 ?49次下載

    TW8823控制代碼

    TW8823控制代碼,此為其中一部分。
    發(fā)表于 08-21 10:42 ?27次下載

    怎樣僅使用3個(gè)Arduino引腳控制8個(gè)輸出數(shù)量的倍數(shù)所需的硬件代碼

    最后,下面給出了控制引腳的總體代碼,我還附帶了該程序的代碼。因此,在此代碼中,以下引腳設(shè)置為高電平,并且可以使用清除寄存器功能將其復(fù)位。我使用3個(gè)移位寄存器模塊,因此如果使用2個(gè)移位寄
    的頭像 發(fā)表于 11-20 11:09 ?5478次閱讀
    怎樣僅使用3個(gè)Arduino引腳<b class='flag-5'>控制</b>8個(gè)輸出數(shù)量的倍數(shù)所需的<b class='flag-5'>硬件</b>和<b class='flag-5'>代碼</b>

    關(guān)于C程序源代碼是如何在硬件上運(yùn)行的?

    C程序源代碼是如何在硬件上運(yùn)行的?
    的頭像 發(fā)表于 02-05 12:37 ?2911次閱讀

    直流電機(jī)控制代碼

    直流電機(jī)控制代碼(深圳市普德新星電源技術(shù)有限公司官網(wǎng))-?直流機(jī)控制代碼 可以控制直流機(jī)的轉(zhuǎn)速以及正反轉(zhuǎn)
    發(fā)表于 09-28 12:24 ?31次下載
    直流電機(jī)<b class='flag-5'>控制</b><b class='flag-5'>代碼</b>

    代碼是如何控制硬件的?

    先說(shuō)代碼: 我們是用電腦的鍵盤來(lái)輸入的指令,每一個(gè)指令都對(duì)應(yīng)一個(gè)ASCII碼,而這里的ASCII碼就是有序的電壓的高低(或電流的有無(wú),下面只提電壓的高低),即我們輸入的是電壓的高低,你所看到代碼是這些電壓的高低控制顯示器所顯示的
    的頭像 發(fā)表于 05-12 14:19 ?1605次閱讀
    <b class='flag-5'>代碼</b>是如何<b class='flag-5'>控制</b><b class='flag-5'>硬件</b>的?

    單片機(jī)如何通過(guò)代碼控制硬件:一名工程師的分享

    今天跟大家聊聊單片機(jī)是怎樣通過(guò)代碼來(lái)操控硬件的。作為一名單片機(jī)工程師,我們平時(shí)的工作就像是給單片機(jī)編寫“指令集”,讓它按照我們的意圖去驅(qū)動(dòng)各種硬件設(shè)備。
    的頭像 發(fā)表于 03-06 14:46 ?1577次閱讀
    單片機(jī)如何通過(guò)<b class='flag-5'>代碼</b><b class='flag-5'>控制</b><b class='flag-5'>硬件</b>:一名工程師的分享

    手柄控制代碼及使用方法

    手柄控制代碼及使用方法
    的頭像 發(fā)表于 05-15 10:19 ?1959次閱讀