串口助手无法显示监控如何解决
/***************/
uint8 g,m;
uint8 datah0=0;
uint8 datah1=0;
uint8 datah2=0;
uint8 datah3=0;
uint8 tab[4];
void StartUART( void );
void R_S_Byte(uint8 R_Byte);
void chuantongda(uint8 k);
void ADC_Init0(void)
{
P1ASF=0x0F;//P1.0,P1.1,P1.2,P1.3口作为模拟功能AD使用。
ADC_CONTR=0X80;//打开ADC转换
电源,540个周期转换一次,初始化ADC标志位为0,AD转换控制位初始化为0,选择P1.0作为AD输入来用。
EA=1;
EADC=1;//中断允许控制为
AUXR1=0X00;//低两位存放在ADCRESL低两位中,高八位存放在ADCRES中
// PADC=0;
}
void ADC_Init1(void)
{
ADC_CONTR=0X81;//打开ADC转换电源,540个周期转换一次,初始化ADC标志位为0,AD转换控制位初始化为0,选择P1.1作为AD输入来用。
}
void ADC_Init2(void)
{
ADC_CONTR=0X82;
}
void ADC_Init3(void)
{
ADC_CONTR=0X83;
}
void display(uint8 num)
{
uint8 hundred,ten,one;
float a;
int b;
a=(num+0.005)/51;
a=a*100;
b=a;
hundred=b/100;
ten=b%100/10;
one=b%10;
}
void main()
{
uint8 i;
uint16 j=0;
StartUART();
ADC_Init0();
init_io();
while(1)
{ uint8 tab[4];
chuantongda(0);
R_S_Byte(datah0);
chuantongda(1);
R_S_Byte(datah1);
chuantongda(2);
R_S_Byte(datah2);
chuantongda(3);
R_S_Byte(datah3);
}
}
void adc_isr() interrupt 5
{
if(ADC_CONTR==0X88)
{
ADC_CONTR=0X80;
_nop_();
_nop_();
_nop_();
_nop_();
datah0=ADC_RES;
// R_S_Byte(datah0);
ADC_RES=0; }
/***************************/
if(ADC_CONTR==0X89)
{
ADC_CONTR=0X81;
_nop_();
_nop_();
_nop_();
_nop_();
datah1=ADC_RES;
// R_S_Byte(datah1);
ADC_RES=0;
}
if(ADC_CONTR==0X8A)
{
ADC_CONTR=0X82;
_nop_();
_nop_();
_nop_();
_nop_();
datah2=ADC_RES;
// R_S_Byte(datah2);
ADC_RES=0;
}
if(ADC_CONTR==0X8B)
{
ADC_CONTR=0X83;
_nop_();
_nop_();
_nop_();
_nop_();
datah3=ADC_RES;
//R_S_Byte(datah3);
ADC_RES=0;
}
}
void StartUART( void )
{
//波特率9600
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
PCON = 0x00;
TR1 = 1;
}
//************************************通过串口将接收到数据发送给PC端**************************************
void R_S_Byte(uint8 R_Byte)
{
SBUF = R_Byte;
while(
ti == 0 ); //查询法
TI = 0;
}
void chuantongda(uint8 k)
{ g=k;
switch(g)
{
case (0):ADC_CONTR=0X88;//打开ADC转换电源,540个周期转换一次,初始化ADC标志位为0,AD开始转换,选择P1.0作为AD输入来用。
_nop_();
_nop_();
_nop_();
_nop_(); while(ADC_FLAG==1); delay();
tab[0]=datah0; // R_S_Byte(datah0);
P2=tab[0];
case (1):ADC_CONTR=0X89;//打开ADC转换电源,540个周期转换一次,初始化ADC标志位为0,AD开始转换,选择P1.0作为AD输入来用。
_nop_();
_nop_();
_nop_();
_nop_();while(ADC_FLAG==1); delay();
tab[1]=datah1; //R_S_Byte(datah1);
case (2):ADC_CONTR=0X8A;//打开ADC转换电源,540个周期转换一次,初始化ADC标志位为0,AD开始转换,选择P1.0作为AD输入来用。
_nop_();
_nop_();
_nop_();
_nop_();while(ADC_FLAG==1); delay();
tab[2]=datah2;// R_S_Byte(datah2);
case (3):ADC_CONTR=0X8B;//打开ADC转换电源,540个周期转换一次,初始化ADC标志位为0,AD开始转换,选择P1.0作为AD输入来用。
_nop_();
_nop_();
_nop_();
_nop_();while(ADC_FLAG==1); delay();
tab[3]=datah3; // R_S_Byte(datah3);
}
}
一周热门 更多>