专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

4位共阳数码管动态扫描显示汇编程序

作者:佚名   来源:本站原创   点击数:  更新时间:2010年09月01日   【字体:

    本程序是用51单片机实现4位共阳数码管动态扫描显示程序,采用74HC573做驱动,定时器T0定时16ms,用来刷新数码管显示屏,软件延时1ms实现数码管亮灭延时,相当稳定,没有一点闪烁的感觉,很不错!如果要调整亮度可适当调整数码管亮的时间。现把程序上传,与大家一起共享!!!哈哈哈!!!

   由于电路图很简单我就不画了大家从程序中都可看出来p2.0-2.3 是接4个位选 由于是共阳所以是接的数码管的正极,p2.5是74hc573的锁存端,段的数据口是p0.我是从51hei单片机开发板上的电路图仿制过来的 只是用4个io口做位选 节约了一片573芯片.

      D0  BIT  P2.0
      D1  BIT  P2.1
      D2  BIT  P2.2
      D3  BIT  P2.3
        SUBF0  EQU  30H
        SUBF1  EQU  31H
        SUBF2  EQU  32H
        SUBF3  EQU  33H
       COUT  EQU  34H
       ORG  0000H
       SJMP MIAN
       ORG  000BH
       LJMP INTER0
       ORG 0040H
       MIAN:MOV SP,#60H
       MOV IE,#00H
       MOV SUBF0,#80H
       MOV SUBF1,#80H
      MOV SUBF2,#80H
      MOV SUBF3,#80H
      MOV TH0,#0C1H
      MOV TL0,#80H
      MOV TMOD,#01H
      MOV R2,#00H
      MOV R1,#SUBF0
      MOV COUT,#04H
      LCALL DISPLAY
      LCALL SHUT
      SETB EA
      SETB ET0
      MOV DPTR,#TABLE
    LOOP:MOV A,R2
         MOVC A,@A+DPTR
   LOOP0:MOV @R1,A
         INC R1
      INC R2
      DJNZ COUT,LOOP
      SETB TR0
      SJMP $
  INTER0:CLR ET0
         CLR TR0
      PUSH ACC
      PUSH PSW
      MOV TH0,#0C1H
      MOV TL0,#80H
      LCALL DISPLAY
      SETB ET0
      SETB TR0
      POP PSW
      POP ACC
      RETI
 DISPLAY:SETB D1
         SETB D2
      SETB D3
   CLR D0
   CLR P2.5
   MOV P0,SUBF0
   SETB P2.5
   LCALL DELAY
   SETB D0
   SETB D2
   SETB D3
   CLR D1
   CLR P2.5
   MOV P0,SUBF1
   SETB P2.5
   LCALL DELAY
   SETB D0
   SETB D1
   SETB D3
   CLR D2
   CLR P2.5
   MOV P0,SUBF2
   SETB P2.5
   LCALL DELAY
   SETB D0 
   SETB D1
   SETB D2
   CLR D3
   CLR P2.5
   MOV P0,SUBF3
   SETB P2.5
   LCALL DELAY
   LCALL SHUT
   RET
 SHUT:SETB D0
      SETB D1
      SETB D2
      SETB D3
      RET
   DELAY:MOV R7,#02H
      DL:MOV R6,#0FFH
     DL1:DJNZ R6,DL1
      DJNZ R7,DL
      RET
   TABLE:DB 99H,92H,82H,0F8H
         END
关闭窗口

相关文章