大侠们,我想完成上位机给单片机发送一个命令,然后控制单片机采样并发送到上位机,但是不知道哪里出了问题,不能完成。
代码如下:EA = 1;
ES0=1;
while(!ReceiveBit);
TMR3CN |= 0x04;//定时器3允许
for(k=0;k<=N;k++)
{
while(!con_end);
EA = 0; // 关中断
AD0INT=0;
temp= ADC0;
temp &= 0x000fff;
// EA = 1; //开中断
temperature = temp*100L*3/1024;
temp_int = temperature/100;
temp_frac = temperature - (temp_int * 100);
switch(k)
{
case 0: break;
// for(x=0;x<4000;x++);
// for(x=0;x<4000;x++);
default: printf ("V_input is %02d.%02dV\n", temp_int, temp_frac); break;
}
YJ_Init();
NCDdata[0]=temp_int/100+0x30;NCDdata[1]=(temp_int%100)/10+0x30;NCDdata[2]=(temp_int%100)%10+0x30;NCDdata[3]=0x2e;
NCDdata[4]=temp_frac/10+0x30;NCDdata[5]=temp_frac%10+0x30;NCDdata[6]=0x20;NCDdata[7]=0x20;NCDdata[8]=0x20;
NCDdata[9]=0x20;NCDdata[10]=0x20;NCDdata[11]=0x20;NCDdata[12]=0x20;NCDdata[13]=0x20;NCDdata[14]=0x20;
YJ_Init();
for(i=0;i<6;i++)
{
Write_CHAR(NCDdata);
}
TMR3CN |= 0x04;
EA = 1;
con_end=0;
}
AD0EN = 0;
中断服务程序:
void UATR0_ISR(void) interrupt 4
{
if(!TI0)
{
RI0=0;
temp=SBUF0;
ReceiveBit=1;
}
TI0=0;
}
请各位帮忙看一下 |