关于51单片机定时器与蜂鸣器的小程序,出了点问题,求帮助,本人小白
题目是同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔2000MS依次输出1,10,50,100,200,400,800,1k(hz...
题目是
同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔2000MS依次输出1,10,50,100,200,400,800,
1k(hz)的方波。以下是本小白写的程序,但是用keil调试的时候所以变量都一动不动,只有T1在计时,请问大神们我的程序错在哪里,需要怎么改才能满足题目要求,虚心求教
#include <reg52.h>
#include <INTRINS.H>
#define uchar unsigned char
#define uint unsigned int
uint t,freq,tt;
uchar temp;
uchar code table[]={10000,1000,200,100,500,250,125,10};
sbit beep = P2^0;
void main ()
{
while(1);
{
EA = 1;//开总中断
ET1 = 1;//允许定时或计数器T1中断
ET0 = 1; //允许定时或计数器T0中断
TMOD =0x11;//设置定时器T1与T0工作方式1
TR1 = 1; //启动定时器1
TR0 = 1;//启动定时器0
TH0=(65536-54)/256;
TL0=(65536-54)%256;
TH1=(65536-54254)/256;
TL1=(65536-54254)%256;//设置50毫秒一次中断
}
}
void duan0() interrupt 1
{
TH0=(65536-54)/256;
TL0=(65536-54)%256;//设置50微秒一次中断
tt++;
if(tt=table[freq])
{
tt=0;
temp=beep;
temp!=temp;
beep=temp;
}
}
void duan1() interrupt 3 //定时器1中断用来产生2000毫秒秒时间定时
{
TH1=(65536-54254)/256;
TL1=(65536-54254)%256;//设置50毫秒一次中断
t++;
if(t == 40)
{ET0= 0 ;
tt=0;
freq++;
TH0=(65536-54)/256;
TL0=(65536-54)%256;
beep=1;
t = 0;
}
} 展开
同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔2000MS依次输出1,10,50,100,200,400,800,
1k(hz)的方波。以下是本小白写的程序,但是用keil调试的时候所以变量都一动不动,只有T1在计时,请问大神们我的程序错在哪里,需要怎么改才能满足题目要求,虚心求教
#include <reg52.h>
#include <INTRINS.H>
#define uchar unsigned char
#define uint unsigned int
uint t,freq,tt;
uchar temp;
uchar code table[]={10000,1000,200,100,500,250,125,10};
sbit beep = P2^0;
void main ()
{
while(1);
{
EA = 1;//开总中断
ET1 = 1;//允许定时或计数器T1中断
ET0 = 1; //允许定时或计数器T0中断
TMOD =0x11;//设置定时器T1与T0工作方式1
TR1 = 1; //启动定时器1
TR0 = 1;//启动定时器0
TH0=(65536-54)/256;
TL0=(65536-54)%256;
TH1=(65536-54254)/256;
TL1=(65536-54254)%256;//设置50毫秒一次中断
}
}
void duan0() interrupt 1
{
TH0=(65536-54)/256;
TL0=(65536-54)%256;//设置50微秒一次中断
tt++;
if(tt=table[freq])
{
tt=0;
temp=beep;
temp!=temp;
beep=temp;
}
}
void duan1() interrupt 3 //定时器1中断用来产生2000毫秒秒时间定时
{
TH1=(65536-54254)/256;
TL1=(65536-54254)%256;//设置50毫秒一次中断
t++;
if(t == 40)
{ET0= 0 ;
tt=0;
freq++;
TH0=(65536-54)/256;
TL0=(65536-54)%256;
beep=1;
t = 0;
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询