1. Timer 2 trên vi điều khiển AT89S52

Khác với dòng vi điều khiển 8051 cổ điển chỉ có Timer 0 và Timer 1, chip AT89S52 được trang bị thêm Timer 2 16-bit với các thanh ghi điều khiển T2CON, RCAP2H, RCAP2L.

2. Mã nguồn hợp ngữ ứng dụng Timer 2

#include <sfr52.inc>
;Bo bao gio RTC: hh-mm-ss
        ORG 0
        ljmp main

        org 002Bh
T2ISR:  CPL p1.0
        Acall delay
        ;CLR TF2
        RETI
        
        ORG 0030H
main:   
        MOV IE,#A0H
        MOV T2MOD,#00000010B
        MOV RCAP2L,#LOW(-16)
        MOV RCAP2H,HIGH(-16)
        SETB P1.0
        SETB TR2
        SJMP $
delay: mov r0,#7fh
dl1:   mov r1,#ffh
dl2:   djnz r1,dl2
       djnz r0,dl1
       ret
        END