版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、. 單片機按鍵去抖動程序設(shè)計思路 徐麗紅 王佰營 在單片機應(yīng)用系統(tǒng)設(shè)計中,人機界面部分的友好程度,很大一部分取決于鍵盤處理程序。在按鍵時按得快了沒有反應(yīng),按慢了一連響應(yīng)幾次,總給人緊迫感或遲鈍感,不能使人滿意。用以下思路設(shè)計的鍵處理程序取得了滿意效果。判斷有沒有鍵值: 1.若有鍵值: 判斷是否為首次按下: A:若首次按下:判斷是否與上次按下的鍵值相同 a.若相同再判斷:是否已經(jīng)按下了300ms? 1).若已經(jīng)按下300ms則將此鍵做為連鍵處理。 2).若不是連鍵則判斷:是否按下20ms? 1.若確認按下20ms,得到有效鍵值等待彈起 2. 若不是
2、按下20ms直接結(jié)束處理(ret)。 b.若不相同則將標志清零結(jié)束處理(ret)。 B:若不是首次按下:將鍵值暫存起來,標志置位結(jié)束處理。 2.若無鍵值: 判斷是否有鍵值已被確認 A.若有鍵已被確認:判斷按鍵是否首次抬起 a.若首次抬起:判斷抬起延時時間(20ms)是否到達 1.若延時到則將標志處理結(jié)束處理。 2.若延時未到直接結(jié)束處理(ret)。 b.若非首次抬起:直接結(jié)束處理(ret)。 B.若沒有鍵被確認:直接結(jié)束處理(ret)。具體程序?qū)崿F(xiàn)流程圖如下:(所有延時均為非阻塞式延時) Lcll scan_key-為調(diào)用鍵掃描程序; 簡單的按鍵處理程序見:簡單、友好的按鍵處理程序設(shè)計 簡單、
3、友好的按鍵處理程序設(shè)計 王佰營 徐麗紅 在嵌入程序設(shè)計中,鍵處理程序在一定程度上決定著人機對話界面的友好程度。WINDOWS是公認的界面友好的典范,我們就借鑒WINDOWS的鍵處理的思想:1. 當擊鍵時WINDOWS立即作出響應(yīng);2. 當按住鍵不放時,WINDOWS延遲一定時間來判斷是否為連鍵;其間不作響應(yīng);3. 當認為是連鍵時,會間隔一定時間重復(fù)作出響應(yīng);(可以打開記事本,敲個h鍵試驗:瞬時敲擊,即可出現(xiàn)h,再按著鍵不放,無h出現(xiàn),當延遲一定時間h,就以較快速度出現(xiàn);)在C8051F020和DSP編程中運用上述的思想所編的鍵處理程序非常簡捷、高效
4、和友好,以下為該程序的流程圖: 根據(jù)該流程的51系列單片機程序和DSP程序:1、C8051F020單片機程序如下:;=;function:key_filter ;鍵盤去抖程序-徐麗紅;input:a;output:key.bsure;usage:a,b;=key_filter:;鍵盤去抖程序 lcallscan_key jz kf_no ;a=0? jb bfirst,kf_1th ;first down? mov b,a mov a,k_dly jnz kf_ret ;20ms到了嗎? mov a,b ;20ms到 cjne a, key_tmp,kf_no;a=k_tmp? mov k_d
5、ly,#10 ;a=k_tmp dec dly_k jnb bfast,kf_nofast;是連鍵嗎?kf_is0: mov a,dly_k;是連鍵 jnz kf_ret;300ms/160ms? mov dly_k,#12 ;fast OK! sjmp kf_ftokkf_nofast: mov a, dly_k;不是連鍵 cjne a, #24,kf_is0;延時了1次嗎?kf_ftok: mov key,key_tmp ;first OK! setb bkey_do setb bfastkf_ret: retkf_1th: movk_dly,#10 ;first down mov key
6、_tmp,a mov dly_k,#25 clr bfirst clr bfast ret2、LF2407型DSP程序如下:;-;function:judge_key鍵值判斷;input:-;output:-;usege:ACC;-judge_key:;鍵值判斷 ldp#PEDATDIR7 laclPEDATDIRcmpland#00110110b ldp#DP_B01saclkey_tmpbcndk_down,NEQ;CATCH KEY?ldp#DP_B01splk#00h,bknot1retk_down:laclbknot1bcndnot_first,NEQ;first?laclkey_t
7、mpsaclkey_oksplk#04,key_clksplk#50,key_dlysplk#11h,bknot1splk#00h,bksuresplk#00h,bcontinueretnot_first:laclkey_clk;N timesbcndT_over,EQ;12ms?retT_over:laclkey_ok;12msxorkey_tmpbcndIs_same,EQ;same key?splk#00h,bknot1retIs_same:splk#4,key_clklaclbcontinuebcndIs_fast,NEQ;continue?OK_key:splk#11h,bcontinuesplk#11h,bksureretIs_fast:laclkey_dly;key_dly-sub#01hsaclkey_dlybcndtuch_set,EQ;500/300ms?rettuch_set:splk#25,key_dlybOK_key
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶葉行業(yè)鑒賞技巧培訓(xùn)總結(jié)
- 冶金銷售工作總結(jié)
- 文化創(chuàng)意行業(yè)宣傳策略總結(jié)
- 2021年黑龍江省哈爾濱市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年內(nèi)蒙古自治區(qū)錫林郭勒盟公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2023年湖北省咸寧市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年河南省周口市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年河北省張家口市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年江西省景德鎮(zhèn)市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 財務(wù)人員辭職報告
- 糖尿病酮癥酸中毒PPT小講課
- 百香果的栽培條件
- 2024版國開電大法學(xué)本科《商法》歷年期末考試總題庫
- 湖北省荊州市荊州八縣市區(qū)2023-2024學(xué)年高一上學(xué)期1月期末聯(lián)考物理試題(原卷版)
- 小程序商場方案
- 班組年終總結(jié)
- 廣西桂林市2023-2024學(xué)年高二上學(xué)期期末考試物理試卷
- 內(nèi)蒙古赤峰市2023-2024學(xué)年高一上學(xué)期期末考試物理試題【含答案解析】
- nfc果汁加工工藝
- 慢性胃炎的康復(fù)治療
- 北京市通州區(qū)2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)試題
評論
0/150
提交評論