91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-08
  • 語言: 其他
  • 標簽: MSP430G2553??ADS8361??

資源簡介

用MSP430G2553控制額ADS8361串行AD的程序

資源截圖

代碼片段和文件信息

//*******************************************************************
//ADS8361數據采集控制程序
//
//????說明:1.ADS8361最大采樣率為500KSPS16-Bit精度2+2通道同步采樣ADC。
//?????????2.數據從通道A的CH0通道輸入,經運放放大后,輸入MSP430G2553中。
//?????????3.MSP430將數據轉化成電壓值,通過串口發送給上位機顯示。
//*******************************************************************
//
//配置說明:
//????M0=0?M1=0?:工作模式modeI數據兩通道輸入,
//???????????????CHA0/CHA1的數據從DATA?A輸出,CHB0/CHB1的數據從DATA?B輸出
//????A0=0??????:選擇信號從A0和B0通道輸入
//????A0=1???????選擇型號從A1和B1通道輸入
//????CONVST????:從低電平變成電平時,AD由采樣狀態變為保持狀態
//????CLOCK?????:時鐘信號,控制采樣頻率F(Max)=CLOCK/20
//????參考電壓使用內部提供的2.5v
//????串口設置:?波特率:9600,數據位8位,無校驗位,1位停止位
//
//輸入連接:
//???-2.5V-2.5V?-|A0-?????|
//??????????2.5V-|A0+?????|
//???????????????|????????|
//?????????????|-|B0-?????|
//?????????????|-|B0+?????|
//*******************************************************************
//轉換過程:
//???0.??將片選信號拉低
//???1.?將CONVST和RD變成高電平(至少15ns),開始轉換
//???2.?在每個時鐘信號的下降沿讀取數據,時鐘信號的高低電平時間至少40ns
//???3.?時序和輸出數據格式:
//???CONVST信號:?0->1
//???時鐘下降沿:?.1??.2????.3?????.4--------.19?.20
//???數據??????:?0??CH0(0)CHA(0)?DA15-------DA0??0
//???4.?數據含義:輸出的是二進制補碼,最高為是符號位(具體可見數據手冊FIGURE8)
//????????????????當輸入為正時,參考電壓用2.5V時,輸入電壓在0-2.5v波動,數據
//????????????????輸出為0-32767(對應DA14-DA0)。
//????????????????當輸入為負時,輸入電壓在0~-2.5V波動,數據輸出為32767-65535
//????????????????注意:CONVST的上升沿應先于時鐘信號CLOCK下降沿至少10ns或者后于5ns
//*******************************************************************

#include?“MSP430G2553.h“
#include?

//*******************************************************************
//引腳配置:
//
#define??M1_0?????P2OUT?&=~BIT4????//輸出0
#define??M1_1?????P2OUT?|=?BIT4????//輸出1
#define??M0_0?????P2OUT?&=~BIT3
#define??M0_1?????P2OUT?|=?BIT3
#define??A0_0?????P1OUT?&=~BIT4
#define??A0_1?????P1OUT?|=?BIT4
#define??RD_0?????P1OUT?&=~BIT5
#define??RD_1?????P1OUT?|=?BIT5
#define??CLOCK_0??P2OUT?&=~BIT0
#define??CLOCK_1??P2OUT?|=?BIT0

#define??LED1_0???P1OUT?&=~BIT0
#define??LED1_1???P1OUT?|=?BIT0
#define??LED2_0???P1OUT?&=~BIT6
#define??LED2_1???P1OUT?|=?BIT6
//KEY?P1.3

volatile?unsigned?int?Cha=0count=0;
volatile?int?ChaVoltage=0tmp=0;????????//A0通道輸入的電壓值(單位是mV)
char?string[32];

//*******************************************************************
//串口發送字符函數
//*******************************************************************
void?uart_send_ch(unsigned?char?ch)
{
????while(!(IFG2&?UCA0TXIFG));?//查詢發送是否結束
????UCA0TXBUF?=?ch;
????IFG2&=~UCA0TXIFG;?//清除發送一標志位
}

//*******************************************************************
//串口發送字符串函數
//*******************************************************************
void?uart_send_str(char?*str)
{
????for(?;?*str;?)
????{
????????uart_send_ch((unsigned?char)*str);
????????str++;
????}
}

//*******************************************************************
//AD轉換函數調用一次,返回16位數據
//*******************************************************************
unsigned?int?Read_Cha_Ad()
{
????volatile?u

評論

共有 條評論