普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5320|回复: 4

led闪烁,程序烧录后数码管的闪烁的位置条来跳去

 关闭 [复制链接]

2

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2018-6-9 17:17:48 | 显示全部楼层 |阅读模式
按照下面的程序,烧录后,数码管的闪烁的位置条来跳去




#include "reg52.h"                         
typedef unsigned int u16;          
typedef unsigned char u8;


sbit led=P0^0;                 


void delay(u16 i)
{
        while(i--);       
}

void main()
{
        while(1)
        {
                led=0;
                delay(50000);
                led=1;
                delay(50000);
        }               
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2018-6-10 11:34:01 | 显示全部楼层
2278883613 发表于 2018-6-9 22:10
这个应该是正常的,因为数码管和led共用的P0端口。

谢谢,谢谢。
回复 支持 1 反对 0

使用道具 举报

0

主题

2

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2018-6-9 22:10:21 | 显示全部楼层
这个应该是正常的,因为数码管和led共用的P0端口。
回复 支持 反对

使用道具 举报

0

主题

16

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2018-6-10 10:34:58 | 显示全部楼层
#include "reg52.h"                        
typedef unsigned int u16;         
typedef unsigned char u8;


sbit led=P0^0;                 


void delay(u16 i)
{
        while(i--);        
}

void main()
{
        while(1)
        {
                led=0;
                delay(50000);
                led=1;
                delay(50000);
        }               
}
首先这个代码错的,P0口定义用define用138译码器进行选择数码管位置P2^2,P2^3,P2^4
不能P0^0,这直接选择的是高电平最左边的数码管,数码管的不能用单个0,1定义,要用0xff这种
0x是十六进制的意思
回复 支持 反对

使用道具 举报

0

主题

16

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2018-6-11 00:44:56 | 显示全部楼层
led闪烁。。。我以为是晶体管闪烁看错了
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-27 11:27 , Processed in 0.089283 second(s), 32 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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