A. 軟體為什麼能控制硬體
問題一,舉個最簡單的例子,就是在「軟體空間」,也就是所謂的地址空間中的一些特殊區域,是通過「一根導線」,連接到某個外部引腳上面的,這樣,這個「地址空間」裡面的數據發生改變,這個引腳對應就有軟體上面的「0」、「1」兩個值,比如高電平和低電平。
這只是一個非常形象的例子,實際硬體運作過程比較復雜,但是核心差不多就是這樣,一般是通過特定的地址實現對硬體的控制——比如軟體的存在是依賴存儲器的,那麼存儲器硬體上的一種是電容,只要在這個電容上連接除了起存儲作用的「引線」,還連接別的東東,就可以起到相應的作用了,比如點亮一個發光的東東。
疑問二:你說的賦予相應的脈沖,應該是給控制信號吧。大概過程可以描述下:首先軟體寫入特定的特殊地址,硬體檢測到這種寫入後反饋給硬體固化的「軟體」(也可以叫固件,晶元們工作往往不只有硬體電路的參與,還有硬體本身帶有的軟體的參與),這種「軟體」再「寫回」給軟體,這就完成了一次通信的過程。
實際硬體軟體協同工作的過程非常復雜,《單片機原理》裡面有比較細致的描述。所有回答中使用引號的詞句表示這只是真實情況的一種近似或形容,不代表其真實工作過程。
B. 軟體到底是怎樣控制硬體的
首先,硬體是由各種「門」組成,「門」是個術語,不懂沒關系,可以把一個「門」看成是一個多米諾骨牌,它被推倒後能把下一張骨牌推倒。
看過多米諾骨牌視頻的都知道,骨牌的巧妙擺放再配合各種機關的話,在推倒後是可以實現許多種功能的,比如演奏音樂,控制燈光甚至開動汽車啦等等。
假設在一個大房間里,已經擺放了這樣一堆堆的多米諾骨牌,每一堆骨牌被推倒後,都能實現出特定的功能,但人是不能進來這個房間的,這些骨牌只能靠房間里的一個機械手來推倒。
然後,在房間外面,擺放著有限的幾塊骨牌,人可以按照不同的排列組合推倒這些骨牌,然後房間裡面就會有個機械手按照人的想法來推倒不同的骨牌,實現各種功能。
但是,有時候,人想實現的功能太復雜了,光靠控制機械手推倒骨牌的話,要推倒成千上萬塊骨牌,太累,那麼一種思路是:在房間里事先擺放更多,更復雜的骨牌,這叫增加硬體,但這樣很不靈活,只能解決部分問題。
另一種思路是:人每次都臨時控制機械手在房間里擺放新的骨牌,然後這些骨牌被推倒後,就可以一次性觸發更多的骨牌被推倒。
但實際上房間里並沒有新的骨牌,房間里已經擺放了一大堆專用的骨牌,然後機械手只是重新修改了這些骨牌擺放的位置而已。
這個房間,就是一台電腦,那些已經擺放好的骨牌,就是硬體,按照你的意願推倒一張骨牌,造成連鎖反應,實現你想要的功能,叫做控制,通過機械手重新擺放的骨牌,就是軟體。那一堆控制機械手的多米諾骨牌,就是你的滑鼠鍵盤。
控制原理解析:
程序本身就是高低電平的組合;它通過在CPU上執行來模擬各種決策過程;同時,計算機就是一堆開關;那麼,通過指令向某些地址寫出數據(訪問特定地址是通過各種定址機制/指令完成的,歸根結底也可以說是通過開關切換,改變了電路拓撲),就等於開啟/關閉了對應地址上的某個開關;這個開關可以是類似CPU內部那樣的一組三極體,也可以是通向另外一個繼電器的信號線——這個信號就促使繼電器閉合,於是電機導通。
就好象人開汽車一樣,神經發出的微不足道的電脈沖經過肌肉放大,影響了涉及數百甚至數千馬力的能量洪流的發動機/變速箱的運轉,然後汽車就開走了。
計算機也一樣:它通過向控制特定地址上的開關輸出0/1(高低電平),就可以通過事先准備的物理設施驅動諸如航模電機、舵機等等機構,這就完成了航模控制。
完整的控制迴路甚至可以是:
航模上的感測器採集飛行姿態、地形、位置等等數據(最終轉換成高低電平構成的信號)----信號通過某些埠送到CPU-----CPU執行程序,程序讀取感測器發來的信號,決定下一步的行動-----經過程序的智能判斷後,通過控制特定地址上的開關(前面提過,向這個地址發一組高低電平構成的數據就行了),驅動諸如航模電機、舵機等等機構,完成航模控制。
C. 操作系統是如何控制硬體的
操作系統大部分是用C語言編寫的,只有其中一小部分(核心部分)是用匯編語言編寫的,用匯編可能是有更高的執行效率。在操作系統載入進內存中運行的時候其實那些用C語言啊匯編語言編寫的代碼都是要轉換成二進制代碼的,也就是機器語言,其實任何軟體都要轉換成機器語言才能讓計算機運行。二進制代碼在機器裡面其實使用電壓的高低來表示的電壓高代表1電壓低代表0。
有了這些知識後你再來看你提問的問題,你說在操作系統執行關機命令的時候,軟體是怎麼控制硬體斷電的,其實在你點擊關機按鈕的時候,就是給操作系統發了一個命令,在計算機內部的表示形式也就是在你的點擊下,裡面產生了一組高低電壓(也可能是全高的電壓,或者是全是低的電壓,總之是一組電壓),這一組電壓會控制主機的運行狀態,讓主機知道了你給它發出的命令,然後它就會執行這個命令,而你就看到計算機關機了!
總之一句話,計算機裡面運行的是高低電壓,你所有的操作,還有計算機操作系統及應用軟體的操作都是通過電壓的高低來對硬體進行控制的。有關這方面的具體細節你可以參考一下計算機原理方面的書籍!
D. 軟體是怎麼控制硬體的
這個問題我回答過很多個人了,我很久以前也對這個問題很感興趣,查閱了很多資料之後,我得出一個結論:程序是一堆邏輯的代碼,而硬體是實實在在存在的需要用電平控制的電路,程序在控制硬體之前,必須要有一個中間的媒介來溝通兩個,這個媒介可能就是磁頭或者光頭,你所寫的代碼如果是在軟盤或者硬碟中,那麼就是磁頭通過掃描硬碟或軟盤將每個代碼轉化成電信號,如果是光碟里的代碼,那就用光頭掃描轉化。其實當你寫這些代碼時代碼便以磁排列的方式保存在軟硬磁碟上,因為在鍵盤上你每按下一個鍵,這便是一個電信號,每一個電信號都會在磁碟上產生一個磁排列,然後磁頭再將這些磁排列反變換為電信號,電磁互相轉化,這樣便可以控制硬體電路了,不知道這么說你能否理解
E. 軟體程序怎麼讓硬體工作的
軟體和硬體的關系,不是簡單的誰控制誰的問題,而是相互依存的關系。
如果把軟體和硬體作為一個整體的話,用人來做一個對比,可以說清這種關系。
軟體基本上就是一些人為定義好的邏輯,它是一種思想,就像人的思想一樣,所以CPU是人的大腦,而CPU里寫的軟體就是人腦中的思想。
我們這里說的硬體是一些CPU以外的各種電路,這些電路連接到CPU。有些電路是用來採集外界的信息,比如溫度、濕度、電壓、電流、光線、圖像、聲音、氣味等等,將這些信息傳遞給CPU。而有些電路是接收CPU發出的指令,按不同的電路實現不同的功能。
比如,發出一個關燈的指令,相應電路接收到該指令後實施關燈的動作。
下面用開燈的過程分別用人和軟體硬體來作一個對比:
人: 我在家裡看書,太陽落山了,天漸漸變黑,我發現看不清字了,這時我想到要去把燈打開,所以我走到開關邊上,伸出手按下開關,這時燈亮了,我又可以繼續快樂的看書。
軟體硬體:我家裡有一套電燈控制系統,工作原理是,光線檢測電路檢測到光線變暗了,它發出一個信號告訴CPU光線已經較暗了,CUP收到該信息後,其軟體邏輯為需要把燈打開,所以CPU輸出開燈的指令,電燈控制電路接到指令後接通電燈的開關,這時燈亮了。
(5)軟體如何控制硬體擴展閱讀:
軟體設計思路和方法的一般過程,包括設計軟體的功能和實現的演算法和方法、軟體的總體結構設計和模塊設計、編程和調試、程序聯調和測試以及編寫、提交程序。
1相關系統分析員和用戶初步了解需求,然後列出要開發的系統的大功能模塊,每個大功能模塊有哪些小功能模塊,對於有些需求比較明確相關的界面時,在這一步裡面可以初步定義好少量的界面。
2系統分析員深入了解和分析需求,根據自己的經驗和需求做出一份文檔系統的功能需求文檔。這次的文檔會清楚例用系統大致的大功能模塊,大功能模塊有哪些小功能模塊,並且還例出相關的界面和界面功能。
3系統分析員和用戶再次確認需求。
4系統分析員根據確認的需求文檔所例用的界面和功能需求,用迭代的方式對每個界面或功能做系統的概要設計。
5系統分析員把寫好的概要設計文檔給程序員,程序員根據所例出的功能一個一個的編寫。
6測試編寫好的系統。交給用戶使用,用戶使用後一個一個的確認每個功能,然後驗收。
F. 軟體怎麼操控硬體的
計算機軟體在計算機內部無非也就是一堆01代碼,作用於硬體也是因為這些01代碼,這相對比較復雜的
舉個例子說:列印機,它有自己的埠地址,當你點擊列印的時候,系統會把這個指令傳到它的埠,給它加上一組高低電壓。
安裝軟體的過程除了把軟體拷到電腦上之外,剩下的還有給操作系統作個標記(在注冊表內注冊)
系統為每個硬體設備留下了埠地址,軟體作用於硬體首先是把指令傳送到他的埠地址。而硬體的工作 也無非是幾個指令而已,對它而言就是幾個高低電壓組成的,用軟體控制就是發給它幾個特殊的01組合代碼。軟體的工作就是給這樣的硬體編程。規定,什麼樣的操作用什麼樣的代碼而已。
G. 軟體是如何控制硬體的
樓上得回答很專業啊,我就打個比方吧,硬體就像武器,人就像軟體。雖然很多人都可以使用武器,但武器的效果卻是不一樣的。
H. 軟體是怎樣控制硬體的
軟體通過修改存儲器電位的高低然後驅動硬體電路開關工作。存儲位高電位硬體電路就可以開通。存儲器低電位。硬體電路就關閉。
I. 程序是如何控制硬體的
我建議你看幾本教科書:計算機組成原理、數字電路基礎、8086匯編語言、c8051單片機實驗教程
看完這幾本書你就明白了。一般在cpu中高電平是3.7v~5v之間代表1,1.6v~0v之間代表0,低電平。軟體是運行在硬體cpu上的,它通過輸出控制引腳將高低電平以及各種方波、波信號輸出到引腳,引腳上有放大設備來識別信號進行信號放大,或者識別信號來增強信號加速傳輸。
整個運行過程還是相當復雜的。這樣可能你容易理解,如果你把燈開關理解為一台計算機,那麼它只能被你輸入開、關,兩個狀態,它就相當於一個最簡單的計算單元,你輸入開時,它輸出電流,驅動燈泡。就是這樣。
你的問題在我給你的書里有非常詳細的解釋。
J. 程序是如何控制硬體的
計算機的兩個主要組成部分是它內部的存儲器及處理器。
內部存儲器被用來存儲程序和數據,處理器則是一組電路,用來實現一系列的基本運算或機器指令,如進行算術運算和邏輯運算的指令。
在大多數計算機中,有一些指令通常被稱為宏指令,實際上這些指令時通過定義更低層次的指令(稱為微指令)來實現的。
因為微指令從來不在軟體中顯示,因此無法詳盡的表達它的概念。