我上网查了很久,找了很多资料都没有解决问题。最后在现实中操作一遍后得出结论:
#include<reg51.h>
sbit RLAYL=P1^0;
sbit RLAYE=P1^1;
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
P1=0xfe;
while(1)
{
P1=0xfe;
delay(2000);
P1=0xff;
delay(2000);
}
}
第一种方法是利用PLAYL的特性而制作的,自己上网查天特性。
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num;
sbit PLAYE=P1^0;
//void delay(uint z);
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
}
void timer0() interrupt 1
{
TH0=(65536-45873)/256;
TL0=(65536-45873)%256;
num++;
if(num==80)
{
num=0;
PLAYE=~PLAYE;
}
}
第二种方法是用到定时器,用普通的延时没用的。我试过,这也是因为PLAYE按键的特性。
加油!单片机没有什么难的,难的坚持不懈的决心!!! |