#include<INTRINS.H> #include<reg52.h>
#define uchar unsigned char #define uint unsigned int
uint yunsuan1(uint,uint); void wendu_jishuan(void); uint pinlu_shu[3]; bit fuhao;
void time0(void)interrupt 1 using 1 { TH0=0x3C; /*重设初值*/ TL0=0xC2;
pinlu_shu[2]=0x2DE0; wendu_jishuan();
}
void wendu_jishuan(void) { if(pinlu_shu[2]<4899||pinlu_shu[2]>20024) { pinlu_shu[2]-=0000; } else if(pinlu_shu[2]<=11744) { pinlu_shu[2]-=10989; pinlu_shu[2]=yunsuan1(pinlu_shu[2],377); pinlu_shu[2]+=300; fuhao=0; } else if(pinlu_shu[2]<=12498) { pinlu_shu[2]-=11744; pinlu_shu[2]=yunsuan1(pinlu_shu[2],377); pinlu_shu[2]+=400; fuhao=0; } else { pinlu_shu[2]-=19271; pinlu_shu[2]=yunsuan1(pinlu_shu[2],376); pinlu_shu[2]+=1400; fuhao=0; } }
uint yunsuan1(uint x,uint y) { x/=2; x*=100; x/=y;
return(x); }
void main(void) { TMOD=0x51; /*设中段值,T1为计数,T0为计时*/ TH0=0x3C; /*设计时初值,时间为0.1秒*/ TL0=0xC2; TH1=0x00; /*清计时值*/ TL1=0X00; EA=1; /*开总中断*/ ET0=1; /*开T0计中断响应*/ TR0=1; /*开T0计数*/ TR1=1; /*开T1计数*/ for(;;) { _nop_(); _nop_(); _nop_(); } }
程序是这样的,我是KEIL编的 问是就是 uint yunsuan1(uint x,uint y) { x/=2; x*=100; x/=y;
return(x); } 进入这个函数的时候Y就是代不进来本来Y应该是377但是,进来的是0000,这是为什么啊!!问题在那里,我现在在线等答案 |