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

📄 asm

📁 单片机的类PLC功能程序原代码,若有PLC的使用经历
💻
📖 第 1 页 / 共 3 页
字号:
$NOMOD51
$DEBUG
$INCLUDE (D:\ASM\REG52.INC)


STP         equ   R7

Inp1_Sta   DATA   20H
Str        BIT    20H.0
Rst        BIT    20H.1
s1         BIT    20H.2
R_Rej      BIT    20H.3
Hp_Rej     BIT    20H.4
HP_Pass    BIT    20H.5
;   BIT    20H.6                
;IN7     BIT    20H.7

Inp3_Sta   DATA   21H
IN8        BIT    21H.0
IN9        BIT    21H.1
IN10       BIT    21H.2
IN11       BIT    21H.3
IN12       BIT    21H.4
IN13       BIT    21H.5                 ;spare
IN14       BIT    21H.6
IN15       BIT    21H.7

SYS_OTH         data    25h
CnterW0Str      BIT     25H.0
CnterW0Out      BIT     25H.1
CnterW1Str      BIT     25H.2
CnterW1Out      BIT     25H.3
LTB             bit     25h.4
SFT_D           bit     25h.5
SFT_Rst         bit     25h.6
SFT_BitOV       bit     25h.7

DifWHOut1       DATA    2CH
FUwh8           BIT     2cH.0       
FUwh9           BIT     2cH.1
FUwh10          BIT     2cH.2
FUwh11          BIT     2cH.3
Fdwh12          BIT     2cH.4
FUCntW1         BIT     2cH.5
FUCntW0         BIT     2cH.6
FU_SftClk       BIT     2cH.7

DifWHOut0         data    23h
FUWH0             bit     23h.0
FUWH1             bit     23h.1
FUWH2             bit     23h.2
FUWH3             bit     23h.3
FUWH4             bit     23h.4
FUWH5             bit     23h.5
FUWH6             bit     23h.6
FUWH7             bit     23h.7

DifWHIn0           data    24h
difuwh0            bit     24h.0
difuwh1            bit     24h.1
difuwh2            bit     24h.2
difuwh3            bit     24h.3
difuwh4            bit     24h.4
difuwh5            bit     24h.5
difuwh6            bit     24h.6
difuwh7            bit     24h.7

DifWHIn1           data    22h
difuwh8            bit     22h.0
difuwh9            bit     22h.1
difuwh10           bit     22h.2
difuwh11           bit     22h.3
difdwh12           bit     22h.4
difuCntW1          bit     22h.5
difuCntW0          bit     22h.6
difu_SftClk        bit     22h.7


DifPrgOut1      data    26h
Fd8             bit     26h.0
Fd9             bit     26h.1
Fd10            bit     26h.2
fd11            bit     26h.3
FUCnt0          bit     26h.4
FUCnt1          bit     26h.5
FuCnt2          bit     26h.6
FdCnt3          bit     26h.7

DifPrgOut0      data    27h
FU0             bit     27h.0
FU1             bit     27h.1
FU2             bit     27h.2
FU3             bit     27h.3
FU4             bit     27h.4
FU5             bit     27h.5
FU6             bit     27h.6
FU7             bit     27h.7

DifPrgIn1        data    28h
difd8            bit     28h.0
difd9            bit     28h.1
difd10           bit     28h.2
difd11           bit     28h.3
difuCnt0         bit     28h.4    
difuCnt1         bit     28h.5
difuCnt2         bit     28h.6
difdCnt3         bit     28h.7

DifPrgIn0        data    29h
difu0            bit     29h.0
difu1            bit     29h.1
difu2            bit     29h.2
difu3            bit     29h.3
difu4            bit     29h.4
difu5            bit     29h.5
difu6            bit     29h.6
difu7            bit     29h.7

AxFG0           data    2AH
a000            bit     2ah.0
a001            bit     2ah.1
a002            bit     2ah.2
a003            bit     2ah.3
a004            bit     2ah.4
a005            bit     2ah.5
a006            bit     2ah.6
a007            bit     2ah.7

Whfg0           data    2Fh
wh00            bit     2Fh.0
wh01            bit     2Fh.1
wh02            bit     2Fh.2
wh03            bit     2Fh.3
wh04            bit     2Fh.4
wh05            bit     2Fh.5
wh06            bit     2Fh.6
wh07            bit     2Fh.7

Cnter           DATA    2BH
Cnter0Str       BIT     2BH.0
Cnter0Out       BIT     2BH.1
Cnter1Str       BIT     2BH.2
Cnter1Out       BIT     2BH.3
Cnter2Str       BIT     2BH.4
Cnter2Out       BIT     2BH.5
Cnter3Str       BIT     2BH.6
Cnter3Out       BIT     2BH.7


TimeB           DATA    2DH
Time5Str        BIT     2dH.0       
Time5Out        BIT     2dH.1
Time6Str        BIT     2dH.2       
Time6Out        BIT     2dH.3
Time7Str        BIT     2dH.4       
Time7Out        BIT     2dH.5
Time8Str        BIT     2dH.6       
Time8Out        BIT     2dH.7

TimeA           DATA    2EH
Time1Str        BIT     2eH.0       
Time1Out        BIT     2eH.1
Time2Str        BIT     2eH.2       
Time2Out        BIT     2eH.3
Time3Str        BIT     2eH.4       
Time3Out        BIT     2eH.5
Time4Str        BIT     2eH.6       
Time4Out        BIT     2eH.7

S008            bit     psw.1          
S003            bit     psw.5

SftCdPt     data   3eh
SFT_Reg1    Data   3fh
SFT_Reg0    Data   40h
DifwhTmp1   data   41h
DifwhTmp0   data   42h
DifPrgTmp1  DATA   43H 
DifPrgTmp0  DATA   44H
IT_SV       DATA   45H
Inp1_Old    DATA   46H
Inp3_Old    DATA   47H

Time1ctrL   DATA   48H
Time1ctrH   DATA   49H
Time2ctrL   DATA   4AH
Time2ctrH   DATA   4BH
Time3ctrL   DATA   4CH
Time3ctrH   DATA   4DH
Time4ctrL   DATA   4EH
Time4ctrH   DATA   4FH
Time5ctrL   DATA   50H
Time5ctrH   DATA   51H
Time6ctrL   DATA   52H
Time6ctrH   DATA   53H
Time7ctrL   DATA   54H
Time7ctrH   DATA   55H
Time8ctrL   DATA   56H
Time8ctrH   DATA   57H

CnterW0ctrL DATA   58H
CnterW0ctrH DATA   59H
CnterW1ctrL DATA   5AH
CnterW1ctrH DATA   5BH

Cnter0ctrL  DATA   60H
Cnter0ctrH  DATA   61H
Cnter1ctrL  DATA   62H
Cnter1ctrH  DATA   63H
Cnter2ctrL  DATA   64H
Cnter2ctrH  DATA   65H
Cnter3ctrL  DATA   66H
Cnter3ctrH  DATA   67H

RsBank3         equ  00011000b
L100ms          equ  10
H100ms          equ  1
L200ms          equ  20
H200ms          equ  1
L300ms          equ  30
H300ms          equ  1
l500ms          equ  50
H500ms          equ  1
l1s             equ  100
H1s             equ  1
l2s             equ  200
H2s             equ  1


;******INPUT P1,P3**************************************************************

;*****OUTPUT P0,P2***************************************************************
Sol1            BIT     P0.0
R_Rst           BIT     P0.1
R_Str           BIT     P0.2
Hp_Rst          BIT     P0.3
HP_Str          BIT     P0.4
;HP_Rst          BIT     P0.5
Rej             BIT     P0.6
Pass            BIT     P0.7

Buz             BIT     P2.7
Rly_HP          BIT     P2.5
Rly_R           BIT     P2.6

                ORG 0000H
                AJMP INIT

                ORG   000BH
                AJMP  INTIO

;-----------------------------------------------------------------------------
;init t0 ,init I/O
;-----------------------------------------------------------------------------
                org     00030H
init:           mov     sp,#0e0H                     
                mov     ie, #10000010B              ;ea ,et0
                mov     tmod ,#00000001B            ;t0:mod1
                mov     th0,#0F1H                   ;2.5ms
                mov     tl0,#0
                setb    tr0
                mov     it_sv,#4

                mov     stp,#0ffh
                setb    s008
                clr     s003
                mov     Inp1_Sta,#0
                mov     Inp3_Sta,#0
                mov     Inp1_old,#0
                mov     Inp3_old,#0
                mov     SYS_OTH,#0
                mov     DifWHIn0,#0
                mov     DifWHIn1,#0
                mov     DifPrgIn0,#0
                mov     DifPrgIn1,#0
                mov     DifWHout0,#0
                mov     DifWHOut1,#0
                mov     DifPrgOut0,#0
                mov     DifPrgOut1,#0 
                mov     Axfg0,#0  
                mov     Whfg0,#0
                mov     TimeA,#0
                mov     TimeB,#0
                mov     Cnter,#0
                mov     SFT_Reg1,#0
                mov     SFT_Reg0,#0
                mov     DifWHTmp0,#0
                mov     DifWHTmp1,#0
                mov     DifPrgTmp0,#0
                mov     DifPrgTmp1,#0

;-----------------------------------------------------------------------------
;Mainscan Program
;-----------------------------------------------------------------------------
l256:           cjne    stp,#0ffh,l0
                call    PwrON
l0:             cjne    stp,#0,l1
                call    Maininit
l1:             cjne    stp,#1,l2
                call    Strup
L2:             cjne    stp,#2,l3
                call    RTest
L3:             cjne    stp,#3,l4
                call    HiPottest
L4:             cjne    stp,#4,l256
                call    SolExt
                sjmp    l256
;-----------------------------------------------------------------------------
Sysinit:      
;-----------------------------------------------------------------------------
                mov     Sys_OTH,#0
                mov     DifWHIn0,#0
                mov     DifWHIn1,#0
                mov     DifPrgIn0,#0
                mov     DifPrgIn1,#0
                mov     DifwhTmp0,#0
                mov     DifWHTmp1,#0
                mov     DifPrgTmp0,#0
                mov     DifPrgTmp1,#0
                mov     DifWHout0,#0
                mov     DifWHOut1,#0
                mov     DifPrgOut0,#0
                mov     DifPrgOut1,#0 
                mov     Axfg0,#0  
                mov     Whfg0,#0
                mov     TimeA,#0
                mov     TimeB,#0
                mov     Cnter,#0

                ret
;-----------------------------------------------------------------------------
DifTimRef:      
;-----------------------------------------------------------------------------
                mov     Axfg0,#0  
                mov     DifPrgIn0,#0
                mov     DifPrgIn1,#0
                mov     DifPrgOut0,#0
                mov     DifPrgOut1,#0 
                mov     DifPrgTmp0,#0
                mov     DifPrgTmp1,#0
                mov     TimeA,#0
                mov     TimeB,#0
                mov     Cnter,#0
                ret
;-----------------------------------------------------------------------------
PwrON:          ;256
;-----------------------------------------------------------------------------
PwrOnTim:       jb      time1str,PwrOn1
                mov     Time1ctrL,#l100ms

⌨️ 快捷键说明

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