最新公告
  • 欢迎光临可关玩日记,免费分享生活知识及创业资讯
  • 单片机中数码管数字部分和小数点的点亮规则是什么啊?

    单片机中数码管数字部分和小数点的点亮规则是什么啊?

    你好,我不懂你的电路图是怎么的,但是数码管的小数点是这样的,P0=table1[ge];你这个是寻址的后面加个点就得了,给为 P0=table1[ge]+0x80;或者P0=table1[ge]|0x80应该都一样的;
    0x80就是那个点亮,不懂你是公阳还是共阴的,如果是公阳的是0x7f。。。和共阴的相反

    怎么用单片机数码管显示十进制???

    4位数码管最大显示9999小于10000,所以可以按如下处理:
    千位:n/1000
    百位:(n/100)%10
    十位:(n/10)%10
    各位:n%10

    单片机驱动数码管显示问题

    前不久刚弄的类似显示程序,调整了下给你,看看有用不。电路图是4位显示的,程序已经改成了2位显示。
    ;单片机内存分配申明!
    TEMPER_L  EQU  28H  ;用于保存计数值
    A_BIT   EQU  20H   ;数码管个位数存放内存位置
    B_BIT   EQU  21H   ;数码管十位数存放内存位置
     ORG  0000H
     LJMP MAIN
    ORG  0040H
    MAIN: 
      MOV SP,60H
      MOV A,#00H
      MOV P2,A
    STAR: 
      MOV TEMPER_L,#0 ;初始化计数器,从0开始
    stlop:
     ACALL DISPLAY;调用显示子程序
     INC TEMPER_L;对计数器加1
     MOV   A,TEMPER_L
     CJNE  A,#100,NEXT ;判断计数器是否满100?
     MOV  TEMPER_L,#0;满100就清零
    NEXT: LJMP stlop;不满就循环执行
    DISPLAY:
      MOV A,TEMPER_L
      MOV  B,#10   ;10进制/10=10进制
      DIV  AB
      MOV  B_BIT,A  ;十位在a
      MOV  A_BIT,B  ;个位在b
      MOV  DPTR,#NUMTAB  ;指定查表启始地址

    DPL1:   MOV  R7,#250  ;显示250次,数越小,显示频率越高,递增的越快。
    DPLOP:   MOV  A,A_BIT  ;取个位数
      MOVC  A,@A+DPTR  ;查个位数的7段代码
      MOV  P0,A   ;送出个位的7段代码
      SETB  P2.3   ;开个位显示
      ACALL  D1MS   ;显示1ms
      CLR  P2.3
        MOV  A,B_BIT  ;取十位数
      MOVC  A,@A+DPTR  ;查十位数的7段代码
      MOV  P0,A   ;送出十位的7段代码
      SETB  P2.2   ;开十位显示
      ACALL  D1MS   ;显示1ms
      CLR  P2.2
         DJNZ  R7,DPLOP  ;250次没完循环
      RET
      ;1MS延时(按12MHZ算)
    D1MS:   MOV  R5,#80 
      DJNZ  R5,$
      RET
    ;7段数码管0~9数字的共阳显示代码
    NUMTAB:  DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
      END