有关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语言,多多
谅解!!