標(biāo)題: 單片機(jī)AD603 DA TL5615控制直流電機(jī) [打印本頁(yè)]

作者: wd5601236    時(shí)間: 2016-10-17 12:29
標(biāo)題: 單片機(jī)AD603 DA TL5615控制直流電機(jī)
基于51單片機(jī)的,通過(guò)DA TL5615輸出電壓,控制寬帶高增益壓控放大芯片AD603的放大倍數(shù)。放大倍數(shù)由DA輸出電壓與AD603的另一固定的參考電壓之差共同決定

完整代碼下載:
AD603-TL5615直流電機(jī).rar (24.75 KB, 下載次數(shù): 21)

代碼預(yù)覽:

  1. #include "TLC5615.H"

  2. sbit TLV5616_CS = P2^2;
  3. sbit TLV5616_SCLK = P2^1;
  4. sbit TLV5616_DIN = P2^0;

  5. #define HIGH 1;
  6. #define LOW 0;

  7. /******************************************************************************/
  8. /* 函數(shù)功能: 輸出0-2000mv電壓                                                 */
  9. /* 參數(shù): 電壓值                                                               */
  10. /* 返回: 無(wú)                                                                   */
  11. /******************************************************************************/
  12. void TLV5616_ExportVol(uint vol)
  13. {
  14.   uint da=0;//idata  da=0;
  15.   uchar i;//idata  i;
  16.   
  17.   TLV5616_CS = HIGH;
  18.   TLV5616_SCLK = LOW;
  19.   
  20.   da = (vol / 5000.0)  * 4096; // 計(jì)算輸出電壓的DA值,公式: vol = 2*REF*DA/0x1000(v)
  21.   
  22.   TLV5616_CS = LOW;
  23.   for(i=0; i<16; i++)
  24.   {
  25.   
  26.     TLV5616_SCLK = LOW;
  27.     if(da & 0x8000)
  28.       TLV5616_DIN = 1;
  29.     else
  30.       TLV5616_DIN = 0;
  31.     _nop_();
  32.       
  33.     TLV5616_SCLK = HIGH;
  34.     da = da << 1;      
  35.    
  36.   }
  37.   TLV5616_SCLK = LOW;
  38.   
  39.   TLV5616_CS = HIGH;
  40.   
  41. }

  42. /******************************************************************************/
  43. /* 函數(shù)功能: 輸出0-20mA電流                                                   */
  44. /* 參數(shù): 百分比 * 1000                                                        */
  45. /* 返回: 無(wú)                                                                   */
  46. /******************************************************************************/
  47. /*void ExportCurrent(uint percent)
  48. {
  49.   uint idata  vol;  //電壓 mv
  50.   
  51.   if(percent <= 840)  // 84% 防止電壓超范圍
  52.     vol = 0;
  53.   else if(percent >= 1000)   // 100% 防止電壓超范圍
  54.     vol = 2000;
  55.   else
  56.     vol = (percent - 840) / 0.08;  // 計(jì)算控制電壓(mv)
  57.   
  58.   TLV5616_ExportVol(vol);        // 輸出電流
  59. }*/

復(fù)制代碼





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1