在单片机的P0口接有8个发光二极管作为指示灯,P1.0~P1.3接有4个按键开关,当不同的脚上的按键按下时

2024-12-27 14:00:09
推荐回答(1个)
回答1:

//文件名shiyan1.c
#include "reg51.h"
#define uchar unsigned char
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;

void delay02s(void)
{
unsigned char i,j,k;
for(i=2;i>0;i--)
for(j=200;j>0;j--)
for(k=248;k>0;k--);
}
void delay05s(void)
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=200;j>0;j--)
for(k=248;k>0;k--);
}
void k1yes()
{
P2=0x00;
delay05s();
P2=0xff;
delay05s();
}
void k2yes()
{
P2=0xff;
}
void k3yes()
{
unsigned char i,count;
count=0x01;
for(i=0;i<8;i++)
{
P2=~count;
delay02s();
count=count<<1;
}
}

void k4yes()
{
count=0x80;
for(i=0;i<8;i++)
{
count=count>>1;
P2=~count;
delay02s();
}
}
void main(void)
{
while(1)
{
if(k1==0) k1yes();
if(k2==0) k2yes();
if(k3==0) k3yes();
if(k4==0) k4yes();
}
}