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 ;初始化;键盘口以及数码管口全部置高清零 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 程序说明: 怎么做到的呢?一开始,将0FFH送入P3口,这样,P3的所有引线都处于高电平,然后执行L1,如果P3.2是高电平(键没有按下),则顺序执行JNB P3.3,L3语句,同样,如果P3.3是高电平(键没有按下),则顺序执行jnb p3.4,l4语句。这样就不停地检测P3.2、P3.3,p3.4,p3.5。 如果有一次P3.2上的按键按下去了,则转移到L2,l2:mov p0,#28H;显示数字0.然后又转去L1,再次循环, 如果有一次P3.3上的按键按下去了,则转移到l3:mov p0,#7EH;显示数字1.然后又转去L1,再次循环, |
评论