新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機—DAC0832(詳細介紹)—06—①

        51單片機—DAC0832(詳細介紹)—06—①

        作者: 時間:2016-11-25 來源:網絡 收藏





        總算好了,程序

        main.c

        //------------------------------------------------------------------------------
        //主文件
        #include"reg52.h"
        #include"macroandconst.h"
        #include"dac0832.h"
        #include"delay.h"
        //------------------------------------------------------------------------------
        sbitk1=P2^7;//控制開關
        //------------------------------------------------------------------------------
        //main
        void main()
        {
        while(1)
        {
        if(k1==0)//如果要一直顯示正弦代碼,那就設置一個標志位~~我就不改了,要睡覺了~
        {
        get_sin(); //取正弦代碼并輸出
        }
        else
        {
        get_jc();//鋸齒波
        }
        }
        }

        DAC0832.c

        //------------------------------------------------------------------------------
        //DAC0832文件的函數,便于調用
        //這個D/A的轉換器,我感覺重點是你選擇好三種方式中的一種,直通方式(較少使用,此方式不能直接與系統的數據總線連接,
        //必須要另加鎖存器的,比較少的使用,但是~~呵呵,51系列的單片機的P0口恰巧就是個A/D~~你懂得~~省事了~
        //所以這個例程里面就果斷用的直通方式
        #include"reg52.h"
        #include"macroandconst.h"
        #include"delay.h"
        #include"intrins.h"
        //------------------------------------------------------------------------------
        #definestep 4//定義鋸齒波自動加4~
        ucharpdataDAC0832;//設置DAC0832的地址,這就是51系列的單片機有A/D的好處
        uchark;//uchar型變量,用于計數
        ucharcodesin[]={0x80,0x8c,0x98,0xa5,0xb0,0xbc,0xc7,0xd1,
        0xda,0xe2,0xea,0xf0,0xf6,0xfa,0xfd,0xff,
        0xff,0xff,0xfd,0xfa,0xf6,0xf0,0xea,0xe3,
        0xda,0xd1,0xc7,0xbc,0xb1,0xa5,0x99,0x8c,
        0x80,0x73,0x67,0x5b,0x4f,0x43,0x39,0x2e,
        0x25,0x1d,0x15,0x0f,0x09,0x05,0x02,0x00,
        0x00,0x00,0x02,0x05,0x09,0x0e,0x15,0x1c,
        0x25,0x2e,0x38,0x43,0x4e,0x5a,0x66,0x73};//正弦代碼表
        //------------------------------------------------------------------------------
        //取正弦代碼并輸出
        void get_sin()
        {
        for(k=0;k<64;k++)
        {
        DAC0832=sin[k];
        delay(1);
        }
        }
        //------------------------------------------------------------------------------
        //取鋸齒代碼并輸出
        void get_jc()
        {
        for(k=0;k<250;k+=step)
        {
        DAC0832=k;
        delay(1);
        }
        }



        上一頁 1 2 下一頁

        關鍵詞: 51單片機DAC083

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 涟水县| 贡嘎县| 桂阳县| 丰县| 当涂县| 道真| 上饶县| 敖汉旗| 永春县| 石河子市| 宜都市| 宾阳县| 陵水| 肃北| 南陵县| 湖州市| 阜阳市| 呼和浩特市| 莒南县| 灵丘县| 喀喇| 田林县| 淮滨县| 杭锦后旗| 保亭| 大余县| 巴塘县| 赣州市| 华池县| 南通市| 涟源市| 普洱| 上蔡县| 达日县| 依兰县| 永新县| 无棣县| 天门市| 陕西省| 兴义市| 长顺县|