您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子元器件>发光二极管>

利用按键控制数码管显示的操作原理分析

2017年11月17日 14:32 网络整理 作者: 用户评论(0

  利用单片机实现按键控制数码管显示。单片机是所有微处理机中性价比最高的一种,随着种类的不断全面功能不断完善,其应用领域也迅速扩大。单片机在智能仪表、实时控制机电一体化、办公机械、家用电器等方面都有相当的应用领域。当前8位单片机主要用于工业控制,如温度、压力、流量、计量和机械加工的测量和控制场合;

  高效能的16位单片机(如MCS-96、MK-68200)可用在更复杂的计算机网络。可以说,微机测控技术的应用已渗透国民经济的各个部门,微机测控技术的应用是产品提高档次和推陈出新的有效途径。

  51单片机最小系统中有4个独立按键,4个共阳极数码管,我想对应着用一个按键去控制一个数码管,比如按以下1号按键,对应的数码管显示0,再按一下显示1,有点像计数功能,这样的换凭借4个按键就可以显示出我需要的4位数  

  键盘电路作为单片机的输入部分,数码显示电路作为单片机的输出部分,由键盘电路通过单片机控制数码管显示电路的八路键控数码管电路。按下S0到S7号按键时,数码管显示立刻显示数字0到7。电子制作的好课题下面是单片机最小系统_按键控制数码管显示原理图,实作时,按原理图焊好电路,单片机中写入程序。

  利用按键控制数码管显示的操作原理分析

  ORG 0000H ;随后的指令代码从0000H单元开始存放。

  LJMP START ;转到标号START处

  ORG 0030H ;随后的指令代码从0030H单元开始存放。

  START:MOV P0,#00H ;关闭数码管,不显示任何内容。

  SAOMIAO:MOV P2,#0FFH ;对P2口所有位写1,也就是处于读状态,确保读数正确。

  CLR A ;对累加器A清零。

  MOV A,P2 ;第一次读取P2口的数据,并送入累加器A中。

  CPL A ;对A按位取反,如果没有键按下, A为00H,如果有键按下,相应的位为1。

  JZ SAOMIAO ;如果A=00H,说明没有键按下,跳到标号SAOMIAO处继续扫描。如果A不等于00H,说明有键按下,应该调用10MS的延时去抖子程序。

  LCALL DELAY10MS ;调用10MS的延时去抖子程序。

  MOV A,P2 ;第二次读取P2口的数据,并送入累加器A中。

  CPL A ;对A按位取反,如果没有键按下, A为00H,如果有键按下,相应的位为1。

  JZ SAOMIAO ;如果A=00H,说明没有键按下,跳到标号SAOMIAO处继续扫描。如果A不等于00H,说明确实有键按下,顺序执行下面的程序,判断是哪个键按下了。

  JB ACC.0,SZ0 ;如果S0键按下,则ACC.0=1,转去执行显示数字0,否则顺序执行。

  JB ACC.1,SZ1 ;如果S1键按下,则ACC.1=1,转去执行显示数字1,否则顺序执行。

  JB ACC.2,SZ 2 ;如果S2键按下,则ACC.2=1,转去执行显示数字2,否则顺序执行。

  JB ACC.3,SZ 3 ;如果S3键按下,则ACC.3=1,转去执行显示数字3,否则顺序执行。

  JB ACC.4,SZ 4 ;如果S4键按下,则ACC.4=1,转去执行显示数字4,否则顺序执行。

  JB ACC.5,SZ 5 ;如果S5键按下,则ACC.5=1,转去执行显示数字5,否则顺序执行。

  JB ACC.6,SZ 6 ;如果S6键按下,则ACC.6=1,转去执行显示数字6,否则顺序执行。

  JB ACC.7,SZ 7 ;如果S7键按下,则ACC.7=1,转去执行显示数字7,否则顺序执行。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描。

  SZ0:MOV P0,#3FH ;显示数字0。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

  SZ1:MOV P0,#06H ;显示数字1。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

  SZ2:MOV P0,#5BH ;显示数字2。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

  SZ3:MOV P0,#4FH ;显示数字3。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

  SZ4:MOV P0,#66H ;显示数字4。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

  SZ5:MOV P0,#6DH ;显示数字5。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

  SZ6:MOV P0,#7DH ;显示数字6。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

  SZ7:MOV P0,#07H ;显示数字7。

  LJMP SAOMIAO;跳转到SAOMIAO处继续扫描按键。

  DELAY10MS:MOV R7,#20 ;从本行开始,到RET结束,为10MS延时去抖子程序。

  D1:MOV R6,#250

  D2:DJNZ R6,D2

  DJNZ R7,D1

  RET

  END

非常好我支持^.^

(77) 77.8%

不好我反对

(22) 22.2%

( 发表人:龚婷 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!