<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于單片機的單鍵電路設計及對應程序

基于單片機的單鍵電路設計及對應程序

作者: 時(shí)間:2015-10-30 來(lái)源:網(wǎng)絡(luò ) 收藏

  ,就是每個(gè)按鍵占用一個(gè)的管腳,這種接法的特點(diǎn)是電路和程序都很簡(jiǎn)單,缺點(diǎn)是占用的管腳多、消耗硬件資源大。這種接法一般適合于 6個(gè)或不多于6個(gè)按鍵。

本文引用地址:http://dyxdggzs.com/article/282102.htm

  電路的電路圖見(jiàn)圖1,由圖可以看出,每一個(gè)按鍵的一端都直接連有一個(gè)8255的PC端口的一個(gè)管腳作為輸入管腳,并且這個(gè)端口管腳只連有一個(gè)按鍵,這樣的接法就是接法。單鍵接法要求按鍵的一端接有一個(gè)上拉電阻,而按鍵的另一端直接接地,這樣可以在按鍵沒(méi)有合上的時(shí)候保持輸入管腳始終是高電平。如果程序檢測到這個(gè)管腳為高電平,就會(huì )認為該管腳的按鍵沒(méi)有按下,而按鍵合上以后,輸入管腳的電平就會(huì )變成低電平,這樣當程序檢測出輸入管腳為低電平以后,就會(huì )認為這個(gè)按鍵被按下。

  

 

  圖1單鍵電路

  按鍵,特別是機械按鍵按下后會(huì )有一定的抖動(dòng),這個(gè)抖動(dòng)會(huì )持續很短的時(shí)間。這個(gè)抖動(dòng)會(huì )引起程序的異常,因為程序很可能會(huì )認為在這么短的時(shí)間內這個(gè)按鍵被按下很多次,有很多資料特別提到了防抖電路。實(shí)踐證明,這個(gè)電路完全可以忽略,使用程序完全可以代替這個(gè)電路。

  有些資料也是使用程序代替防抖電路,但是是用數十毫秒的延時(shí)電路,這樣的程序毫無(wú)疑問(wèn)會(huì )增加程序時(shí)間的開(kāi)銷(xiāo),對程序快速反應不利。

  我們可以通過(guò)程序處理把按鍵變成所謂的微分按鍵,所謂微分,實(shí)際上是指我們只處理按鍵的變化,沒(méi)有變化的按鍵信息我們是不處理的,由于微分按鍵只處理第一次變化的信息,因此短時(shí)間的按鍵抖動(dòng)是不會(huì )產(chǎn)生誤操作的。

  下面給出相應的按鍵程序并分析。

  在本程序中,所謂的單鍵輸入實(shí)際上就是讀出8255的PC口的信息。

  程序首先檢查是不是有按鍵按下,如果沒(méi)有,則將按鍵特征變量ktz置0,同時(shí)退出本函數,這樣減少了無(wú)用程序的運行時(shí)間。如果有按鍵按下同時(shí)ktz等于0(表明是第一次按下),則轉入按鍵處理部分。按鍵處理主要是定義按鍵編碼,因為從輸入口讀入的按鍵值通常需要處理,以便過(guò)濾不必要的信息或干擾,同時(shí)將輸入值規整為便于我們處理的鍵碼。這里的鍵碼就是1、2、3、4、5、6、7、8,這8個(gè)數字對應8個(gè)按鍵。單鍵輸入函數的流程圖如圖2所示,對應程序如下:

  

 

  圖2 單鍵輸入函數的流程圖

  

 

  

 

  

上拉電阻相關(guān)文章:上拉電阻原理
雙控開(kāi)關(guān)相關(guān)文章:雙控開(kāi)關(guān)原理


關(guān)鍵詞: 單片機 單鍵

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>