单片机 外部中断实验 使用AT89C51
发布网友
发布时间:2022-05-07 21:49
我来回答
共1个回答
热心网友
时间:2022-07-01 14:24
可能你说的LED等应该在P0口上,因为按键在P1口上,所以编程按这个来。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar time=20,cnt=0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=time)
{
cnt=0;
P0=_crol_(P0,1);
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
P0=0xfe;
while(1)
{
if(key1==0)
{
while(key1==0);
time=20;
}
if(key2==0)
{
while(key2==0);
time=40;
}
if(key3==0)
{
while(key3==0);
time=60;
}
if(key4==0)
{
while(key4==0);
time=80;
}
}
}