51单片机LED流水灯怎么实现从两边同时逐个点亮到中间,又从中间逐个熄灯到两边 5

 我来答
linnjing
推荐于2017-09-17 · TA获得超过2632个赞
知道大有可为答主
回答量:1230
采纳率:91%
帮助的人:541万
展开全部
简单点的,用表格,事先计算好,放到ROM中,用的时候逐行编译输出就可以。
复杂点的,开一个缓冲区,用循环程序,根据花样的不同,每次填充一行,并输出,然后再计算一下行。除非表格太大,不建议这样用。
#define len 8
char tablelist[][len] =
{
"00000000",
"10000001",
"01000010",
"00100100",
"00011000",
}
outline( char * s )
{
int i;
for(i=0; i<len; ++i )
{
if ( s[i] == '0' )
{
// 对应的灯亮
}
else
{
// 对应的灯灭
}
}
}
main()
{
for(;;)
{
outline( &tablelist[i]);
delay(..);
}
}
艺嵌科技
2013-10-23 · TA获得超过411个赞
知道小有建树答主
回答量:373
采纳率:100%
帮助的人:399万
展开全部
如果只用一个端口的话,你可以建一个表,如果LED是高电平点亮的话,里面存放数据0x81,0x42,0x24,0x18
如果LED是低电平点亮的话,里面存放数据
0x7e,0xbd,0xdb,0xe7
然后在循环里一直按照数组下标0到3递增3到0递减将数组里面的数赋给端口即可。
即一个大循环里面再加两个小循环即可,具体多少次可以在外面大循环设置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式