找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3757|回复: 0
打印 上一主题 下一主题
收起左侧

单片机AD603 DA TL5615控制直流电机

[复制链接]
跳转到指定楼层
楼主
基于51单片机的,通过DA TL5615输出电压,控制宽带高增益压控放大芯片AD603的放大倍数。放大倍数由DA输出电压与AD603的另一固定的参考电压之差共同决定

完整代码下载:
AD603-TL5615直流电机.rar (24.75 KB, 下载次数: 21)

代码预览:

  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. /* 函数功能: 输出0-2000mv电压                                                 */
  9. /* 参数: 电压值                                                               */
  10. /* 返回: 无                                                                   */
  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; // 计算输出电压的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. /* 函数功能: 输出0-20mA电流                                                   */
  44. /* 参数: 百分比 * 1000                                                        */
  45. /* 返回: 无                                                                   */
  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;  // 计算控制电压(mv)
  57.   
  58.   TLV5616_ExportVol(vol);        // 输出电流
  59. }*/

复制代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表