新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)PCF8591AD-DA實(shí)驗(yàn)

        AVR單片機(jī)PCF8591AD-DA實(shí)驗(yàn)

        作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏

        //-----------------------------------------------------------
        void key1() //模擬量輸出按鍵
        {
        static uchar i,j;
        if(k1==0)
        {
        if(i==0)
        {
        j++;
        if(j>3)
        {
        if(k1==0)
        {
        i=1;j=0;
        output_val=output_val+10;
        }
        }
        }
        }
        else
        {
        i=0;
        j=0;
        }
        }
        //---------------------------------------------------
        void key2() //模擬量輸出通道選擇
        {
        static uchar i,j;
        if(k2==0)
        {
        if(i==0)
        {
        j++;
        if(j>3)
        {
        if(k2==0)
        {
        i=1;j=0;
        channel++;
        if(channel>3)channel=0;
        }
        }
        }
        }
        else
        {
        i=0;
        j=0;
        }
        }
        //---------------------------------------
        void key3()
        {
        static uchar i,j;
        if(k3==0)
        {
        if(i==0)
        {
        j++;
        if(j>3)
        {
        if(k3==0)
        {
        i=1;j=0;
        mode=1; //輸入模式
        }
        }
        }
        }
        else
        {
        i=0;
        j=0;
        }
        }
        //---------------------------------
        void key4()
        {
        static uchar i,j;
        if(k4==0)
        {
        if(i==0)
        {
        j++;
        if(j>3)
        {
        if(k4==0)
        {
        i=1;j=0;
        mode=2; //輸出模式
        }
        }
        }
        }
        else
        {
        i=0;
        j=0;
        }
        }
        //-----------------------------------------------------
        void show_in()
        {
        displaychar(0,0,st1); // 第一行顯示輸入狀態(tài)字符串
        displayonechar(14,1,channel+48); //通道號(hào)選擇
        }
        //--------------------------------------------------
        void show_out()
        {
        displaychar(0,0,st2); //第一行顯示輸出狀態(tài)字符串
        displayonechar(14,1, );
        }
        //---------------------------------------------------
        void show_value(uchar k) //顯示數(shù)值
        {
        displayonechar(7,1,((k/100)+48));
        displayonechar(8,1,((k%100/10)+48));
        displayonechar(9,1,((k%10)+48));
        }
        //-----------------------------------
        void main()
        {
        uchar temp; //顯示模擬量值
        port_init();
        init1602();
        ADC_write(0);
        delay(1000);
        while(1)
        {
        if(mode==1)
        {
        temp=ADC_read(channel); //從通道channel讀取模擬量值給變量temp
        delay(3);
        show_in(); //顯示輸入狀態(tài)字符串
        show_value(temp);
        key2(); //模擬輸入通道按鍵
        delay(3);
        }
        if(mode==2)
        {
        ADC_write(output_val); //模擬量輸出值
        show_out(); //顯示模擬量輸出狀態(tài)字符串
        show_value(output_val);
        key1(); //模擬輸出值按鍵
        delay(3);
        }
        key3(); //輸入模式
        key4(); //輸出模式
        }
        }

        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: AVR單片機(jī)PCF8591AD-D

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 永春县| 闸北区| 白玉县| 南投县| 新蔡县| 赫章县| 哈尔滨市| 瓮安县| 阜宁县| 漯河市| 丹寨县| 齐齐哈尔市| 吉木萨尔县| 河池市| 洛浦县| 屏东市| 彰化县| 黄龙县| 昭苏县| 囊谦县| 湟源县| 南澳县| 卫辉市| 土默特右旗| 台南县| 砚山县| 合肥市| 柳林县| 丹凤县| 五大连池市| 土默特左旗| 开阳县| 凉城县| 电白县| 迁安市| 五大连池市| 成都市| 余庆县| 贺兰县| 湟源县| 定日县|