《基于MSP430G2553的TLV5618驱动程序.doc》由会员分享,可在线阅读,更多相关《基于MSP430G2553的TLV5618驱动程序.doc(3页珍藏版)》请在金锄头文库上搜索。
1、/TLV5618.h 头文件#ifndef _TLV5618_H_#define _TLV5618_H_ 1#include delay.h#define Port_DIR P2DIR#define CS BIT3#define SCLK BIT4#define DIN BIT5#define Control_IO P2OUT#define Channal_A 1 /通道A#define Channal_B 2 /通道B#define Channal_AB 3 /通道A&Bvoid DA_conver(uint Dignum);void Write_A_B(uint Data_A,uint D
2、ata_B,uchar Channal,uchar Model);void TLV5618_Init();#endif/TLV5618.c 文件/* 文件说明:TLV5618 12位DA底层驱动程序* 硬件电路:MSP430g2553* 硬件连接:* MSP430与tlv5618连接信息* P23 - CS(RS) * P24 - SCLK(EN)* P25 - DIN * 调试软件: IAR5.4 编译*/#include tlv5618.hvoid DA_conver(uint Dignum) uint Dig=0; uchar i=0; Control_IO |= SCLK; Contr
3、ol_IO &= CS; for(i=0;i16;i+) Dig=Dignum&0x8000; if(Dig) Control_IO |= DIN; else Control_IO &= DIN; Control_IO &= SCLK; Delay_us(1); Dignum=1; Control_IO |= SCLK; Delay_us(1); Control_IO |= SCLK; Control_IO |= CS;/= / 函数名称 :void Write_A_B(uint Data_A,uint Data_B,uchar Channal,bit Model)/ 函数功能 :模式、通道选
4、择并进行DA转换 / 入口参数 :Data_A:A通道转换的电压值/ Data_B:B通道转换的电压值/ Channal:通道选择,其值为Channal_A,Channal_B,或Channal_AB/ Model:速度控制位 0:slow mode 1:fast mode/ 出口参数 :无/ 说明: Data_A,Data_B的范围为:0-0x0fff/ 本程序如果只需要一个通道时,另外一个通道的值可任意,但是不能缺省/ 输出电压范围:电压0-4.98,实为0-4.85 /=void Write_A_B(uint Data_A,uint Data_B,uchar Channal,uchar
5、Model) uint Temp; if(Model) Temp=0x4000; else Temp=0x0000; /Analog_A=2*Vref*(Data_A/0x1000) switch(Channal) case Channal_A: /A通道 DA_conver(Temp|0x8000|(0x0fff&Data_A); break; case Channal_B: /B通道 DA_conver(Temp|0x0000|(0x0fff&Data_B); break; case Channal_AB: DA_conver(Temp|0x1000|(0x0fff&Data_B); /A&B通道 DA_conver(Temp|0x8000|(0x0fff&Data_A); break; default: break; void TLV5618_Init() Port_DIR |= DIN | SCLK | CS;