定时器0工作模式3
此时低8位和高八位溢出时有分别的中断
tl0占用T0
th0占用T1
两个计数器是独立的
/* 程序功能:timer0 的验证程序 版本:v1 创建日期:2013.9.18 创建者: */ $NOMOD51 //取消使用51内部默认SFR #include "REG8F301.INC" dseg at 30h //通用RAM字节段从30H开始 iseg at 80h //0-ffh地址的RAM段 80h-ffh段RAM只能用间接寻址进行操作 cseg at 0 org 0000h jmp Start org 000bh jmp Timer0_Isr org 001bh jmp Timer_Isr //TH0此时占用定时器1 org 0030h start: mov r0,#0x7f ClrRam: //清内部256Byte RAM mov @r0,#0 djnz r0,ClrRam mov dptr,#0x00 //清外部768Byte RAM ClrOutRam: mov a,#0x00 //给外部RAM全部写0x00 movx @dptr,a inc dpl mov a,dpl cjne a,#0,ClrOutRam inc dph mov a,dph cjne a,#3,ClrOutRam SetTimer0: mov tmod,#03h //定时器1工作于模式1 mov th0,#HIGH(256-100) mov tl0,#LOW(256-100) setb tr0 //开启定时器0计数 setb et0 //允许定时器1中断 setb tr1 //开启定时器1计数 setb et1 //允许定时器1中断 setb ea main: ljmp main Timer0_Isr: push acc push psw mov tl0,#LOW(256-100) nop nop pop psw pop acc reti Timer_Isr: push acc push psw mov th0,#LOW(256-100) nop nop pop psw pop acc reti end