• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用單片機(jī)系統(tǒng)實(shí)現(xiàn)故障診斷

    用單片機(jī)系統(tǒng)實(shí)現(xiàn)故障診斷

    作者: 時(shí)間:2012-03-19 來源:網(wǎng)絡(luò) 收藏

    4.軟件

    用Franklin C51[4]編制BP程序關(guān)鍵部分如下:
    uchar data i,j;
    float xdata show[17]; //征兆
    float xdata fault[11]; //類型
    float xdata weight[10][17]; //輸入層與隱含層間的權(quán)重
    float xdata vweight[11][10]; //隱含層與輸出層間的權(quán)重
    //這兩種權(quán)重已在PC機(jī)中訓(xùn)練好,燒錄在EPROM中。
    float xdata Inet[10];
    …… //初始化,從采集濾波保存的信號(hào)中讀取show[17]
    for(i=0; i10; i++)
    for(j=0; j17; j++)
    Inet[i] += weight[i][j]*show[j];
    for(i=0; i11; i++)
    for(j=0; j10; j++)
    fault[i] += vweight[i][j] / (1.0 + exp(-Inet[j]));
    for(i=0; i11; i++)
    { if(fault[i] > 0.1)
    …… // 顯示出并調(diào)用通信程序上位機(jī)
    // 進(jìn)行通信告知故障
    }

    通信功能的主要程序如下:
    //這里略去了中斷服務(wù)程序的初始化
    uchar idata transmit_buf[8] = fault1;
    uchar idata receive_buf[8];
    void transmit_data(void)
    { uchar p, i;
    transmit_ready = 0;
    do{ p = 0; //清校驗(yàn)和
    for(i=0; i8; i++)
    { SBUF = transmit_buf[i];//發(fā)送一數(shù)據(jù)
    p += transmit_buf;
    while(TI != 1);
    TI = 0;
    }
    SBUF = p; //發(fā)送校驗(yàn)和
    while(TI == 0); TI = 0;
    while(RI == 0); RI = 0;
    }while (SBUF != 0)//接收不正確,重新發(fā)送
    SM2 = 1; //設(shè)置監(jiān)聽狀態(tài)
    ES = 1; //開串行口中斷
    }
    void receive_data(void)
    {
    uchar p, i;
    receive_ready = 0;
    while(1)
    {
    p=0; //清校驗(yàn)和
    for(i=0; i8; i++)
    {
    while(RI != 1); RI = 0;
    receive_buf[i] = SBUF; //接收一數(shù)據(jù)
    p += receive_buf[i];
    }
    while(RI != 1); RI = 0;
    if(SBUF==p) {SBUF=0x00; break;}
    //校驗(yàn)和相同,發(fā)00
    else{
    SBUF=0xff; //校驗(yàn)和不同,發(fā)0FF
    while(TI == 0); TI = 0;}
    }
    SM2 = 1;
    ES = 1;
    }



    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 通州区| 鲁山县| 兰西县| 宜州市| 高平市| 南川市| 怀宁县| 南乐县| 台南县| 榕江县| 兴文县| 特克斯县| 曲靖市| 黎平县| 阿克苏市| 荣昌县| 忻城县| 萨迦县| 墨江| 翁牛特旗| 柏乡县| 五台县| 营口市| 黄大仙区| 永登县| 许昌市| 闻喜县| 金阳县| 临湘市| 鄂伦春自治旗| 利津县| 呼图壁县| 淅川县| 无极县| 柘荣县| 贵州省| 锡林浩特市| 满城县| 微博| 腾冲县| 驻马店市|