/*******************************************************
作者:好心情
日期:2007-08-30
描述:用按键控制led闪亮,K1点亮led1,此时按下k3右移点亮;K2点
亮led8,此时按下K3左移点亮,按下k4熄灭.此程序中没有按键防抖
设计
*******************************************************/
#include <at89x51.h>//包含一个标准的51头文件
#define K1 P3_0
#define K2 P3_1
#define K3 P3_2
#define K4 P3_3
void main()
{
unsigned int j;
unsigned i,a[7]={0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//花样数据
/*不同的数据类型所占用的内存空间不同,为数据选用合适的类型,有利于
节省空间,对于单片机这种资源紧张的产品来说由为重要*/
while(1)
{
//点亮led1,右循环
if(!K1)//读按键,有按键按下为0,取反后条件为镇
{
P1_0=0;//点亮led1
while(K4)//如果按下k4则熄灭所有led
{
for(i=0;i<7&&!K3;i++) //按下K3,右移
{
P1=a;
for(j=0;j<30000;j++);
}
}
P1=255;
}
//点亮led8,做循环
if(!K2)
{
P1_7=0;//点亮led8
while(K4)
{
for(i=7;i>1&&!K3;i--) //按下K3,左移
{
P1=a;
for(j=0;j<30000;j++);
}
}
P1=255;
}
}
}
文章评论(0条评论)
登录后参与讨论