查看: 2168|回复: 0

msp430系列单片机与TLC5615DA转换芯片程序

[复制链接]
  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-1-30 09:51:13 | 显示全部楼层 |阅读模式
    分享到:
    近来在学习使用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转换函数,使用示范:DA0x3ff*0.1;0x3ff为满值,对应3V0.1为倍数,此时输出0.3v
    //编程软件可能提示警告,原因是参数中的0.10x3ff并非同一类型值,但是无需理会,不影响结果
    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


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-24 01:32 , Processed in 0.114782 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.