标题: 51单片机AT89C52流水灯,为啥单片机上面只有第一个灯亮 第二灯在闪烁 不循环呢? [打印本页]

作者: 牛牛@    时间: 2021-7-9 10:18
标题: 51单片机AT89C52流水灯,为啥单片机上面只有第一个灯亮 第二灯在闪烁 不循环呢?
#include<reg52.h>     //调用寄存器地址
#include<intrins.h>   //循环逻辑函数
void main()
{
        while(1)
        {
                unsigned int i;   //无字符整形
                i=40000;                //赋值
                P1=0xfe;          //LED灯开始位置
                while(i--); //延时程序
                P1=_crol_(P1,1);        //整形循环左移  
        }




作者: 1543330241    时间: 2021-7-9 12:32
肯定的呀,你这个每次进来P1都等于0xfe,你把P1=0xfe写道大循环外面
作者: 1543330241    时间: 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);        //整形循环左移  
        }
}

作者: 开心就好hhhh    时间: 2021-7-9 13:10
你每次循环都给P1赋值了,那个左移函数形同虚设
作者: lishengaha    时间: 2021-7-10 09:31
你左移之后就立马下一次循环了,还是初始值,所以和没左移一样。一直就是第一个灯闪




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1