原创 16位高精度D/A转换器LTC1595与单片机通信

2010-9-27 22:26 2081 2 2 分类: MCU/ 嵌入式

/************************************************************************************/
/*     程式名:LTC1595讀寫代碼                                                      */
/*                                                                                  */
/*     晶振:  20M                                           CPU型號: PIC16F877A   */
/*                                                                                  */
/*     作者:  Randy                                         日期:    2010-08-27   */
/*                                                                                  */
/************************************************************************************/
#include <pic.h>
__CONFIG(0X3732);
#define   SRI   RC4
#define   CLK   RC3
#define   LD    RC5
unsigned int tmp[4]={0};
unsigned int shuju;
void SPISend(unsigned int data)
{
 int i;
 unsigned int outdata;
 outdata = data;
 
  LD=1;
 for(i = 0; i < 16; i++)
 {
  if(outdata & 0x8000)
   SRI= 1;
  else
   SRI=0;
   outdata <<= 1;
                 CLK=0;
   CLK=1;                   //上升沿發數據
 }
 LD=0;
// LD=1;//發送數據
}


//-----------MCU初始化-----------//
void initial ()
{
    TRISC=0XC0;
    SPBRG=0X81;              //設置串列傳輸速率為9600BPS
    TXSTA=0X24;              //使能串口發送,選擇高速串列傳輸速率
    RCSTA=0X90;              //使能串口工作2,連續接收
    RCIE=0X1;                //使能接收中斷
    GIE=0X1;                 //開放全局中斷
    PEIE=0X1;                //使能外部中斷
}



//------------------------延時--------------------------------//
void delay_1s(unsigned int x)
{
 unsigned a,b;
  for(a=x;a>0;a--)
   for(b=110;b>0;b--);
}



 void  interrupt Receive(void)
{
int i,temp;
unsigned int tmp[4]={0};
shuju=0;
if(RCIE&&RCIF)
  {                         //數據接收轉換
for(i=0;i<4;i++)
   {
    temp=RCREG;
     if(temp<0X3A)
    tmp=(temp-0X30);
  else
    tmp=(RCREG-0X37);
    delay_1s(10);
tmp<<=((3-i)*4);
 shuju|=tmp;
   }
 
 SPISend(shuju);
  }
}



main()
{
   initial ();
   while(1)
  {;}
}



 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /4 下一条