看看我写的程序哪里不对啊!

2019-07-16 05:20发布

做的作业,题目如图:




下面是程序,想先写一个一种频率的,可写出来后发现蜂鸣器应该是常响的,然后停一会,再常响,可是在响的时候是很规律间歇性的响,求大神帮忙看看是哪里出错了

#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uint aa,d2,d3;
uchar bb,d1,d4;
sbit P2_0=P2^0;
void main()
{
aa=0;
d3=0xfe;
P2_0=1;
d1=0;
TMOD=0x11;
TH0=(65536-50)/256;
TL0=(65536-50)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
PT1=1;
PT0=0;
TR1=1;
TR0=1;
while(1)
  {
   if(aa==seg[d4])
   {
    P2_0=~P2_0;
    aa=0;
   }
     }      
}

void T0led()interrupt 1
{
TH0=(65536-50)/256;
TL0=(65536-50)%256;
aa++;   
}
void T1led()interrupt 3
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
bb++;
d1++;
  if(bb==20)
  {
     d4++;
  }
  if(d1==26)
   {
    if(d4==7)
    {
     d4=1;
    }
    d1=0;
    bb=0;
   }  
}  

QQ截图20120630221055.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
草根白骨精
1楼-- · 2019-07-16 09:36
变不了,你需要的是把不同频率对应的定时值在300MS定时器中断中装载到另一个定时器的定时初值,你没有改变定时器的定时值,只是变量在动,当然不管用了
lstcspring
2楼-- · 2019-07-16 14:31
 精彩回答 2  元偷偷看……

一周热门 更多>