找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2318|回复: 1
收起左侧

单片机DA转换实验

[复制链接]
ID:555319 发表于 2019-6-5 09:43 | 显示全部楼层 |阅读模式
单片机DA转换实验程序实例

单片机源程序如下:
  1. //硬件:J2的3、4短接(左端为1),为DA提供基准电压,芯片TLC5615的6脚为基准输入;
  2. //                                                               TLC5615 7脚为数据输出端;
  3. //注:1.硬件TL431的输出电压用两个电阻就可以任意地设置到从Vref(2.5V)到36V范围内的任何值;
  4. //                因此TLC5615的基准电压硬件上最低只能调至2.5V。
  5. //          2.TLC5615为10位DA转换,的实际输出电压是理论电压的两倍;
  6. //                例如:当基准为2.5V,输入为256时,输出电压为1.25V。
  7. //                          当基准为2.5V,输入为511时,输出电压为2.5V。
  8. //                          当基准为2.5V,输入为1023时,输出电压为5.0V。

  9. #include <at89x52.h>
  10. #include <absacc.h>
  11. #include <lcd.h>
  12. #include <DA.h>
  13. unsigned char  bbb[]={" D/A TEST(2.5V) "};
  14. unsigned char  da_V[16]={'2','5','6',' ',' ',' ',' ',' ',' '};
  15. unsigned int  DA_Data=256;                    //DA输入值(0--1023)
  16. //float  DA_value=0.0;
  17. unsigned int DA_value;
  18. unsigned char temp[4]={0};
  19. void shuzhichuli(void);

  20. void main(void)
  21. {
  22.     PORT=0x03;                //BA口输出
  23.         lcd_init();                //液晶初始化
  24.         while(1)
  25.           {
  26.              da5615(DA_Data);        //DA转换
  27.                  DA_value=(2.50*DA_Data/1024*1000)*2.00+0.005;
  28.                  shuzhichuli();
  29.                  da_V[14]='V';
  30.                  lcd_string(bbb,1);
  31.                  lcd_string_change(0xc0,da_V);

  32.           }
  33. }

  34. void shuzhichuli(void)
  35. {
  36.    unsigned int  temp0,temp1;
  37.    unsigned int i;
  38.    unsigned int w;       
  39.    temp1=DA_value;
  40.    for( i=0;i<4;i++)
  41.     {
  42.         temp0=temp1%10;
  43.         temp1=temp1/10;
  44.         temp[i]=temp0;
  45.     }
  46.         for( w=0;w<5;w++)
  47.          {
  48.            if(w==0)
  49.              {
  50.                    da_V[w+9]=temp[3]+48;
  51.                  }
  52.            else if(w==1)
  53.              {
  54.                    da_V[w+9]='.';
  55.                  }
  56.                 else
  57.                   {
  58.                          da_V[w+9]=temp[4-w]+48;
  59.                   }
  60.           
  61.          }
  62. }
复制代码

所有资料51hei提供下载:
DA转换.zip (31.67 KB, 下载次数: 27)
回复

使用道具 举报

ID:740077 发表于 2020-4-28 14:35 | 显示全部楼层
有proteus的图吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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