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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3976|回復: 1
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
1、可通過按鍵隨意切換DAC0832輸出波形;
2、可通過按鍵實現頻率可調;
3、可通過按鍵實現占空比可調。




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 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:294934 發表于 2018-3-22 10:00 | 只看該作者
幫了大忙謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美在线一区二区视频 | 97视频免费| 日韩国产精品一区二区三区 | 亚洲精选久久 | 亚洲天天干 | 黄色网址在线播放 | 国产精久久久久久 | 91视频在线网站 | 韩国精品一区二区三区 | 九九热热九九 | 日韩中出| 99精品在线 | 国产视频中文字幕 | 中文字幕av中文字幕 | 国产a级毛片 | 韩日一区 | 亚洲精品视频在线 | 在线看av的网址 | 91久久精 | 国产精品久久午夜夜伦鲁鲁 | 国产精品视频二区三区 | 久久精品国产一区二区电影 | 91精品久久久久久久久久入口 | 久久国内精品 | 亚洲综合视频 | 亚洲成人久久久 | 久久y| 国产精品高潮呻吟 | 欧美一区二 | 祝你幸福电影在线观看 | 天天躁人人躁人人躁狂躁 | 亚洲午夜视频 | 日韩av手机在线观看 | 久久机热 | 日韩欧美在线精品 | 中文字幕日韩欧美 | 欧美一区视频在线 | 黄网站色大毛片 | 91精品久久久久久久久久入口 | 一区免费视频 | 精品日韩一区 |