新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機ADC0804模數轉換學習

        51單片機ADC0804模數轉換學習

        作者: 時間:2012-08-02 來源:網絡 收藏

        while(1) //進入死循環不停地做
        {
        adwr=1; /*-----------------------------------------*/
        _nop_();
        adwr=0; / *啟動AD轉換(根據時序圖來的)*/
        _nop_();
        adwr=1; /*-----------------------------------------*/

        for(a=10;a>0;a--)
        {
        display(A1,A2,A3); //兼具顯示和延時的作用,因為轉換需要經過一定的時間,用這個for循環可以起到延時的作用
        }

        P1=0xff; //讀取P1口之前先給其寫全1

        adrd=1; //rd置1(根據時序圖可知)
        _nop_(); //延時一個機器周期(根據時序圖可知)
        adrd=0; //rd置0(根據時序圖可知)
        _nop_(); //延時一個機器周期
        adval=P1; //A/D轉換后的數據賦給adval
        adrd=1; //轉換后的數字信號(二進制的信號應該已經譯成了十進制了)讀出(也是根據時序圖可知)

        A1=adval/100; /*-----------------------------------------*/
        A2=adval%100/10; /*分離轉換后的十進制數,用來給數碼管顯示*/
        A3=adval%10; /*-----------------------------------------*/

        }
        }
        /*-------------------------------------------------------------------------------*/

        void delayms(uint xms)
        {
        uint i,j;
        for(i=xms;i>0;i--) //i=xms即延時約xms毫秒
        for(j=110;j>0;j--);
        }

        void display(uchar bai,uchar shi,uchar ge)//顯示子函數
        {
        dula=1;
        P0=table[bai];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0x7e;
        wela=0;
        delayms(5);


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 清镇市| 梅河口市| 巩留县| 嵩明县| 泊头市| 健康| 通渭县| 镇远县| 阳江市| 庐江县| 临沭县| 乌拉特后旗| 古田县| 湘西| 长葛市| 手游| 崇左市| 尉犁县| 武平县| 太白县| 通化县| 界首市| 阳新县| 金塔县| SHOW| 康保县| 陈巴尔虎旗| 莱芜市| 周至县| 同德县| 宜兰市| 磴口县| 土默特右旗| 密山市| 仙游县| 社会| 镇康县| 繁昌县| 淳安县| 工布江达县| 金阳县|