您当前的位置:五五电子网电子知识单片机-工控设备51单片机单片机定时器程序 正文
单片机定时器程序

单片机定时器程序

点击数:7618 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   51单片机
     ;
        ;******************
     ;    倒计时程序   ;
     ;******************
            PGT0:   CLR   EA               ;关中断
                    PUSH  ACC           ;保护现场
      PUSH  PSW
      PUSH  DPL
      PUSH  DPH
      MOV   PSW, #08H         ;选用寄存器组1
      CLR   TR0                  ;暂停计时
      MOV   A,#0B7H             ;中断同步修正
      ADD   A,TL0
      MOV   TL0,A
      MOV   A,#3CH
      ADD   A,TH0
      MOV   TH0,A
                    SETB  TR0                  ;恢复计时
                    DEC   TCOUNT               ;定时器T0每50 000毫秒溢出一次,则
      MOV   A,  TCOUNT           ; 溢出10次为0.5秒
             JNZ   OUTT0             ;判断是否到半秒
      MOV   TCOUNT, #0AH         ;
      CPL   LED4               ; 若到半秒LED取反
      JNB   LED4, OUTT0         ;LED每闪烁一次是一秒
      MOV   R0, #SH             ;移入秒位的地址
      SETB  IFDEC                ;BCD子程序参数,使其做减法
      ACALL ADDBCD            ;调用BCD子程序, 秒减1
      CJNE  R3, #99H, OUTT0      ;判断秒要否借位
                    MOV   SH, #05H            ;要借位则
                    MOV   SL, #09H            ; 送数据59(否则显示99)
      MOV   R0, #MH             ;移入分位的地址
      ACALL ADDBCD            ;分减1
      CJNE  R3, #99H, OUTT0     ;判断分要否借位
                    MOV   MH, #05H
                    MOV   ML, #09H
      MOV   R0, #HH
      ACALL ADDBCD
            OUTT0:  POP   DPH           ;恢复现场
      POP   DPL
      POP   PSW
      POP   ACC
      SETB  EA
      RETI                    ;中断返回
                    NOP
      NOP
                    LJMP ERR                    ;软件陷阱
 ;
 ;
            ;**************************
     ;   BCD子程序(加1或减1 )  ;
            ;**************************
   ADDBCD: MOV   A, @R0           ;移入被操作数的高位
            DEC   R0                ;指针减一
            SWAP  A
            ORL   A, @R0            ;移入被操作数的低位
            MOV   B, #01H           ;B寄存器送立即数#01H
            MOV   C, IFDEC          ;若 减法标志位为1,则
            MOV   B.3,  C           ;
            MOV   B.4,  C           ; B寄存器的值被改为#99H
            MOV   B.7,  C           ;
           ADD   A, B              ; 对一个压缩的BCD码加#99H等于对其减一
           DA    A                 ;BCD码调整
           MOV   R3, A             ;暂存结果
           ANL   A, #0FH           ;取低位码

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页


本文关键字:单片机  程序  定时器  51单片机单片机-工控设备 - 51单片机