大家都知道,單片機(jī)可以通過控制硬件實(shí)現(xiàn)產(chǎn)品的各項(xiàng)功能。那么,單片機(jī)是如何控制硬件的呢?
單片機(jī)控制硬件,首先要使用代碼編寫相關(guān)程序,其實(shí)程序的本身就是一個(gè)高低電平的組合,它通過在CPU上執(zhí)行模擬各種決策過程,在這個(gè)過程中,計(jì)算機(jī)就相當(dāng)于是一堆開關(guān),控制著每個(gè)過程的進(jìn)行和停止。
通過指令向某些地址寫出數(shù)據(jù),訪問特定地址是通過各種尋址機(jī)制/指令完成的,歸根結(jié)底也可以說是通過開關(guān)切換,改變了電路拓?fù)?。相?dāng)于開啟/關(guān)閉了對(duì)應(yīng)地址上的某個(gè)開關(guān),這個(gè)開關(guān)可以是類似CPU內(nèi)部那樣的一組三極管,也可以是通向另外一個(gè)繼電器的信號(hào)線。
就像人們開車一樣,神經(jīng)發(fā)出的微不足道的電脈沖通過肌肉放大,影響發(fā)動(dòng)機(jī)/變速箱的運(yùn)行,涉及數(shù)百甚至數(shù)千馬力的能量洪流,然后汽車開走。
軟件也是工作中的實(shí)體,軟件的本質(zhì)是電流信號(hào)。用電壓代表不同的信息,用這些電流信號(hào)控制邏輯電路的通斷,用邏輯電路的通斷控制硬件的工作。
講到這里,又回到了之前軟件是一個(gè)開關(guān)信號(hào)的作用,開關(guān)要工作,必須保證硬件是加電的,沒有接通電源的硬件是無法用軟件來控制的,就好像沒有插上電源的臺(tái)燈,再怎么按開關(guān)都是不會(huì)亮的。任何軟件在運(yùn)行前都要有一個(gè)將其轉(zhuǎn)化為電流信號(hào)的實(shí)體化過程,你寫在紙上的軟件代碼是永遠(yuǎn)也不能控制硬件的。
早期電腦用人工接線輸入程序,相當(dāng)于用人體的力量將軟件代碼實(shí)體化為電信號(hào);現(xiàn)在我們用的軟盤、硬盤是通過磁頭將程序代碼轉(zhuǎn)化為電信號(hào),光盤需要通過光頭將程序代碼轉(zhuǎn)化為電信號(hào)等等。
比如CPU從存儲(chǔ)器或高速緩沖存儲(chǔ)器中取出指令,放入指令寄存器,并對(duì)指令譯碼。它把指令分解成一系列的微操作,然后發(fā)出各種控制命令,執(zhí)行微操作系列,從而完成一條指令的執(zhí)行。
利用你輸入的能量改變輸出的結(jié)果,形成多米諾骨牌一樣的效應(yīng),最后輸出了結(jié)果,就比如你按手機(jī)音量鍵,給單片機(jī)一個(gè)信號(hào),就是用硬件控制了硬件,屏幕顯示音量變化,通過你按鍵開始的,或者你觸摸屏幕,用語音控制,總之就是人為的輸入一個(gè)能量,在硬件上形成了一個(gè)信號(hào),才能驅(qū)動(dòng)信號(hào),而軟件只是一種顯現(xiàn)出來的狀態(tài)而已,你用鍵盤輸入的匯編,C,Java,都是人為輸入了硬件的信號(hào),才有你以為的軟件控制硬件,但是啟始的信號(hào)都來自人為的輸入。
以上就是關(guān)于單片機(jī)是如何控制硬件的全部內(nèi)容分享,如果您有單片機(jī)或者方案開發(fā)需求,可以點(diǎn)擊右邊的咨詢熱線和微信掃一掃直接和我們聯(lián)系,宇凡微提供8/32位單片機(jī),為客戶量身定制的合封單片機(jī),擁有成熟的封裝技術(shù)和封裝工藝,除了能夠保證合封之后的良率以及安全性,還能根據(jù)客戶的功能需求選擇最佳的合封方式,節(jié)省成本。
【本文標(biāo)簽】 單片機(jī)
【責(zé)任編輯】單片機(jī)工程師
ALL RIGHT RESERVED 2022. 粵ICP備17095549號(hào) 技術(shù)支持: 牛商股份 百度統(tǒng)計(jì) 粵公網(wǎng)安備 44030402004503號(hào)