初學單片機,碰到這樣兩個程序同時進行的問題不知道該怎么辦,網上有說用定時器,嘗試一下還是不太對,蜂鳴器響但是有雜音,求大神指點
#include<reg52.h>
#include<intrins.h>
typedef unsigned int u16; \\宏定義
typedef unsigned char u8;
sbit k1 = P3^0; \\獨立按鍵 蜂鳴器
sbit beep = P1^5;
void delay(u16 i) \\延時函數
{
while(i--);
}
void Timer0Init() \\定時器中斷條件
{
TMOD |= 0x01;
TH0 = 0xff;
TL0 = 0xf6;
ET0 = 1;
EA = 1;
TR0 = 1;
}
void main()
{
beep = 1; \\賦初值
Timer0Init();
if(k1==0)
{
while(k1==0) \\流水燈
{
P2 = 0xfe;
delay(30000);
while(1)
{
P2 = _cror_(P2,1);
delay(30000);
}
while(k1!=0)
{
P2 = 0xff;
}
}
}
}
void Timer0() interrupt 1
{
static u16 j;
TH0 = 0xff;
TL0 = 0xf6;
j++;
if(j==5 & k1==0)
{
j = 0;
beep = ~beep;
if(k1==1)
{
beep = 1;
}
}
}
|