找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9698|回復(fù): 4
收起左側(cè)

[求助]keil仿真時(shí)程序有些段不執(zhí)行

[復(fù)制鏈接]
ID:23509 發(fā)表于 2010-5-1 23:08 | 顯示全部樓層 |閱讀模式
 
最近做了一個(gè)小的項(xiàng)目,寫了一段程序,編譯沒(méi)有錯(cuò),但是在用keil進(jìn)行仿真時(shí),有的程序段直接跳過(guò)不執(zhí)行了,百思不得其解!望哪位高手指點(diǎn)指點(diǎn)! 
附:
#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;//計(jì)數(shù)器0的設(shè)置


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)
		{       
 //主要是從這兒開(kāi)始的
			   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;

}

}
[此貼子已經(jīng)被作者于2010-5-4 14:06:49編輯過(guò)]
回復(fù)

使用道具 舉報(bào)

ID:23509 發(fā)表于 2010-5-2 10:15 | 顯示全部樓層
 怎么沒(méi)人指點(diǎn)呢!哪位高手把這程序拷到keil中調(diào)試調(diào)試,幫小弟查查問(wèn)題所在。謝謝
回復(fù)

使用道具 舉報(bào)

ID:20559 發(fā)表于 2010-5-3 21:36 | 顯示全部樓層

你這個(gè)程序看起來(lái)問(wèn)題有點(diǎn)大!可能定時(shí)器會(huì) 跑飛。建議把定時(shí)器中斷在理解一下吧!

回復(fù)

使用道具 舉報(bào)

ID:23509 發(fā)表于 2010-5-4 13:46 | 顯示全部樓層

哦, 這不是原程序, 我只是把它用作的普通計(jì)數(shù)器 就記一個(gè)0—5的數(shù),采用的是查詢的方式?jīng)]采用中斷的方式!EA=1,是原程序中的外部中斷,忘刪了!

回復(fù)

使用道具 舉報(bào)

ID:23509 發(fā)表于 2010-5-4 13:47 | 顯示全部樓層
以下是引用247891933hao在2010-5-3 21:36:46的發(fā)言:

你這個(gè)程序看起來(lái)問(wèn)題有點(diǎn)大!可能定時(shí)器會(huì) 跑飛。建議把定時(shí)器中斷在理解一下吧!

哦, 這不是原程序, 我只是把它用作的普通計(jì)數(shù)器 就記一個(gè)0—5的數(shù),采用的是查詢的方式?jīng)]采用中斷的方式!EA=1,是原程序中的外部中斷,忘刪了!

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表