代碼到底是如何控制硬件的?
2018-03-08 14:30:25閱讀量:16417來源:立創商城
先說代碼:
我們是用電腦的鍵盤來輸入的指令,每一個指令都對應一個ASCII碼,而這里的ASCII碼就是有序的電壓的高低(或電流的有無,下面只提電壓的高低),即我們輸入的是電壓的高低,你所看到代碼是這些電壓的高低控制顯示器所顯示的圖像,其實電腦也不知道它是什么,只知道這樣顯示。
結論:代碼其實就是存儲在存儲器(內存、硬盤或者閃存等等)中有序的電壓的高低。
再說編譯:
編譯是一個有序的電壓的高低向另一種有序的電壓高低的一種轉換過程,下面以52單片機為例,我們編譯是從表示ASCII碼的那種有序電壓高低轉換為52單片機能夠識別的另一種規定好的有序電壓高低,即表示HEX文件的電壓高低。
結論:編譯出的結果還是電腦中存儲的有序電壓高低。
到單片機燒錄:
接下來就是燒錄,理解了上面兩點就很容易理解下面的內容,燒錄就是電腦中的有序電壓高低通過數據線傳輸到單片機中的ROM中。接下來ROM就可以釋放其中的電壓來控制外圍的電路。
總結:從代碼的編輯到最后對電路的控制都是電壓在起作用,只是為了方面我們而給我們展現的形式不一樣而已,而其本質都是電壓,這樣也就不存在轉換。
理解這句話:
世界上沒有軟件,軟件只是對硬件的一種反映,就像意識是對世界的一種反映是一樣的!
相信這樣就很容易理解了。
看到有人贊同了我的觀點,很開心,針對題目我再補充一點:
只要你提到0/1,提到軟件,這個問題就沒法理解...因為軟件【包括0/1】和硬件始終存在一道無法跨越的鴻溝!
你說你在單片機中寫0,請問你是如何寫0的?在鍵盤上敲個0?實際還是電平【和我們理解的數字沒關系】,那個0只是你在電腦顯示器上電平的呈現形式,那個所謂的0【實質是電平】可以傳輸到單片機中的ROM中,電平控制電平沒什么疑問吧,這樣就輸出低電平了...
L7805CV-DG/線性穩壓器(LDO) | 0.5637 | |
AMS1117-3.3/線性穩壓器(LDO) | 0.1237 | |
BAT54C,215/肖特基二極管 | 0.0334 | |
LM358DR2G/運算放大器 | 0.35 | |
CJ431/電壓基準芯片 | 0.1147 | |
LM393DR2G/比較器 | 0.318 | |
ADUM4160BRWZ-RL/隔離式USB芯片 | 31.6 | |
SS8050/三極管(BJT) | 0.035 | |
8S005/錫膏/錫漿 | 17.67 | |
B0505S-1WR3/隔離電源模塊 | 2.34 |