请各位帮忙看看这个流水灯的程序问题出在哪

2020-02-09 11:28发布

/*包含头文件*/
#include<pic.h>//**********************************************PIC16F690芯片
/*宏定义*/
#define uchar unsigned char
#define uint  unsigned int
/*定义子函数*/
void delay(uint);//延时子函数

/*配置位*/

__CONFIG(0x3FF2);
/*主函数*/
void main()
{
uchar i;
TRISC = 0x00;//配置PORTC口为输出
while(1)
{
  PORTC = 0x01;//这句赋值在MPLAB SIM Debug里面调试
                     //看不到PORTC口有变化
  for(i=8;i>0;i--)
  {
   delay(200);//延时200ms
   PORTC = PORTC<<1;//PORTC口数据左移一位
  }
}
}
/*延时1ms子函数*/
void delay(uint z)//z的值为多少就大概延时多少ms
{
uint x,y;
for(x=z;x>0;x--)
  for(y=152;y>0;y--);
}




上面这个程序是我根据下面这个程序改的,上面的PORTC赋值有问题,而下面的这个程序给PORTD赋值没有问题



#include<pic.h>//****************************************************************PIC16F877芯片
#define uchar unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
  for(b=110;b>0;b--);
}
void main()
{
uchar i;
TRISD=0x00;
while(1)
{
  PORTD=0x01;
  for(i=8;i>0;i--)
  {
   delay(200);
   PORTD=PORTD<<1;
  }
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。