經過學習板調試,運行正確
#include <reg51.h>
#include <intrins.h>
unsigned char mode=0;
sbit key=P2^7;
void Delay10ms(unsigned int x)
{
unsigned char y, z;
for (;x>0;x--)
for (z=38;z>0;z--)
for (y=130;y>0;y--);
}
void key_steps()
{
if(key==0)
{
Delay10ms(5);
if(key==0)
{
while(!key);
mode++;
if(mode>3)mode=0;
}
}
}
void led_flow_wate()
{
unsigned char i;
switch (mode)
{
case 1:
P1=0x01;
for(i=0;i<7;i++)
{
Delay10ms(15);
P1=P1<<1;
}
break;
case 2:
P1=0x80;
for(i=0;i<7;i++)
{
Delay10ms(15);
P1=P1>>1;
}
break;
case 3:
P1=0x0F;
Delay10ms(15);
P1=0xF0;
Delay10ms(15);
break;
}
if(mode==3) P1=0x00;
}
void main()
{
while(1)
{
key_steps();
led_flow_wate();
}
}
|