th11_定时器.asm

来自「单片机杭州天煌教仪自带例程单片机杭州天煌教仪自带例程」· 汇编 代码 · 共 52 行

ASM
52
字号
    ; 定时器

       
       Tick    equ  5000    ; 10000 x 100us = 1s
       T100us  equ  20       ; 100us时间常数(6M)
       C100us  equ  5h      ; 100us记数单元
       LEDBuf  BIT  00H
       LED     BIT  P1.1


       org     0000H
       ljmp    Start
       org     0030H
        org    000bh
        LJMP   T0Int
        ORG    0100H  
T0Int:
       push    PSW
       mov     a, C100us+1
       jnz     Goon
       dec     C100us
Goon:
       dec     C100us+1
       mov     a, C100us
       orl     a, C100us+1
       jnz     Exit         ; 100us 记数器不为0, 返回
       mov     C100us, #HIGH(TICK);#high(Tick)
       mov     C100us+1, #LOW(TICK);#low(Tick)
       cpl     LEDBuf       ; 100us 记数器为0, 重置记数器
                            ; 取反LED
Exit:
       pop     PSW
       reti

Start:
       mov     TMOD, #02h         ; 方式2, 定时器
       mov     TH0, #t100us
       mov     TL0, #t100us
       mov     IE, #10000010b     ; EA=1, IT0 = 1
       setb    TR0                ; 开始定时
       clr     LEDBuf
       clr     P1.1
       mov     C100us, #high(Tick)
       mov     C100us+1, #low(Tick)

Loop:
       mov     c, LEDBuf
       mov     P1.1, c
       ljmp    Loop

       end

⌨️ 快捷键说明

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