本試驗示例了鍵盤(pán)監測程序,他的執行結果為;通電后,如果按小鍵盤(pán)p3.2那么數碼管顯示0,如果按小鍵盤(pán)p3.3那么數碼管顯示1,如果按小鍵盤(pán)p3.4那么數碼管顯示2,如果按小鍵盤(pán)p3.5那么數碼管顯示3, 該程序調試通過(guò): 



在這個(gè)程序里我們主要用到了 判位變量轉移指令 JB bit,rel JNB bit,rel 第一條指令是如果指定的bit位中的值是1,則轉移,否則順序執行。同樣,我們可以這樣理解這條指令:JB bit,標號 |
org 0000h ljmp start org 30h start: mov sp,#5fh mov p1,#0ffh CLR P2.6 ;選中p2.6右邊的數碼管 SETB P2.7 mov p3,#0ffh mov p0,#0ffh ;初始化;鍵盤(pán)口以及數碼管口全部置高清零 l1: jnb p3.2,l2 ;如果p3.2等于低(鍵按下)那么執行l2 jnb p3.3,l3 ;如果p3.3等于低(鍵按下)那么執行l3 jnb p3.4,l4 ;如果p3.4等于低(鍵按下)那么執行l4 jnb p3.5,l5 ;如果p3.5等于低(鍵按下)那么執行l5 ljmp l1 l2:mov p0,#28H;顯示數字0 ljmp l1 l3:mov p0,#7EH;顯示數字1 ljmp l1 l4:mov p0,#0A2H;顯示數字2 ljmp l1 l5:mov p0,#62H;顯示數字3 ljmp l1 end 程序說(shuō)明: 怎么做到的呢?一開(kāi)始,將0FFH送入P3口,這樣,P3的所有引線(xiàn)都處于高電平,然后執行L1,如果P3.2是高電平(鍵沒(méi)有按下),則順序執行JNB P3.3,L3語(yǔ)句,同樣,如果P3.3是高電平(鍵沒(méi)有按下),則順序執行jnb p3.4,l4語(yǔ)句。這樣就不停地檢測P3.2、P3.3,p3.4,p3.5。 如果有一次P3.2上的按鍵按下去了,則轉移到L2,l2:mov p0,#28H;顯示數字0.然后又轉去L1,再次循環(huán), 如果有一次P3.3上的按鍵按下去了,則轉移到l3:mov p0,#7EH;顯示數字1.然后又轉去L1,再次循環(huán), |
評論