|
此款DAC芯片是SOP6封裝的12位的軌對(duì)軌片子,正好補(bǔ)償小容量STM32沒有DAC功能的缺陷,IIC接口,外圍電路很簡(jiǎn)單。輸出函數(shù)直接調(diào)用:MCP4725_WriteData_Voltage(u16 Vout) 這個(gè)函數(shù)。補(bǔ)充一下:最大輸出為5V,用到了電平轉(zhuǎn)換。例如:****
頭文件/初始化文件忽略
****
int main(void)
{
delay_init(); //延時(shí)函數(shù)初始化
MCP4725_Init(); //MCP4725初始化
while(1)
{
MCP4725_WriteData_Voltage(4095); //輸出最大 一般要求在100-4000之間
}
}
制作出來的實(shí)物圖如下:
0DD9FC62F40B2D4A4B217CA40C13BB0A.png (151.78 KB, 下載次數(shù): 134)
下載附件
數(shù)值設(shè)定為2000
2019-1-9 15:21 上傳
4DABAA445F72A96B9A06C62B73B92AE2.png (130.17 KB, 下載次數(shù): 126)
下載附件
數(shù)值設(shè)定為4000
2019-1-9 15:21 上傳
9E69B6A5737373F646B3F35E170FA065.png (149.08 KB, 下載次數(shù): 151)
下載附件
數(shù)值設(shè)定為1000
2019-1-9 15:21 上傳
單片機(jī)源程序如下:
- #include "MCP4725.h"
- #include "delay.h"
- #include "usart.h"
- //初始化IIC接口
- void MCP4725_Init(void)
- {
- IIC_Init();
- }
- //使用快速模式寫命令寫DAC寄存器
- void MCP4725_WriteData_Voltage(u16 Vout) //電壓?jiǎn)挝籱V
- {
- u8 temp;
- u16 Dn;
- Dn = ( 4096 * Vout) / VREF_5V;
- temp = (0x0F00 & Dn) >> 8; //12位數(shù)據(jù)
-
- IIC_Start();
- IIC_Send_Byte(0XC2); //器件尋址,器件代嗎:1100; 地址位A2,A1,A0為 0 , 0 , 1;-> 1100 0010
- IIC_Wait_Ack();
- IIC_Send_Byte(temp);
- IIC_Wait_Ack();
- IIC_Send_Byte(Dn); //將低8位送到DAC寄存器
- IIC_Wait_Ack();
- IIC_Stop();//產(chǎn)生一個(gè)停止條件
- delay_ms(10);
- }
-
- void MCP4725_WriteData_Digital(u16 data) //12位數(shù)字量
- {
- u8 data_H=0,data_L=0;
- data_H = ( 0x0F00 & data) >> 8;
- data_L = 0X00FF & data ;
- IIC_Start();
- IIC_Send_Byte(0XC0); //器件尋址,器件代嗎:1100; 地址位A2,A1,A0為 0 , 0 , 0;-> 1100 0000
- IIC_Wait_Ack();
- IIC_Send_Byte(data_H);
- IIC_Wait_Ack();
- IIC_Send_Byte(data_L);
- IIC_Wait_Ack();
- IIC_Stop();//產(chǎn)生一個(gè)停止條件
- delay_ms(10);
- }
復(fù)制代碼
所有資料51hei提供下載:
MCP4725驅(qū)動(dòng).7z
(183.37 KB, 下載次數(shù): 489)
2019-1-9 18:02 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|