标题: 单片机数字时钟 数码管为什么不显示 vcc换成激励源显示的出来但一直是8888 [打印本页]

作者: hui123435    时间: 2023-12-14 02:05
标题: 单片机数字时钟 数码管为什么不显示 vcc换成激励源显示的出来但一直是8888

有没有人帮忙看一下原理图,为什么vcc换成激励源显示的出来但一直是8888
SECOND EQU 30H
MINITE EQU 31H
HOUR EQU 32H
HOURK BIT P3.0;按键设置小时
MINITEK BIT P3.1;按键设置分钟
SECONDK BIT P3.2;按键设置秒
DISPBUF EQU 40H
DISPBIT EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
TEMP EQU 4BH
ORG 0000H
AJMP START
ORG 000BH
LJMP INT_T0
START:MOV SECOND,#00H
      MOV MINITE,#00H
      MOV HOUR,#12
      MOV DISPBIT,#00H
      MOV T2SCNTA,#00H
      MOV T2SCNTB,#00H
      MOV TEMP,#0FEH
      ACALL DISP
      MOV TMOD,#01H
      MOV TH0,#(65536-2000)/256
      MOV TL0,#(65536-2000)MOD 256
      SETB TR0
      SETB ET0
      SETB EA
WT:JB SECONDK,NK1
   ACALL DELY10MS
   JB SECONDK,NK1
   INC SECOND
   MOV A,SECOND
   CJNE A,#60,NS60
   MOV SECOND,#00H
NS60:ACALL DISP
   JNB SECONDK,$
NK1:JB MINITEK,NK2
   ACALL DELY10MS
   JB MINITEK,NK2
   INC MINITE
   MOV A,MINITE
   CJNE A,#60,NM60
   MOV MINITE,#00H
NM60:ACALL DISP
     JNB MINITEK,$
NK2:JB HOURK,NK3
    ACALL DELY10MS
   JB HOURK,NK3
   INC HOUR
   MOV A,HOUR
   CJNE A,#24,NH24
   MOV HOUR,#00H
NH24:ACALL DISP
     JNB HOURK,$
NK3:AJMP WT
DELY10MS:MOV R6,#10
D1:MOV R7,#248
   DJNZ R7,$
   DJNZ R6,D1
   RET
DISP:MOV A,#DISPBUF
     ADD A,#8
     DEC A
    MOV R1,A
    MOV A,HOUR
    MOV B,#10
    DIV AB
    MOV @R1,A
    DEC R1
    MOV A,B
    MOV @R1,A
    DEC R1
    MOV A,#10
    MOV@R1,A
    DEC R1
    MOV A,MINITE
    MOV B,#10
    DIV AB
    MOV @R1,A
    DEC R1
    MOV A,B
    MOV @R1,A
    DEC R1
    MOV A,#10
    MOV@ R1,A
    DEC R1
    MOV A,SECOND
    MOV B,#10
    DIV AB
    MOV @R1,A
    DEC R1
    MOV A,B
    MOV @R1,A
    DEC R1
    RET
INT_T0:
    MOV TH0,#(65536-2000)/256
    MOV TL0,#(65536-2000)MOD 256
    MOV A,#DISPBUF
    ADD A,DISPBIT
    MOV R0,A
    MOV A,@R0
    MOV DPTR,#TABLE
    MOVC A,@ A+DPTR
    MOV P0,A;输出数码管段码数据
    MOV A,DISPBIT
    MOV DPTR,#TAB
    MOVC A,@ A+DPTR
    MOV P2,A;查表TAB 得到位选(共用8位来位选)
    INC DISPBIT
    MOV A,DISPBIT
    CJNE A,#08H,KNA
    MOV DISPBIT,#00H
KNA:INC T2SCNTA
    MOV A,T2SCNTA
    CJNE A,#100,DONE
    MOV T2SCNTA,#00H
    INC T2SCNTB
    MOV A,T2SCNTB
    CJNE A,#05H,DONE
    MOV T2SCNTB,#00H
    INC SECOND
    MOV A,SECOND
    CJNE A,#60,NEXT
    MOV SECOND,#00H
    INC MINITE
    MOV A,MINITE
    CJNE A,#60,NEXT
    MOV MINITE,#00H
    INC HOUR
    MOV A,HOUR
    CJNE A,#24,NEXT
    MOV HOUR,#00H
NEXT:ACALL DISP
DONE:RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
    END


作者: lkc8210    时间: 2023-12-14 08:49
看仿真图,用的是共阳管
但看汇编的TABLE,用的是共阴
试试把TABLE改为DB 0C0H, 0F9H, 0A4H, 0B0H, 099H,092H,082H,0f8H,080H,090H
作者: 鹈鹕    时间: 2023-12-14 09:11
Q1-Q8的基极上都没限流电阻?哪有这么野蛮的电路。。。。
作者: 炸掉的电容    时间: 2023-12-14 09:19
程序没看,看了下原理图,单片机P0口需要接上拉电阻,你这里没有

作者: lightday    时间: 2023-12-14 11:21
你把数码管位选1、2、3、4固定接到地试下,看能否正常显示数据。
作者: hui123435    时间: 2023-12-14 17:38
lkc8210 发表于 2023-12-14 08:49
看仿真图,用的是共阳管
但看汇编的TABLE,用的是共阴
试试把TABLE改为DB 0C0H, 0F9H, 0A4H, 0B0H, 099H, ...

啊proteus上cc不是共阴吗我用的应该是共阴吧,试了一下把table改了也没什么用
作者: hui123435    时间: 2023-12-14 17:39
鹈鹕 发表于 2023-12-14 09:11
Q1-Q8的基极上都没限流电阻?哪有这么野蛮的电路。。。。

之前加过一次,我看也没什么反应就删了
作者: hui123435    时间: 2023-12-14 17:43
lightday 发表于 2023-12-14 11:21
你把数码管位选1、2、3、4固定接到地试下,看能否正常显示数据。

显示的了,但是都是8888
作者: hui123435    时间: 2023-12-14 17:43
炸掉的电容 发表于 2023-12-14 09:19
程序没看,看了下原理图,单片机P0口需要接上拉电阻,你这里没有

试过也显示不出来
作者: hui123435    时间: 2023-12-14 17:52
还试过不通过三极管直接接到位选,显示的出来就是残缺的,显示不全




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1