C51的仿真的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 11:46:55
#include<reg51.h>
#include<ABSACC.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay_50us(uint t)
{
uchar j;
for(;t>0;t--)
for(j=19;j>0;j--)
;
}
void counter(void) interrupt 0
{uchar y;
for(y=0;y<8;y++)
{P1=0xff;
delay_50us(600);
P1=0x00;
delay_50us(600);
}
EX0=1;
}
void main()
{uchar i;
IE=0x81;
IP=0x01;
TCON=0x00;
while(1)
{uchar x=0xfe;
for(i=0;i<7;i++)
{
P1=x;
x=_crol_(x,1);
delay_50us(1000);
}
for(i=0;i<7;i++)
{
P1=x;
x=_iror_(x,1);
delay_50us(1000);
}
}
}

怎么在单片机内不能运行的,程序没有出错啊,急```````````,求.

void delay_50us(uint t)
{
uchar j;
for(;t>0;t--)
for(j=19;j>0;j--)
;
}

这里改一下

void delay_50us(uint z)
{
uchar t,j;
for(t=z;t>0;t--)
for(j=19;j>0;j--)
;
}
看了你的程序无可能不能循环左移右移的

void counter(void) interrupt 0
{uchar y;
for(y=0;y<8;y++)
{P1=0xff;
delay_50us(600);
P1=0x00;
delay_50us(600);
}
EX0=1;
}
试下去除这程序 若果能运行证明是这程序出现问题