專利名稱:一種單片機(jī)按鍵實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于單片機(jī)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種單片機(jī)按鍵的實(shí)現(xiàn)方法。
背景技術(shù):
在儀器儀表等設(shè)備的單片機(jī)電路設(shè)計(jì)中,由于單片機(jī)的資源非常有限,對(duì)于專用 按鍵的設(shè)計(jì)一方面是按照使用的需要進(jìn)行最簡(jiǎn)單的設(shè)計(jì),一方面由于不會(huì)使用專用的按鍵 處理電路,通常都會(huì)直接使用單片機(jī)本身的系統(tǒng)資源給于按鍵處理。其中采用系統(tǒng)掃描是 其中常用的方式。而這種方式常由于設(shè)計(jì)上的簡(jiǎn)單化處理,由于使用者的問(wèn)題會(huì)造成系統(tǒng) 死機(jī)的情況,例如設(shè)備或者機(jī)器在快速連續(xù)按按鍵的情況下容易出現(xiàn)死機(jī)、按鍵無(wú)效情況。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種可以避免死機(jī)和按鍵無(wú)效的單片機(jī)按鍵實(shí)現(xiàn)方法。
本發(fā)明的技術(shù)方案是,一種單片機(jī)按鍵實(shí)現(xiàn)方法,其特征在于,包括
將多個(gè)按鍵的I/O 口整合到一個(gè)寄存器中的整合按鍵步驟;
當(dāng)判斷有一按鍵按下時(shí),即為確認(rèn)新鍵,同時(shí)根據(jù)按鍵情況確認(rèn)新鍵步驟;
相對(duì)于新鍵前次按鍵作為舊鍵,根據(jù)舊鍵查表分流程序步驟; 所述的舊鍵查表分流程序包括沒(méi)有按鍵的判斷或者普通、連動(dòng)和長(zhǎng)按復(fù)用按鍵的 判斷或者多個(gè)按鍵無(wú)效的判斷三種情況。 對(duì)于沒(méi)有按鍵的判斷,若判斷有新鍵,則清除普通按鍵、長(zhǎng)按按鍵、連動(dòng)按鍵標(biāo)志 以及標(biāo)志處理。 對(duì)于普通、連動(dòng)和長(zhǎng)按復(fù)用按鍵的判斷,若判斷沒(méi)有新鍵,若是長(zhǎng)按按鍵則退出本 步驟,若不是普通按鍵且是連動(dòng)標(biāo)志則進(jìn)入連動(dòng)處理程序。 本發(fā)明實(shí)現(xiàn)了對(duì)于資源有限的單片機(jī)的按鍵處理的一種避免操作不當(dāng)死機(jī)的問(wèn) 題。
圖1是本發(fā)明 一實(shí)施例中總的處理流程圖 圖2是本發(fā)明一實(shí)施例中對(duì)于無(wú)按鍵的處理流程圖 圖3是本發(fā)明一實(shí)施例中對(duì)于按照舊鍵查表分流的處理流程圖 圖4是本發(fā)明一實(shí)施例中對(duì)于多鍵處理的流程圖
具體實(shí)施例方式
如圖1、圖2、圖3和圖4,本發(fā)明的具體實(shí)施方式
是一種單片機(jī)按鍵實(shí)現(xiàn)方法,包 括將多個(gè)按鍵的I/O 口整合到一個(gè)寄存器中的整合按鍵步驟;當(dāng)判斷有一按鍵按下時(shí),即 為確認(rèn)新鍵,同時(shí)根據(jù)按鍵情況確認(rèn)新鍵步驟;相對(duì)于新鍵前次按鍵作為舊鍵,根據(jù)舊鍵查 表分流程序步驟;所述的舊鍵查表分流程序包括沒(méi)有按鍵的判斷或者普通、連動(dòng)和長(zhǎng)按復(fù)用按鍵的判斷或者多個(gè)按鍵無(wú)效的判斷三種情況。對(duì)于沒(méi)有按鍵的判斷,若判斷有新鍵,則 清除普通按鍵、長(zhǎng)按按鍵、連動(dòng)按鍵標(biāo)志以及標(biāo)志處理。對(duì)于普通、連動(dòng)和長(zhǎng)按復(fù)用按鍵的 判斷,若判斷沒(méi)有新鍵,若是長(zhǎng)按按鍵則退出本步驟,若不是普通按鍵且是連動(dòng)標(biāo)志則進(jìn)入 連動(dòng)處理程序。 此按鍵處理程序?yàn)槟K化程序,其中變量不和程序中的其他變量發(fā)生關(guān)系,而且
此模塊化程序包含了按鍵的所有模式(沒(méi)有按鍵、普通單次按鍵、連續(xù)按鍵、長(zhǎng)按按鍵)從 而根本上解決了此前很多設(shè)備、機(jī)器在快速連續(xù)按按鍵的情況下容易出現(xiàn)死機(jī)、按鍵無(wú)效
情況。由于模塊化的設(shè)計(jì),本發(fā)明對(duì)所有設(shè)備的按鍵程序都能夠適用。
權(quán)利要求
一種單片機(jī)按鍵實(shí)現(xiàn)方法,其特征在于,包括將多個(gè)按鍵的I/O口整合到一個(gè)寄存器中的整合按鍵步驟;當(dāng)判斷有一按鍵按下時(shí),即為確認(rèn)新鍵,同時(shí)根據(jù)按鍵情況確認(rèn)新鍵步驟;相對(duì)于新鍵前次按鍵作為舊鍵,根據(jù)舊鍵查表分流程序步驟;所述的舊鍵查表分流程序包括沒(méi)有按鍵的判斷或者普通、連動(dòng)和長(zhǎng)按復(fù)用按鍵的判斷或者多個(gè)按鍵無(wú)效的判斷三種情況。
2. 如權(quán)利要求1所述的單片機(jī)按鍵實(shí)現(xiàn)方法,其特征在于,對(duì)于沒(méi)有按鍵的判斷,若判斷有新鍵,則清除普通按鍵、長(zhǎng)按按鍵、連動(dòng)按鍵標(biāo)志以及標(biāo)志處理。
3. 如權(quán)利要求1所述的單片機(jī)按鍵實(shí)現(xiàn)方法,其特征在于,對(duì)于普通、連動(dòng)和長(zhǎng)按復(fù)用按鍵的判斷,若判斷沒(méi)有新鍵,若是長(zhǎng)按按鍵則退出本步驟,若不是普通按鍵且是連動(dòng)標(biāo)志則進(jìn)入連動(dòng)處理程序。
全文摘要
本發(fā)明涉及一種單片機(jī)按鍵實(shí)現(xiàn)方法,包括將多個(gè)按鍵的I/O口整合到一個(gè)寄存器中的整合按鍵步驟;當(dāng)判斷有一按鍵按下時(shí),即為確認(rèn)新鍵,同時(shí)根據(jù)按鍵情況確認(rèn)新鍵步驟;相對(duì)于新鍵前次按鍵作為舊鍵,根據(jù)舊鍵查表分流程序步驟;所述的舊鍵查表分流程序包括沒(méi)有按鍵的判斷或者普通、連動(dòng)和長(zhǎng)按復(fù)用按鍵的判斷或者多個(gè)按鍵無(wú)效的判斷三種情況。本發(fā)明實(shí)現(xiàn)了一種可以避免死機(jī)和按鍵無(wú)效的單片機(jī)按鍵處理方法。
文檔編號(hào)G05B19/04GK101738952SQ20091020041
公開(kāi)日2010年6月16日 申請(qǐng)日期2009年12月22日 優(yōu)先權(quán)日2009年12月22日
發(fā)明者楊鳳生, 陳公倫 申請(qǐng)人:上海精密科學(xué)儀器有限公司