按键点动控制流水灯的51单片机程序
#include "reg51.h"sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P0_4=P0^4;
sbit P0_5=P0^5;
sbit P0_6=P0^6;
sbit P0_7=P0^7;
void mdelay(unsigned int delaytime)
{unsigned int k=0;
for(;delaytime>0;delaytime--)
{for(k=0;k<500;k++)
{;}
}
}
void main()
{ unsigned char k;
P1_0=1;
P1_1=0;
P1_2=0;
for(;;)
{
P3=0x0f;
k=P3|0xfe;
if(k!=0xff)
{
P0_0=~P0_0;
mdelay(20);
P0_0=~P0_0;
P0_1=~P0_1;
mdelay(20);
P0_1=~P0_1;
P0_2=~P0_2;
mdelay(20);
P0_2=~P0_2;
P0_3=~P0_3;
mdelay(20);
P0_3=~P0_3;
P0_4=~P0_4;
mdelay(20);
P0_4=~P0_4;
P0_5=~P0_5;
mdelay(20);
P0_5=~P0_5;
P0_6=~P0_6;
mdelay(20);
P0_6=~P0_6;
P0_7=~P0_7;
mdelay(20);
P0_7=~P0_7;
}
}
} 强烈建议不要用sbit声明来单个操作IO口,建议用“字节”的方式操作IO,比如说可以预声明一个char型数据,然用将此值直接赋值给IO口,而配合数组的使用,可以变化LED亮灭,想什么花样就什么花样,也可以使用位操作对8位io口进行操作、赋值。
前几天注_册的帐号,三天时间快到了,急于通过审核,有错误的地方还请指正…… 楼上的编程思路很棒,要是有时间的话,可以传个例程给大家参考下就好了
页:
[1]