新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 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; //選擇負跳變來觸發外中斷
        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電壓

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 饶平县| 科技| 江城| 平遥县| 陇川县| 德清县| 安岳县| 广宁县| 青川县| 琼海市| 博乐市| 家居| 台中县| 富蕴县| 平安县| 华阴市| 兴仁县| 喜德县| 竹溪县| 石台县| 安新县| 兰州市| 保靖县| 阳城县| 射洪县| 高邮市| 特克斯县| 富源县| 诸暨市| 泸溪县| 丹东市| 岑溪市| 于田县| 太原市| 上杭县| 常宁市| 蓬溪县| 米林县| 腾冲县| 瓮安县| 昭平县|