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

    EEPW首頁 > 汽車電子 > 設計應用 > 智能汽車防撞報警器的設計開發

    智能汽車防撞報警器的設計開發

    作者: 時間:2009-07-16 來源:網絡 收藏

    3 軟件設計
    為了達到前述儀器的主要功能,程序采用C51的功能模塊逐一實現。程序分為主程序(chret.c)和另外三個模塊文件,即display.c,eraseint.a51,transplant.c。
    3.1 主程序
    主程序框圖如圖2所示。

    本文引用地址:http://www.czjhyjcfj.com/article/197868.htm

    本程序對工作過程分了8個狀態:準備狀態(t0~t1)、發射超聲波(t1~t2)、不接收信號時間(t2~t3)、等待聲波反射時間(t3~t4)、測反射的個數(t4~t5)、不計反射波個數,間歇一段時間(t5~t6)、再測波的個數(t6~t7)、間歇時間(t7~t0)。為測得超聲波收發時間差t,換算成距離s和判斷是否報警,程序中使用了兩個函數:
    一個是void t0Interrupt(void)interTupt:1 using 1,它是t0計時中斷函數,通過switch語句處理由工作過程分成的8種狀態。
    另外一個是函數void intInterrupt(void)interrupt2 using 2,它處理反射回來的輸入信號,發生在t3~r4階段,主要是由int1外部中斷來得出時間distanceIn-time,并啟動T1計數器,它用來計算反射波個數。
    通過以上兩個函數可獲得t,后面轉換成s和判斷是否報警便迎刃而解。Chret.c的函數組成:


    主程序對抗干擾采取了3個措施(防止誤報警):
    (1)t4~t5狀態,給反射回來的波定個窗口,對于高于33.3 Hz或小于11.1 Hz的波不計數;
    (2)t6~t7狀態,通過測10 ms來判斷:若是干擾在此時能測到;若是正常反射,此時應根本測不到波;
    (3)對報警判斷兩次(1.3 s會自動清0一次)。
    3.2 串口通信模塊――transplant.c
    主要將主AT89C52的程序中chDis準確無誤傳給顯示部分(位于駕駛室),設計一個通信協議,以保證不收亂碼,即在chDis這個數據前面添加一個報頭數據Head,而后面添加一個檢驗數據check,這樣顯示部分就只在Head出現時才接收,且檢驗正確才顯示。由于測t時,程序的時序已經固定,在此基礎上進行串口通信,就只能夠采用中斷方式,而不能采用查詢方式,否則將出現“死機”現象。
    對于display.c,eraseint.a51這兩個模塊,在主程序中調用即可,功能單一:一個用來顯示數據;一個用來執行iret指令。


    4 結 語
    本文設計的防撞裝置在結構上采用微電腦技術和專用芯片設計,具有結構簡單,小型化的特點,非常適合用于測控系統;在軟件設計上,突出模塊的靈活性,并且C51語言簡潔,大大簡化了編寫程序的工作量。比較現在市場上已有的汽車防撞器,該系統結構緊湊,成本低,可靠性好,通信能力強,能有效地避免汽車相撞事故的發生,具有一定的市場價值。


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 甘谷县| 炎陵县| 常德市| 萨嘎县| 两当县| 烟台市| 太康县| 深泽县| 阳江市| 旬阳县| 景宁| 绥德县| 马山县| 治多县| 石嘴山市| 舞阳县| 肥西县| 申扎县| 崇信县| 成都市| 武陟县| 河源市| 兴国县| 黄山市| 武定县| 德兴市| 罗山县| 宜宾县| 宾阳县| 吉水县| 本溪市| 绥宁县| 大洼县| 砚山县| 武宣县| 贵港市| 通化县| 饶平县| 平潭县| 红原县| 乳山市|