3233|5

10

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

流水灯不能实现........ [复制链接]




为什么 a=0xfe: 这个语句在while(1)循环内不能实现流水灯?
求大家帮我分析哈!
此帖出自51单片机论坛

最新回复

把a=0xfe放在循环里面,每次执行循环都先给p0口赋值0xfe,延时后左移一位送给p0.然后再重复前面的过程.所以不能实现流水灯.赋值语句放在外面后,就可以解决上面的问题. 参考程序: #include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) {         uchar i;         while(x--)         {                 for(i=0;i  详情 回复 发表于 2012-10-12 09:09
点赞 关注
 

回复
举报

6366

帖子

4926

TA的资源

版主

沙发
 
你始终给P0口送的0XFE吧,
把那一句话一到while循环之外看看
此帖出自51单片机论坛

点评

为什么要放到外面去,在里么怎么不行啊?  详情 回复 发表于 2012-10-11 23:12
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
你那个赋值真的应该放外面!
此帖出自51单片机论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(初级)

4
 

回复 沙发 tiankai001 的帖子

为什么要放到外面去,在里么怎么不行啊?
此帖出自51单片机论坛
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

5
 
把a=0xfe放在循环里面,每次执行循环都先给p0口赋值0xfe,延时后左移一位送给p0.然后再重复前面的过程.所以不能实现流水灯.赋值语句放在外面后,就可以解决上面的问题.
参考程序:
#include
#include
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
        uchar i;
        while(x--)
        {
                for(i=0;i<120;i++);
        }
}
//主程序
void main()
{
        P0=0xfe;
        while(1)
        {       
                P0=_crol_(P0,1); //P0的值向左循环移动
                DelayMS(150);
        }
}
此帖出自51单片机论坛

点评

好吧,谢谢了!  详情 回复 发表于 2012-10-12 13:56
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(初级)

6
 

回复 5楼 xy363586 的帖子

好吧,谢谢了!
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表