新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 29. 兩點間溫度控制

        29. 兩點間溫度控制

        作者: 時間:2016-11-18 來源:網絡 收藏
        1.實驗任務
        用可調電阻調節電壓值作為模擬溫度的輸入量,當溫度低于30℃時,發出長嘀報警聲和光報警,當溫度高于60℃時,發出短嘀報警聲和光報警。測量的溫度范圍在0-99℃。
        2.電路原理

        圖4.29.1
        3.系統板上硬件連線
        a)把“單片機系統”區域中的P1.0-P1.7與“動態數碼顯示”區域中的ABCDEFGH端口用8芯排線連接。
        b)把“單片機系統”區域中的P2.0-P2.7與“動態數碼顯示”區域中的S1S2S3S4S5S6S7S8端口用8芯排線連接。
        c)把“單片機系統”區域中的P3.0與“模數轉換模塊”區域中的ST端子用導線相連接。
        d)把“單片機系統”區域中的P3.1與“模數轉換模塊”區域中的OE端子用導線相連接。
        e)把“單片機系統”區域中的P3.2與“模數轉換模塊”區域中的EOC端子用導線相連接。
        f)把“單片機系統”區域中的P3.3與“模數轉換模塊”區域中的CLK端子用導線相連接。
        g)把“模數轉換模塊”區域中的A2A1A0端子用導線連接到“電源模塊”區域中的GND端子上。
        h)把“模數轉換模塊”區域中的IN0端子用導線連接到“三路可調電壓模塊”區域中的VR1端子上。
        i)把“單片機系統”區域中的P0.0-P0.7用8芯排線連接到“模數轉換模塊”區域中的D0D1D2D3D4D5D6D7端子上。
        j)把“單片機系統”區域中的P3.6、P3.7用導線分別連接到“八路發光二極管指示模塊”區域中的L1、L2上。
        k)把“單片機系統”區域中的P3.5用導線連接到“音頻放大模塊”區域中的SPKIN端口上。
        l)把“音頻放大模塊“區域中的SPKOUT插入音頻喇叭。
        4.匯編源程序
        (略)
        5.C語言源程序
        #include
        unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,
        0xef,0xdf,0xbf,0x7f};
        unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
        0x6d,0x7d,0x07,0x7f,0x6f,0x00};
        unsignedchardispbuf[8]={10,10,10,10,10,10,0,0};
        unsignedchardispcount;
        unsignedchargetdata;
        unsignedinttemp;
        unsignedchari;
        sbitST=P3^0;
        sbitOE=P3^1;
        sbitEOC=P3^2;
        sbitCLK=P3^3;
        sbitLED1=P3^6;
        sbitLED2=P3^7;
        sbitSPK=P3^5;
        bitlowflag;
        bithighflag;
        unsignedintcnta;
        unsignedintcntb;
        bitalarmflag;
        voidmain(void)
        {
        ST=0;
        OE=0;
        TMOD=0x12;
        TH0=0x216;
        TL0=0x216;
        TH1=(65536-500)/256;
        TL1=(65536-500)%256;
        TR1=1;
        TR0=1;
        ET0=1;
        ET1=1;
        EA=1;
        ST=1;
        ST=0;
        while(1)
        {
        if((lowflag==1)&&(highflag==0))
        {
        LED1=0;
        LED2=1;
        }
        elseif((highflag==1)&&(lowflag==0))
        {
        LED1=1;
        LED2=0;
        }
        else
        {
        LED1=1;
        LED2=1;
        }
        }
        }
        voidt0(void)interrupt1using0
        {
        CLK=~CLK;
        }
        voidt1(void)interrupt3using0
        {
        TH1=(65536-500)/256;
        TL1=(65536-500)%256;
        if(EOC==1)
        {
        OE=1;
        getdata=P0;
        OE=0;
        temp=getdata*25;
        temp=temp/64;
        i=6;
        dispbuf[0]=10;
        dispbuf[1]=10;
        dispbuf[2]=10;
        dispbuf[3]=10;
        dispbuf[4]=10;
        dispbuf[5]=10;
        dispbuf[6]=0;
        dispbuf[7]=0;
        while(temp/10)
        {
        dispbuf=temp%10;
        temp=temp/10;
        i++;
        }
        dispbuf=temp;
        if(getdata<77)
        {
        lowflag=1;
        highflag=0;
        }
        elseif(getdata>153)
        {
        lowflag=0;
        highflag=1;
        }
        else
        {
        lowflag=0;
        highflag=0;
        }
        ST=1;
        ST=0;
        }
        P1=dispcode[dispbuf[dispcount]];
        P2=dispbitcode[dispcount];
        dispcount++;
        if(dispcount==8)
        {
        dispcount=0;
        }
        if((lowflag==1)&&(highflag==0))
        {
        cnta++;
        if(cnta==800)
        {
        cnta=0;
        alarmflag=~alarmflag;
        }
        if(alarmflag==1)
        {
        SPK=~SPK;
        }
        }
        elseif((lowflag==0)&&(highflag==1))
        {
        cntb++;
        if(cntb==400)
        {
        cntb=0;
        alarmflag=~alarmflag;
        }
        if(alarmflag==1)
        {
        SPK=~SPK;
        }
        }
        else
        {
        alarmflag=0;
        cnta=0;
        cntb=0;
        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 黄梅县| 葫芦岛市| 湄潭县| 建德市| 上虞市| 高碑店市| 娱乐| 孟州市| 禄丰县| 昌邑市| 社会| 隆化县| 罗田县| 晋宁县| 台南县| 宣武区| 库伦旗| 隆化县| 娱乐| 察隅县| 德庆县| 登封市| 山西省| 南投市| 台山市| 永春县| 恭城| 马尔康县| 长丰县| 嘉黎县| 虞城县| 突泉县| 五华县| 安平县| 封丘县| 日土县| 南开区| 屏南县| 巴东县| 比如县| 大埔区|