5418a 并行通信时,传递浮点数,判断上升沿,请指点
本帖最后由 zps110 于 2012-5-1 18:41 编辑双机通信,传递浮点数,使用并口。
主机判断P2.7上升沿读数据程序如下:
float TXD_float(void)
{
char tt;
uchar i;//while( P8IN & BIT3 )
for(i=0;i<4;i++)
{
while(!(P2IN & 0x80));
tt=P3IN;
while(P2IN & 0x80);
}
return(atof(tt));
}
void main(void) //send command
{
P4DIR=0XFF;
P4OUT|=0X0C; //CS3,CS4
uchar i=0;
P3DIR =0X00;//DATA
P2DIR &= ~BIT7; //WR
for(i=0;i<16;i++)
{
value_pdBm_IL=TXD_float();
}
P4OUT&=0XF3; //CS3,CS4
delay_us(20);
}
从机使用终端接收,程序如下:
#define LCD_WR_H() P2OUT |= BIT7
#define LCD_WR_L()P2OUT &= ~BIT7
void BUS_TXD(uchar Command) //send command
{
P3OUT = Command;
LCD_WR_H();
LCD_WR_L();
}
/************************************************/
void uart_send_str(const char *data_point)
{
while(1)
{
if(*data_point=='\0')
break;
else
{
BUS_TXD(*data_point);
data_point++;
}
}
}
#pragma vector=PORT1_VECTOR
__interrupt void port1_ser( void )
{
_DINT();//通过中断程序数据发送
uchar i;
if(P1IN == 0X03) //模块地址,可以修改
{
P2DIR |= 0X80;
P3DIR |= 0XFF;
//P2OUT |= 0X80;
for(i=0;i<16;i++)
{
if(P1IN == 0X03) //mokuaidizhi
{
sprintf(TxBuf,"%6.2f",value_pdBm_IL);
uart_send_str(TxBuf);
}
else
break;
}
P3DIR =0X00;
P2DIR &=0X1F;
}
P1IFG= 0;
_EINT();
}
双机通信是并行通信好呢,还是i2c好呢?
页:
[1]