下面按外接,12MHz晶振算..在P1.0处输出1MS方波
ORG 00
AJMP MAIN
ORG 0BH
LALL T0INT
RETI
ORG 30H
MAIN:
LCALL T0INIT
AJMP $
T0INIT:
MOV TMOD,#01H
LCALL T0LOAD
SETB TR0
SETB ET0
SETB EA
RET
T0LOAD:
MOV TL0,#0F0H ;初值计算,65536US-1MS=D8F0H
MOV TH0,#0D8H
RET
T0INT:
LCALL T0LOAD
JB P1.0,NEXT
SETB P1.0
RET
NEXT:
CLR P1.0
RET
END
大概应该就是这样的..
/*w418781840 2008.6.10*/
#include
sbit FangB0=P1^0;
main()
{FangB0=1;
EA=1;
ET0=1;//采用T0中断
TMOD=0;//工作方式0
TH0=(8192-500)/32;//0.5MS
TL0=(8192-500)%32;
TR0=1;//启动
for(;;)//等待
}
/////////////////////////////
void timer0(void)interrupt 1
{ TH0=(8192-500)/32;
TL0=(8192-500)%32;
FangB0=~FangB0;
}
有个计算软件,不光能算定时值还能算波特率,等我回家后给你,现在在外地出差.
机器周期是12MH???????
看清楚先。