登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
流水灯代码实现
流水灯代码实现
[ 复制链接 ]
巩芷琪
2025-6-7 09:11:06
//流水灯左移
//其中调用math.h文件中的pow函数
#include <reg52.h>
#include <math.h>
sbit ADDR0 = P1 ^ 0;
sbit ADDR1 = P1 ^ 1;
sbit ADDR2 = P1 ^ 2;
sbit ADDR3 = P1 ^ 3;
sbit ENLED = P1 ^ 4;
int main(void)
{
int count;
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
count = 0;
while (1)
{
int j;
float fl;
int m;
if (8 == count)
count = 0;
fl = pow(2, count);
m = fl;
P0 = 0xFF ^ m;
for (j = 0; j < 9000; j++)
;
count++;
}
}
复制代码
//流水灯左移
#include <reg52.h>
sbit ADDR0 = P1 ^ 0;
sbit ADDR1 = P1 ^ 1;
sbit ADDR2 = P1 ^ 2;
sbit ADDR3 = P1 ^ 3;
sbit ENLED = P1 ^ 4;
/*
@func:求取2的m次幂
@ret:返回2的m次幂的整型值
*/
int POW(int m)
{
int i;
int iRet;
iRet = 1;
for (i = 0; i < m; i++)
iRet = iRet * 2;
return iRet;
}
int main(void)
{
int count;
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
count = 0;
while (1)
{
int j;
if (8 == count)
count = 0;
P0 = 0xFF ^ POW(count);
for (j = 0; j < 9000; j++)
;
count++;
}
}
复制代码
//流水灯右移
#include <reg52.h>
sbit ADDR0 = P1 ^ 0;
sbit ADDR1 = P1 ^ 1;
sbit ADDR2 = P1 ^ 2;
sbit ADDR3 = P1 ^ 3;
sbit ENLED = P1 ^ 4;
int POW(int m)
{
int i;
int iRet;
iRet = 1;
for (i = 0; i < m; i++)
iRet = iRet * 2;
return iRet;
}
int main(void)
{
int count;
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
count = 7;
while (1)
{
int j;
P0 = 0xFF ^ POW(count);
for (j = 0; j < 9000; j++)
;
if (0 == count)
count = 8;
count--;
}
}
复制代码
//流水灯左移到头接着右移,右移到头再左移
#include <reg52.h>
sbit ADDR0 = P1 ^ 0;
sbit ADDR1 = P1 ^ 1;
sbit ADDR2 = P1 ^ 2;
sbit ADDR3 = P1 ^ 3;
sbit ENLED = P1 ^ 4;
int POW(int m)
{
int i;
int iRet;
iRet = 1;
for (i = 0; i < m; i++)
iRet = iRet * 2;
return iRet;
}
int main(void)
{
int count;
int iflag; //iflag = 0时,从右向左,iflag = 1时,从左向右
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
count = 0;
iflag = 0;
while (1)
{
int j;
if (0 == iflag)
{
if (8 == count)//最后一个灯点亮后,开始点亮倒数第二个灯
{
count = 6;
iflag = 1;
}
}
else
{
if (0 == count)//第一个灯此时未点亮,故只改变方向后进行第一个灯的点亮
iflag = 0;
}
P0 = 0xFF ^ POW(count);
for (j = 0; j < 9000; j++)
;
if (0 == iflag)
count++;
else
count--;
}
}
复制代码
//流水灯右移到头接着左移,左移到头再右移
#include <reg52.h>
sbit ADDR0 = P1 ^ 0;
sbit ADDR1 = P1 ^ 1;
sbit ADDR2 = P1 ^ 2;
sbit ADDR3 = P1 ^ 3;
sbit ENLED = P1 ^ 4;
int POW(int m)
{
int i;
int iRet;
iRet = 1;
for (i = 0; i < m; i++)
iRet = iRet * 2;
return iRet;
}
int main(void)
{
int count;
int iflag; //iflag = 0时,从右向左,iflag = 1时,从左向右
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
count = 7;
iflag = 1;
while (1)
{
int j;
if (0 == iflag)
{
if (8 == count)//最后一个灯点亮后,开始点亮倒数第二个灯
{
count = 6;
iflag = 1;
}
}
else
{
if (0 == count)//第一个灯此时未点亮,故只改变方向后进行第一个灯的点亮
iflag = 0;
}
P0 = 0xFF ^ POW(count);
for (j = 0; j < 9000; j++)
;
if (0 == iflag)
count++;
else
count--;
}
}
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
流水
代码
实现
相关帖子
HarmonyOS实现快递APP自动识别地址
PHP实现国际短信验证码发送接口的完整指南
如何在 Unity3D 中实现无缝滚动动画?
html自动跳转代码
很简洁的JS框架代码
移动端跳转代码
标书智能体(二)——生成标书提纲代码+提示词
url跳转代码
html自动跳转代码.txt
如何用 vxe-table 实现2个树表格可以互相拖拽数据
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
HarmonyOS实现快递APP自动识别地址
0
99
毡轩
2025-09-09
业界
PHP实现国际短信验证码发送接口的完整指南
0
929
任静柔
2025-09-09
安全
如何在 Unity3D 中实现无缝滚动动画?
0
803
劝匠注
2025-09-10
程序
html自动跳转代码
0
8
新程序
2025-09-11
程序
很简洁的JS框架代码
0
7
新程序
2025-09-11
程序
移动端跳转代码
0
7
新程序
2025-09-11
安全
标书智能体(二)——生成标书提纲代码+提示词
0
41
汤流婉
2025-09-11
程序
url跳转代码
0
8
新程序
2025-09-11
程序
html自动跳转代码.txt
0
10
新程序
2025-09-11
代码
如何用 vxe-table 实现2个树表格可以互相拖拽数据
0
669
胰芰
2025-09-11
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
软件
业界
签约作者
程序园优秀签约作者
发帖
巩芷琪
2025-6-7 09:11:06
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多