新聞中心

        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);


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 弋阳县| 蒙阴县| 繁峙县| 武功县| 北安市| 四子王旗| 琼中| 普洱| 丹凤县| 平江县| 青铜峡市| 瑞昌市| 沧州市| 郑州市| 永吉县| 滕州市| 云安县| 县级市| 和硕县| 商水县| 盐亭县| 盐池县| 沈丘县| 洪洞县| 沿河| 醴陵市| 汝州市| 油尖旺区| 湘阴县| 光泽县| 莆田市| 裕民县| 金寨县| 绥德县| 定陶县| 丰顺县| 潼关县| 甘谷县| 陆河县| 耒阳市| 广昌县|