代码如下:
/*************************************************************************
* 名称: SPI_MasterInit
* 功能: SPI主机模式初始化
* 参数: 无
* 返回: 无
*************************************************************************/
void SPI_MasterInit(void)
{
SPCTL = 0XD1;
SPSTAT = 0XC0;
SPDAT = 0;
IE2 |= 0X02;
}
/*************************************************************************
* 名称: void SPI_MasterTransmit(uint8_t cData)
* 功能: SPI主机模式传送数据
* 参数: cData 要传输的字节数据
* 返回: SPI接收值
*************************************************************************/
unsigned char SPI_MasterTransmit(unsigned char cData)
{
// SPISS = 0; //拉低从机的SS
SPDAT = cData; //* 启动数据传输
while (!(SPSTAT & SPIF)); //等待发送完成 //等待发送完成//等待传输结束
SPSTAT = SPIF | WCOL; //清除SPI状态位
// SPISS = 1; //拉高从机的SS
return SPDAT; //返回SPI数据
}
/******************主函数*********************/
void main(void)
{
unsigned char i;
P2M1 =P2M0=0;
P_SW1 = 0X04;
AUXR = 0X40;
//sfr P_SW1 = 0xA2; //外设功能切换寄存器1
SPI_MasterInit();
Timer_Init_1();
//TLC2543_Init();//2543初始化函数
while(1)
{
// UART1_Send_Char(0x55);
//for(i=0;i<9;i++)
//{
// aa[i]= Tlc2543_GetAdc(i);
// delay_1(8);
//}
aa[1]= Tlc2543_GetAdc(0);//Read_TLC2543(1);
delay_1(10);
aa[2]= Tlc2543_GetAdc(1);//Read_TLC2543(1);
delay_1(10);
aa[3]= Tlc2543_GetAdc(2);//Read_TLC2543(0);
delay_1(10);
aa[4]= Tlc2543_GetAdc(3);//Read_TLC2543(2);
delay_1(10);
aa[5]= Tlc2543_GetAdc(4);//Read_TLC2543(3);
delay_1(10);
aa[8]= Tlc2543_GetAdc(7);//Read_TLC2543(3);
for(i=0;i<7;i++)
{
AD_data[i]=aa[i];
}
Uart_RX_Tab_1[0]=aa[1]>>8;
Uart_RX_Tab_1[1]=aa[1]&0xff;
Uart_RX_Tab_1[2]=0xaa;
Uart_RX_Tab_1[3]=aa[2]>>8;
Uart_RX_Tab_1[4]=aa[2]&0xff;
Uart_RX_Tab_1[5]=0x55;
Uart_RX_Tab_1[6]=aa[3]>>8;
Uart_RX_Tab_1[7]=aa[3]&0xff;
Uart_RX_Tab_1[8]=0xbb;
Uart_RX_Tab_1[9]=aa[4]>>8;
Uart_RX_Tab_1[10]=aa[4]&0xff;
Uart_RX_Tab_1[11]=0xcc;
Uart_RX_Tab_1[12]=aa[5]>>8;
Uart_RX_Tab_1[13]=aa[5]&0xff;
Uart_RX_Tab_1[14]=0xdd;
Uart_RX_Tab_1[15]=aa[6]>>8;
Uart_RX_Tab_1[16]=aa[6]&0xff;
Uart_RX_Tab_1[17]=0xee;
Uart_RX_Tab_1[18]=aa[7]>>8;
Uart_RX_Tab_1[19]=aa[7]&0xff;
Uart_RX_Tab_1[20]=0xff;
Uart_RX_Tab_1[21]=aa[8]>>8;
Uart_RX_Tab_1[22]=aa[8]&0xff;
UART1_Send_String(Uart_RX_Tab_1,23);
Main_Test();
P26=~P26;
}
}
得到的结果:
07 F0 AA 00 00 55 06 AC BB 05 C8 CC 0A 44 DD 00 00 EE 00 00 FF 00 00
02 C4 AA 0D 38 55 06 BC BB 05 CC CC 0A 48 DD 00 00 EE 00 00 FF 00 04
02 C0 AA 0D 3C 55 06 B8 BB 05 CC CC 0A 4C DD 00 00 EE 00 00 FF 00 04
02 C4 AA 0D 38 55 06 B8 BB 05 C8 CC 0A 48 DD 00 00 EE 00 00 FF 00 00
02 C4 AA 0D 3C 55 06 B4 BB 05 D0 CC 0A 4C DD 00 00 EE 00 00 FF 00 00
02 C4 AA 0D 34 55 06 B8 BB 05 CC CC 0A 4C DD 00 00 EE 00 00 FF 00 04
02 C4 AA 0D 3C 55 06 B8 BB 05 CC CC 0A 4C DD 00 00 EE 00 00 FF 00 00
02 C4 AA 0D 3C 55 06 BC BB 05 CC CC 0A 4C DD 00 00 EE 00 00 FF 00 00
02 C4 AA 0D 3C 55 06 BC BB 05 CC CC 0A 50 DD 00 00 EE 00 00 FF 00 04
02 C0 AA 0D 38 55 06 B8 BB 05 CC CC 0A 4C DD 00 00 EE 00 00 FF 00 00
02 C4 AA 0D 38 55 06 BC BB 05 D0 CC 0A 4C DD 00 00 EE 00 00 FF 00 04
02 C4 AA 0D 3C 55 06 C0 BB 05 D0 CC 0A 48 DD 00 00 EE 00 00 FF 00 04
02 C8 AA 0D 40 55 06 B4 BB 05 D0 CC 0A 4C DD 00 00 EE 00 00 FF 00 00
02 C8 AA 0D 3C 55 06 B8 BB 05 C8 CC 0A 50 DD 00 00 EE 00 00 FF 00 04
02 C0 AA 0D 40 55 06 B8 BB 05 CC CC 0A 4C DD 00 00 EE 00 00 FF 00 04
02 C4 AA 0D 3C 55 06 B8 BB 05 C8 CC 0A 44 DD 00 00 EE 00 00 FF 00 04
“02 C4”是第7通道的值,现在在第一通道的位置上了
“0D 3C”是第0通道的值,现在在第二通道的位置上了
“06 B8”是第1通道的值,现在在第三通道的位置上了
“05 C8”是第2通道的值,现在在第四通道的位置上了 |