流水灯范例参考
这篇放 CSDN 回那些问作业的码… 持续补充, 答题, 就加进来! 如果你 CTRL-C, CTRL-V , 那就顺手就帮哥点赞完成一轮操作! 发现问题更欢迎吐槽! 有”想法”也可以讨论!
其实很多人写了类似的东西, 看一看大家的想法, 还是很有启示的。 今天看了个叙事平铺法。 想到自己当年学”Hello World” , 点亮LED的岁月。 隔壁那个嘟嘴拍鼠标的女孩, 就是用叙事平铺法! 码还跑不了, 气嘟嘟的红脸。 现在是我媳妇 – 程序员还是能有幸福的, 关键是要早下手!
基础概念:
- I/O , 高低电位驱动
- 逻辑运算浮 << 使用
- for / while 语法
产出:
#include <reg51.h>
void Delay( )
{ unsigned char i,j ;
for( i=250; i>0 ; i--) { for(j=200; j>0; j--){ }; }
}
范例参考 一 ( 用if语句控制 P0 )
void RollingLED1(void)
{
unsigned char i=0;
unsigned char dir=0;
for( ; ; )
{
P0 = 0x01 << i;
Delay( );
if( dir == 0) ++i;
if( dir >0) --i;
if( i >= 7 ) dir = 1;
if( i == 0 ) dir = 0;
}
}
范例参考 二 ( 用for语句控制的)
void RollingLED2(void)
{
unsigned char i=0;
for( ; ; )
{
for(i=0; i<8; i++ )
{
P0 = 0x01 << i;
Delay ( );
}
for(i=6; i>0; --i )
{
P0 = 0x01 << i;
Delay ( );
}
}
}
范例参考 三 ( 用for语句控制的, 加 pattern 变化)
void RollingLED3(void)
{
unsigned char i=0;
unsigned char pattern=0x01;
for( ; ; )
{
for(i=0; i<8; i++ )
{
P0 = pattern << i;
Delay ( );
}
for(i=6; i>0; --i )
{
P0 =pattern << i;
Delay ( );
}
pattern = pattern <<1;
if( ++pattern > 16 ) pattern =0x01;
}
}
流水灯范例 仅供参考。 数据剪辑自原厂规格书, 版权归原所有人拥有。 档案取自互联网!如有侵权或不适用情形, 请联系移除! ** 使用有风险, 请详阅原厂使用说明! ** 范例码为自用,请谨慎引用, Ctrl-C, Ctrl-V结果自行承担! #C51 #流水灯 #CSDN问答
|