找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机AT89C52流水灯,为啥单片机上面只有第一个灯亮 第二灯在闪烁 不循环呢?

[复制链接]
跳转到指定楼层
楼主
ID:951084 发表于 2021-7-9 10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>     //调用寄存器地址
#include<intrins.h>   //循环逻辑函数
void main()
{
        while(1)
        {
                unsigned int i;   //无字符整形
                i=40000;                //赋值
                P1=0xfe;          //LED灯开始位置
                while(i--); //延时程序
                P1=_crol_(P1,1);        //整形循环左移  
        }



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:539024 发表于 2021-7-9 12:32 | 只看该作者
肯定的呀,你这个每次进来P1都等于0xfe,你把P1=0xfe写道大循环外面
回复

使用道具 举报

板凳
ID:539024 发表于 2021-7-9 12:34 | 只看该作者

#include<reg52.h>     //调用寄存器地址
#include<intrins.h>   //循环逻辑函数
void main()
{         

P1=0xfe;          //LED灯开始位置
        while(1)
        {
                unsigned int i;   //无字符整形
                i=40000;                //赋值
     
                while(i--); //延时程序
                P1=_crol_(P1,1);        //整形循环左移  
        }
}

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:934353 发表于 2021-7-9 13:10 | 只看该作者
你每次循环都给P1赋值了,那个左移函数形同虚设
回复

使用道具 举报

5#
ID:939710 发表于 2021-7-10 09:31 | 只看该作者
你左移之后就立马下一次循环了,还是初始值,所以和没左移一样。一直就是第一个灯闪
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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