定时1秒.asm

来自「这个东东是我刚写出来的,这可以完成定时1秒的功能,并且使用定时器来完成,定时精度」· 汇编 代码 · 共 37 行

ASM
37
字号
        ORG    0001H
        AJMP   MAIN
        ORG    000CH
        AJMP   DIN0
MAIN:   TFL    EQU    34H             ;时间秒标志,判是否到50个0.2秒,即50*0.2=1秒
        MOV    TMOD,  #00000001B      ;定时器0工作于方式1
        MOV    TL0,    #0AFH
        MOV    TH0,   #3CH            ;设定时时间为0.05秒,定时20次则一秒
        SETB  EA                      ;开总中断
        SETB  ET0                     ;开定时器0中断允许
        SETB  TR0                     ;开定时0运行
        SETB  P1.0
        MOV   R1,   #0AH              ;加的1:表示只改变10次就结束
        LOOP: AJMP  LOOP
DIN0:
INCC:   INC   TFL
        MOV   A,    TFL
        CJNE  A,    #20H,   RE        ;加的0:这里不应用20,实际改变了32次,即32*0.05秒=1.6秒的周期,如是1秒,就应该用20D或14H
        MOV   TFL,  #00H
        CPL   P1.0 
        DEC   R1                     ;加的2
        MOV   A,    R1               ;加的3
        JZ    STOP                   ;加的4
RE:     MOV   TL0,  #0AFH
        MOV   TH0,  #3CH             ;设定时时间为0.05秒,定时20次则一秒
        RETI
STOP:   SJMP  $                      ;加的5
        END








⌨️ 快捷键说明

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