| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 355 人关注过本帖
标题:有关C语言的流水灯
只看楼主 加入收藏
君子一诺
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-9-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
有关C语言的流水灯
//******************************************************
//公司名称:
//文件名:流水灯
//创建人:
//创建日期:2011-09-09
//功能描述:流水灯
//接口说明:P2=8LED
//版本说明:无
//******************************************************
#include
#include
#define uint unsigned int
#define uchar unsigned char

void Delay(uint C);            //函数声明

main()
{
  uchar LedIndex=0;
  bit LedDirection=1;

  while(1)
  {
    if(LedDirection)
      P2 =~(0x01<<LEDINDEX);
    else
      P2 =~(0x80>>LedIndex);
    if(LedIndex==7)
      LedDirection = !LedDirection;
    LedIndex = (LedIndex+1)%8;
    Delay(100);
  }
}
//******************************************************
//函数名:Delay
//功能描述:延时
//函数说明:延时
//全局变量:无
//输入:无
//返回:无
//设计者:
//******************************************************
void Delay(uint C)
{
  uint i,j;
  for(i=0;i<C;I++)
     for(j=0;j<120;j++)
       ;
}

有一个问题一直没有搞懂,变量LedIndex在整个循环过程中一直是变化的,为什么在仿真的时候,
此语句P2 =~(0x01<<LEDINDEX);并没有按照变量LEDINDEX值流动,软件仿真和硬件仿真
变量LedIndex一直都是固定值1;不知道这是为什么,请懂得原理的人讲解一下,刚学C语言,多多
谅解!!
搜索更多相关主题的帖子: C语言 
2011-09-12 22:07
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:7 
这个,是单片机的c语言吗?

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-09-12 22:09
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
P2 =~(0x01<<LEDINDEX)
改成小写LedIndex
后面改变的只有后者。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-09-12 22:09
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
收藏
得分:7 
啊,传说中的while(1)死循环了啊??

我是初学者
2011-09-13 11:50
快速回复:有关C语言的流水灯
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015938 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved