找回密码
 立即注册

QQ登录

只需一步,快速开始

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

DAC0832什么原因导致失真那么大

[复制链接]
跳转到指定楼层
楼主
程序如下:
电路如图;
问题就是为什么会失真那么大,除了方波之外,正弦,三角都有问题,请大家帮忙看看


单片机源程序如下:
  1. #include<reg51.h>
  2. #include <absacc.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. void  daly3();
  6. void  daly2();
  7. void  daly1();
  8. void delay39us();
  9. void delay10ms();
  10. int k;
  11. uchar code sin[]={0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE,
  12.      0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8,
  13.      0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,
  14.      0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  15.      0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,
  16.      0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD,0xDA,
  17.      0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1,
  18.      0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80,
  19.      0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x51,
  20.      0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,
  21.      0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,
  22.      0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
  23.      0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
  24.      0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,
  25.      0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E,
  26.      0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x7E};
  27. void delay(uchar t)
  28. {
  29. while(t--);
  30. }


  31. void zheng()
  32. {
  33.   uint i;
  34.   for(i=0;i<=255;i++)
  35.   {
  36.     P1=sin[i];
  37. delay39us();
  38.   }
  39. }

  40. void fang()
  41. {
  42. P1=0;
  43. delay15ms();
  44. P1=0xff;
  45. delay15ms();
  46. }

  47. void sanjiao()
  48. { uint i;
  49. for(i=0;i<255;i++)   
  50. {
  51.    P1=i;
  52.     daly2();
  53. }   
  54. for(i=255;i>0;i--)   
  55.   {
  56.    P1=i;
  57.     daly2();
  58.    }
  59. }

  60. void key()
  61. {
  62.      P0=0xf0;
  63. if(P0==0xe0)
  64. {delay(100);
  65.   if(P0==0xe0)
  66.    k=1;   
  67. }
  68. else if(P0==0xd0)
  69. {delay(100);
  70.   if(P0==0xd0)
  71.    k=2;  
  72. }
  73. else if(P0==0xb0)
  74. {delay(100);
  75.   if(P0==0xb0)
  76.    k=3;
  77. }
  78.    else k=0;
  79. }
  80. void main()
  81. {  

  82.     while(1)
  83.    {
  84.      key();
  85. if(k==1)
  86.    while(1)
  87.    {
  88.    zheng();
  89.     key();
  90. if(k!=0)
  91. break;
  92.    }

  93. else if(k==2)
  94. while(1)
  95.    {
  96.    fang();
  97.     key();
  98. if(k!=0)
  99. break;
  100.    }

  101. else if(k==3)
  102.   while(1)
  103.    {
  104.    sanjiao();
  105.     key();
  106. if(k!=0)
  107. break;
  108.    }     
  109.    }
  110.   }

  111. void  daly1()
  112. {

  113. {
  114.   unsigned char a,b,c;
  115.   for(a=0;a<5;a++)
  116.   for(b=0;b<10;b++)
  117.   for(c=0;c<220;c++);
  118. }  
  119. }
  120. void  daly2()
  121.     {  
  122. unsigned char a;
  123.     for(a=10;a>0;a--);
  124. }
  125. void daly3()
  126. {
  127.        unsigned char a;

  128.         for(a=200;a>0;a--);
  129. }

  130. void delay39us(void)   
  131. {
  132.     unsigned char a;
  133.     for(a=9;a>0;a--);
  134. }
  135. void delay10ms(void)   
  136. {
  137.     unsigned char a,b,c;
  138.     for(c=5;c>0;c--)
  139.         for(b=4;b>0;b--)
  140.             for(a=248;a>0;a--);
  141. }
复制代码



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

使用道具 举报

沙发
ID:111634 发表于 2018-4-7 19:41 | 只看该作者
线路连接错!
回复

使用道具 举报

板凳
ID:303129 发表于 2018-4-7 21:06 | 只看该作者
UA741的应用错误,如果只是方波肯定可以,但是用于其它波形,如正弦波等,需要设置一定的反馈。

评分

参与人数 1黑币 +1 收起 理由
wjshw + 1 赞一个!

查看全部评分

回复

使用道具 举报

地板
ID:296231 发表于 2018-4-8 11:59 | 只看该作者

我的图画错了,运放我实际上已经接地了
回复

使用道具 举报

5#
ID:296231 发表于 2018-4-8 11:59 | 只看该作者
ZG11211 发表于 2018-4-7 21:06
UA741的应用错误,如果只是方波肯定可以,但是用于其它波形,如正弦波等,需要设置一定的反馈。

DA0809内部自带反馈
回复

使用道具 举报

6#
ID:112166 发表于 2018-4-8 13:49 | 只看该作者
调一下示波器呢
回复

使用道具 举报

7#
ID:111634 发表于 2018-4-8 20:51 | 只看该作者
HUANGJIEYO 发表于 2018-4-8 11:59
我的图画错了,运放我实际上已经接地了

不是接地问题!运放必需有负反馈,才能工作在放大状态,否则是电压比较器。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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