⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gl.asm

📁 一个MSC51汇编写的锅炉控制器源码
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;
K6W:    SETB   ADSU
        MOV    A,JCS0
        JZ     K6W0
        MOV    A,JCS0
        CJNE   A,#10,RTK6W
        DEC    JCS0
K6W0:   MOV    A,TM0
        ADD    A,#99H
        DA     A
        MOV    TM0,A
        JC     XYYB
        MOV    A,TM1
        JB     ACC.0,XYYB
        MOV    TM1,#1
        MOV    TM0,#0
        SJMP   JXJ2
XYYB:   MOV    TM1,#0
JXJ2:   MOV    R3,TM1
        MOV    R2,TM0
        LCALL  DISPWD
RTK6W:  LCALL  DLY100
        INC    JCS0
        RET
;----------------------------
;
K5T:    SETB   ADSU
        MOV    A,JCS0
        JZ     K5T0
        MOV    A,JCS0
        CJNE   A,#30,RTK5T
        DEC    JCS0
K5T0:   MOV    A,TM0
        ADD    A,#1
        DA     A
        MOV    TM0,A
        CJNE   A,#60H,NTADD0
        MOV    TM0,#0
        MOV    A,TM1
        ADD    A,#1
        DA     A
        MOV    TM1,A
        CJNE   A,#24H,NTADD0
        MOV    TM1,#0
NTADD0: MOV    R3,TM1
        MOV    R2,TM0
        LCALL  DISPTM
RTK5T:  LCALL  DLY10MS
        LCALL  DLY10MS
        INC    JCS0
        RET
;----------------------------
;
K6T:    SETB   ADSU
        MOV    A,JCS0
        JZ     K6T0
        MOV    A,JCS0
        CJNE   A,#30,RTK6T
        DEC    JCS0
K6T0:   MOV    A,TM0
        JNZ    NTADD1
        MOV    A,TM1
        JNZ    NTADD2
        MOV    A,#24H
NTADD2: ADD    A,#99H
        DA     A
        MOV    TM1,A
        MOV    A,#60H
NTADD1: ADD    A,#99H
        DA     A
        MOV    TM0,A
        MOV    R3,TM1
        MOV    R2,TM0
        LCALL  DISPTM
RTK6T:  LCALL  DLY10MS
        LCALL  DLY10MS
        INC    JCS0
        RET
;----------------------------
KEYDOWN:MOV    KEY,#0
        LCALL  DLY4MS
        MOV    A,KEY
        JZ     RTKD
        MOV    KEY,#0
        LCALL  DLY4MS
        CJNE   A,KEY,RTKD
        MOV    KEY,#0
        LCALL  DLY4MS
        CJNE   A,KEY,RTKD
        MOV    KEYE,A
        RET
RTKD:   MOV    KEYE,#0FFH
        RET
;----------------------------
;
KEYUP:  MOV    KEY,#0
        LCALL  DLY4MS
        MOV    A,KEY
        JNZ    RTKU
        LCALL  DLY4MS
        CJNE   A,KEY,RTKU
        LCALL  DLY4MS
        CJNE   A,KEY,RTKU
        MOV    KEYE,A
        RET
RTKU:   MOV    KEYE,#0FFH
        RET
;----------------------------
;
SETCON: MOV    A,LIGHT0
        ORL    A,#0F6H
        MOV    LIGHT0,A
        MOV    A,SETBNO
        CJNE   A,#6,NTSET0
        MOV    SETBNO,#0
        MOV    A,SETBNO
NTSET0: CJNE   A,#0,NTXS0
        JNB    ADSU,NTXS01
        MOV    A,TM1
        MOV    B,#9AH
        LCALL  WRBA
        MOV    A,TM0
        MOV    B,#9BH
        LCALL  WRBA
NTXS01: MOV    B,#90H
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ3
        CLR    A
        LCALL  WRBA
FFSJ3:  MOV    R3,A
        MOV    B,#91H
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ4
        CLR    A
        LCALL  WRBA
FFSJ4:  MOV    R2,A
        MOV    TM1,R3
        MOV    TM0,R2
        LCALL  DISPWD
        CLR    TTEMP
        CLR    ADSU
        MOV    JCS0,#0
        LJMP   NTXS5
;
NTXS0:  CJNE   A,#1,NTXS1
        JNB    ADSU,NTXS02
        MOV    A,TM1
        MOV    B,#90H
        LCALL  WRBA
        MOV    A,TM0
        MOV    B,#91H
        LCALL  WRBA
NTXS02: MOV    B,#92H
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ5
        CLR    A
        LCALL  WRBA
FFSJ5:  MOV    R3,A
        MOV    B,#93H
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ6
        CLR    A
        LCALL  WRBA
FFSJ6:  MOV    R2,A
        MOV    TM1,R3
        MOV    TM0,R2
        LCALL  DISPWD
        CLR    STEMP
        CLR    ADSU
        MOV    JCS0,#0
        LJMP   NTXS5
;
NTXS1:  CJNE   A,#2,NTXS2
        JNB    ADSU,NTXS03
        MOV    A,TM1
        MOV    B,#92H
        LCALL  WRBA
        MOV    A,TM0
        MOV    B,#93H
        LCALL  WRBA
NTXS03: MOV    B,#94H
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ7
        CLR    A
        LCALL  WRBA
FFSJ7:  MOV    R3,A
        MOV    B,#95H
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ8
        CLR    A
        LCALL  WRBA
FFSJ8:  MOV    R2,A
        MOV    TM1,R3
        MOV    TM0,R2
        LCALL  DISPWD
        CLR    CTEMP
        CLR    ADSU
        MOV    JCS0,#0
        LJMP   NTXS5
;
NTXS2:  CJNE   A,#3,NTXS3
        JNB    ADSU,NTXS04
        MOV    A,TM1
        MOV    B,#94H
        LCALL  WRBA
        MOV    A,TM0
        MOV    B,#95H
        LCALL  WRBA
NTXS04: MOV    R3,TTIMER3
        MOV    R2,TTIMER2
        MOV    TM1,R3
        MOV    TM0,R2
        LCALL  DISPTM        ;显示现在时间
        CLR    XTIME
        CLR    ADSU
        MOV    JCS0,#0
        LJMP   NTXS5
;
NTXS3:  CJNE   A,#4,NTXS4
        JNB    ADSU,NTXS05
        MOV    A,TM1
        MOV    B,#96H
        LCALL  WRBA
        MOV    A,TM0
        MOV    B,#97H
        LCALL  WRBA
        CLR    TR0
        MOV    TTIMER3,TM1
        MOV    TTIMER2,TM0
        MOV    TTIMER1,#0
        MOV    TTIMER0,#0
        SETB   TR0
NTXS05: MOV    B,#98H
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ
        CLR    A
        LCALL  WRBA
FFSJ:   MOV    R3,A
        MOV    B,#99H
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ0
        CLR    A
        LCALL  WRBA
FFSJ0:  MOV    R2,A
        MOV    TM1,R3
        MOV    TM0,R2
        LCALL  DISPTM        ;显示启动时间
        CLR    QTIME
        CLR    ADSU
        MOV    JCS0,#0
        LJMP   NTXS5
;
NTXS4:  CJNE   A,#5,NTXS5
        JNB    ADSU,NTXS06
        MOV    A,TM1
        MOV    B,#98H
        LCALL  WRBA
        MOV    A,TM0
        MOV    B,#99H
        LCALL  WRBA
NTXS06: MOV    B,#9AH
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ1
        CLR    A
        LCALL  WRBA
FFSJ1:  MOV    R3,A
        MOV    B,#9BH
        LCALL  RDBA
        CJNE   A,#0FFH,FFSJ2
        CLR    A
        LCALL  WRBA
FFSJ2:  MOV    R2,A
        MOV    TM1,R3
        MOV    TM0,R2
        LCALL  DISPTM        ;显示停止时间
        CLR    TTIME
        CLR    ADSU
        MOV    JCS0,#0
NTXS5:  INC    SETBNO
        RET
;----------------------------
;
DISPTM: MOV    A,R2
        MOV    B,#10H
        DIV    AB
        MOV    BUF0,B
        MOV    BUF1,A
        MOV    A,R3
        MOV    B,#10H
        DIV    AB
        SETB   B.7
        MOV    BUF2,B
        MOV    BUF3,A
        LCALL  DISPSM
        RET
;----------------------------
DISPSM: PUSH   ACC
        MOV    DPTR,#DATA0
        MOV    A,BUF0
        MOV    C,ACC.7
        CLR    ACC.7
        MOVC   A,@A+DPTR
        CPL    C
        MOV    ACC.7,C
        MOV    LED0,A
;
        MOV    A,BUF1
        MOV    C,ACC.7
        CLR    ACC.7
        MOVC   A,@A+DPTR
        CPL    C
        MOV    ACC.7,C
        MOV    LED1,A
;
        MOV    A,BUF2
        MOV    C,ACC.7
        CLR    ACC.7
        MOVC   A,@A+DPTR
        CPL    C
        MOV    ACC.7,C
        MOV    LED2,A
;
        MOV    A,BUF3
        MOV    C,ACC.7
        CLR    ACC.7
        MOVC   A,@A+DPTR
        CPL    C
        MOV    ACC.7,C
        MOV    LED3,A
        POP    ACC
        RET
;----------------------------
;Read AT24C02 输入数据地址 B 读出数据放于 A
RDBA:   LCALL  START
        MOV    A,#0A0H     ;
        LCALL  WR1B
        MOV    A,B
        LCALL  WR1B
        LCALL  START
        MOV    A,#0A1H     ;
        LCALL  WR1B
        LCALL  RD1B
        LCALL  OVER
;
        RET
;----------------------------
;Write AT24C02
WRBA:   CLR    WP
        PUSH   ACC
        LCALL  START
        MOV    A,#0A0H     ;
        LCALL  WR1B
        MOV    A,B
        LCALL  WR1B
        POP    ACC
        LCALL  WR1B
        LCALL  OVER
;
        LCALL  DLY10MS
        SETB   WP
        RET
;----------------------------
;24C02起始
START:  CLR    SCL
        NOP
        SETB   SDA
        NOP
        NOP
        SETB   SCL
        NOP
        NOP
        NOP
        CLR    SDA
        NOP
        NOP
        NOP
        CLR    SCL          ;START
        RET
;----------------------------
;24C02结束
OVER:   CLR    SCL
        NOP
        CLR    SDA
        NOP
        NOP
        NOP
        SETB   SCL
        NOP
        NOP
        NOP
        SETB   SDA
        NOP
        NOP
        NOP
        CLR    SCL          ;END
        CLR    SDA
        RET
;----------------------------
;24C02读出1字节,读出数据A
RD1B:   PUSH   B
        PUSH   PSW
        SETB   SDA
        CLR    A
        SETB   C
        MOV    B,#9
LPRD0:  RLC    A
        MOV    C,SDA
        SETB   SCL
        NOP
        NOP
        NOP
        CLR    SCL
        NOP
        NOP
        NOP
        DJNZ   B,LPRD0
        POP    PSW
        POP    B
        RET
;----------------------------
;24C02写入1字节,数据A
WR1B:   PUSH   ACC
        PUSH   B
        PUSH   PSW
        CLR    C
        MOV    B,#9
LPRD1:  RLC    A
        MOV    SDA,C
        NOP
        NOP
        SETB   SCL
        NOP
        NOP
        NOP
        CLR    SCL
        NOP
        NOP
        NOP
        DJNZ   B,LPRD1
        POP    PSW
        POP    B
        POP    ACC
        RET
;----------------------------
;
DISPXW: MOV    R2,WDTEMP0
        MOV    R3,WDTEMP1
        LCALL  DISPWD
;
        MOV    A,WDTEMP1
        JNB    ACC.7,NMTEMP
        SETB   TTEMP
        SETB   STEMP
        SETB   CTEMP
        SETB   TTB
        SETB   STB
        SETB   CTB
        LJMP   RTXW
NMTEMP: MOV    B,#91H
        LCALL  RDBA
        XCH    A,B
        MOV    A,R2
        CLR    C
        SUBB   A,B
        MOV    B,#90H
        LCALL  RDBA
        XCH    A,B
        MOV    A,R3
        SUBB   A,B
        JC     NTKD0
        CLR    TTEMP
        CLR    TTB
        SJMP   NTKD001
NTKD0:  SETB   TTEMP
        SETB   TTB
NTKD001:MOV    R2,WDTEMP0
        MOV    R3,WDTEMP1
        JB     STB,REFV2
        MOV    A,R2
        ADD    A,#1
        DA     A
        MOV    R2,A
        MOV    A,R3
        ADDC   A,#0
        DA     A
        MOV    R3,A
REFV2:  MOV    B,#93H
        LCALL  RDBA
        XCH    A,B
        MOV    A,R2
        CLR    C
        SUBB   A,B
        MOV    B,#92H
        LCALL  RDBA

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -