欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

DAMCP41010 DA轉換輸出不同的波形的單片機源程序

[復制鏈接]
ID:413373 發表于 2018-10-22 00:58 | 顯示全部樓層 |閱讀模式
分享一個DA轉換-輸出不同的波形的代碼

DAMCP41010的單片機源程序如下:
  1. #include<reg52.h>
  2. #include<dingyi.h>
  3. /***************************************/
  4. void DAMCP41010(uchar dabuf) //tds為設置工作方式,dabuf為寫入D7~D0的值
  5. { tds=0x11;
  6. MCP41010_CS=0;
  7. for(i=0;i<8;i++)    //前8個clk選擇設置DA工作方式
  8.   { MCP41010_CLK=0;
  9.   if(tds&0x80){
  10.   MCP41010_DI=1;}
  11.   else{
  12.   MCP41010_DI=0;
  13.   }
  14.   MCP41010_CLK=1;
  15.     tds<<=1;  //左移,準備送下一位
  16.   }   
  17. /**** 接下來寫入數據(D7~D0)****/
  18.   for(i=0;i<8;i++)   
  19.   {
  20.   MCP41010_CLK=0;
  21.     if(dabuf&0x80){
  22.          MCP41010_DI=1;
  23.          }
  24.          else
  25.          {
  26.          MCP41010_DI=0;
  27.          }
  28.          MCP41010_CLK=1;      
  29.   dabuf<<=1;
  30.   }
  31.   MCP41010_CS=1;
  32. // MCP41010_CLK=0;   
  33. }

  34. void bcd()         
  35. {switch(smsta)
  36. {case 0:
  37.    buf3f=1;
  38.    buf2=dabuf/100;                //百位
  39.    buf1=dabuf/10%10;    //十位
  40.    buf0=dabuf%10;      //個位
  41.    lightf=0;            //關掉點顯示  
  42.    break;         
  43.   case 1:
  44.    buf3f=0;
  45.    buf3=dabuf/110; //個位
  46.    buf2=dabuf%110*10/110;//十分位
  47.    buf1=dabuf%110*10%110*10/110;//百分位
  48.    buf0=dabuf%110*10%110*10%110*10/110;// 千分位
  49.    lightf=1;break;           //開個位點
  50.   }
  51. }
  52. /******************************
  53. **函數名:sjb()
  54. ***描述: 輸出三角波;        
  55. ******************************/
  56. void sjb()
  57. {uchar zhsta;
  58. if(sw1f){msta=2;}
  59. cnt++;
  60. if(cnt==20)
  61. {cnt=0;
  62.   switch(zhsta)
  63. {
  64. case 0:
  65.   dabuf++;
  66.   if(dabuf==255)
  67.    {zhsta=1;}break;
  68. case 1:
  69.   dabuf--;
  70.   if(dabuf==0){zhsta=0;}break;
  71. }}
  72. DAMCP41010(dabuf);
  73. }
  74. /******************************
  75. **函數名:jucb()
  76. ***描述: 輸出鋸齒波;        
  77. ******************************/
  78. void jucb()
  79. {cnt++;
  80. if(sw1f){msta=3;}
  81. if(cnt==20)
  82. { cnt=0;dabuf++;
  83.   if(dabuf==255)
  84.    {dabuf=0;}}
  85. DAMCP41010(dabuf);
  86. }
  87. /******************************
  88. **函數名:fangbb()
  89. ***描述: 輸出方波;        
  90. ******************************/
  91. void fangb()
  92. {
  93. uchar bdata gdf;
  94. if(sw1f){msta=4;}
  95.   cnt++;
  96.   if(cnt==200)   
  97.    {cnt=0;gdf=!gdf;}
  98.   if(gdf)
  99.    {dabuf=255;}
  100.   else
  101.    {dabuf=0;}
  102.   DAMCP41010(dabuf);
  103. }
  104. /***************************************************
  105. **函數名:zxb()
  106. ***描述: 輸出正弦波;        
  107. ***************************************************/
  108. void zxb()
  109. { uchar cnt;
  110.   if(sw1f){msta=0;}
  111.   cnt++;
  112.   if(cnt==20)
  113.   {cnt=0;dabuf=sin[zxf];
  114.   zxf++;
  115.   if(zxf==255){zxf=0;}}
  116.   DAMCP41010(dabuf);
  117. }
  118. /***************************************************
  119. **文件名:main()
  120. ***描述: DA轉換的主程序段,實現各功能模塊的轉換;
  121.           work0輸出三角波模塊;work1輸出鋸齒波模塊;
  122.                   work2輸出矩形波模塊;work3輸出正弦波;        
  123. ***************************************************/
  124. void main()
  125. {zxf=msta=smsta=flag=0;
  126. tds=0x11;dabuf=0;
  127. TMOD=0x01;
  128. TH0=0xec;
  129. TL0=0x78;
  130. TR0=1;
  131. while(1)
  132. { while(!TF0);
  133.   {
  134.    TH0=0xec;
  135.    TL0=0x78;
  136.    TF0=0;
  137.    #include<anjiansm.h>
  138.    #include<disp.h>
  139.    bcd();
  140.    switch(msta)
  141.    {
  142.         case 0:
  143.         if(sw1f){msta=1;}
  144.         buf3f=0;if(lightf){dian=1;}buf3=0;buf2=2;buf1=3;
  145.     buf0=9;buf4=0;       
  146.          break;
  147.         case 1:
  148.           sjb();buf4=0xfe;break;
  149.         case 2:
  150.           jucb();buf4=0xfd;break;
  151.         case 3:
  152.       fangb();buf4=0xfb;break;
  153.         case 4:
  154.           zxb();buf4=0xf7;break;
  155.    }
  156.   }
  157. }
  158. }
復制代碼

所有資料51hei提供下載:
DA轉換-輸出不同的波形.zip (35.23 KB, 下載次數: 45)


回復

使用道具 舉報

ID:1 發表于 2018-10-22 05:10 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表