久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3931|回復: 1
收起左側

DAC0832多波形發生(可調頻等)單片機代碼+仿真

[復制鏈接]
ID:237586 發表于 2017-10-7 10:44 | 顯示全部樓層 |閱讀模式
1、可通過按鍵隨意切換DAC0832輸出波形;
2、可通過按鍵實現頻率可調;
3、可通過按鍵實現占空比可調。
0.png

0.png

51單片機源程序如下:
  1. #ifndef __0832_h__
  2. #define __0832_h__

  3. unsigned char i,sqar_num=128; //最大值100,默認值50
  4. unsigned char cho=0;         //0:正弦波。1:方波。2:三角波。3:鋸齒波。
  5. unsigned char num=0;
  6. unsigned char TIME0_H=0xff,TIME0_L=0xd9;      //定時器0的初值設置;全局變量.對應正弦波,鋸齒波50HZ
  7. sbit chg=   P1^0;                                                           //三角波100Hz.
  8. sbit freq_u=P1^1;
  9. sbit freq_d=P1^2;
  10. sbit duty_u=P1^3;
  11. sbit duty_d=P1^4;
  12. sbit cs    =P3^7;
  13. bit flag=0;
  14. unsigned int FREQ=50;//初始化頻率,50HZ

  15. //調節部分——頻率
  16. void freq_ud(void)
  17. {
  18.    unsigned int temp;
  19.    if(freq_d==0)
  20.         {  FREQ--;         }
  21.    else if(freq_u==0)
  22.          { FREQ++;         }
  23.   
  24.    if(cho==1|cho==3) //鋸齒波256次中斷一周期,特殊處理下。否則他的頻率是100(+\-)n*2Hz.
  25.          {
  26.           temp=0xffff-3906/FREQ;  //方波,三角波默認為100hz,切換后頻率也為50HZ 65336-10^6/(256*FREQ)
  27.           TIME0_H=temp/256;
  28.       TIME0_L=temp%256;
  29.          }
  30.    else if(cho==0|cho==3){         //正弦波 三角波默認周期50hz  65536-10^6//(512*FREQ)
  31.    temp=0xffff-1953/FREQ;
  32.    TIME0_H=temp/256;
  33.    TIME0_L=temp%256;
  34.    }
  35. }
  36. //調節部分——方波的占空比
  37. void duty_ud(void)  //方波也采用512次中斷構成一個周期。
  38. {
  39.    if(duty_d==0&sqar_num>0)
  40.            sqar_num--;
  41.    else if(duty_u==0&sqar_num<255)
  42.           sqar_num++;


  43. }
  44. //波形發生函數
  45. void sint(void)
  46. {
  47.      if(!flag)
  48.      {
  49.         cs=0;P2=sin_num[num++];cs=1;
  50.                 if(num==0){num=255;flag=1;}
  51.             }
  52.     else if(flag)
  53.     {
  54.            cs=0;P2=sin_num[num--];cs=1;
  55.            if(num==255){num=0;flag=0;}
  56.          
  57.          }
  58. }
  59. void square(void)
  60. {
  61.     if(i++<sqar_num)  {cs=0;P2=0XFF;cs=1;}
  62.         else{cs=0;P2=0X00;cs=1;}
  63. }
  64. void triangle(void)
  65. {
  66.   cs=0;P2=num++;cs=1;
  67. }
  68. void stw(void)
  69. {
  70.    if(~flag)
  71.      {
  72.         cs=0;P2=num++;cs=1;
  73.                 if(num==0){num=255;flag=1;}
  74.             }
  75.    else if(flag)
  76.      {
  77.            cs=0;P2=num--;cs=1;
  78.            if(num==255){num=1;flag=0;}
  79.          
  80.          }
  81. }
  82. //按鍵中斷處理程序。
  83. void it0() interrupt 0
  84. {
  85.    if(chg==0) { if(++cho==4) {cho=0;num=0;}        }         //num=0;所有數據從新開始,保證波形的完整性
  86.    else if(freq_u==0|freq_d==0)
  87.      {freq_ud();}
  88.    else if (cho==1&(duty_d==0|duty_u==0))
  89.      {duty_ud();}
  90.    else ;
  91. }
  92. //定時器中斷處理程序。
  93. void intt0() interrupt 1
  94. {

  95. //TH0=0x00;TL0=0x00;sinx();

  96.   switch(cho)
  97.   {

  98.           case 0:{TH0=TIME0_H;TL0=TIME0_L;sint()    ;break;}  //正弦波//每半周期256取樣。
  99.         case 1:{TH0=TIME0_H;TL0=TIME0_L;square();  break;}        //方波   //為了提高方波的最高頻率,只有犧牲占空比的最小可調值。分100份 每次1%。
  100.         case 2:{TH0=TIME0_H;TL0=TIME0_L;triangle();break;}        //三角波
  101.           case 3:{TH0=TIME0_H;TL0=TIME0_L;stw();     break;}        //鋸齒波
  102.         default: ;
  103.   
  104.   }

  105. }

  106. #endif



  107. ……………………

  108. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
多波形發生(可調頻等).rar (54.62 KB, 下載次數: 67)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:294934 發表于 2018-3-22 10:00 | 顯示全部樓層
幫了大忙謝謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青久草 | 国内精品伊人久久久久网站 | 国产成人网 | 91精品久久久久久久久中文字幕 | 久久久久国产精品午夜一区 | 1级毛片 | 日韩精品视频在线观看一区二区三区 | 色综合色综合色综合 | 巨大黑人极品videos精品 | 国产高清不卡 | 在线看国产 | 日本一区二区高清不卡 | 国产精品美女久久久久久久久久久 | 国产精品人人做人人爽 | 成人免费一级视频 | 欧美日韩1区2区3区 欧美久久一区 | 久久久久久成人网 | 国产一区二区三区欧美 | h视频亚洲 | 久久久精品影院 | 国产午夜在线 | 国产精品久久久久久久午夜片 | 亚洲视频免费观看 | 国产成人精品一区二区三区网站观看 | 欧美国产日韩一区 | 国产精品久久久久久久免费观看 | 中文字幕不卡在线观看 | 色综合久久久久 | 久久精品国产一区二区三区不卡 | 九九热在线视频免费观看 | 91高清视频在线 | 久久久精品一区二区 | 欧美日本在线 | 国产欧美日韩在线 | 九九精品视频在线 | 久久精品天堂 | 成年人黄色小视频 | 农村妇女毛片精品久久久 | 亚洲欧美一区二区三区在线 | 成人精品久久 | 欧美一区二区三区久久精品 |