流水灯
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、D1到D8依次点亮
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint i)//延时
{
uchar t;
while(i--)
{
for(t=0;t<120;t++);
}
}
void main()
{
uchar temp,state;
uint i,j;
// 1
// P2=0xfe;//fe是1111 1110
temp=0x01; //0000 0001
while(1)
{
//delay(500);
for(i=0;i<8;i++)
{delay(500);
P2=~temp;
//temp=temp+1;}
temp=_crol_(temp,1);//左移一位
}
}
}
二、读入开关K1-K4的状态,按下对应开关,控制相应D1-D4灯亮
代码如下(示例):
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint i)//延时
{
uchar t;
while(i--)
{
for(t=0;t<120;t++);
}
}
void main()
{
uchar state;
while(1)
{
P3=0xff;//P3作为输入,先让P3都为高电平
state=P3;//读入P3的状态,赋值给state
state=state&0x0f;//与 与0是0,与1是本身,就是屏蔽读入P3状态的高四位
switch(state)
{
case 0: P2=0xff;break;//初始状态
case 14.: P2=0xfe;break;//14是0000 1110 K1按下,fe 1111 1110 D1亮
case 13: P2=0xfd;break;//13是0000 1101 K2按下,fd 1111 1101 D2亮
case 11:P2=0xfb;break;//1011 K3按下 D3亮
case 7:P2=0xf7;break;//0111 K4按下 D4亮
}
}
}
三、流水灯
功能:LED从左边起D1 D3亮,并闪烁3次,然后是D2 D4亮,并闪烁3次,然后D3 D5亮 闪烁3次,然后D4 D6 亮 闪烁3次,然后D5 D7亮 闪烁3次 ,然后D6D8亮,闪烁3次,之后重新从D1D3开始重复
代码如下(示例):
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint i)//延时
{
uchar t;
while(i--)
{
for(t=0;t<120;t++);
}
}
void main()
{
uchar temp;
uint i,j;
while(1)
{
temp=0xfa;//fa是1111 1010 D1 D3亮
delay(250);//延时
for(i=0;i<6;i++)//移位循环
{
for(j=0;j<3;j++)//闪烁3次循环
{
P2=temp;
delay(250);
//P2=temp|0xff;
P2=0xff;
delay(250);
}
temp=_crol_(temp,1);//左移一位
}
}
}
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了51单片机IO的使用。