編寫串行 DA 芯片 MCP4921 與單片機的接口程序,實現 周期性 、 鋸齒波、 0-5V 信號的輸出 。
單片機源程序如下:
- //主文件,用于程序數值的輸入
- #include <reg52.h>
- #include <intrins.h>
- #include "delay.h"
- #include "DAC0832.h"
- #include "MCP4921.h"
- #define Max 0xFFFF //其對應的電壓值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);
- }
- }
- }
復制代碼
- //子程序文件,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;
- }
復制代碼
所有資料51hei提供下載:
MCP4921 鋸齒波zy.zip
(175.58 KB, 下載次數: 59)
2020-6-14 20:56 上傳
點擊文件名下載附件
|