;timer 2, 自動重新載入模式練習 ;此程式因使用到8052才有之暫存器, 所以須先載入8052暫存器定義檔 $INCLUDE (REG52.inc) ;for 8052 SFR definition buffer equ 30h ;-------------------------------------- mov buffer,#0 mov T2CON,#00000000b ;設定timer 2 工作於 自動重新載入模式 mov TH2,#(65536-50000)/256 ;設定第一次計數次數,50000次, 共50000微秒 mov TL2,#(65536-50000) mod 256 mov RCAP2H,#(65536-50000)/256 ;設定第二次以後之計數次數,50000次, 共50000微秒 mov RCAP2L,#(65536-50000) mod 256 count: mov a,buffer cpl a mov p2,a call delay inc buffer jmp count ;-------------------------------------- delay: mov r6,#20 ;設定計數20次, 共1秒鐘 loop: setb tr2 ;啟動計時器 jnb tf2,$ ;判斷tf0是否等於1(計時溢位), 否則停在此行 clr tf2 ;清除溢位旗號 djnz r6,loop clr tr1 ;關閉計時器 ret ;-------------------------------------- end