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

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

作者:刘大允   来源:本站原创   点击数:  更新时间:2014年03月25日   【字体:

4位数码管用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
 

关闭窗口

相关文章