




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
【W(wǎng)ord版本下載可任意編輯】單片機(jī)鍵盤處理程序設(shè)計舉例1、鍵盤與的連接
圖3
圖4
2、通過1/0口連接。將每個按鈕的一端接到單片機(jī)的I/O口,另一端接地,這是簡單的方法,如圖3所示是實驗板上按鈕的接法,四個按鈕分別接到P3.2、P3.3、P3.4和P3.5。對于這種鍵各程序能采用持續(xù)查詢的方法,功能就是:檢測是否有鍵閉合,如有鍵閉合,則去除鍵抖動,判斷鍵號并轉(zhuǎn)入對應(yīng)的鍵處理。下面給出一個例程。其功能很簡單,四個鍵定義如下:
P3.2:開始,按此鍵則燈開始流動(由上而下)
P3.3:停止,按此鍵則停止流動,所有燈為暗
P3.4:上,按此鍵則燈由上向下流動
P3.5:下,按此鍵則燈由下向上流動
UpDownEQU00H;上下行標(biāo)志
StartEndEQU01H;起動及停止標(biāo)志
LAMPCODEEQU21H;存放流動的數(shù)據(jù)代碼
以下程序功能很簡單,但它演示了一個單片機(jī)程序的基本思路,程序本身很簡單,也不很實用,實際工作中還會有好多要考慮的因素,比方主循環(huán)每次都調(diào)用燈的循環(huán)程序,會造成按鈕反應(yīng)“遲鈍”,而如果一直按著鍵不放,則燈不會再流動,一直要到松開手為止,等等,大家能仔細(xì)考慮一下這些問題,再想想有什么好的解決方法。
ORG0000H
AJMPMAIN
ORG30H
MAIN:
MOVSP,#5FH
MOVP1,#0FFH
CLRUpDown;啟動時處于向上的狀態(tài)
CLRStartEnd;啟動時處于停止?fàn)顟B(tài)
MOVLAMPCODE,#0FEH;單燈流動的代碼
LOOP:
ACALLKEY;調(diào)用鍵盤程序
JNBF0,LNEXT;如果無鍵按下,則繼續(xù)
ACALLKEYPROC;不然調(diào)用鍵盤處理程序
LNEXT:
ACALLLAMP;調(diào)用燈顯示程序
AJMPLOOP;反復(fù)循環(huán),主程序到此結(jié)束
DELAY:
MOVR7,#100
D1:MOVR6,#100
DJNZR6,$
DJNZR7,D1
RET
;延時程序,鍵盤處理中調(diào)用
KEYPROC:
MOVA,B;從B存放器中獲取鍵值
JBACC.2,KeyStart;分析鍵的代碼,某位被按下,則該位為1(因為在鍵盤程序中已取反)
JBACC.3,KeyOver
JBACC.4,KeyUp
JBACC.5,KeyDown
AJMPKEY_RET
KeyStart:
SETBStartEnd;個鍵按下后的處理
AJMPKEY_RET
KeyOver:
CLRStartEnd;第二個鍵按下后的處理
AJMPKEY_RET
KeyUp:SETBUpDown;第三個鍵按下后的處理
AJMPKEY_RET
KeyDown:
CLRUpDown;第四個鍵按下后的處理
KEY_RET:RET
KEY:
CLRF0;清F0,表示無鍵按下。
ORLP3,#00111100B;將P3口的接有鍵的四位置1
MOVA,P3;取P3的值
ORLA,#11000011B;將其余4位置1
CPLA;取反
JZK_RET;如果為0則一定無鍵按下
ACALLDELAY;不然延時去鍵抖
ORLP3,#00111100B
MOVA,P3
ORLA,#11000011B
CPLA
JZK_RET
MOVB,A;確實有鍵按下,將鍵值存入B中
SETBF0;設(shè)置有鍵按下的標(biāo)志
K_RET:
ORLP3,#00111100B;此處循環(huán)等待鍵的釋放
MOVA,P3
ORLA,#11000011B
CPLA
JZK_RET1;直到讀取的數(shù)據(jù)取反后為0說明鍵釋放了,才從鍵盤處理程序中返回
AJMPK_RET
K_RET1:
RET
D500MS:;流水燈的延遲時間
PUSHPSW
SETBRS0
MOVR7,#200
D51:MOVR6,#250
D52:NOP
NOP
NOP
NOP
DJNZR6,D52
DJNZR7,D51
POPPSW
RET
LAMP:
JBStartEnd,LampStart;如果StartEnd=1,則啟動
MOVP1,#0FFH
AJMPLAMPRET;不然關(guān)閉所有顯示,返回
LampStart:
JBUpDown,LAMPUP;如果UpDown=1,則向上流動
MOVA,LAMPCODE
RLA;實際就是左移位而已
MOVLAMPCODE,A
MOVP1,A
LCALLD500MS
AJMPLAMPRET
LAMPUP:
MOVA,LAMPCODE
RRA;向下流動實際就是右移
MOVLAMPCODE,A
MOVP1,A
LCALLD500MS
LAMPRET:
RET
END
以上程序功能很簡單,但它演示了一個
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《老樹的故事》教案
- 合伙創(chuàng)辦駕校合同范本
- 原煤運(yùn)輸合同范例
- 住房水電改造合同范本
- 《寡人之于國也》粵教版高一必修教案設(shè)計
- 會議租車合同范本
- 座椅銷售安裝合同范本
- 中俄石油合同范本
- 加油站機(jī)械維修合同范本
- 單位試用合同范本
- 公用水泵房和雨水泵房設(shè)備調(diào)試方案
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- Access數(shù)據(jù)庫應(yīng)用技術(shù) 教案 全套 項目:1-8
- 庭院工程暫預(yù)算報價單(龍威景觀)
- MOOC 數(shù)據(jù)庫系統(tǒng)(上):模型與語言-哈爾濱工業(yè)大學(xué) 中國大學(xué)慕課答案
- 教學(xué)評一體化
- 2023年全國高考體育單招考試英語試卷試題真題(精校打印版)
- 2023年四川省綿陽市中考化學(xué)試卷真題(含答案與解析)
- 財務(wù)管理中的財務(wù)指標(biāo)
- 2016-2023年青島酒店管理職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 第二章-環(huán)境數(shù)據(jù)統(tǒng)計與分析
評論
0/150
提交評論