;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 |