新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 試驗8 ---------小鍵盤控制的數(shù)字顯示

        試驗8 ---------小鍵盤控制的數(shù)字顯示

        作者: 時間:2011-02-25 來源:網(wǎng)絡(luò) 收藏

        試驗8---------小鍵盤控制的數(shù)字顯示

        本試驗示例了鍵盤監(jiān)測程序,他的執(zhí)行結(jié)果為;通電后,如果按小鍵盤p3.2那么數(shù)碼管顯示0,如果按小鍵盤p3.3那么數(shù)碼管顯示1,如果按小鍵盤p3.4那么數(shù)碼管顯示2,如果按小鍵盤p3.5那么數(shù)碼管顯示3,

        該程序調(diào)試通過:

        在這個程序里我們主要用到了

        判位變量轉(zhuǎn)移指令

        JB bit,rel

        JNB bit,rel

        第一條指令是如果指定的bit位中的值是1,則轉(zhuǎn)移,否則順序執(zhí)行。同樣,我們可以這樣理解這條指令:JB bit,標號

        org 0000h
        ljmp start
        org 30h
        start: mov sp,#5fh
        mov p1,#0ffh
        CLR P2.6 ;選中p2.6右邊的數(shù)碼管
        SETB P2.7
        mov p3,#0ffh
        mov p0,#0ffh ;初始化;鍵盤口以及數(shù)碼管口全部置高清零
        l1: jnb p3.2,l2 ;如果p3.2等于低(鍵按下)那么執(zhí)行l(wèi)2
        jnb p3.3,l3 ;如果p3.3等于低(鍵按下)那么執(zhí)行l(wèi)3
        jnb p3.4,l4 ;如果p3.4等于低(鍵按下)那么執(zhí)行l(wèi)4
        jnb p3.5,l5 ;如果p3.5等于低(鍵按下)那么執(zhí)行l(wèi)5
        ljmp l1
        l2:mov p0,#28H;顯示數(shù)字0
        ljmp l1
        l3:mov p0,#7EH;顯示數(shù)字1
        ljmp l1
        l4:mov p0,#0A2H;顯示數(shù)字2
        ljmp l1
        l5:mov p0,#62H;顯示數(shù)字3
        ljmp l1
        end

        程序說明:

        怎么做到的呢?一開始,將0FFH送入P3口,這樣,P3的所有引線都處于高電平,然后執(zhí)行L1,如果P3.2是高電平(鍵沒有按下),則順序執(zhí)行JNB P3.3,L3語句,同樣,如果P3.3是高電平(鍵沒有按下),則順序執(zhí)行jnb p3.4,l4語句。這樣就不停地檢測P3.2、P3.3,p3.4,p3.5。

        如果有一次P3.2上的按鍵按下去了,則轉(zhuǎn)移到L2,l2:mov p0,#28H;顯示數(shù)字0.然后又轉(zhuǎn)去L1,再次循環(huán),

        如果有一次P3.3上的按鍵按下去了,則轉(zhuǎn)移到l3:mov p0,#7EH;顯示數(shù)字1.然后又轉(zhuǎn)去L1,再次循環(huán),



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 扎赉特旗| 六安市| 东辽县| 玉田县| 尖扎县| 德令哈市| 甘德县| 乡城县| 边坝县| 安陆市| 苍山县| 平山县| 昭通市| 保康县| 克拉玛依市| 江津市| 江阴市| 察隅县| 海淀区| 福州市| 曲松县| 朔州市| 延寿县| 祁门县| 石渠县| 旺苍县| 开江县| 临澧县| 襄樊市| 祁门县| 星子县| 浦东新区| 神农架林区| 天柱县| 乌苏市| 色达县| 太仆寺旗| 广南县| 仙居县| 乌鲁木齐县| 常熟市|