T0,T1优先权已默认为什么改变定时器就能执行?
147 定时器
分享
T0,T1优先权已默认,为什么改变定时器就可以执行,而不改变i在等于5后就不变了,但频率一定要高优先级啊,求改错
#include<REG51.H>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P1^5;
uint hh[]={50000,10000,5000,2500,1250,625,500};
uchar i=0,j=0;
void timer0() interrupt 1 // 定时器0控制频率
{ (i==7)
   i=0 ;
TH0=(65536-hh)/256;
TL0=(65536-hh)%256;
beep=~beep;
}
void timer1() interrupt 3 // 定时器1控制同个频率持续的时间,50mS脉冲
{TR0=0;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
j++;
if(j==6){
              j=0;
              i++;
              }
TR0=1;
}
void main()
{  
EA=1; //开启总中断
ET0=1;ET1=1;//开启外部定时器中断
TMOD=0x11;
TH0=(65536-hh)/256;
TL0=(65536-hh)%256;//给定时器0赋初值
TH1=(65536-50000)/256;
TL1=(65536-50000)%256; //给定时器1赋初值
TR0=1;TR1=1;//启动两个定时器;
while(1);}
0
2020-3-18 04:35:23   评论 分享淘帖 邀请回答 举报
2个回答
想了好久,想不明白,贴吧一位大神让我把T0,T1换下,重复是可以了,但蜂鸣器声音不对了。
2020-3-18 09:28:18 评论

举报

2020-3-18 15:13:50 评论

举报

只有小组成员才能发言,加入小组>>

954个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表