以下程序用proteus仿真时,所有led闪烁,并没达到理想效果,高手看看程序错在哪里,谢谢

8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。下边是我写的程序:#include<reg52.h>#i... 8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。
下边是我写的程序:
#include<reg52.h>
#include<intrins.h> //包括_crol_和_cror_函数
#define uint unsigned int
void delay(uint);
void main()
{
uint x,y;
P1=0xfe;
while(1)
{
for(x=0;x<2;x--)
{
for(y=0;y<8;y--)
{
delay(200);
P1=_crol_(P1,1);
}
for(y=0;y<8;y--)
{
delay(200);
P1=_cror_(P1,1);
}
P1=0xff;
for(x=0;x<5;x--)
{
P1=0x00;
delay(300);
P1=0xff;
delay(300);
}
}
}
}
void delay(uint xms) //延
{ //时
uint a,b; //函
for(a=xms;a>0;a--) //数
for(b=110;b>0;b--); //~\(≧▽≦)/~
}
展开
 我来答
unlorzzop
2011-07-13 · TA获得超过713个赞
知道小有建树答主
回答量:514
采纳率:0%
帮助的人:384万
展开全部
#include "reg52.h"
#define uchar unsigned char;
uchar num,t;
void main()
{
num=0xfe;
t=0;
TMOD=0x10;
EA=1;
ET1=1;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
while(1)
{
if(t==7)
t=0;
}
}
void time0() interrupt 3
{
【 TH0=(65536-50000)/256;//请问,你到底是想用定时器1还是定时器0
TL0=(65536-50000)%256;】
t++;
【 num=num|0x01;
num=num<<1;】这两行调换位置

P1=num;
}
从你犯的这两个问题可以看出,你是一位初学者。遇到问题知道来网上进行求助,说明你懂得应用网络这个资源,但是,我建议在往后的学习中能够细心一点,这样能避免很多不必要的问题。建议多看一点别人写的比较正规的程序,注意格式,你的程序什么注释也没有。
要学会自己找问题,自己解决问题,我们要学习是方法,如何解决问题的方法。
说多了!个人之言,仅供参考!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式