找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1417|回复: 0
收起左侧

基于dac0832单片机程序,可输出三种波

[复制链接]
ID:625113 发表于 2019-11-23 08:36 | 显示全部楼层 |阅读模式
  1. #include <reg51.h>
  2. #define DAC P0
  3. sbit CS1=P2^0;
  4. sbit WRR=P3^6;

  5. static unsigned char code TableSin[256]={
  6. 128,131,134,137,140,143,146,149,152,155,158,162,165,167,170,173,
  7. 176,179,182,185,188,190,193,196,198,201,203,206,208,211,213,215,
  8. 218,220,222,224,226,228,230,232,234,235,237,238,240,241,243,244,
  9. 245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,
  10. 255,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,
  11. 245,244,243,241,240,238,237,235,234,232,230,228,226,224,222,220,
  12. 218,215,213,211,208,206,203,201,198,196,193,190,188,185,182,179,
  13. 176,173,170,167,165,162,158,155,152,149,146,143,140,137,134,131,
  14. 127,124,121,118,115,112,109,106,103,100, 97, 93, 90, 88, 85, 82,
  15. 79, 76, 73, 70, 67, 65, 62, 59, 57, 54, 52, 49, 47, 44, 42, 40,
  16. 37, 35, 33, 31, 29, 27, 25, 23, 21, 20, 18, 17, 15, 14, 12, 11,
  17. 10,  9,  7,  6,  5,  5,  4,  3,  2,  2,  1,  1,  1,  0,  0,  0,
  18.   0,  0,  0,  0,  1,  1,  1,  2,  2,  3,  4,  5,  5,  6,  7,  9,
  19. 10, 11, 12, 14, 15, 17, 18, 20, 21, 23, 25, 27, 29, 31, 33, 35,
  20. 37, 40, 42, 44, 47, 49, 52, 54, 57, 59, 62, 65, 67, 70, 73, 76,
  21. 79, 82, 85, 88, 90, 93, 97,100,103,106,109,112,115,118,121,124
  22. };

  23. unsigned char i;
  24. unsigned char num=1;
  25. void tran();
  26. void sin();
  27. void puls();
  28. void delay(unsigned char);
  29. void init();
  30. void main()
  31. {
  32.         CS1=0;
  33.         WRR=0;
  34.         init();
  35.         while(1)
  36.         {
  37.           switch(num)
  38.           {
  39.                   case 1:sin();break;
  40.                 case 2:puls(); break;
  41.                 case 3:tran();break;
  42.           }
  43.         }

  44. }

  45. void wave_t() interrupt 0
  46. {
  47.         delay(100);
  48.         num++;
  49.         if(num>3)num=1;
  50. }
  51. void delay(unsigned char i)
  52. {
  53.         while(i--);
  54. }
  55. void sin()
  56. {
  57.                 for(i=0;i<254;i++)
  58.                 {
  59.                         DAC=TableSin[i];
  60.                         delay(3);
  61.                 }
  62. }
  63. void tran()
  64. {
  65.         unsigned char i;
  66.         for(i=0;i<254;i+=2)
  67.         {
  68.                 DAC=i;
  69.                 delay(2);
  70.         }
  71.         for(i=254;i>=1;i-=2)
  72.         {
  73.                 DAC=i;
  74.                 delay(2);
  75.         }
  76. }
  77. void puls()
  78. {
  79.         DAC=0xff;
  80.         delay(1000);
  81.         DAC=0x00;
  82.         delay(1000);

  83. }
  84. void init()
  85. {
  86.         IT0=1;
  87.         EX0=1;
  88.         EA=1;
  89. }
复制代码
Snipaste_2019-11-23_08-25-43.png
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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