新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > DA轉換-15~15v電壓源設計

        DA轉換-15~15v電壓源設計

        作者: 時間:2016-11-17 來源:網絡 收藏
        #include
        #include
        #include
        #define uchar unsigned char
        #define uint unsigned int
        float num=51;
        float temp;
        uchar val;
        uchar aa[4];

        unsigned char code disp_code[]={
        0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
        0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xff};//數碼管顯示
        /**********************************************************

        延時子函數

        **********************************************************/
        void delayms(uint ms)
        {
        uchar t;
        while(ms--)
        {
        for(t = 0; t < 120; t++);
        }
        }



        /******************************************************************
        函數功能:顯示計數次數的子程序
        入口參數:x
        ********************************************************************/
        void Display(void)
        { uchar i;
        P2=0xfe ;
        for(i=0;i<4;i++)
        { P1=disp_code[aa[i]];
        if(P2==0xfb)
        P1=disp_code[aa[i]]&0x7f;
        delayms(5);
        P2=_crol_(P2,1);
        }

        }

        /*******************************************
        函數功能:主函數
        ******************************************/
        void main(void)
        {
        EA=1; //開放總中斷
        EX0=EX1=1; //允許使用外中斷
        IT0=IT1=1; //選擇負跳變來觸發(fā)外中斷
        temp=num/8.5;
        val=(uchar)temp;
        if(val<15)
        {aa[0]=16;val=15-val;}
        else {aa[0]=17;val=val-15;}
        aa[1]=val/10;
        if (aa[1]==0)
        aa[1]=17;
        aa[2]=val%10;
        aa[3]=0;
        P0=(uchar)num;
        while(1)
        Display();

        }

        void int0(void) interrupt 0 //外中斷0的中斷編號為0
        {
        if(num==0)
        num=num+8.5;
        num=num-8.5;
        temp=num/8.5;
        val=(uchar)temp;
        if(val<15)
        {aa[0]=16;val=15-val;}
        else {aa[0]=17;val=val-15;}
        aa[1]=val/10;
        if (aa[1]==0)
        aa[1]=17;
        aa[2]=val%10;
        aa[3]=0;
        }
        void int1(void) interrupt 2 //外中斷1的中斷編號為0
        {

        if(num==255)
        num=num-8.5;
        num=num+8.5;
        temp=num/8.5;
        val=(uchar)temp;
        if(val<15)
        {aa[0]=16;val=15-val;}
        else {aa[0]=17;val=val-15;}
        aa[1]=val/10;
        if (aa[1]==0)
        aa[1]=17;
        aa[2]=val%10;
        aa[3]=0;
        P0=(uchar)num;
        }


        關鍵詞: DA轉換-15~15v電壓

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 九龙城区| 周至县| 郑州市| 河东区| 宣城市| 科技| 鹿邑县| 清河县| 湖北省| 梁河县| 洞头县| 社旗县| 安仁县| 永德县| 宣威市| 江孜县| 疏勒县| 德保县| 南通市| 榆社县| 库尔勒市| 东乡族自治县| 汪清县| 禄丰县| 招远市| 阿克苏市| 上思县| 天镇县| 遂川县| 大厂| 铁岭县| 罗甸县| 西贡区| 襄汾县| 繁昌县| 新泰市| 邵阳市| 内乡县| 汉川市| 建瓯市| 博白县|