请教:想自己用stc89c52写个小程序 按下P1^0口开关后P0^0口的灯亮起,延时10秒后P0^1口的灯常亮,在延时过程中和延时后只要按下P1^1都可以随时中断程序从头重新执行。以下是自己写的总是有错越改越乱,求高人给该一下或帮忙写个参考参考,最好每一条语句给解释一下,谢谢了!
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint aa;
sbit s1=P1^0;
sbit s2=P1^1;
sbit d=P1^7;
void init()
{
TMOD=0x01;
aa=0;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ET0=1;
}
void main ()
{
init();
d=0;
while(1)
{
if(s1==0)
{
TR0=1;
P0=0xfe;
}
if(aa==200)
{
aa=0;
P0=0xfd;
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(s2==0)
{
aa=0;
P0=0xff;
}
} |