描述一下节日彩灯控制器的系统工作原理,要写报告
#include "intrins.h"
sbit K1 = P1^0;
sbit K2 = P1^1;
sbit K3 = P1^2;
sbit K4 = P1^3;
sbit K5 = P1^4;
sbit K6 = P1^5;
void Delay100ms()
{
unsigned char i, j, k;
nop();
nop();
i = 5;
j = 52;
k = 195;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void DelayK(unsigned char t)
{
while(t--);
}
unsigned char i;
void Key()
{
if(K1==0)
{
DelayK(100);
if(K1==0)
{
P0 = 0xf9;
for(i = 0;i < 8;i++)
{
P2=(0x1<<i);
Delay100ms();
}
while(K1==0);
P0 = 0;
for(i = 0;i < 8;i++)
{
P2=(0x1>>i);
Delay100ms();
}
}
}
if(K2==0)
{
DelayK(100);
if(K2==0)
{
P0 = 0xa4;
for(i = 0;i < 7;i++)
{
P2=(0x1<<i);
Delay100ms();
}
while(K2==0);
P0 = 0;
for(i = 0;i < 7;i++)
{
P2=(0x1>>i);
Delay100ms();
}
}
}
if(K3==0)
{
DelayK(100);
if(K3==0)
{
P0 = 0xb0;
for(i = 0;i < 6;i++)
{
P2=(0x1<<i);
Delay100ms();
}
while(K3==0);
P0 = 0;
for(i = 0;i < 6;i++)
{
P2=(0x1>>i);
Delay100ms();
}
}
}
if(K4==0)
{
DelayK(100);
if(K4==0)
{
P0 = 0x99;
for(i = 0;i < 8;i++)
{
P2=(0x2<<i);
Delay100ms();
}
while(K4==0);
P0 = 0;
for(i = 0;i <5;i++)
{
P2=(0x1>>i);
Delay100ms();
}
}
}
if(K5==0)
{
DelayK(100);
if(K5==0)
{
P2 = 0;
}
}
if(K6==0)
{
DelayK(100);
if(K6==0)
{
P2 = 0xff;
}
}
}
void main()
{
while(1)
{
Key();
}
}