打印
[51单片机]

数码管初始化出问题了

[复制链接]
991|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llccbb1|  楼主 | 2017-2-26 14:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
程序要实现的功能是:按下k1数码管显示0,按下k2数码管显示1
电路如下(8个共阴极7段数码管,两个74HC573驱动,只有一个数码管显示,初始时不显示):
出现的问题:初始时数码管不应该有显示,但是实际上数码管显示8.
程序代码如下:
BIAOZHI1  BIT 00H
BIAOZHI2  BIT 01H
          ORG 0000H
                  SJMP START
                  ORG 0030H
;--------------初始化------------
START:    MOV SP, #70H
          MOV 40H, #0FFH
                  
                  ;MOV P0, #00h
                 
                  MOV P0, #01111111b
                  SETB P2.7
                  CALL DELAY
                  CLR P2.7
                  MOV P0, #00h
                  SETB P2.6
                  ;SETB P2.6
                  ;CALL DELAY
                  

                  CLR BIAOZHI1
                  CLR BIAOZHI2
;--------------主程序------------
MAIN:     CALL KEY
          CALL DISPLAY
                  SJMP MAIN
;--------------按程序------------
KEY:      JNB P3.0, K1
          JNB P3.1, K2
  FANHUI: RET
  K1:     CALL DELAY
          JB P3.0, FANHUI
                  JNB P3.0, $
                  MOV 40H, #3FH
                  RET
  K2:     CALL DELAY
          JB P3.1, FANHUI
                  JNB P3.1, $
                  MOV 40H, #06H
                  RET

;------------处理子程序----------
DISPLAY:
                  MOV P0, #00h
                 
                  MOV  P0, 40H
                  RET

;---------------------------------
DELAY:    MOV R0, #50
  D2:     MOV R1, #100
  D1:     DJNZ R1, D1
          DJNZ R0, D2
                  RET
                  END
我感觉问题出在初始化那个位置,P2.7置位,选择哪一个数码管显示,P2.7清零,锁存。这一步是正常的。
但是我本来想让P0=#00h,置位P2.6,使得初始化的时候数码管不显示,但是不好使。
而按K1的时候数码管显示0,按K2的时候数码管显示1,这一效果是正常的。
不知道哪里出了问题,希望大神指教!



数码管.png (72.1 KB )

数码管.png

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

61

帖子

2

粉丝