#include "c:\AsmIDE\hcs12.inc" org $1000 count ds.b 1 oc6cnt ds.b 1 org $2000 lds #$2000 movb #$FF,ddrb ; configure portb for output movb #$90,tscr1 ; enable TCNT, fast timer flag clear movb #$06,tscr2 ; disable TCNT interrupt, set prescaler to 64 bset tios,$40 ; enable OC6 channel clr count movb #10,oc6cnt ; perform 10 OC6 operation for 1 second ldd tcnt ; start OC0 operation with 37500 cycles addd #37500 ; as its delay std tc6 ; " movb #$40,tflg1 ; clear C6F flag bset tmsk1,$40 ; enable OC6 interrupt cli ; forever ldaa oc6cnt bne forever movb #10,oc6cnt ; reload the oc0cnt to 10 inc count ; increment count (one second) movb count,portb ; update LEDs bra forever oc6_ISR ldd tc6 ; start a new OC0 operation addd #37500 ; " std tc6 ; " dec oc6cnt rti org $3E62 fdb oc6_ISR end