下面是针对图5硬件连接电路给出的相应C评议程序。其中单片机晶振频率为11.0592Hz。设计时,首先送入24个输入字,其中前16位是要转换的16位数(用第一个循环实现输入数据),后8位是通过地址选择的输出数据通道号。
Max5631(unsigned int Data,unsigned char Chan)
{
unsigned char BitCounterData=16,BitCounter Chan=8;//位数控制
unsigned char TempChan;//中间临时通道号
unsigned int TempData;//中间临时变量
TempData=Data;
TempChan=Chan;
TempChan<<=3;
TempChan&=0xfffe;
SCL=0;//时钟线为低电平
SCS=0;//片选为低电平
do{
SCL=0;
-nop-();
if((TempData&0x8000)==0x8000)//如果最高位是1
SDA=1;
Else
SDA=0;//数据线为低电平
SCL=1;
TempData=TempData<<1;左移
BitCounterData--;
}while(BitCounterData);
do{
SCL=0;
-nop-();
if((TempChan & 0x0080)==0x0080)//如果最高位是1
SDA=1;
else
SDA=0;
SDA=0;
SCL=1;
TempChan=TempChan<<1;//左移
BitCounterChan--;
}while(BitCounterChan);
SCL=0;
SCS=1;
}
|