打印

贡献一下toshiba 807/c TBT 产生1S中断,对日历时钟程序

[复制链接]
1771|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
110xia|  楼主 | 2007-2-26 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;toshiba TLCS-870/C , 低频时钟fs = 32.768 kHz
;TBT 产生1S中断,对日历时钟 时分秒(40H,41H,42H)计数
;系统工作于 NORMAL2 , 禁止WDT
;主程序
main:
    ld    sp, 0x13f
    ldw    (wdtct1), 0xb100
    ldw    (40h), 0        ; 0 -> 40h, 41h, 42h
    ld    (42h), 0
    set    (syscr2).6    ;1 -> xten
    call    del
    ld    (tbtcr), 0x18
    di
    set    (eirl).6        ;允许TBT中断
    ei
    ...
        
;TBT中断程序
pinttbt:
    push    bc            ;保护现场
    push    wa
    push    ix
    push    iy
    ld    ix, 0x40        ;秒十进制加一
    call    addx
    cmp    a, 0x60            ;为60s?
    jr    ne,    ptbtr
    ld    (ix), 0            ;为60s, 清零秒单元
    inc        ix
    call    addx        ;分十进制加一
    cmp    a, 0x60
    jr    ne,ptbtr        ;不为60min 转ptbtr
    ld    (ix), 0            ;分单元清零
    inc    ix
    call    addx        ;时单元加一
    cmp    a, 0x24
    jr    ne, ptbtr
    ld    (ix), 0            ;时单元清零

ptbtr:
    pop    iy                ;恢复现场
    pop    ix
    pop    wa
    pop    bc
    reti
    
addx:
    ld    a, (ix)            ;(ix) 十进制加一
    add    a, 1
    daa    a
    ld    (ix), a
    ret

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

519

帖子

2

粉丝