



免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【013】查詢方式按鍵51點(diǎn)擊數(shù):684發(fā)布日期:2006-6-25 0:57:00【收藏】【評(píng)論】【打印】【編程愛(ài)好者論壇】【關(guān)閉】實(shí)驗(yàn)參考: 笨笨工作室-實(shí)驗(yàn)六、查詢方式按鍵。(查看)實(shí)驗(yàn)板: FB51A。(查看)實(shí)驗(yàn)?zāi)康? 掌握讀取外部按鍵時(shí)候應(yīng)該注意的事項(xiàng),掌握查詢方式響應(yīng)按鍵的方法。 掌握讀取按鍵去抖動(dòng)的方法。 掌握判直接尋址位轉(zhuǎn)移指令jb,jnb的用法。實(shí)驗(yàn)現(xiàn)象: 最右面的數(shù)碼管初始顯示0,每次按下外部按鍵K1執(zhí)行加一,計(jì)數(shù)到9時(shí)重新回0。 單片機(jī)響應(yīng)外部按鍵的方式有兩種,一種是查詢方式,一種是中斷方式。查詢方式:?jiǎn)纹瑱C(jī)不斷的查詢是否有按鍵按下,如果有按鍵按下的話,就執(zhí)行相應(yīng)的程序,否則繼續(xù)查詢。 中斷方式:?jiǎn)纹瑱C(jī)處理自己的工作,如果有按鍵按下,向單片機(jī)發(fā)出中斷請(qǐng)求。單片機(jī)停下現(xiàn)在正在處理的工作,轉(zhuǎn)去執(zhí)行中斷程序,執(zhí)行之后回來(lái)繼續(xù)剛才的工作。本實(shí)驗(yàn)是用查詢方式完成, 只用到一個(gè)鍵K1,每次按下,使第一位數(shù)碼管加1顯示,計(jì)數(shù)到9里重新回0。顯示部分電路及查表顯示方法參考:【005】數(shù)碼管顯示數(shù)字和 【006】多位數(shù)碼管動(dòng)態(tài)顯示。本來(lái)想重畫(huà)個(gè)電路圖,在原來(lái)顯示部分的基礎(chǔ)上再把按鍵部分加上,但一來(lái)放在Blog上寬度有問(wèn)題,再者還是不想畫(huà)了,所以偷個(gè)懶,鍵盤部分單獨(dú)拿出來(lái)吧。顯示部分:按鍵部分:由原理圖知:當(dāng)按鍵k1按下的時(shí)候,對(duì)應(yīng)P1.0輸入低電平。因此,我們要查詢k1是否按下,只要檢測(cè)到p1.0是低電平即可。 在查詢鍵是否按下時(shí),要注意按鍵的去抖動(dòng)問(wèn)題,關(guān)于鍵的消抖,見(jiàn) 【012】按鍵消抖 。 按上述方法編寫程序: org 0000hstart: mov p0, #48h ; 段碼-顯示0 mov p2, #01h ; 位碼-選通第一位數(shù)碼管main: mov r7, #0ffh ; 查表時(shí)偏移量,用來(lái)實(shí)現(xiàn)由0到9循環(huán)顯示key: jb p1.0, key ; 如果P1.0為高電平,則繼續(xù)執(zhí)行此句查詢。 call del10ms ; 否則調(diào)用延時(shí)程序?qū)崿F(xiàn)軟件去抖 jb p1.0, key ; 再次查詢P1.0,如果是高電平,表示是抖動(dòng),繼續(xù)查詢 dis: ; 確定按鍵按下,開(kāi)始執(zhí)行顯示程序 inc r7 ; 偏移量自加(第一次值為0) mov a, r7 mov dptr, #tab ; 取表首址 movc a, a+dptr ; 用查表指令獲取要顯示的數(shù)字 mov p0, a ; 得到該字段碼送入P0口顯示 cjne a, #48h, key ; 未顯示到最后一個(gè)數(shù), 繼續(xù)查詢按鍵狀態(tài) ljmp main ; 顯示到最后一個(gè)數(shù)字則重新開(kāi)始 tab: db 0ebh, 52h, 62h, 0e1h, 64h, 44h, 0eah, 40h, 60h, 48h ; 段碼表del10ms: ; 10ms延時(shí)子程序(12M) mov r6, #20 ; 2機(jī)器周期temp: mov r5, #248 ; 2機(jī)器周期 djnz r5, $ ; 2機(jī)器周期 22248498 djnz r6, temp ; 2機(jī)器周期 22040 ret ; 2204984010002 即10msend將該程序下載到板上驗(yàn)證發(fā)現(xiàn)很不穩(wěn)定,按一次鍵時(shí)顯示可能會(huì)變幾次,如果按住鍵不放,將會(huì)顯示“8”,且不停在閃爍,用Porteus仿真了一下也是這個(gè)問(wèn)題。這是由于顯示了一個(gè)數(shù)字之后,單片機(jī)會(huì)返回重新查詢P1.0的狀態(tài),如果按下的時(shí)間很長(zhǎng),就會(huì)導(dǎo)致單片機(jī)又檢測(cè)到低電平,所以就繼續(xù)顯示下一個(gè)數(shù)字,常按住的話就會(huì)循環(huán)此過(guò)程,所以看到的閃爍的“8”實(shí)際上是快速動(dòng)態(tài)顯示“0”到“9”時(shí)人眼的視覺(jué)暫留產(chǎn)生的。那如何使按下一次按鍵,無(wú)論時(shí)間長(zhǎng)短,只作一次按鍵處理呢?可以在顯示完一個(gè)數(shù)字后即檢測(cè)P1.0是否回到高電平(鍵放開(kāi)),若是,表示按鍵一次,繼續(xù)執(zhí)行顯示下一個(gè)數(shù); 若不是則原地等待直到P1.0返回高電平。按此思路在程序中將一個(gè)段碼送入P0口顯示之后,加一判斷語(yǔ)句(紅色): org 0000hstart: mov p0, #48h ; 段碼-顯示0 mov p2, #01h ; 位碼-選通第一位數(shù)碼管main: mov r7, #0ffh ; 查表時(shí)偏移量,用來(lái)實(shí)現(xiàn)由0到9循環(huán)顯示key: jb p1.0, key ; 如果P1.0為高電平,則繼續(xù)執(zhí)行此句查詢。 call del10ms ; 否則調(diào)用延時(shí)程序?qū)崿F(xiàn)軟件去抖 jb p1.0, key ; 再次查詢P1.0,如果是高電平,表示是抖動(dòng),繼續(xù)查詢 dis: ; 確定按鍵按下,開(kāi)始執(zhí)行顯示程序 inc r7 ; 偏移量自加(第一次值為0) mov a, r7 mov dptr, #tab ; 取表首址 movc a, a+dptr ; 用查表指令獲取要顯示的數(shù)字 mov p0, a ; 得到該字段碼送入P0口顯示wait2: jnb p1.0, wait2 ; 等待按鍵松開(kāi) cjne a, #48h, key ; 未顯示到最后一個(gè)數(shù), 繼續(xù)查詢按鍵狀態(tài) ljmp main ; 顯示到最后一個(gè)數(shù)字則重新開(kāi)始 tab: db 0ebh, 52h, 62h, 0e1h, 64h, 44h, 0eah, 40h, 60h, 48h ; 段碼表del10ms: ; 10ms延時(shí)子程序(12M) mov r6, #20 ; 2機(jī)器周期temp: mov r5, #248 ; 2機(jī)器周期 djnz r5, $ ; 2機(jī)器周期 22248498 djnz r6, temp ; 2機(jī)器周期 22040 ret ; 2204984010002 即10msend再下載到板上驗(yàn)證,可得到預(yù)測(cè)結(jié)果,用Porteus仿真如下(注:由于此Blog
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年山東理工大學(xué)自考英語(yǔ)(二)練習(xí)題(附答案解析)
- 2022年福建農(nóng)林大學(xué)自考英語(yǔ)(二)練習(xí)題(附答案解析)
- 河北省部分高中2024-2025學(xué)年高一下學(xué)期6月月考政治試卷(含答案)
- 開(kāi)學(xué)安全教育美術(shù)
- 2025年工業(yè)工程與管理課程綜合考核試卷及答案
- 2025年建筑工程施工考試試卷及答案
- 教育讀書(shū)主題班會(huì)
- 山東省曲阜市昌平中學(xué)2025年英語(yǔ)八下期末檢測(cè)模擬試題含答案
- 人教版音樂(lè)五年級(jí)下冊(cè)第一單元 北國(guó)之聲(唱歌)《長(zhǎng)城放鴿》課件
- 用于水泥、砂漿和混凝土中的高活性固碳輔助膠凝材料
- 目標(biāo)探測(cè)與識(shí)別知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋北京航空航天大學(xué)
- 安全附件管理培訓(xùn)
- 寫字樓保安培訓(xùn)資料
- 市政道路施工方案投標(biāo)文件(技術(shù)方案)
- 08SS523建筑小區(qū)塑料排水檢查井
- 瑞得RTS-820系列全站儀說(shuō)明書(shū)(適用RTS-822.822A.822L.822R.822R .822R3)
- 學(xué)生干部培訓(xùn)2024年學(xué)生干部培訓(xùn)方案
- 天津市西青區(qū)2023-2024學(xué)年八年級(jí)下學(xué)期期末歷史試卷(解析版)
- -投標(biāo)技術(shù)標(biāo)書(shū)范文模板-人員配備與團(tuán)隊(duì)構(gòu)建
- (正式版)YS∕T 5040-2024 有色金屬礦山工程項(xiàng)目可行性研究報(bào)告編制標(biāo)準(zhǔn)
- 貸款合同模板銀行版
評(píng)論
0/150
提交評(píng)論