• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 模數(shù)轉(zhuǎn)換DAC0832的應(yīng)用實驗

    模數(shù)轉(zhuǎn)換DAC0832的應(yīng)用實驗

    作者: 時間:2012-11-03 來源:網(wǎng)絡(luò) 收藏

    [實驗任務(wù)]
    用兩個按鍵通過單片機控制的輸出,使OUT端可以輸出0—5V的幅值,頻率為1KHZ的鋸齒波和三角波兩種波形。通上電源后;按下INT1則輸出三角波,在按下INT0輸出鋸齒波。

    [實驗原理]
    ADC0804是8位全MOS 中速D/A,采用R—2RT形電阻解碼網(wǎng)絡(luò),轉(zhuǎn)換結(jié)果為一對差動電流輸出,轉(zhuǎn)換時間大約為1us。使用單電源+5V―+15V供電。參考電壓為-10V-+10V。在此我們直接選擇+5V作為參考電壓。有三種工作方式:直通方式,單緩沖方式,雙緩沖方式;在此我們選擇直通的工作方式,將XFER WR 1WR2 CS管腳全部接數(shù)字地。管腳8接參考電壓,在此我們接的參考電壓是+5V。那么經(jīng)過第一級運放后,輸出電壓將是-5V-0V,在經(jīng)過第二級運放反相放大1倍以后將可以輸出0V—5V了。我們在控制P1口輸出數(shù)據(jù)有規(guī)律的變化將可以產(chǎn)生三角波,鋸齒波,梯型波等波形了。

    [C語言源程序]
    #include AT89X51.H>
    unsigned char keycnt=0;
    unsigned char tcnt=0; //鍵值判斷
    bit sjz=0; //產(chǎn)生三角波時用到的標(biāo)志
    void delayl() //延時子程序
    { unsigned char i,j;
    for(i=20;i>0;i--)
    for(j=248;j>0;j--); }
    void KEY() //按鍵掃描程序
    {
    if(P3_2==0)
    {
    delayl(); //延時跳過按下時的抖動
    if(P3_2==0)
    {
    keycnt=0; //定時器產(chǎn)生鋸齒波標(biāo)志
    TR0=0; //暫時停止波形輸出
    TH0=0x256-40; //對TH0 TL0賦值
    TL0=0x256-40;
    TR0=1; //開始定時,產(chǎn)生鋸齒波
    while(P3_2==0); //如果一直按著鍵,則等待松鍵開
    delayl(); //延時跳過松開后的抖動
    } }
    if(P3_3==0)
    {
    delayl(); //延時跳過按下時的抖動
    if(P3_3==0)
    {
    keycnt=1; //定時器產(chǎn)生三角波標(biāo)志
    TR0=0; //暫時停止波形輸出
    TH0=0x256-40; //對TH0 TL0賦值
    TL0=0x256-40;
    TR0=1; //開始定時 產(chǎn)生三角波
    }
    while(P3_2==0); //如果一直按著鍵,則等待松鍵開
    delayl(); //延時跳過松開后的抖動
    }
    } //請注意寫程序時的格式規(guī)范,此處是為了節(jié)省紙張
    void t0(void) interrupt 1 using 0 //定時中斷服務(wù)函數(shù)
    {
    if(keycnt==0) //產(chǎn)生鋸齒波
    {
    P0=tcnt;
    tcnt=+0x0a; //步進0.2V/一次中斷
    if(tcnt==0xfb)
    {tcnt=0;}
    }
    if(keycnt==1) //產(chǎn)生三角波
    { if(sjz==0)
    {P0=tcnt;
    tcnt=+0x0a;//步進0.2V/一次中斷
    if(tcnt==0xfa)
    {sjz=1;}
    }
    if(sjz==1)
    {
    P0=tcnt;
    tcnt=-0x0a;
    if(tcnt==0)
    {sjz=0;}
    }
    }
    }
    void main(void)
    {
    TMOD=0x02; //定時器工作在方式2
    ET0=1;
    EA=1;
    while(1)
    { KEY(); }
    }

    [硬件電路圖]
    模數(shù)轉(zhuǎn)換DAC0832的應(yīng)用實驗


    c語言相關(guān)文章:c語言教程




    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 耒阳市| 高青县| 温泉县| 台州市| 祁连县| 张家界市| 丰县| 綦江县| 拉萨市| 广灵县| 大厂| 青神县| 内黄县| 海安县| 吉首市| 蓝田县| 昭苏县| 乐至县| 安达市| 云梦县| 浦东新区| 霍城县| 自治县| 新平| 达州市| 偃师市| 亳州市| 蒙城县| 彭水| 确山县| 区。| 萨迦县| 平度市| 高要市| 武汉市| 衡南县| 新干县| 阜南县| 灌云县| 久治县| 句容市|