程序参考:
unsigned short Read()
{
unsinged short Backup
_mp1=0x40
Backup=_bp bp=1
RDEN=1RD=1
while(RD)
_iar1=0
_bp=Backup
return _edd
}
void Write(unsinged short a)
{
unsinged short Backup
_eed=a
_mp1=0x40
Backup=_bp bp=1
WREN=1WR=1
while(WR)
_iar1=0
_bp=Backup
}
#include <reg52.h>#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
sbit Waveout1=P1^0
sbit CF=P3^2//调节频率
int num,a,f
int Timer0_H,Timer0_L
void Init()
{
num=0
a=1000
f=2
Waveout1=0
TMOD=0x02
TH0=(uint)(256-(1000/(2*f)))
TL0=(uint)(256-(1000/(2*f)))
ET0=1
EA=1
TR0=1
}
void main()
{
Init()
while(1)
{
if(CF==0)
{
f++
TH0=(int)(256-(1000/(2*f)))
TL0=(int)(256-(1000/(2*f)))
while(CF==0)
}
if(num==a)
{
num=0
Waveout1=~Waveout1
}
}
}
void Timer0()interrupt 1
{
num++
}