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語言控制單片機,單片機控制硬件
-
單片機
+關注
關注
6039文章
44582瀏覽量
636487 -
硬件
+關注
關注
11文章
3348瀏覽量
66306 -
C語言
+關注
關注
180文章
7608瀏覽量
137135
發布評論請先 登錄
相關推薦
評論