×
嵌入式 > 技术百科 > 详情

用单片机计数脉冲的个数-数码管显示汇编程序

发布时间:2020-06-11 发布时间:
|
位数码管用2个573接到p0口,位选p2 段选P0口:点这里  采用定时器来记录脉冲 并用数码管输出

以下是源代码:

 ;******** 用数码管来计数脉冲的个数 **********************************
         ORG  0000H
         JMP  MAIN
         ORG  000BH
         JMP  TT0
         ORG  001BH
         JMP  TT1
         MOV  23H,#00H
         MOV   22H,#00H
         MOV   21H,#00H
         MOV   24H,#10
         CALL  IIP
         CALL  IIP
         CALL  IIP
         MOV  SP,70H
;=====主程序区====================================
  MAIN: MOV  TMOD,#01100010B
        MOV  TH1,#255
        MOV  TL1,#255
        MOV  IE,#10001010B
        MOV  TH0,#00H
        MOV  TL0,#00H
        SETB  TR0
        SETB  TR1
      
       JMP  $
 ;======分解计数程序===================================

    TT1:CALL  IIP
        INC   20H
        MOV   A,20H
        MOV   B,#100
        DIV   AB
        MOV 21H,A
        MOV A,B
        MOV B,#10
        DIV AB
        MOV 22H,A
        MOV 23H,B
     
        RETI
;======数码管显示程序区====================================
  IIP:  MOV  A,23H
        CALL TABLE
        MOV  P0,A
        SETB  P2.0
        NOP
        NOP
        NOP
        NOP
        CLR  P2.0
        MOV  P0,#10111111b
        SETB P2.1
        NOP
        NOP
        NOP
        CLR  P2.1
        CALL T10MS
 ;==================================================
        MOV  A,22H
        CALL TABLE
        MOV  P0,A
        SETB P2.0
        NOP
        NOP
        NOP
        NOP
        CLR  P2.0
        MOV  P0,#11011111B
        SETB P2.1
        NOP
        NOP
        NOP
        CLR  P2.1
        CALL T10MS
;===================================================
        MOV  A,21H
        CALL T10MS
        CALL TABLE
        MOV  P0,A
        SETB P2.0
        NOP
        NOP
        NOP
        NOP
        CLR  P2.0
        MOV  P0,#11101111B
        SETB P2.1
        NOP
        NOP
        NOP
        CLR  P2.1
        CALL T10MS
        RET
;=====定时0程序区======================================
   TT0: DJNZ  24H,LOOP_9
        CPL   P1.0
        CPL   P1.1
        CPL   P1.2
        CPL   P1.3
        CPL   P1.4
        CPL   P1.5
        CPL  P1.6
        CPL  P1.7
 LOOP_9:RETI
;=======延时子程序区====================================
T10MS: MOV  25H,#10
LOOP_3: MOV  26H,#40
LOOP_2: MOV  27H,#10
LOOP_1: NOP
        DJNZ 27H,LOOP_1
        DJNZ 26H,LOOP_2
        DJNZ 25H,LOOP_3
        RET
;=======调用码表程序区====================================
TABLE:INC  A
       MOVC A,@A+PC
       RET
       DB 3FH,06H,05BH,04FH,066H,06DH,07DH,07H,07FH,06FH,

;======================================================
        END
 

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
实时控制.安全.如何加速实现未来工厂落地?