近来在学习使用msp430g2553芯片,由于百度里相关程序实在太少,步履艰辛。经过一下午的编写调试,终于将适用于51单片机的5615程序改编到了MSP430系列单片机上------------重交阿橙献上
#ifndef _TLC5615_H_fengcheng_ #define _TLC5615_H_fengcheng_ #include <msp430g2553.h> //也适用于其他MSP430系列芯片 #define uint unsigned int #define uchar unsigned char #define DA_DIN BIT5 #define DA_SCLK BIT6 #define CS BIT7 /************************************** P1.5--DIN-|1 8|-VDD- P1.6-SCLK-|2 7|-OUT- P1.7---CS'--|3 6|-REFN- 参考电压,约1.5V最佳(此时最大输出约3V) DOUT---|4 5|-AGND- D/A转换芯片 TLV5615 ****************************************/ void delay(uint z) { uint x,y; for(x=110;x>0;x--) for(y=z;y>0;y--); } //DA转换函数,使用示范:DA(0x3ff*0.1);0x3ff为满值,对应3V,0.1为倍数,此时输出0.3v。 //编程软件可能提示警告,原因是参数中的0.1与0x3ff并非同一类型值,但是无需理会,不影响结果 void DA(uint date) { P1DIR|=0xE0; //P1.5-P1.7设置为输出 uchar i; int din; date<<=6; P1OUT&=~ DA_SCLK; //sck=0; P1OUT&=~ CS; // cs=0; for(i=0;i<12;i++) { din=date&0x8000; if(din==0) P1OUT&=~ DA_DIN; else P1OUT|= DA_DIN; P1OUT|= DA_SCLK; //sck=1; date<<=1; P1OUT&=~ DA_SCLK; //sck=0; } P1OUT|= CS; // cs=1; } #endif
|