找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機控制DAC0832產(chǎn)生三角波,鋸齒波等的源程序及原理圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:247720 發(fā)表于 2017-11-9 15:44 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
這是我參加比賽的作品,希望對大家有幫助。


原理圖如下(Altium Designer畫的工程文件可到本帖附件中下載)



單片機源程序如下:
  1. #include<reg52.h>
  2. #include<absacc.h> //絕對地址訪問
  3. #include"delay.h"
  4. #define DAC0832 XBYTE[0x7FFF]
  5. #define mun 2


  6. sbit K2=P3^2;  //+
  7. sbit K3=P3^3; //-
  8. sbit K4=P3^4; //三角波
  9. sbit K5=P3^5; //鋸齒波
  10. sbit K6=P3^6; //自動模式
  11. /*共陰極數(shù)碼管    0     1   2    3    4     5   6    7    8     9*/
  12. //char array[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  13. /*共陽極數(shù)碼管    0      1   2   3    4     5    6    7    8    9 */
  14. char array[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  15. int main(void)
  16. {
  17.         uchar i=0,j;
  18.         /*增*/
  19.         if(K2==0)
  20.         {
  21.                  delay_ms(10);
  22.                  if(K2==0)
  23.                  {
  24.                    while(K2==0);
  25.                    delay_ms(10);
  26.                    i++;
  27.                    if(i>=99)
  28.                    {
  29.                                    i=0;
  30.                    }
  31.                  }
  32.         }
  33.         /*減*/
  34.         if(K3==0)
  35.         {
  36.                  delay_ms(10);
  37.                  if(K3==0)
  38.                  {
  39.                    while(K3==0);
  40.                    delay_ms(10);
  41.                    i--;
  42.                    if(i<=0)
  43.                    {
  44.                                    i=99;
  45.                    }
  46.                  }
  47.         }
  48.         /*自動模式*/
  49.         if(K6==0)
  50.         {
  51.           delay_ms(10);
  52.           if(K6==0)
  53.           {
  54.                    while(!K6);
  55.                 delay_ms(10);
  56.                 vip:
  57.                 i=0;
  58.                 while(i<=99)
  59.                 i++;
  60.                 if(i>=99)
  61.                 {
  62.                  
  63.                   while(i>=0)
  64.                    i--;
  65.                    if(i<=0)        goto vip;
  66.                 }
  67.           }
  68.         }
  69.    /*三角波*/
  70.         if(K4==0)
  71.         {
  72.                  delay_ms(10);
  73.                 if(K4==0)
  74.                 {
  75.                   while(!K4);
  76.                   delay_ms(10);
  77.                   for (j=0; j<0xff;j++)
  78.                   {
  79.                     DAC0832=j;
  80.                     delay_ms(100);
  81.                    }

  82.                    for (j=0xff; j>0; j--)
  83.                   {
  84.                           DAC0832=j;
  85.                           delay_ms(100);
  86.               }
  87.                 }
  88.         
  89.         }
  90.         /*鋸齒波*/
  91.         if(K5==0)
  92.         {
  93.           delay_ms(10);
  94.            if(K5==0)
  95.            {
  96.                      while(!K5);
  97.                   delay_ms(10);
  98.                      for(j=0;j<0xff;j++)
  99.                   {
  100. ……………………

  101. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
數(shù)控電源.zip (5.97 MB, 下載次數(shù): 35)


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

使用道具 舉報

沙發(fā)
ID:247720 發(fā)表于 2017-11-9 17:24 | 只看該作者
題目有錯,不好意思,正確的題目在我的相冊里。新人來到這個平臺,好多東西都不會操作,希望見諒。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表