找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1245|回复: 7
打印 上一主题 下一主题
收起左侧

关于单片机动态扫描数码管的程序问题

[复制链接]
跳转到指定楼层
楼主
ID:100982 发表于 2021-12-22 09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看书上动态扫描代码为
P0 = 0xFF;
P1 = (P1 & 0xF8) | i;
P0 = LedBuff[i ];
if (i < 5)
i++;
else
i = 0;


我自己写的话是写成
i = 0;
for(i = 0; i < 6; i++)
{
   P0 = 0xff;
   P1 = (P1 & 0xf8) | i;
   P0 = ledbuf[i ];
}
这两种写法是不是一样呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2021-12-22 12:36 | 只看该作者
不一样,

上面的和大循环比例是  1:1
回复

使用道具 举报

板凳
ID:624769 发表于 2021-12-22 12:40 | 只看该作者
不一样,

上面的和大循环比例是  1:1

下面的和大循环比例是  5:1
回复

使用道具 举报

地板
ID:883242 发表于 2021-12-22 13:40 | 只看该作者
太不一样了,你的写法i在0~4之间时间特别短,可能眼睛都看不出来,i在5的时间长,没有外层大循环的代码不知道两者的比例。
回复

使用道具 举报

5#
ID:100982 发表于 2021-12-22 15:49 | 只看该作者
这个是多个数码管,不是刷新更快了吗?还是没搞明白
回复

使用道具 举报

6#
ID:100982 发表于 2021-12-22 15:50 | 只看该作者
P1是38译码器位选,P0是显示内容
回复

使用道具 举报

7#
ID:883242 发表于 2021-12-22 17:08 | 只看该作者
wifen 发表于 2021-12-22 15:49
这个是多个数码管,不是刷新更快了吗?还是没搞明白

每个数码管刷新时间不一样,i=5停留时间最长,对应的数码管最亮,其他数码管几乎没有点亮时间,自然也就不怎么亮了。
回复

使用道具 举报

8#
ID:100982 发表于 2021-12-24 11:35 | 只看该作者
Hephaestus 发表于 2021-12-22 17:08
每个数码管刷新时间不一样,i=5停留时间最长,对应的数码管最亮,其他数码管几乎没有点亮时间,自然也就 ...

明白了,哈,一语点破
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表