您当前的位置:五五电子网电子知识单片机-工控设备51单片机24c02开机计数器程序 正文
24c02开机计数器程序

24c02开机计数器程序

点击数:7481 次   录入时间:03-04 11:57:49   整理:http://www.55dianzi.com   51单片机
LED1    EQU    08H
LED2    EQU    09H
LED3    EQU    0AH
LED4    EQU    0BH

LedT0    EQU    0CH    ;0-3 轮流点亮4个数据管

SDA    EQU    P2.0
SCL    EQU    P2.1
Address    EQU    0EH
I2CData    EQU    0FH
;=================================================
    ORG 0000H 
    LJMP START;转入主程序

;=================================================
    ORG    000BH            
;定时器0中断入口
INT_TO:
    PUSH    ACC
    PUSH    PSW

    CLR    TF0        ;清定时0中断标志
     MOV     TH0,#0F6H    ;2.5MS
     MOV     TL0,#03DH    ;

     MOV     A,#11110000B    ;关数码管
    ORL    P2,A

     MOV     A,LedT0
    CJNE    A,#0,INT_T0_1
     MOV     A,LED1
     MOV C    A,@A+DPTR
     MOV     P0,A
    CLR    P2.7    
     MOV     LedT0,#1
    LJMP    INT_T0_END
 INT_T0_1:
      
     MOV     A,LedT0
    CJNE    A,#1,INT_T0_2
     MOV     A,LED2
     MOV C    A,@A+DPTR
     MOV     P0,A
    CLR    P2.6    
     MOV     LedT0,#2
    LJMP    INT_T0_END
 INT_T0_2:
      
      MOV     A,LedT0
    CJNE    A,#2,INT_T0_3
     MOV     A,LED3
     MOV C    A,@A+DPTR
     MOV     P0,A
    CLR    P2.5    
     MOV     LedT0,#3
    LJMP    INT_T0_END
 INT_T0_3:
      
     MOV     A,LED4
     MOV C    A,@A+DPTR
     MOV     P0,A
    CLR    P2.4    
     MOV     LedT0,#0
    LJMP    INT_T0_END
      
 INT_T0_END:

    POP    PSW    
    POP    ACC

RETI

;=============================================

START:
     MOV     SP,#60H

    CALL    DELAY10MS    
    CALL    DELAY10MS
    CALL    DELAY10MS

    CALL    AT24C01_READ_ALL

     MOV     A,LED1
    CJNE    A,#10,$+3    ;A<10 ,C=1    
    JNC    START_RESET_24C01
     MOV     A,LED2
    CJNE    A,#10,$+3    ;A<10 ,C=1    
    JNC    START_RESET_24C01
     MOV     A,LED3
    CJNE    A,#10,$+3    ;A<10 ,C=1    
    JNC    START_RESET_24C01
     MOV     A,LED4
    CJNE    A,#10,$+3    ;A<10 ,C=1    
    JNC    START_RESET_24C01
    JMP    START_INC
;第一次使用复位内部数值
START_RESET_24C01:
     MOV     LED1,#0
     MOV     LED2,#0
     MOV     LED3,#0
     MOV     LED4,#0
    JMP    START_INC_END
;加1
START_INC:
    INC    LED4
     MOV     A,LED4
    CJNE    A,#10,START_INC_END    ;等于10,进位
     MOV     LED4,#00
    INC    LED3
     MOV     A,LED3
    CJNE    A,#10,START_INC_END
     MOV     LED3,#00
    INC    LED2
     MOV     A,LED2
    CJNE    A,#10,START_INC_END
     MOV     LED2,#00
    INC    LED1
     MOV     A,LED1
    CJNE    A,#10,START_INC_END
     MOV     LED1,#00
     MOV     LED2,#00
     MOV     LED3,#00
     MOV     LED4,#00

START_INC_END:    
    ;储存
    CALL    AT24C01_WRITE_ALL
    

     MOV     TMOD,#01H    ;设定T0为十六位定时模式。
     MOV     TH0,#0F6H    ;2MS
     MOV     TL0,#03DH    ;

[1] [2] [3]  下一页


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