为什么定时器0和定时器1不能一起工作

我自己做了一个单片机电路板,但是在写程序的时候发现定时器1和定时器0不能一起工作。
程序:
TMOD=0x21;//"设置定时器0为工作方式1、定时器1为工作方式2(0010 0001)"
TH0=(65535-45872)/256; //"T0定时器装初值"
TL0=(65536-45872)%256;
TH1=0xfd;//"T1定时器装初值,设波特率为9600"
TL1=0xfd;
EA=1;//"开总中断"
ET0=1;//"开定时器0中断"
ET1=1;//"开定时器1中断"
TR0=1;//"启动定时器0"
TR1=1;//"启动定时器1"
REN=1;//"允许串口接收"
SM0=0;//"设定串口工作方式1"
SM1=1;//"同上"
ES=1;//"开串口中断"
定时器0用来定时的,而定时器1用来蜂鸣器唱歌和串口用的。但是不知道为什么两个定时器不能一起工作。单独用定时器0或1都没问题。
请帮帮忙。谢谢。

TMOD=0x20这样的语言并不是汇编语言,是C语言
0x20是16进制转换成8位2进制是 0010 0000

TMOD 中 M0 和M1位控制方式的选择,所以 M0=0,M1=1是选择方式2的。

如果是定时器0 方式2

TMOD=0x02 设置定时器0的 即0000 0010
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-03
是不是你的中断程序的地址不对呀,应该不会出现这个情况的,或者你找一个好板子来调试看是不是板子问题,先排硬件再排软件