为什么流水灯不行呢,大佬

[复制链接]
1776|5
 楼主| 13883329582 发表于 2022-12-4 19:40 | 显示全部楼层 |阅读模式
第一种,命名移动
#include "REGX52.H"

typedef unsigned char u8;
typedef unsigned int u16;

#define LED_PORT        P2

void delay_10us(u16 ten_us)
{
        while(ten_us);
}

void main()
{
        u8 i=0;
        while(1)
        {
                for(i=0;i<8;i++)
                {
                        LED_PORT=~(0x01<<1);
                        delay_10us(50000);       
                }
        }
}

第二种 函数移动
#include "reg52.h"
#include "intrins.h"

typedef unsigned char u8;
typedef unsigned int u16;

#define LED_PORT        P2

void delay_10us(u16 ten_us)
{
        while(ten_us);
}

void main()
{
        u8 i=0;
        LED_PORT=~0x01;
        delay_10us(50000);
        while(1)
        {
                for(i=0;i<7;i++)
                {
                        LED_PORT=_crol_(LED_PORT,1);
                        delay_10us(50000);       
                }
                for(i=0;i<7;i++)
                {
                        LED_PORT=_cror_(LED_PORT,1);
                        delay_10us(50000);       
                }
        }
}
网上看视频学的,烧进去了都只亮了一个灯。
LcwSwust 发表于 2022-12-5 08:24 | 显示全部楼层
while(ten_us);
改为:
while(ten_us--);
 楼主| 13883329582 发表于 2022-12-7 21:19 | 显示全部楼层
LcwSwust 发表于 2022-12-5 08:24
while(ten_us);
改为:
while(ten_us--);

好的,我试试
一事无成就是我 发表于 2022-12-14 10:44 | 显示全部楼层
坑爹移不动呀,操作位置不变,你让它往哪里流
第一方案,LED_PORT=~(0x01<<1);  改成 LED_PORT=~(0x01<<i);
第二方案:  LED_PORT=_crol_(LED_PORT,1); 改成   LED_PORT=_crol_(LED_PORT,1<<i);
SPR—— 发表于 2022-12-16 09:57 | 显示全部楼层
一事无成就是我 发表于 2022-12-14 10:44
坑爹移不动呀,操作位置不变,你让它往哪里流
第一方案,LED_PORT=~(0x01

哈哈,淡定淡定,新手嘛,可能没有真正理解程序  
dirtwillfly 发表于 2022-12-25 10:38 | 显示全部楼层
慢慢来,新手都会经历这些。入门最难,只要入了门后面就容易了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部