学了三个月,真的很利害了,我把程序完整的写了下来,你看是这个意思吗,编译的时候没有错误
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay1ms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
sbit key=P2^4;
sbit relay=P3^4;
uint count,mm;
uint key_flag=0,key_flag_num=0;
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
}
void main()
{
init();
while(1)
{
if((key_flag==0)&&(key_flag_num==0))
{
if(key==0)
{
delay1ms(5);
if(key==0)
{
key_flag=1;
TR0=1;
}
}
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
mm++;
if((key!=0) && (key_flag==1))
{
count = 0;
TR0=0;
key_flag = 0;
}
if((count>=1200)&&(key_flag==1))
{
relay=0;
while(!key);
count=0;
key_flag_num=1;
}
if(key_flag_num=1)
{
mm++;
{
if(mm>=6000)
{
mm=0;
relay=1;
key_flag_num=0;
}
}
}
}
|