单片机轻松入门之流水灯

电子元件 4年前 (2022) aysz01
0

由于P0口内部没有上拉电阻,所以P0在用作输入、输出时要外接上拉电阻,一般取10k左右。

 

程序如下:

#include //头文件

#define uchar unsigned char

#define uint unsigned int //宏定义

uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数据表

uchar i,j,a;

void delay(uchar x) //延时子函数

{

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

void main() //主程序

{

while(1)

{

for(a=0;a<8;a++) //有八个灯,做八次循环

{

P0=table[a]; //P0口依次取表中的数据,将对应的灯点亮

delay(100); //延时大约100ms

}

}

}

程序的另一种实现方法:

#include

#include //调用库函数,这个里面有具有循环移动功能的函数

#define uchar unsigned char

void delay(uchar x)

{

uchar a,b;

for(a=x;a>0;a--)

for(b=110;b>0;b--);

}

void main()

{

uchar temp;

temp=0xfe;

P0=temp;

while(1)

{

temp= _crol_(temp,1); //temp后面的1,表示左移的位数

delay(100);

P0=temp;

delay(100);

}

}

仿真结果如下图所示:

 

版权声明:aysz01 发表于 2022-08-06 9:30:09。
转载请注明:单片机轻松入门之流水灯 | 鳌游电工

暂无评论

暂无评论...