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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

TLV5618 DA轉(zhuǎn)換驅(qū)動(dòng)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71407 發(fā)表于 2015-1-1 17:25 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
下面是基于STC系列單片機(jī)的TLV5618驅(qū)動(dòng)程序,該程序的硬件是基于5V供電的,參考電壓為2.5V,編譯環(huán)境為KEIL C,已調(diào)試成功。
  1. //=====================================================================
  2. //                    TLV5618 DA轉(zhuǎn)換驅(qū)動(dòng)程序
  3. //硬件連接: DIN ——P0^0;  
  4. //          SCLK ——P0^1;   
  5. //          CS   ——P0^2;      
  6. //          VDD --邏輯電源(+5V)
  7. //          AGND --GND(0V)

  8. //說明   參考電壓為0—3.5V,本程序?yàn)?.5V
  9. //       輸出模擬電壓為:V=2*Vref*(dignum/0x1000) 注:dignum后四位為:0x0000~~0x0fff
  10. //注意: 所需輸入的數(shù)字信號(hào)值為16位數(shù),其中D15~~D12為特殊位設(shè)置,D11~~D0為數(shù)據(jù)位000~~fff


  11. #include <STC89C51RC.h>      //STC單片機(jī)頭文件
  12. #include <intrins.h>
  13. #define uint unsigned int
  14. #define uchar unsigned char
  15. #define Channal_A     1    //通道A
  16. #define Channal_B     2    //通道B
  17. #define Channal_AB    3    //通道A&B
  18. //**************************一下為函數(shù)聲明修**************************************
  19. static void DA_conver(uint Dignum);
  20. extern void Write_A_B(uint Data_A,uint Data_B,uchar Channal,bit Model);
  21. //**************************修改硬件時(shí)要修改的部分********************************
  22. sbit DIN   = P0^0;     //數(shù)據(jù)輸入端
  23. sbit SCLK = P0^1;     //時(shí)鐘信號(hào)
  24. sbit CS    = P0^2;     //片選輸入端,低電平有效
  25. //=================================================================
  26. // 函數(shù)名稱 :void DA_conver(uint Dignum)
  27. // 函數(shù)功能 :進(jìn)行DA轉(zhuǎn)換
  28. // 入口參數(shù) :Dignum:根據(jù)說明設(shè)置轉(zhuǎn)化數(shù)據(jù).頭四位為特殊位用于選擇轉(zhuǎn)化方式,
  29. //            以及用于通道選擇.請(qǐng)自行設(shè)置.后12位為需要轉(zhuǎn)換的值
  30. // 出口參數(shù) :無
  31. //=================================================================
  32. void DA_conver(uint Dignum)
  33. {
  34. uint Dig=0;
  35. uchar i=0;
  36. SCLK=1;
  37. CS=0;           //片選有效
  38. for(i=0;i<16;i++)   //寫入16為Bit的控制位和數(shù)據(jù)
  39. {
  40.    Dig=Dignum&0x8000;
  41.    if(Dig)
  42.    {
  43.     DIN=1;
  44.    }
  45.    else
  46.    {
  47.     DIN=0;
  48.    }
  49.    SCLK=0;
  50.    _nop_();
  51.    Dignum<<=1;
  52.    SCLK=1;
  53.    _nop_();
  54. }
  55. SCLK=1;
  56. CS=1;       //片選無效
  57. }
  58. //=================================================================
  59. // 函數(shù)名稱 :void Write_A_B(uint Data_A,uint Data_B,uchar Channal,bit Model)
  60. // 函數(shù)功能 :模式、通道選擇并進(jìn)行DA轉(zhuǎn)換
  61. // 入口參數(shù) :Data_A:A通道轉(zhuǎn)換的電壓值
  62. //            Data_B:B通道轉(zhuǎn)換的電壓值
  63. //            Channal:通道選擇,其值為Channal_A,Channal_B,或Channal_AB
  64. //            Model:速度控制位 0:slow mode 1:fast mode
  65. // 出口參數(shù) :無
  66. // 說明:     Data_A,Data_B的范圍為:0—0x0fff
  67. //            本程序如果只需要一個(gè)通道時(shí),另外一個(gè)通道的值可任意,但是不能缺省
  68. //=================================================================
  69. void Write_A_B(uint Data_A,uint Data_B,uchar Channal,bit Model)
  70. {
  71. uint Temp;
  72. if(Model)
  73. {
  74.    Temp=0x4000;
  75. }
  76. else
  77.     {
  78.    Temp=0x0000;
  79. }
  80. switch(Channal)
  81. {
  82.     case Channal_A:         //A通道
  83.          DA_conver(Temp|0x8000|(0x0fff&Data_A));
  84.       break;
  85.     case Channal_B:       //B通道
  86.          DA_conver(Temp|0x0000|(0x0fff&Data_B));
  87.     break;
  88.     case Channal_AB:
  89.          DA_conver(Temp|0x1000|(0x0fff&Data_B));        //A&B通道
  90.          DA_conver(Temp|0x8000|(0x0fff&Data_A));
  91.     break;
  92.     default:
  93.          break;
  94. }
  95. }
  96. //=================================================================
  97. // 函數(shù)名稱 :int main(void)
  98. // 函數(shù)功能 :主函數(shù),無實(shí)際意義,僅測(cè)試TLV5618用
  99. // 入口參數(shù) :無 1-A;2-B;3-A&B
  100. // 出口參數(shù) :無
  101. //=================================================================
  102. int main(void)
  103. {
  104.    Write_A_B(0x0355,0x0000,Channal_A,0);   //測(cè)量A通道
  105.    Write_A_B(0x0000,0x0600,Channal_B,1);   //測(cè)量B通道
  106. // Write_A_B(0x0504,0x0a47,Channal_AB,1);   //測(cè)量AB通道,測(cè)量時(shí)需屏蔽上面兩句
  107.    while(1);
  108. }
復(fù)制代碼



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

使用道具 舉報(bào)

沙發(fā)
ID:382697 發(fā)表于 2018-8-6 21:00 | 只看該作者
大佬用過tlv2548這款ad芯片嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲www.| 四虎伊人 | 99精品一区二区三区 | 综合国产 | 欧美视频中文字幕 | 欧美精品三区 | 久久综合成人精品亚洲另类欧美 | 久久综合亚洲 | 成人午夜精品 | 精品一区二区三区在线观看 | 伊人色综合久久久天天蜜桃 | 日韩二三区| 久久人爽 | 欧美成人免费在线视频 | 精品一区二区三区四区五区 | 日韩精品一区中文字幕 | 久久精品国产久精国产 | 国产日韩欧美精品一区二区三区 | 国产麻豆乱码精品一区二区三区 | 久草网站 | 欧美高清视频一区 | 97国产在线视频 | 九九热免费看 | 在线成人| 精品一区二区不卡 | 欧美日韩亚洲一区 | 91xxx在线观看 | 男女视频免费 | 亚洲精品9999久久久久 | 成人激情视频免费观看 | 久久激情网 | 久久综合九九 | 欧美激情99| 337p日本欧洲亚洲大胆 | 欧美日韩一区二区在线 | 久久天天躁狠狠躁夜夜躁2014 | 欧美一区二区久久 | 麻豆成人在线视频 | 欧美精品欧美精品系列 | 中文字幕日韩av | 国产欧美视频一区 |