h12.asm

来自「(1)完成键盘」· 汇编 代码 · 共 51 行

ASM
51
字号

       Tick    equ  10000    ; 10000 x 100us = 1s
       T100us  equ  256-50   ; 100us时间常数(6M)
       C100us  equ  30h      ; 100us记数单元
       LEDBuf  equ  0
       LED     equ  P1.0

       ljmp    Start

       org     000bh
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)
       mov     C100us+1, #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     LED
       mov     C100us, #high(Tick)
       mov     C100us+1, #low(Tick)

Loop:
       mov     c, LEDBuf
       mov     LED, c
       ljmp    Loop

       end

⌨️ 快捷键说明

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