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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

msp430單片機可用的DAC7311庫函數源碼下載

[復制鏈接]
跳轉到指定樓層
樓主
16位DAC向下兼容,7311/8411/7811

3個IO口即可驅動

原來用在msp430g2553,宏定義快速移植



單片機源程序如下:
  1. /*
  2. * DAC7311.c
  3. *
  4. *  Created on: 2018年
  5. *      Author: Thinkpad
  6. */

  7. /**********DAC8411.c******************/

  8. #include "global.h"
  9. #include "f2802x_common/include/gpio.h"
  10. #include "f2802x_common/include/pie.h"

  11. #define SAMPLENUM     400        //采樣點數,刪除link cmd前只能200

  12. unsigned int data[12]={32768,49151,61145,65535,61145,49151,32768,16384,4390,1,4390,16384};
  13. const unsigned int Data[SAMPLENUM]={32768,33282,33797,34311,34825,35338,35851,36363,36874,37384,37893,38401,38907,39412,39915,40417,
  14.                                     40916,41414,41909,42402,42893,43381,43867,44350,44830,45307,45781,46252,46719,47183,47643,48100,
  15.                                     48553,49002,49447,49888,50325,50757,51185,51609,52027,52441,52851,53255,53654,54048,54437,54820,
  16.                                     55198,55570,55937,56298,56654,57003,57346,57684,58015,58340,58659,58971,59277,59576,59868,60154,
  17.                                     60434,60706,60971,61230,61481,61726,61963,62193,62416,62631,62840,63040,63233,63419,63597,63768,
  18.                                     63931,64086,64233,64373,64505,64629,64745,64854,64954,65047,65131,65208,65276,65337,65389,65433,
  19.                                     65470,65498,65518,65530,65535,65530,65518,65498,65470,65433,65389,65337,65276,65208,65131,65047,
  20.                                     64954,64854,64745,64629,64505,64373,64233,64086,63931,63768,63597,63419,63233,63040,62840,62631,
  21.                                     62416,62193,61963,61726,61481,61230,60971,60706,60434,60154,59868,59576,59277,58971,58659,58340,
  22.                                     58015,57684,57346,57003,56654,56298,55937,55570,55198,54820,54437,54048,53654,53255,52851,52441,
  23.                                     52027,51609,51185,50757,50325,49888,49447,49002,48553,48100,47643,47183,46719,46252,45781,45307,
  24.                                     44830,44350,43867,43381,42893,42402,41909,41414,40916,40417,39915,39412,38907,38401,37893,37384,
  25.                                     36874,36363,35851,35338,34825,34311,33797,33282,32768,32253,31738,31224,30710,30197,29684,29172,
  26.                                     28661,28151,27642,27134,26628,26123,25620,25118,24619,24121,23626,23133,22642,22154,21668,21185,
  27.                                     20705,20228,19754,19283,18816,18352,17892,17435,16982,16533,16088,15647,15210,14778,14350,13926,
  28.                                     13508,13094,12684,12280,11881,11487,11098,10715,10337,9965,9598,9237,8881,8532,8189,7851,
  29.                                     7520,7195,6876,6564,6258,5959,5667,5381,5101,4829,4564,4305,4054,3809,3572,3342,
  30.                                     3119,2904,2695,2495,2302,2116,1938,1767,1604,1449,1302,1162,1030,906,790,681,
  31.                                     581,488,404,327,259,198,146,102,65,37,17,5,1,5,17,37,
  32.                                     65,102,146,198,259,327,404,488,581,681,790,906,1030,1162,1302,1449,
  33.                                     1604,1767,1938,2116,2302,2495,2695,2904,3119,3342,3572,3809,4054,4305,4564,4829,
  34.                                     5101,5381,5667,5959,6258,6564,6876,7195,7520,7851,8189,8532,8881,9237,9598,9965,
  35.                                     10337,10715,11098,11487,11881,12280,12684,13094,13508,13926,14350,14778,15210,15647,16088,16533,
  36.                                     16982,17435,17892,18352,18816,19283,19754,20228,20705,21185,21668,22154,22642,23133,23626,24121,
  37.                                     24619,25118,25620,26123,26628,27134,27642,28151,28661,29172,29684,30197,30710,31224,31738,32253};

  38. /************************************************************
  39. * STANDARD BITS
  40. ************************************************************/


  41. #define BITA                   (0x0400)
  42. #define BITB                   (0x0800)
  43. #define BITC                   (0x1000)
  44. #define BITD                   (0x2000)
  45. #define BITE                   (0x4000)
  46. #define BITF                   (0x8000)

  47. //--------IO宏定義----------
  48. #define SYNC_HIGH                 GPIO_setHigh(myGpio, GPIO_Number_0)//P1OUT |=BIT0
  49. #define SYNC_LOW                  GPIO_setLow(myGpio, GPIO_Number_0)//P1OUT &=~BIT0
  50. #define SCLK_HIGH                 GPIO_setHigh(myGpio, GPIO_Number_1)//P2OUT |=BIT2
  51. #define SCLK_LOW                 GPIO_setLow(myGpio, GPIO_Number_1)//P2OUT &=~BIT2
  52. #define DIN_HIGH                 GPIO_setHigh(myGpio, GPIO_Number_2)//P1OUT |=BIT3
  53. #define DIN_LOW         GPIO_setLow(myGpio, GPIO_Number_2)//P1OUT &=~BIT3
  54. int send_1=0;
  55. int dacisr_in=0;
  56. /******************************************************************************************************
  57. * 名       稱:DAC8411_Init()
  58. * 功       能:初始化DAC8411
  59. * 入口參數:無
  60. * 出口參數:無
  61. * 說       明:就是初始化相關IO的狀態
  62. * 范       例:無
  63. ******************************************************************************************************/
  64. void DAC_Init()
  65. {
  66.         //-----設置IO為輸出-----
  67.         //P1DIR |=BIT0+BIT3;
  68.         //P2DIR |=BIT2;
  69.         GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output);
  70.         GPIO_setDirection(myGpio, GPIO_Number_1, GPIO_Direction_Output);
  71.         GPIO_setDirection(myGpio, GPIO_Number_2, GPIO_Direction_Output);

  72.         GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose);
  73.         GPIO_setMode(myGpio, GPIO_Number_1, GPIO_0_Mode_GeneralPurpose);
  74.         GPIO_setMode(myGpio, GPIO_Number_2, GPIO_0_Mode_GeneralPurpose);
  75.         //-----設置IO初始狀態為高-----
  76.         SCLK_HIGH;
  77.         SYNC_HIGH;

  78.    //先不打開DAC,防止影響1602的GPIO0-2
  79.         PIE_disableInt(myPie,PIE_GroupNumber_1,PIE_InterruptSource_TIMER_0);
  80. }
  81. /******************************************************************************************************
  82. * 名       稱:write2DAC8411(unsigned int Data)
  83. * 功       能:對DAC8411寫16位數據
  84. * 入口參數:無
  85. * 出口參數:無
  86. * 說       明:共需發18位,頭兩位0,后16位是DAC量化數據
  87. * 范       例:無
  88. ******************************************************************************************************/
  89. void write2DAC(unsigned int Data)
  90. {
  91.         unsigned int Temp;
  92.         unsigned char i;
  93.         Temp=Data;
  94.         SYNC_LOW;                        //拉低同步線,傳輸開始

  95.         //-----發送00,代表是非節能模式(節能就停止工作了)。-----
  96.         SCLK_HIGH;
  97.         DIN_LOW;                        //數據0
  98.         SCLK_LOW;

  99.         SCLK_HIGH;
  100.         DIN_LOW;                        //數據0
  101.         SCLK_LOW;


  102.         //-----依次發送14位----- 最后兩位無效,數據位只截取前12位  相當于/8 位數越大循環次數多 越慢
  103.         for(i=0;i<14;i++)
  104.         {
  105.                 SCLK_HIGH;

  106.                 //-----通過位與,判斷最高位是1還是0,已決定發什么數據-----
  107.                 if(Temp & BITF)
  108.                     {
  109.                     DIN_HIGH;
  110.                     send_1++;
  111.                     }
  112.                 else DIN_LOW;

  113.                 SCLK_LOW;
  114.                 Temp=Temp<<1;                //左移一位,永遠發最高位

  115.         }


  116.         SYNC_HIGH;        //有效的數據序列是第16個拉高數據線,停止轉換
  117. }



  118. /******************************************************************************************************
  119. * 名       稱: TA0_OnTime()
  120. * 功       能:TA0的定時事件處理函數
  121. * 入口參數:無
  122. * 出口參數:無
  123. * 說       明:無
  124. * 范       例:無
  125. ******************************************************************************************************/
  126. void DAC_Output()
  127. {
  128.         static unsigned int i=0;
  129.         static unsigned int MUL=0;
  130.         write2DAC(Data[i]); //寫入正弦表第i位數據

  131.         dacisr_in++;
  132. //        if(freq>600)
  133. //                i=i+freq/100; //每隔 freq/10 取一個點,相當于倍頻
  134. //        else
  135.         i+=add;//需要耗時較多

  136.         if(i>SAMPLENUM-1)
  137.         i=0; //超出


  138.    }




復制代碼

所有資料51hei提供下載:
DAC7311例程.zip (3.01 KB, 下載次數: 55)




評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:287101 發表于 2019-12-31 10:04 | 只看該作者
程序完全不對
回復

使用道具 舉報

板凳
ID:287101 發表于 2019-12-31 10:05 | 只看該作者
temp左移溢出了,應該是BITF右移
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美视频 亚洲视频 | 9久9久| 亚洲一区二区三区在线免费 | 国产精品资源在线观看 | 精品无码三级在线观看视频 | 一二三四av| 国产毛片久久久久久久久春天 | 亚洲国产成人精品久久久国产成人一区 | 久久久国产精品视频 | 黄色片视频免费 | 美女视频一区二区三区 | 亚洲精品久久久 | 成人国产免费视频 | 日本三级在线视频 | 特级丰满少妇一级aaaa爱毛片 | 久草在线青青草 | 欧美一级片在线看 | 亚洲精品成人av久久 | 免费精品久久久久久中文字幕 | 黑色丝袜三级在线播放 | 欧美一区二区三区 | www久久99 | 亚洲aⅴ | 女朋友的闺蜜3韩国三级 | 毛片黄片免费看 | 亚洲日本中文字幕在线 | 天天操天天拍 | 欧美国产精品久久久 | 日韩免费一区 | 国产一区91精品张津瑜 | 这里精品 | 激情一区二区三区 | 国产三区视频在线观看 | 91欧美精品成人综合在线观看 | 日韩美女一区二区三区在线观看 | 在线看中文字幕 | 亚洲成人免费在线 | 亚洲逼院| av在线免费观看网站 | 国产色视频网站 | 午夜欧美|