找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于单片机变量名字的几个问题

  [复制链接]
跳转到指定楼层
楼主
ID:704738 发表于 2020-3-8 19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main()
{
        u8 i;
        LED = 0x7F;
        delay(50000);//延时450ms
        while(1)
        {
                for(i = 0;i < 8;i++)
                {
                        P2 = ~(0x01<<i);
                        delay(50000);
                }
        }
}
这一段代码是一个跑马灯的代码

void main()
{
        u8 i;
        LED = 0x7F;
        delay(50000);//延时450ms
        while(1)
        {
                for(i = 0;i < 8;i++)
                {
                        LED = ~(0x01<<i);
                        delay(50000);
                }
        }
}

为什么把跑马灯的代码的P2修改为LED的时候,这个灯就会逐渐全亮了呢?

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

使用道具 举报

沙发
ID:162136 发表于 2020-3-10 17:33 | 只看该作者
代码不完整。看不出来。
回复

使用道具 举报

板凳
ID:704738 发表于 2020-3-11 09:54 | 只看该作者
bayga456 发表于 2020-3-10 17:33
代码不完整。看不出来。

你好,就这个代码,我只写了主函数,用来控制单片机的LED灯
回复

使用道具 举报

地板
ID:162136 发表于 2020-3-11 14:45 | 只看该作者
zhyixi 发表于 2020-3-11 09:54
你好,就这个代码,我只写了主函数,用来控制单片机的LED灯

这里面的 LED 是什么?变量还是端口?还有流水灯接线是怎么的?
回复

使用道具 举报

5#
ID:642838 发表于 2020-3-11 15:21 | 只看该作者
#define LED P2定义正确,接线没错的话,P2修改为LED,效果是一样的,都是从左到右的流水灯
回复

使用道具 举报

6#
ID:702446 发表于 2020-3-12 20:56 | 只看该作者
检查一下宏定义是否出错,我把你的代码复制亲测了一下,主函数两种写法都没问题的,以下是完整代码
#include<reg52.h>
#define LED P1                           //宏定义LED等效于P1口
void delay(unsigned int z)
{ unsigned int x,y;
  for(x=0;x<100;x++)
      for(y=0;y<z;y++);
}
/*void main()
{
        unsigned char i;
        LED=0x7f;
        delay(5000);//延时450ms
        while(1)
        {
                for(i=0;i<8;i++)
                {
                                    P1=~(0x01<<i);
                    delay(500);
                }
        }
}
*/

void main()
{
        unsigned char i;
        LED=0x7f;
        delay(500);//延时450ms
        while(1)
        {
                for(i=0;i<8;i++)
                {
                        LED=~(0x01<<i);
                        delay(500);
                }
        }
}
回复

使用道具 举报

7#
ID:707942 发表于 2020-3-13 20:23 | 只看该作者
zhyixi 发表于 2020-3-11 09:54
你好,就这个代码,我只写了主函数,用来控制单片机的LED灯

得完整的
回复

使用道具 举报

8#
ID:714744 发表于 2020-3-24 14:20 | 只看该作者
因为你这个程序代码在开头的时候就写了LED = 0x7F;这就意味着在后面的程序中LED所代表的就是~(0x01<<i)LED = 0x7F;当吧LED写成P2时,这才意味着LED对应着是
回复

使用道具 举报

9#
ID:714744 发表于 2020-3-24 23:13 来自手机 | 只看该作者
ggyu7 发表于 2020-3-24 14:20
因为你这个程序代码在开头的时候就写了LED = 0x7F;这就意味着在后面的程序中LED所代表的就是~(0x01

刚才回复的字有点乱了,我现在重新发一下。
因为你这个程序代码在开头的时候就写了LED = 0x7F;这就意味着在后面的程序中LED所代表的就是0x7f。而在后面若写成P2则才表示为~(0x01<<1)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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