如何使用C語言控製硬件
C語言的應用編程在單片機的領域占了很大一部分,使用的比較多的51單片機和STM32單片機都可以使用MDK軟件編寫固件。
單片機燒寫了固件後可以點亮LED燈,可以驅動ADC檢測電壓,也可以驅動蜂鳴器發聲,這就是簡單地控製硬件。稍微複雜一點的,可以驅動NRF2401進行無線的連接,也可以使用ESP8266這類wifi芯片連接網絡。
接下來,簡單地講講如何使用C語言控製硬件。
1、電路連接
簡單的模塊可以直接使用高低電平來控製,比如紅外線發射模塊,當你在驅動引腳上的電壓達到3.3v,就能發出紅外線;然後將電平設置為0v,紅外線發射就停止了。
一般而言,單片機的引腳輸出電壓能夠達到3.3v,也是可以點亮紅外線LED,但是可能會導致電流不穩定的問題,所以一般會使用一個三極管接在引腳和LED之間放大電流的驅動能力。
從原理來說,通過加在LED上的電平不停的變化,並且嚴格按照一定的時間設置為高電平,然後變更為低電平,如此的反複循環,那就能夠發出一段紅外線控製碼。隻要手速夠快,時間夠精準完全能夠控製家裏的電視機、空調。
2、單片機控製硬件
上麵說到純手工控製模塊遙控電視機、空調,但是實際上誰有這樣的手速呢,即便有這樣的手速那開關也受不了這樣的操作頻率。
好了,到了這會我們的單片機該閃亮登場了。以常用的51單片機而言,頻率可以達到12MHZ。翻譯成大白話就是,一秒鍾可以按下開關12x10的6次方次。這簡直是魔鬼手速,不僅快而且精準。關鍵是價錢也不太貴。比如,diy一個遙控器,電路板上IC的價格不過3塊錢。
單片機在這裏就替代了手的作用,那麼C語言就相當於控製手的大腦。
其實這裏隻是舉例了硬件控製中最常用的IO控製,實際的應用情況中除了IO控製,還有常用的ADC控製,這個就相當於單片機替你把使用萬用表測量電壓的活給幹了。
3、C語言控製單片機
如果要從原理上來說,C語言並不能直接控製單片機。C語言是高級語言,是給我們人類來看的,單片機作為機器自然不懂這個。它隻懂機器語言,說白了就是高低電平。但是為了減少歧義,就將這高低電平規格化了,變成了數字的0和1。
編譯器的工作其實就是將我們編寫的C原因翻譯成了數字0和1存到單片機裏麵。然後,單片機就按照這個固定的模式去比對,然後去執行。有點像上學時,老師在台上點名的意思。
總的來說,C語言控製單片機,單片機控製硬件
c語言怎麼讀取一個變量的二進製文件內容 | |
C語言是一種高級語言,很多設置都為了符合我們程序員的理解做了相應的調整。機器對於變量的理解是基於電路,也就是所謂的高低電平。也是因為這個出現了一個二進製。 而人類的計數更喜歡使用十進製,有專家說是因為是人類當初計數使用的手指,這樣十進製比較... |
c語言模電數電沒學可以直接學stm32單片機嗎 | |
個人覺得還是要掌握一點基礎知識才能開始學。從硬件和軟件兩個方麵來說,首先硬件方麵,學單片機要懂基本的電子方麵的知識,數電和模電是最基礎的,一般搞嵌入式的都要能看得懂原理圖,需要知道自己的輸入、輸入分別是什麼,這就牽涉到一些比如GPIO、UART、I... |
我學單片機和C語言的經曆 | |
我在大一的時候加入實驗室,不懂單片機,也不懂 C 語言,全靠自己的興趣堅持下來的。 當時學長推薦譚浩強的書,所以從零開始看C語言,不懂地址的概念、也不懂內存是什麼。雖然書中也舉了很多例子進行說明,但我還是不知道C語言到底能幹什麼。書中有很多例題... |
為什麼不建議單片機初學編程把C語言作為入 | |
作為一名單片機C語言開發工程師,對於入門編程語言,我覺得要分情況表述: 專業差異或者職業規範影響編程語言選擇 電子專業,自動化等嵌入式相關的專業, 我個人覺得,初學編程,選C語言作為入門語言,反而對整個編程生涯是有很大幫助,因為這是工作必須要的... |
學習C語言怎麼抓住重點知識點 | |
很多人在讀大學的時候,學校都有安排C語言課程,很多同學都覺得C語言非常難,都學不會。那麼C語言真的學不會嗎? 我的理解,並不是C語言有多難學,根本的狀態是,你不知道學習C語言的目的是什麼?它能用來做哪些有用的事情?唯一明確的是期末考試要考及格。... |
- 單片機和嵌入式哪個好
- 單片機重要特性含義解讀
- 單片機三總線結構及時序分析
- 單片機沒有PWM外設也可以做可調占空比
- 開源硬件arduino是什麼
- 標誌寄存器中的狀態標誌和控製標誌
- at89c51和stc12c5a60s2的引腳的區別
- 學習51單片機要用到哪些硬件工具
- 單片機定時的時間怎麼改變
- 單片機自動斷電或關機電路圖講解
- 串口的波特率如何計算?串口通信波特率計
- 單片機波特率計算公式和方法
- 51單片機ram區域劃分
- spi時序圖怎麼看?spi時序圖閱讀方法
- 51單片機怎麼顯示出數字的?單片機數碼管
- 51單片機有幾個中斷源_52單片機中斷源
- 嵌入式係統的評價方法
- AT89C51單片機為核心的時鍾電路的程序設
- stm32學到什麼程度叫精通
- 用STM32隻會庫函數不會用寄存器有影響嗎