㈠ adc0832程序為啥輸出的是1---255,怎麼才能輸出0--255
unsigned char A_D(unsigned char Ch)
{
unsigned char i,dat;
CS=1; //一個轉換周期開始
CLK=0; //為第一個脈沖作準備
CS=0; //CS置0,片選有效
DIO=1; //DIO置1,規定的起始信號
CLK=1; //第一個脈沖
CLK=0; //第一個脈沖的下降沿,此前DIO必須是高電平
DIO=1; //DIO置1, 通道選擇信號
CLK=1; //第二個脈沖,第2、3個脈沖下沉之前,DI必須跟別輸入兩位數據用於選擇通道,這里選通道CH0
CLK=0; //第二個脈沖下降沿
DIO=Ch; //DI置0,選擇通道0
CLK=1; //第三個脈沖
CLK=0; //第三個脈沖下降沿
DIO=1; //第三個脈沖下沉之後,輸入端DIO失去作用,應置1
CLK=1; //第四個脈沖
for(i=0;i<8;i++) //高位在前
{
CLK=1; //第四個脈沖
CLK=0;
dat<<=1; //將下面儲存的低位數據向右移
dat|=(unsigned char)DIO; //將輸出數據DIO通過或運算儲存在dat最低位
}
CS=1; //片選無效
return dat; //將讀書的數據返回
}
㈡ 五一單片機與數模轉換晶元dac 0832的硬體連接如圖編寫輸出鋸齒波的程序
可以這樣,DAC0832是根據輸入的數字量,輸出相應的模擬量,鋸齒波是有規律的模擬量。
單片機內部程序可以通過演算法(規律計算或數組),定時生成一個數字量發送到DAC0832,使其輸出相應模擬量,即可。
例如鋸齒波是從0~3V,將0~3V分為若干個點(解析度),定時輸出每個點的數字量。