91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>基于狀態(tài)機(jī)的簡單按鍵驅(qū)動(dòng)設(shè)計(jì)

基于狀態(tài)機(jī)的簡單按鍵驅(qū)動(dòng)設(shè)計(jì)

2017-10-31 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

 一般的按鍵驅(qū)動(dòng)程序通常非常簡單。在程序中一旦檢測(cè)到按鍵輸入口為低電平時(shí),就采用軟件延時(shí)10 ms后再次檢測(cè)按鍵輸入口。如果仍然是低電平則表示有按鍵按下,便轉(zhuǎn)入執(zhí)行按鍵處理程序;否則,當(dāng)按鍵輸入口為高電平,就會(huì)放棄本次按鍵的檢測(cè),重新開始一次按鍵檢測(cè)過程。這種方式不僅由于采用了軟件延時(shí)而使得MCU的效率降低,同時(shí)也不容易同系統(tǒng)中其他功能模塊協(xié)調(diào)工作,且系統(tǒng)的實(shí)時(shí)性也差。本文把單個(gè)按鍵作為一個(gè)簡單的系統(tǒng),根據(jù)狀態(tài)機(jī)的原理對(duì)其動(dòng)作的操作和確認(rèn)的過程進(jìn)行分析,并用狀態(tài)圖表示出來,然后根據(jù)狀態(tài)圖編寫出按鍵接口程序。
  1 基于狀態(tài)機(jī)的簡單按鍵驅(qū)動(dòng)設(shè)計(jì)
  在一個(gè)嵌入式系統(tǒng)中,按鍵的操作是隨機(jī)的。為了提高CPU的工作效率,在設(shè)計(jì)按鍵驅(qū)動(dòng)的時(shí)候,利用S3C2440的外部中斷來實(shí)現(xiàn)對(duì)按鍵的處理。很明顯,系統(tǒng)的輸入信號(hào)與按鍵連接的I/O口電平,“1”表示按鍵處于開放狀態(tài),“0”表示按鍵處于閉合狀態(tài)。而系統(tǒng)的輸出信號(hào)則表示檢測(cè)和確認(rèn)到一次按鍵的閉合操作,用“1”表示。
  基于狀態(tài)機(jī)的簡單按鍵驅(qū)動(dòng)設(shè)計(jì)
  圖1給出了一個(gè)簡單按鍵狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖。
  在圖中,將1次按鍵完整的操作分解為3個(gè)狀態(tài)。其中,狀態(tài)0為按鍵的初始狀態(tài),當(dāng)按鍵輸入為“1”時(shí),表示按鍵處于開放,輸出“0”(I/0),下一狀態(tài)仍為狀態(tài)0;當(dāng)按鍵輸入為“0”時(shí),表示按鍵閉合,但輸出還是“0”(沒有經(jīng)過消抖,不能確認(rèn)按鍵真正按下),下一狀態(tài)進(jìn)入狀態(tài)1。
  狀態(tài)1為按鍵閉合確認(rèn)狀態(tài),它表示在10 ms前按鍵為閉合的,因此當(dāng)再次檢測(cè)到按鍵輸入為“0”時(shí),可以確認(rèn)按鍵被按下了(經(jīng)過10 ms的消抖);輸出“1”則表示確認(rèn)按鍵閉合(0/1),下一狀態(tài)進(jìn)入狀態(tài)2。而當(dāng)再次檢測(cè)到按鍵的輸入為“1”時(shí),表示按鍵可能處在抖動(dòng)干擾;輸出為“0”(I/0),下一狀態(tài)返回到狀態(tài)0。這樣,利用狀態(tài)1,實(shí)現(xiàn)了按鍵的消抖處理。狀態(tài)2為等待按鍵釋放狀態(tài),因?yàn)橹挥械劝存I釋放后,一次完整的按鍵操作過程才算完成。
  對(duì)圖1的分析可知,在一次按鍵操作的整個(gè)過程中,按鍵的狀態(tài)是從狀態(tài)0→狀態(tài)1→狀態(tài)2,最后返回到狀態(tài)0的,并且在整個(gè)過程中,按鍵的輸出信號(hào)僅在狀態(tài)1時(shí)給出了唯一的一次確認(rèn)按鍵閉合的信號(hào)“1”,其他狀態(tài)均輸出“0”。因此,圖1狀態(tài)機(jī)所表示的按鍵系統(tǒng),不僅克服了按鍵抖動(dòng)的問題,同時(shí)也確保在一次按鍵的整個(gè)過程中,系統(tǒng)只輸出一次按鍵閉合信號(hào)(“1”)。
  2 具有連發(fā)功能的按鍵驅(qū)動(dòng)設(shè)計(jì)
  上面介紹的是最簡單的情況,不管按鍵被按下的時(shí)間保持多長,在這個(gè)按鍵的整個(gè)過程中都只給出了一次確認(rèn)的輸出。但是有些場(chǎng)合為了方便使用者,根據(jù)使用者按按鍵的時(shí)間多少來確定是否按鍵“連發(fā)”。例如,在設(shè)置時(shí)鐘時(shí),按按鍵的時(shí)間較短時(shí),設(shè)置加1;按按鍵時(shí)間較長時(shí),設(shè)置加10,這時(shí)就需要根據(jù)按按鍵的時(shí)間長短來確定具體輸出。圖2是將按鍵驅(qū)動(dòng)設(shè)計(jì)為具有連發(fā)功能狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖。
  基于狀態(tài)機(jī)的簡單按鍵驅(qū)動(dòng)設(shè)計(jì)
  當(dāng)按鍵按下后1 s內(nèi)釋放了,系統(tǒng)輸出為1;當(dāng)按鍵按下后1 s沒有釋放,那么以后每隔0.5 s,輸出為2,直到按鍵釋放為止。如果系統(tǒng)輸出1,應(yīng)用程序?qū)⒆兞考?;如果系統(tǒng)輸出2,應(yīng)用程序?qū)⒆兞考?0。這樣按鍵驅(qū)動(dòng)就有了處理連發(fā)按鍵的功能了。
有限狀態(tài)機(jī) 按鍵驅(qū)動(dòng)
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1冷柜-電氣控制系統(tǒng)講解
  2. 13.68 MB  |  4次下載  |  10 積分
  3. 2安川A1000變頻器中文版說明書
  4. 20.16 MB  |  3次下載  |  3 積分
  5. 3直流電路的組成和基本定律
  6. 1.67 MB   |  2次下載  |  免費(fèi)
  7. 4丹佛斯2800系列變頻器說明書
  8. 8.00 MB  |  1次下載  |  5 積分
  9. 5PC8011同步開關(guān)型降壓3.5A單節(jié)鋰電池充電管理電路技術(shù)手冊(cè)
  10. 0.74 MB   |  1次下載  |  免費(fèi)
  11. 6ES7243E+ES8311音頻錄制與播放電路資料
  12. 0.06 MB   |  1次下載  |  5 積分
  13. 7SDM02 激光測(cè)距模塊產(chǎn)品手冊(cè)
  14. 0.43 MB   |  1次下載  |  免費(fèi)
  15. 8SDFM 激光測(cè)距模塊模組手冊(cè)
  16. 0.54 MB   |  1次下載  |  免費(fèi)

本月

  1. 1CH341編程器軟件NeoProgrammer_2.2.0.10
  2. 20.47 MB   |  170次下載  |  1 積分
  3. 22025智能家居傳感器市場(chǎng)分析及創(chuàng)新應(yīng)用
  4. 3.11 MB  |  43次下載  |  免費(fèi)
  5. 3RV1126B系列開發(fā)板產(chǎn)品資料
  6. 4.19 MB  |  18次下載  |  免費(fèi)
  7. 4CH341編程軟件下載
  8. 2.50 MB   |  16次下載  |  5 積分
  9. 5全志系列-米爾基于T153核心板開發(fā)板 四核異構(gòu)、3路千兆網(wǎng),賦能多元化工業(yè)場(chǎng)景
  10. 3.05 MB  |  12次下載  |  免費(fèi)
  11. 6【開源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門學(xué)習(xí)資源包
  12. 10.55 MB  |  8次下載  |  免費(fèi)
  13. 7冷柜-電氣控制系統(tǒng)講解
  14. 13.68 MB  |  4次下載  |  10 積分
  15. 8特斯拉MODEL S車載充電機(jī)主電路回路原理圖
  16. 0.81 MB   |  4次下載  |  3 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233094次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191448次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183356次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81604次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73824次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分