标题: [求助]keil仿真时程序有些段不执行 [打印本页]

作者: tongxingma    时间: 2010-5-1 23:08
标题: [求助]keil仿真时程序有些段不执行
 
最近做了一个小的项目,写了一段程序,编译没有错,但是在用keil进行仿真时,有的程序段直接跳过不执行了,百思不得其解!望哪位高手指点指点! 
附:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit d_q=P1^1;
sbit d_h=P1^0;
sbit d_z=P1^3;
sbit d_y=P1^2;


sbit feng=P2^0;

uchar dot,flag;

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init ()
{
TMOD=0x05;// T0的方式1
TH0=0;
TL0=0;
TR0=1;//计数器0的设置


d_q=0;
d_h=0;
}
main()
{
init ();
while(1)
{
d_q=1;
delay(5);
d_q=0;
delay(7);
dot=TL0;
if(dot>5)
{
TH0=0;
TL0=0;
}
dot=TL0;
if(dot==5)
		{       
 //主要是从这儿开始的
			   TL0=0;
			   d_q=0;
d_h=0;
d_z=0;
d_y=0;
feng=1;
delay(600);
feng=0;
delay(600);
feng=1;
delay(600);
feng=0;
delay(600);
feng=1;
delay(600);
// 后面在中断子程序里面的相同部分也是一样
feng=0;
delay(2000);
d_q=1;
TL0=0;
flag=0;
}
dot=TL0;
if(dot==3&flag==0)
{
flag=1;
feng=1;
delay(600);
feng=0;
delay(4400);
d_q=1;
TL0=0;
}

d_q=1;
delay(8);
d_q=0;

}

}
[此贴子已经被作者于2010-5-4 14:06:49编辑过]

作者: tongxingma    时间: 2010-5-2 10:15
 怎么没人指点呢!哪位高手把这程序拷到keil中调试调试,帮小弟查查问题所在。谢谢

作者: 247891933hao    时间: 2010-5-3 21:36

你这个程序看起来问题有点大!可能定时器会 跑飞。建议把定时器中断在理解一下吧!


作者: tongxingma    时间: 2010-5-4 13:46

哦, 这不是原程序, 我只是把它用作的普通计数器 就记一个0—5的数,采用的是查询的方式没采用中断的方式!EA=1,是原程序中的外部中断,忘删了!


作者: tongxingma    时间: 2010-5-4 13:47
以下是引用247891933hao在2010-5-3 21:36:46的发言:

你这个程序看起来问题有点大!可能定时器会 跑飞。建议把定时器中断在理解一下吧!

哦, 这不是原程序, 我只是把它用作的普通计数器 就记一个0—5的数,采用的是查询的方式没采用中断的方式!EA=1,是原程序中的外部中断,忘删了!






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1