新聞中心

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

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

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

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

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

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

在這個(gè)程序里我們主要用到了

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

JB bit,rel

JNB bit,rel

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

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

程序說(shuō)明:

怎么做到的呢?一開(kāi)始,將0FFH送入P3口,這樣,P3的所有引線都處于高電平,然后執(zhí)行L1,如果P3.2是高電平(鍵沒(méi)有按下),則順序執(zhí)行JNB P3.3,L3語(yǔ)句,同樣,如果P3.3是高電平(鍵沒(méi)有按下),則順序執(zhí)行jnb p3.4,l4語(yǔ)句。這樣就不停地檢測(cè)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),



評(píng)論


相關(guān)推薦

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

關(guān)閉