1. 51單片機使用DAC輸出三角波形,並在數碼管上顯示數值的問題可不可以給個c程序
摘要 正在整理,稍等
2. 51單片機和12位DAC型號和編程
tlc5615
3. 怎樣編寫基於C51單片機的DAC902數模轉換的C語言程序,求解!
依照波形來做就可以了,先把資料准備好,然後給一個由低到高的時鍾信號就可以了,再來把時鍾脈沖清為低電平,資料改變就可以了
4. 單片機使用DAC的問題
dac使用4.1v參考電壓,這樣1lsb差不多就是1mv,實際上有4.096v參考電壓源器件使用的。
這樣的話向dac寫入多少的數字,就能輸出對應的電壓,當dac輸入2550時,輸出的電壓就是2.55v,用運算放大器放大10倍得到25.5v,然後驅動lm2576或者lm317。
dac不一定要並行的,用串列的就可以,比如tlc5618,這樣可以節省不少埠。
5. PIC16系列單片機控制外圍ADC和DAC晶元的C語言編程步驟
TIME0應該是時間/計數器中斷, DAC和ADC的的同步性要看晶元類型,不同的晶元操作不一樣
6. 五一單片機與數模轉換晶元dac 0832的硬體連接如圖編寫輸出鋸齒波的程序
可以這樣,DAC0832是根據輸入的數字量,輸出相應的模擬量,鋸齒波是有規律的模擬量。
單片機內部程序可以通過演算法(規律計算或數組),定時生成一個數字量發送到DAC0832,使其輸出相應模擬量,即可。
例如鋸齒波是從0~3V,將0~3V分為若干個點(解析度),定時輸出每個點的數字量。
7. STM32單片機DA程序
//DAC通道1輸出初始化
void Dac1_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
DAC_InitTypeDef DAC_InitType;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE ); //使能PORTA通道時鍾
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE ); //使能DAC通道時鍾
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; // 埠配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模擬輸入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_4) ;//PA.4 輸出高
DAC_InitType.DAC_Trigger=DAC_Trigger_None; //不使用觸發功能 TEN1=0
DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None;//不使用波形發生
DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;//屏蔽、幅值設置
DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable ; //DAC1輸出緩存關閉 BOFF1=1
DAC_Init(DAC_Channel_1,&DAC_InitType); //初始化DAC通道1
DAC_Cmd(DAC_Channel_1, ENABLE); //使能DAC1
DAC_SetChannel1Data(DAC_Align_12b_R, 0); //12位右對齊數據格式設置DAC值
}
//設置通道1輸出電壓
//vol:0~3300,代表0~3.3V
void Dac1_Set_Vol(u16 vol)
{
float temp=vol;
temp/=1000;
temp=temp*4096/3.3;
DAC_SetChannel1Data(DAC_Align_12b_R,temp);//12位右對齊數據格式設置DAC值
}
8. DAC7311怎麼編程,希望有程序,就是和單片機通信,還有它的時鍾埠應該接什麼時鍾
這種晶元,我同類的貌似用過,很簡單的,就是IO口模擬時序,基本是串列控制,區別也就是串列輸入還是並行輸入而已,當然並行的快很多,但是肯定性能高。基本就是時鍾線,數據線,還有片選線,安裝時序來編寫,8個clk完成一個位元組的傳輸,建議你搜索網路文庫,電子設計競賽msp430f5438,裡面有這種類型的AD和DA的編程。時鍾都是你模擬的。
9. 函數信號發生器用單片機和DAC032做的程序
程序很簡單的,關鍵在寫程序的時候要注意DAC0832的保持時間和轉換速度。
建議你先弄個單緩沖或者直接控制的。
接著控制的會比較簡單:
就是DAC8032
1,2,3,10,17,18腳GND。20,19,8腳VCC
能明白吧!程序自己寫比較好,這樣能學到更多東西
給你點參考,這個程序能讓你對它的工作方式更熟悉!!
ORG
0000H
MAIN:MOV
A,P1
MOV
R0,A
;設置高電平
MOV
R1,#00H
;設置低電平
LCALL
BOXING
SJMP
MAIN
BOXING:
JNB
P1.0,SANJIAO
;P1.0控制三角波的輸出
JNB
P1.1,JUXING
;P1.1控制矩形波的輸出
JNB
P1.2,JUCHI
;P1.2控制鋸齒波的輸出
RET
;三角波
SANJIAO:
MOV
DPTR,#7FFFH
;
選中DA0832
MOV
A,#00H
UP1:
MOVX
@DPTR,A
;
向0832輸出數據
INC
A
JNZ
UP1
;
A=!0
跳轉反之順序執行
DOWN1:DEC
A
MOVX
@DPTR,A
JNZ
DOWN1
RET
;矩形波
JUXING:
MOV
DPTR,#7FFFH
LP:MOV
A,R0
;設置輸出上限
MOVX
@DPTR,A
LCALL
DEL_H
;調高電平延時程序
MOV
A,R1
MOVX
@DPTR,A
LCALL
DEL_L
;調低電平延時程序
RET
;鋸齒波
JUCHI:
MOV
DPTR,#7FFFH
MOV
A,#00H
LOOP:MOVX
@DPTR,A
INC
A
;SJMP
LOOP
RET
;延時程序
DEL_H:
;高電平
MOV
R7,#250
DE:MOV
R6,#4
DJNZ
R6,$
DJNZ
R7,DE
RET
DEL_L:
;低電平
MOV
R7,#250
DEL:MOV
R6,#4
DJNZ
R6,$
DJNZ
R7,DE
RET
;
END