久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
msp430f5529 MCP4725程序
[打印本頁]
作者:
wubaqian
時間:
2019-9-3 11:00
標題:
msp430f5529 MCP4725程序
本帖最后由 wubaqian 于 2019-9-3 11:06 編輯
//**************************************
//I2C起始信號
//**************************************
void I2C_Start()
{
SDAOUT; //數據線設為輸出方向
SDA1; //拉高數據線
SCL_OUT; //時鐘線設為輸出方向
SCL1; //拉高時鐘線
delayus(5); //延時
SDA0; //產生下降沿
delayus(5); //延時
SCL0; //拉低時鐘線
}
//**************************************
//I2C停止信號
//**************************************
void I2C_Stop()
{
SCL0; //拉低時鐘線,才可以改變數據
delayus(5); //延時
SDAOUT; //SDA設為輸出方向
SDA0; //拉低數據線
SCL1; //拉高時鐘線
delayus(5); //延時
SDA1; //產生上升沿
delayus(5); //延時
}
//**************************************
//I2C發送應答信號
//入口參數:ack (0:ACK 1:NAK)
//**************************************
void I2C_SendACK(uchar ack)
{
SDAOUT; //SDA設為輸出方向
SCL0; //拉低時鐘線后才可以改變數據
if(ack) SDA1;
else SDA0;
// SDA = ack; //寫應答信號
SCL1; //拉高時鐘線
delayus(5); //延時
SCL0; //拉低時鐘線
delayus(5); //延時
}
//**************************************
//I2C接收應答信號
//cy=1,從機發送出的是NACK信號。
//cy=0,從機發送出的是ACK信號。
//**************************************
uchar I2C_RecvACK()
{
uchar cy;
SCL0;//時鐘線拉低,等待變為上升沿取數據
SCL1; //拉高時鐘線,開始讀取數據
SDAIN; //將SDA設為輸入方向
delayus(5); //延時
if(SDADATA)//接受到NACK信號,發送停止信號
{
cy=1;
}
else
{
cy=0;
}
SCL0; //拉低時鐘線,讀取完畢
delayus(5); //延時
SDAOUT; //SDA設為輸出方向
return cy;
}
//**************************************
//向I2C總線發送一個字節數據(寫數據)
//**************************************
void I2C_SendByte(uchar dat)
{
uchar i;
SCL0;//拉低時鐘線,才能改變數據。
for (i=0; i<8; i++)
{
if((dat<<i)&0x80)//讀取最高位的數據,如果最高位為1,則置1,否則置零
{
SDA1;
}
else
{
SDA0;
}
SCL1; //拉高時鐘線,穩定數據
delayus(5); //延時
SCL0; //拉低時鐘線,準備再次改變數據
delayus(5); //延時
}
I2C_RecvACK();
}
//**************************************
//從I2C總線接收一個字節數據
//**************************************
uchar I2C_RecvByte()
{
uchar i;
uchar dat = 0,cy;
SDAIN;
SCL0;//時鐘線拉低,允許數據改變
for (i=0; i<8; i++)
{
dat <<= 1; //從最低位開始接收數據
SCL1; //拉高時鐘線,讀取數據,不允許數據發生變化
delayus(5); //延時
if(SDADATA)
{
cy=1;
}
else
{
cy=0;
}
dat |= cy; //讀數據
SCL0; //拉低時鐘線,允許數據變化
delayus(5); //延時
}
SDAOUT;
return dat;
}
//MCP4725
//使用快速模式寫命令寫DAC寄存器
void MCP4725_WriteData_Voltage(float Vout) //電壓單位V
{
unsigned char temp;
unsigned int Dn;
Dn = ( 4096 * Vout)/5;
temp = (0x0F00 & Dn) >> 8; //12位數據高字節
//iic
I2C_Start(); //起始信號
I2C_SendByte(SlaveAddress); //器件尋址,器件代嗎:1100; 地址位A2,A1,A0為 0 , 1 , 1最后一位為0-> 1100 0010
I2C_SendByte(temp); //發送高字節數據
I2C_SendByte(Dn); //將低8位送到DAC寄存器
I2C_Stop(); //發送停止信號
}
在此只提供部分程序,詳細內容請下載后查看:
另外需要注意:
MCP4725引腳的連接方法:
VCC(VDD):+ 2.7V 至+ 5.5V
SDA:P2.2
SCL:P2.0
GND:接地
硬件連接條件:
1.找到硬件帶芯片的那一面上的三個金屬點,它們分別是GND,A0,VCC。將中間的金屬點連接至VVC金屬點。自此,MCP4725的物理地址變為0xC2。
可使用功能:1.改變MCP4725_WriteData_Voltage(1.21);括號內的數值,即可改變VOUT的輸出電壓。單位為V
proj MCP4725 DAC.zip
2019-9-3 11:00 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
83.99 KB, 下載次數: 54, 下載積分: 黑幣 -5
作者:
szqkfsskk
時間:
2023-12-4 16:33
樓主這個程序是用什么主控啊
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
天天玩夜夜操
|
天堂资源
|
男女啪啪网址
|
国产网站在线免费观看
|
婷婷毛片
|
精品91久久
|
日韩一二三区视频
|
国产在线视频一区二区
|
91精品免费视频
|
国产成人在线一区
|
久久99精品久久久久久国产越南
|
www.日韩欧美
|
久久人人爽人人爽
|
国产成人精品视频在线观看
|
自拍偷拍亚洲欧美
|
精品日本久久久久久久久久
|
操视频网站
|
精品久
|
在线四虎
|
99re66在线观看精品热
|
亚洲国产成人久久久
|
国产精品三级久久久久久电影
|
麻豆久久久久久
|
日韩欧美高清
|
免费观看av网站
|
欧美成视频
|
欧美日韩亚洲一区
|
aⅴ色国产 欧美
|
99精品视频一区二区三区
|
激情欧美一区二区三区中文字幕
|
亚洲视频二区
|
久久久久国产精品一区
|
色播久久
|
日韩在线精品
|
天天爽综合网
|
国产香蕉视频在线播放
|
国产精品综合
|
中文字幕日韩在线观看
|
欧美成人免费在线
|
亚洲一在线
|
亚洲一区二区三区视频
|