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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3427|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

DAMCP41010 DA轉(zhuǎn)換輸出不同的波形的單片機(jī)源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:413373 發(fā)表于 2018-10-22 00:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
分享一個(gè)DA轉(zhuǎn)換-輸出不同的波形的代碼

DAMCP41010的單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include<dingyi.h>
  3. /***************************************/
  4. void DAMCP41010(uchar dabuf) //tds為設(shè)置工作方式,dabuf為寫入D7~D0的值
  5. { tds=0x11;
  6. MCP41010_CS=0;
  7. for(i=0;i<8;i++)    //前8個(gè)clk選擇設(shè)置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;  //左移,準(zhǔn)備送下一位
  16.   }   
  17. /**** 接下來寫入數(shù)據(jù)(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;      //個(gè)位
  41.    lightf=0;            //關(guān)掉點(diǎn)顯示  
  42.    break;         
  43.   case 1:
  44.    buf3f=0;
  45.    buf3=dabuf/110; //個(gè)位
  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;           //開個(gè)位點(diǎn)
  50.   }
  51. }
  52. /******************************
  53. **函數(shù)名: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. **函數(shù)名: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. **函數(shù)名: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. **函數(shù)名: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轉(zhuǎn)換的主程序段,實(shí)現(xiàn)各功能模塊的轉(zhuǎn)換;
  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. }
復(fù)制代碼

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


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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-10-22 05:10 | 只看該作者
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲三级视频 | 久久不卡 | 日韩成人在线视频 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 久久这里有精品 | 欧美日韩综合视频 | 国产精品久久久久久久久久久久 | 中文字幕一区二区三区精彩视频 | 精品国产精品国产偷麻豆 | 日韩视频在线观看 | 国产精品美女久久久久久免费 | 国产一区二区三区视频 | 免费小视频在线观看 | 女朋友的闺蜜3韩国三级 | 亚洲欧美日韩久久久 | 亚洲一区精品在线 | 国产精品久久久久久久久久久久午夜片 | 亚洲视频欧美视频 | 亚洲精品在线观看网站 | 欧美日韩成人影院 | 一区二区视频在线观看 | 久久精品av麻豆的观看方式 | 日韩电影一区二区三区 | 一级做a爰片性色毛片 | 视频一区中文字幕 | 国产免费让你躁在线视频 | 国产999精品久久久 精品三级在线观看 | 一区二区视频在线观看 | 欧美精品在线免费观看 | 婷婷久久久久 | 色综合久久久 | 欧美日韩一区二区在线播放 | 精品一区二区久久久久久久网精 | 成人性视频在线播放 | 青青草国产在线观看 | 日韩精品视频在线免费观看 | 国产精品永久 | 天天综合久久 | 欧美日韩亚洲二区 | 老司机成人在线 | 国产一区91精品张津瑜 |