欢迎来到51单片机学习网www.51c51.com  专业致力于8051单片机编程技术推广,(深圳学林电子有限公司)累计5年点击超过500万! 彩色包装效果图 网友来信照登

返回主页XL2000实验仪51论坛单片机教学本站例程 技术资料 软件下载 产品介绍学液晶显示如何购买  

  步进电机xl600实验仪 红外线遥控 c语言集锦自制编程器音响技术品质技术音响网址  更新中..51论坛

 

系列试验之

手把手单片机入门教程

51单片机学习网版权所有

未经同意不得转载

第一个试验:点亮一个发光管第七个试验:流水灯数字显示综合练习
第二个试验:闪烁的发光管第八个试验:小键盘控制的数字显示
第三个试验:认识声音第九个试验:小键盘控制的花样彩灯
第四个试验:小喇叭发出救护车的声音第十个试验:100位计数器
第五个试验:跟我学作加减乘除法第十一个试验:试验14-通信
第六个试验:认识数码管第十二个试验:单片机唱歌---“祝你平安”
部分章节摘自平凡教程)广大用户如有更多编写好的应用源程序欢迎投稿!
 

试验8  ---------小键盘控制的数字显示

本试验示例了键盘监测程序,他的执行结果为;通电后,

如果按小键盘p3.2那么数码管显示0,

如果按小键盘p3.3那么数码管显示1,

如果按小键盘p3.4那么数码管显示2,

如果按小键盘p3.5那么数码管显示3,

该程序调试通过:

在这个程序里我们主要用到了

  判位变量转移指令

      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  ;初始化;键盘口以及数码管口全部置高清零
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,再次循环,

......