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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PIC16LF6720單片機+AD7714采集+SD卡讀寫程序

[復制鏈接]
跳轉到指定樓層
樓主
PIC16LF6720單片機+AD7714采集程序,采用SPI通訊協議,AD7714本身為6通道24位高精度AD芯片,通過PIC單片機IO口控制AD采集和SD卡通訊,全部原創設計,單片機程序為MPLAB8.7環境編譯通過。

電路原理圖如下:


單片機源程序如下:
  1. #include <msp430x14x.h>
  2. #include "AD7714.h"

  3. extern unsigned char store[NUM_SAMPLES*MAX_REG_LENGTH +30] ;
  4. unsigned char *datapointer = store;
  5. /**************************************************************************
  6. **   
  7.         ----------------------              --------------------------         
  8.        |                      |            |
  9.        |MCLKIN                |            |
  10.        |MCLKOUT               |            |   
  11.        |AIN1                CS|<-----------|P2.7            
  12.        |AIN2              DRDY|----------->|P3.0
  13.        |AIN3                  |<-----------|         MSP430149F
  14.        |AIN4              SCLK|<-----------|P3.3
  15.        |AIN5               DIN|<-----------|P3.1/SIMO
  16.        |AIN6              DOUT|----------->|P3.2/SOMI
  17.        |                      |            |
  18.        |                      |            |
  19.        |  REFIN+     REFIN-   |            |
  20.         ----------------------              -------------------------

  21.                                                    **

  22. **************************************************************************/

  23. /*****************************************
  24. ***寫通信寄存器                        ***
  25. *****************************************/

  26. void Init_Clk(void)
  27. {
  28.     unsigned int i;
  29.     BCSCTL1 = 0X00;        //將寄存器的內容清零
  30.                                         //XT2震蕩器開啟
  31.                                         //LFTX1工作在低頻模式
  32.                                         //ACLK的分頻因子為1
  33.                                        
  34.     do
  35.     {
  36.                 // 清除OSCFault標志
  37.             IFG1 &= ~OFIFG;   
  38.             for (i = 0x20; i > 0; i--);               
  39.     }
  40.     while ((IFG1 & OFIFG) == OFIFG);// 如果OSCFault =1   
  41.                                        
  42.         //將寄存器的內容清零
  43.     BCSCTL2 = 0X00;               
  44.         //MCLK的時鐘源為TX2CLK,分頻因子為1
  45.     BCSCTL2 += SELM1;       
  46.         //SMCLK的時鐘源為TX2CLK,分頻因子為1
  47.     BCSCTL2 += SELS;       
  48. }

  49. void initSPI (void)
  50. {
  51.     UCTL0 = SWRST;                            // 8-bit SPI Master **SWRST**
  52.     UTCTL0 = CKPH | SSEL0 | STC;              // ACLK, 3-pin mode, clock idle low, data valid on rising edge, UCLK delayed
  53.     UBR00 = 0x8F;                             // 0x02: UCLK/8 (1 MHz), works also with 3 and 4
  54.     UBR10 = 0x02;                             // -"-
  55.     UMCTL0 = 0x00;                            // no modulation
  56.     UCTL0 = CHAR | SYNC | MM | SWRST;         // 8-bit SPI Master **SWRST**
  57.     UCTL0 &= ~SWRST;                          // clear SWRST
  58.     ME1 |= USPIE0;                            // Enable USART1 SPI mode
  59.     while (!(IFG1 & UTXIFG0));                // USART1 TX buffer ready (empty)?
  60. }

  61. void Init_AD7714 (void)
  62. {
  63.     P2DIR |= 0x80;                           //initial  port
  64.     P3DIR |= 0x1A;                          
  65.     P3SEL |= 0x0E;                           

  66.     initSPI();
  67.     CS_LOW();                                // 選通AD7714   
  68. }

  69. void Writetoreg(const unsigned char byteword)
  70. {        
  71.     CS_LOW();              /*CS is low*/
  72.     spiSendByte(byteword);
  73.    
  74.     //while(P3IN & BIT0);     /*wait for /DRDY to go low*/
  75.     CS_HIGH();             /*CS is high*/
  76. }

  77. void Read(const unsigned char number)
  78. {
  79.     unsigned char i;
  80.    
  81.    
  82.     //while(P3IN & BIT0);   /*wait for /DRDY to go low*/
  83.     CS_LOW();
  84.     for(i = 0;i < number;i++)
  85.     {
  86.         //while(!(P3IN & BIT0))   /*wait for /DRDY to go low*/
  87.         //{
  88.         *datapointer++ = spiRecByte();
  89.        // }
  90.             
  91.     }
  92. ……………………

  93. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
AD7714+SD.rar (3.89 KB, 下載次數: 24)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:517951 發表于 2021-6-25 15:58 | 只看該作者
我這里還有好幾個AD7714的IC,可以參考樓主的資料搞下電路
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清一区二区三区 | 亚洲高清av| 成人精品一区二区 | 99久久99| 超碰伊人久久 | 亚洲一区在线播放 | 日韩伦理电影免费在线观看 | 日韩三片 | 日韩欧美理论片 | www.99re| 91新视频 | 国产精品久久国产精品99 gif | 免费看日韩视频 | 久久国产精品99久久久久久丝袜 | 精品国产乱码久久久久久影片 | 日韩欧美国产一区二区 | 大陆一级毛片免费视频观看 | 午夜一区| 日本在线视频一区二区 | 亚洲视频欧美视频 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 91精品国产91久久久久久最新 | 国产一区不卡 | 干狠狠| 美女一级毛片 | 亚洲一区二区三区免费在线 | 日韩欧美综合在线视频 | 亚洲福利一区 | 精品乱码一区二区三四区 | 一级黄色生活视频 | 国产成人高清 | 欧美综合视频 | 成人精品视频99在线观看免费 | 国产 日韩 欧美 中文 在线播放 | 国产福利在线 | a黄毛片| 日本黄色大片免费 | 精品国产精品一区二区夜夜嗨 | 91色在线视频 | 成人激情视频 | 日韩精品一二三区 |