日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
查詢方式按鍵
查詢方式按鍵
 更新時(shí)間:2008-8-17 16:49:09  點(diǎn)擊數(shù):9
【字體: 字體顏色

        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ī)器周期 2+2×248=498
         djnz r6, temp       ; 2機(jī)器周期 2×20=40
         ret                 ; 2+20×498+40=10002 即10ms
end

將該程序下載到板上驗(yàn)證發(fā)現(xiàn)很不穩(wěn)定,按一次鍵時(shí)顯示可能會(huì)變幾次,如果按住鍵不放,將會(huì)顯示“8”,且不停在閃爍,用Porteus仿真了一下也是這個(gè)問題。這是由于顯示了一個(gè)數(shù)字之后,單片機(jī)會(huì)返回重新查詢P1.0的狀態(tài),如果按下的時(shí)間很長(zhǎng),就會(huì)導(dǎo)致單片機(jī)又檢測(cè)到低電平,所以就繼續(xù)顯示下一個(gè)數(shù)字,常按住的話就會(huì)循環(huán)此過程,所以看到的閃爍的“8”實(shí)際上是快速動(dòng)態(tài)顯示“0”到“9”時(shí)人眼的視覺暫留產(chǎn)生的。那如何使按下一次按鍵,無論時(shí)間長(zhǎng)短,只作一次按鍵處理呢?可以在顯示完一個(gè)數(shù)字后即檢測(cè)P1.0是否回到高電平(鍵放開),若是,表示按鍵一次,繼續(xù)執(zhí)行顯示下一個(gè)數(shù); 若不是則原地等待直到P1.0返回高電平。按此思路在程序中將一個(gè)段碼送入P0口顯示之后,加一判斷語(yǔ)句(紅色):

        org   0000h
start:  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ī)器周期 2+2×248=498
         djnz r6, temp       ; 2機(jī)器周期 2×20=40
         ret                 ; 2+20×498+40=10002 即10ms
end

再下載到板上驗(yàn)證,可得到預(yù)測(cè)結(jié)果,用Porteus仿真如下(注:由于此Blog空間圖片上傳要求在100K以內(nèi),所以只模擬了0到5的循環(huán),而實(shí)際上是從0到9循環(huán)的,那個(gè)文件做出來要144K,無法上傳。在此僅作為模擬演示):

  • 上一篇: 按鍵消抖
  • 下一篇: A51 3.4 標(biāo)號(hào)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1