? ? ? ? 在這里向大家分享下,在嵌入式開發(fā)和實(shí)際生產(chǎn)的產(chǎn)品中,經(jīng)常用到的的開關(guān)電路,根據(jù)上一篇文章 嵌入式硬件常識——常用到的開關(guān)介紹 中的開關(guān)分了以下三大類。
(一)輕觸開關(guān)、瞬動(dòng)開關(guān)、微動(dòng)開關(guān)、自鎖開關(guān)
? ? 通常的此類按鍵所用開關(guān)為機(jī)械彈性開關(guān)。當(dāng)機(jī)械觸點(diǎn)閉合時(shí),電路接通。機(jī)械觸電斷開時(shí),電路斷開。
? ? 程序的思路:
? ? ? ? 首先要對I/O口進(jìn)行配置,以新唐芯片N76E003為例,將IO口配置成高阻輸入。
? ? ? ? (1)掃描法:可在主程序中循環(huán)的判斷該管腳的電平狀態(tài),如電平為低則被按下。再進(jìn)行后續(xù)的操作。
? ? ? ? (2)中斷法:配置相應(yīng)的外部中斷,進(jìn)入外部中斷函數(shù)說明被按下,可在中斷處理函數(shù)中進(jìn)行后續(xù)的操作。(中斷處理函數(shù)中,善用標(biāo)志位切忌出現(xiàn)任何延時(shí)?。?/p>
? ? 硬件電路設(shè)計(jì):
? ? ? ? 如下圖,單片機(jī)的I/O直接接開關(guān)到地。這是最基礎(chǔ)的開關(guān)設(shè)計(jì)電路。

? ? ? ? 如下圖,是我最常用的開關(guān)電路。在開關(guān)斷開的時(shí)候需要明確給一個(gè)電平。因此需要一個(gè)上拉10K電阻到3.3V電源。此時(shí)Key1電平為高電平。當(dāng)開關(guān)被按下后,3.3V經(jīng)過10K電阻直接導(dǎo)通到GND。此時(shí)Key1電平被拉低為低電平。

(二)船型開關(guān)、翹板開關(guān)、撥動(dòng)開關(guān)、滑動(dòng)開關(guān)
? ? ? ? 通常的此類按鍵所用開關(guān)也為機(jī)械彈性開關(guān)。當(dāng)機(jī)械觸點(diǎn)閉合時(shí),電路接通。機(jī)械觸電斷開時(shí),電路斷開。
? ? ? ? 下圖為船型開關(guān)(單刀雙擲)的開關(guān)電路,2為動(dòng)觸點(diǎn),1和3為靜觸點(diǎn)。當(dāng)2動(dòng)觸點(diǎn)接通3靜觸點(diǎn)的時(shí)候,Power和5V接通。當(dāng)2動(dòng)觸點(diǎn)接通1靜觸點(diǎn)的時(shí)候,Power和3.3V接通。此開關(guān)電路功能是選擇電源電壓。該電路也可用于撥動(dòng)開關(guān)(兩檔)等等?;谶@類開關(guān)能實(shí)現(xiàn)的功能可以很多很多。

? ? ? ? 下圖為撥動(dòng)開關(guān)(四路),其實(shí)每一路都可以看做是一個(gè)小的開關(guān)。當(dāng)撥片滑動(dòng),則控制該路是否導(dǎo)通。在實(shí)際應(yīng)用中常用到此開關(guān)來控制某些IO口來實(shí)現(xiàn)不同功能。

(三)電位器旋鈕開關(guān)、搖桿開關(guān)
? ? ? ? 此類開關(guān)和上面的就完全不一樣了,這類開關(guān)可看做是可變電阻。根據(jù)旋鈕的位置改變,其電阻值也隨之改變,從而獲得當(dāng)前ADC值來實(shí)現(xiàn)不同功能。
? ? ? ? 如下圖,R1為電位器旋鈕開關(guān),根據(jù)旋鈕的角度不同,阻值會(huì)處于在10Ω-10K之間。R2為限流電阻,不宜過大。其電路等效于典型的分壓電路。如下圖的分壓電路。

