单片机STC8G1K08A
单键每按下一次就点亮一种模式,依次点亮7种亮灯模式后,第8次循环点亮前7种模式,但按下按键有时能跳出有时不能跳出第8种模式。
#include <stc8.h>
sbit K=P5^5;
void delay (unsigned int i)
{
unsigned int k,m;
for(m=0;m<9000;m++);
for(k=0;k<i;k++);
}
void port_mode()
{
P3M1=0X00;P3M0=0X00;P5M1=0X00;P5M0=0X00;
}
void main()
{
unsigned char i=0;
port_mode();
P5=0XE0;
P3=0X00;
while(1)
{
if(K==0)
{
delay(1200);
if(K==0)
{
while(!K);
delay(1200);
if(++i==9)i=1;
}
}
switch(i)
{
case 1:P3=0x02;break;
case 2:P3=0x04;break;
case 3:P3=0x08;break;
case 4:P3=0x06;break;
case 5:P3=0x0a;break;
case 6:P3=0x0c;break;
case 7:P3=0x0e;break;
case 8:
P3=0x02;
delay(50000);
P3=0x04;
delay(50000);
P3=0x08;
delay(50000);
P3=0x06;
delay(50000);
P3=0x0a;
delay(50000);
P3=0x0c;
delay(50000);
P3=0x0e;
delay(50000);break;
default:P3=0X00;break;
}
}
}
|