標(biāo)題:
單片機(jī)+MCP4921實現(xiàn)DA轉(zhuǎn)換的Proteus的仿真程序
[打印本頁]
作者:
dankey
時間:
2020-6-14 20:56
標(biāo)題:
單片機(jī)+MCP4921實現(xiàn)DA轉(zhuǎn)換的Proteus的仿真程序
編寫串行 DA 芯片 MCP4921 與單片機(jī)的接口程序,實現(xiàn) 周期性 、 鋸齒波、 0-5V 信號的輸出 。
51hei.png
(69.28 KB, 下載次數(shù): 60)
下載附件
2020-6-14 22:23 上傳
單片機(jī)源程序如下:
//主文件,用于程序數(shù)值的輸入
#include <reg52.h>
#include <intrins.h>
#include "delay.h"
#include "DAC0832.h"
#include "MCP4921.h"
#define Max 0xFFFF //其對應(yīng)的電壓值5V
void main()
{
unsigned int Data1,Data2;
int IniVa;//定義初值
while(1)
{
//令輸出為鋸齒波輸出
for(IniVa = 0;IniVa < Max; IniVa++)
{
Data1 = IniVa;
//Data2 = Max-IniVa;
//DA2channel(Data1, Data2);
MCP4921(Data1);
}
}
}
復(fù)制代碼
//子程序文件,MCP4921的SPI輸入時序
#include <reg52.h>
#include <intrins.h>
#include "delay.h"
#include "MCP4921.h"
void MCP4921(unsigned int DAdata)
{
unsigned int DAdataout;
unsigned char i;
DAdataout = (DAdata | 0x3000);
CS = 1;
SCK = 0;
LDAC = 1;
delay10us();
CS = 0;
for(i=0;i<=15;i++)
{
SI = DAdataout >> (15 - i)&0x0001;//移位,將最低位取出,高位賦值為0
delay10us();
SCK = 1;
delay10us();
SCK = 0;
}
delay10us();
CS = 1;
LDAC = 0;
delay10us();
LDAC = 1;
}
復(fù)制代碼
所有資料51hei提供下載:
MCP4921 鋸齒波zy.zip
(175.58 KB, 下載次數(shù): 59)
2020-6-14 20:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
linuxcso
時間:
2020-12-9 22:37
大佬,能加個sd卡播放wav音樂嗎。proteus 自帶arduino例子有一個 wave 模塊(sd+mcp4921)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1