



免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【013】查詢方式按鍵51點(diǎn)擊數(shù):684發(fā)布日期:2006-6-25 0:57:00【收藏】【評論】【打印】【編程愛好者論壇】【關(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)外部按鍵的方式有兩種,一種是查詢方式,一種是中斷方式。查詢方式:單片機(jī)不斷的查詢是否有按鍵按下,如果有按鍵按下的話,就執(zhí)行相應(yīng)的程序,否則繼續(xù)查詢。 中斷方式:單片機(jī)處理自己的工作,如果有按鍵按下,向單片機(jī)發(fā)出中斷請求。單片機(jī)停下現(xiàn)在正在處理的工作,轉(zhuǎn)去執(zhí)行中斷程序,執(zhí)行之后回來繼續(xù)剛才的工作。本實(shí)驗(yàn)是用查詢方式完成, 只用到一個(gè)鍵K1,每次按下,使第一位數(shù)碼管加1顯示,計(jì)數(shù)到9里重新回0。顯示部分電路及查表顯示方法參考:【005】數(shù)碼管顯示數(shù)字和 【006】多位數(shù)碼管動(dòng)態(tài)顯示。本來想重畫個(gè)電路圖,在原來顯示部分的基礎(chǔ)上再把按鍵部分加上,但一來放在Blog上寬度有問題,再者還是不想畫了,所以偷個(gè)懶,鍵盤部分單獨(dú)拿出來吧。顯示部分:按鍵部分:由原理圖知:當(dāng)按鍵k1按下的時(shí)候,對應(yīng)P1.0輸入低電平。因此,我們要查詢k1是否按下,只要檢測到p1.0是低電平即可。 在查詢鍵是否按下時(shí),要注意按鍵的去抖動(dòng)問題,關(guān)于鍵的消抖,見 【012】按鍵消抖 。 按上述方法編寫程序: org 0000hstart: mov p0, #48h ; 段碼-顯示0 mov p2, #01h ; 位碼-選通第一位數(shù)碼管main: mov r7, #0ffh ; 查表時(shí)偏移量,用來實(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: ; 確定按鍵按下,開始執(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ù)字則重新開始 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í)顯示可能會變幾次,如果按住鍵不放,將會顯示“8”,且不停在閃爍,用Porteus仿真了一下也是這個(gè)問題。這是由于顯示了一個(gè)數(shù)字之后,單片機(jī)會返回重新查詢P1.0的狀態(tài),如果按下的時(shí)間很長,就會導(dǎo)致單片機(jī)又檢測到低電平,所以就繼續(xù)顯示下一個(gè)數(shù)字,常按住的話就會循環(huán)此過程,所以看到的閃爍的“8”實(shí)際上是快速動(dòng)態(tài)顯示“0”到“9”時(shí)人眼的視覺暫留產(chǎn)生的。那如何使按下一次按鍵,無論時(shí)間長短,只作一次按鍵處理呢?可以在顯示完一個(gè)數(shù)字后即檢測P1.0是否回到高電平(鍵放開),若是,表示按鍵一次,繼續(xù)執(zhí)行顯示下一個(gè)數(shù); 若不是則原地等待直到P1.0返回高電平。按此思路在程序中將一個(gè)段碼送入P0口顯示之后,加一判斷語句(紅色): org 0000hstart: mov p0, #48h ; 段碼-顯示0 mov p2, #01h ; 位碼-選通第一位數(shù)碼管main: mov r7, #0ffh ; 查表時(shí)偏移量,用來實(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: ; 確定按鍵按下,開始執(zhí)行顯示程序 inc r7 ; 偏移量自加(第一次值為0) mov a, r7 mov dptr, #tab ; 取表首址 movc a, a+dptr ; 用查表指令獲取要顯示的數(shù)字 mov p0, a ; 得到該字段碼送入P0口顯示wait2: jnb p1.0, wait2 ; 等待按鍵松開 cjne a, #48h, key ; 未顯示到最后一個(gè)數(shù), 繼續(xù)查詢按鍵狀態(tài) ljmp main ; 顯示到最后一個(gè)數(shù)字則重新開始 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ù)測結(jié)果,用Porteus仿真如下(注:由于此Blog
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力系統(tǒng)自動(dòng)化技術(shù)習(xí)題集
- 音樂常識知識考試試題及答案
- 彝語文考試試題及答案
- 六一優(yōu)惠玩樂活動(dòng)方案
- 醫(yī)學(xué)知識考試試題及答案
- 六一剪窗花活動(dòng)方案
- 六一嬰兒活動(dòng)方案
- 六一室內(nèi)活動(dòng)方案
- 六一活動(dòng)小市集活動(dòng)方案
- 六一活動(dòng)戶外藝術(shù)活動(dòng)方案
- 排球運(yùn)動(dòng)智慧樹知到期末考試答案章節(jié)答案2024年成都體育學(xué)院
- 速度滑冰智慧樹知到期末考試答案章節(jié)答案2024年哈爾濱師范大學(xué)
- 手術(shù)室不良事件分享
- 珍奇觀賞植物智慧樹知到期末考試答案章節(jié)答案2024年西南大學(xué)
- 刑事報(bào)案材料模板(涉嫌詐騙罪)
- 2020年10月自考00323西方行政學(xué)說史試題及答案含解析
- 屋頂光伏施工安全知識講座
- 鹽業(yè)集團(tuán)筆試題目及答案
- 拋丸承包合同
- 低空經(jīng)濟(jì)產(chǎn)業(yè)園商業(yè)計(jì)劃書
- 養(yǎng)生祛病一碗湯
評論
0/150
提交評論