本試驗示例了鍵盤監(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,標(biā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 程序說明: 怎么做到的呢?一開始,將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), |
評論