單片機(jī)的按鍵如何外接?
一般來說,單片機(jī)外部按鈕的連接有三種:
1.每個(gè)I/O口連接一個(gè)按鍵:按鍵的另一端通常接地,I/O口也要連接一個(gè)上拉電阻。有些單片機(jī)I/O口可以配置內(nèi)部上拉,所以不需要連接外部上拉電阻。這種連接的優(yōu)點(diǎn)是電路簡(jiǎn)單,編程方便。缺點(diǎn)是當(dāng)按鍵數(shù)量較多時(shí),占用的I/O口較多,而在一些單片機(jī)或復(fù)雜系統(tǒng)外設(shè)的I/O口資源有限的情況下,如果需要更多的按鍵,這種很難滿足要求。
2.掃描矩陣按鍵陣列:多個(gè)按鍵以矩陣形式連接到I/O口,單片機(jī)通過一定的掃描規(guī)則掃描按鍵狀態(tài)。這樣可以通過更少的I/O口掛很多鍵,主要解決模式1下端口有限的問題。比如一個(gè)8×8的鍵盤矩陣可以實(shí)現(xiàn)64個(gè)鍵,但只占用16個(gè)I/O口,而使用模式1需要64個(gè)I/O口;
端口用于外部連接多個(gè)按鈕,每個(gè)按鈕連接一個(gè)對(duì)地具有特定電阻值的電阻,一個(gè)電阻連接到參考電壓或恒流源連接到電源端。這種只需要占用一個(gè)ADC通道,但是可以外接很多按鍵,是最經(jīng)濟(jì)的。但是需要編寫相應(yīng)的軟件,而且只適用于帶ADC的單片機(jī)。外部按鍵的最大數(shù)量取決于電阻精度、按鍵接觸電阻的變化范圍和單片機(jī)的ADC分辨率精度。
單片機(jī)控制兩段數(shù)碼管,按鍵長(zhǎng)按時(shí)只有后面那段亮,求指導(dǎo)?。?/h2>
以前用ucosii,把按鍵掃描做成一個(gè)任務(wù),數(shù)碼管顯示做成另一個(gè)任務(wù)。利用信息郵箱將數(shù)碼管發(fā)送到數(shù)碼管顯示任務(wù),接收到按鍵掃描信息后對(duì)數(shù)碼管進(jìn)行相應(yīng)的調(diào)整。
單片機(jī)單鍵識(shí)別原理?
單片機(jī)單鍵識(shí)別的原理如下:
單片機(jī)通過程序處理把鑰匙變成所謂的差分鑰匙。所謂微分,其實(shí)就是我們只處理調(diào)的變化,我們不不處理不變的關(guān)鍵信息。因?yàn)椴罘职存I只處理第一次變化的信息,所以短期的按鍵抖動(dòng)不會(huì)造成誤操作。
xbyte51單片機(jī)使用方法?
01
學(xué)習(xí)使用單片機(jī)是了解單片機(jī)的硬件結(jié)構(gòu)和內(nèi)部資源的應(yīng)用,學(xué)習(xí)匯編或C語言中各種函數(shù)的初始化設(shè)置,實(shí)現(xiàn)各種函數(shù)的編程。
02
步驟1:使用數(shù)字I/O。
您可以通過使用按鈕輸入信號(hào)和LED顯示輸出電平來學(xué)習(xí)引腳的數(shù)字I/O功能。按下一個(gè)按鈕后,一個(gè)LED就亮了,這是數(shù)字電路中組合邏輯的作用。雖然很簡(jiǎn)單,但是可以學(xué)習(xí)一般的單片機(jī)編程思路。例如,必須設(shè)置許多寄存器來初始化引腳,以便引腳可以具有數(shù)字輸入、輸出和輸出功能。每次使用單片機(jī)的一個(gè)功能,都必須設(shè)置控制該功能的寄存器。這是單片機(jī)編程的特點(diǎn),所以不要不要害怕。麻煩,所有單片機(jī)都這樣。
03
步驟2:計(jì)時(shí)器的使用
學(xué)會(huì)使用定時(shí)器,就可以用單片機(jī)實(shí)現(xiàn)時(shí)序電路。時(shí)序電路功能強(qiáng)大,在工業(yè)和家用電器的控制中有很多應(yīng)用。例如,你可以用單片機(jī)實(shí)現(xiàn)一個(gè)按鈕的樓道燈開關(guān)。按下按鈕一次后,燈會(huì)在3分鐘后自動(dòng)熄滅。當(dāng)連續(xù)按下按鈕兩次時(shí),燈將一直點(diǎn)亮和熄滅。當(dāng)按下按鈕超過2秒鐘時(shí),燈將熄滅。數(shù)字集成電路可以實(shí)現(xiàn)時(shí)序電路,可編程邏輯器件(PLD)可以實(shí)現(xiàn)時(shí)序電路,可編程控制器(PLC)也可以實(shí)現(xiàn)時(shí)序電路,但只有單片機(jī)可以實(shí)現(xiàn)最簡(jiǎn)單,成本最低。
04
步驟3:打斷
單片機(jī)的特點(diǎn)是重復(fù)執(zhí)行一個(gè)程序,程序中每條指令的執(zhí)行都需要一定的執(zhí)行時(shí)間。如果程序不執(zhí)行指令,指令的動(dòng)作就不會(huì)發(fā)生,會(huì)耽誤很多快速的事情,比如按鈕按下時(shí)的下降沿。為了使單片機(jī)在程序正常運(yùn)行時(shí)響應(yīng)快速動(dòng)作,需要使用單片機(jī)的中斷功能,即在快速動(dòng)作發(fā)生后,單片機(jī)中斷程序的正常運(yùn)行,處理快速動(dòng)作,處理完畢后返回執(zhí)行正常程序。使用中斷功能的難點(diǎn)在于準(zhǔn)確知道什么時(shí)候不允許中斷(屏蔽中斷),什么時(shí)候允許中斷(開啟中斷),需要設(shè)置哪些寄存器才能使某些中斷工作,中斷開始時(shí)程序應(yīng)該做什么,中斷完成后程序應(yīng)該做什么等等。
學(xué)會(huì)中斷后,就可以做一個(gè)結(jié)構(gòu)更復(fù)雜的程序了。這樣的程序可以做一件事,也可以監(jiān)控一件事。一旦被監(jiān)控的事情發(fā)生,可以中斷正在做的事情,處理被監(jiān)控的事情。當(dāng)然也可以監(jiān)控很多東西。打個(gè)比喻,中斷功能讓單片機(jī)有了吃碗看鍋的功能。
05
第四步:RS232與PC機(jī)通信。
單片機(jī)有USART接口,特別是MSP430系列很多型號(hào)都有兩個(gè)USART接口。USART接口不能和PC的RS232接口直接連接,兩者的邏輯電平不同,需要一個(gè)MAX3232芯片進(jìn)行電平轉(zhuǎn)換。
USART接口的使用非常重要。通過這個(gè)接口,單片機(jī)和PC機(jī)之間可以進(jìn)行信息交換。雖然RS232通訊并不先進(jìn),但是對(duì)于學(xué)習(xí)接口非常重要。要正確使用USART接口,需要學(xué)習(xí)通信協(xié)議,PC機(jī)的RS232接口編程等等。想象一下,單片機(jī)實(shí)驗(yàn)板上的數(shù)據(jù)顯示在PC機(jī)的顯示器上,PC機(jī)的鍵盤信號(hào)可以顯示在單片機(jī)實(shí)驗(yàn)板上。這將是一件多么有趣的事情??!
06
第五步:學(xué)習(xí)A/D轉(zhuǎn)換。
MAP430微控制器具有多通道12位A/D轉(zhuǎn)換器,通過它您可以單片機(jī)可以對(duì)模擬信號(hào)進(jìn)行運(yùn)算,顯示和檢測(cè)電壓、電流等信號(hào)。注意模擬地和數(shù)字地的概念,基準(zhǔn)電壓,采樣時(shí)間,轉(zhuǎn)換速率,轉(zhuǎn)換誤差等等。
07
第六步:學(xué)習(xí)PCI、I2C接口和LCD接口。
使用這些接口可以使單片機(jī)更容易與外部設(shè)備連接,這對(duì)擴(kuò)展單片機(jī)的功能非常重要。
08
第七步:學(xué)習(xí)比較、捕獲和PWM的功能。
這些功能可以使單片機(jī)控制電機(jī),檢測(cè)速度信號(hào),實(shí)現(xiàn)電機(jī)調(diào)速器的控制功能。
09
第八步:學(xué)習(xí)USB接口、TCP/IP接口以及各種工業(yè)總線的軟硬件設(shè)計(jì)。
學(xué)習(xí)USB接口、TCP/IP接口以及各種工業(yè)總線的軟硬件設(shè)計(jì)非常重要,因?yàn)檫@是當(dāng)前產(chǎn)品開發(fā)的發(fā)展方向。