摘 要:LNG液位檢測系統需要極高的實時性,我們需要進行特殊的設計,才能滿足高實時性,這樣的檢測才能使管理者第一時間得到正確的信息以及進行相應的管理。本系統軟件設計主要利用時鐘定時器對各個子進程進行管理控制,定時器是一個核心程序,利用對各個子程序定時的不同進行控制程序。
關鍵詞:液面檢測;LNG;軟件設計;定時器
DOI:10.16640/j.cnki.37-1222/t.2017.16.131
1 軟件流程框圖
主函數主要是不同模塊的驅動程序,使得各個模塊通電后可以正常運行,其中主要任務是判斷標志位是否正確置位。而定時器的工作主要是標志位的變動,由于定時器功能的簡單,所以可以125ns進入與出去中斷,實現了高實時性。
本系統設計的主體框圖如圖1,系統開機之后,就會進入死循環中。系統進行不停的掃描,本設計利用了按鍵來實現程序的控制,只有當按鍵按下,才會進入到處理程序,否則直接進入下一環節。當執行到最后一個程序時,返回到開始重新進行循環。
軟件流程,單片機設置5ms的定時,每隔固定時間就檢測有無按鍵按下,如果有按鍵按下就進入到按鍵程序,10ms檢測有按鍵按下就進入報警程序,根據流程以此類推,進行掃描。
根據設計的流程圖和思路,進行主函數的編寫,由上圖可知,主函數主要分為6個模塊,分別為初始化程序,數據采集處理,報警控制,顯示程序,串口通信程序和按鍵掃描程序。
2 初始化程序
初始化程序主要目的是進行檢測之前的準備工作,大部分都是硬件的初始化和相關寄存器的置位。本設計中初始化程序主要進行時鐘源配置,I/O端口的初始化,定時器的設定,數模轉換芯片的初始化以及串口的配置。
3 中斷處理程序
單片機中有許多定時器,本文采用定時器A,利用定時器中斷進行掃描,實現主函數里的工作時序,由于本系統硬件采用8MHZ的晶振,根據計算,當數值到達40000時,便是經過5ms,根據程序流圖可知我們是5ms中斷一次。程序如下
4 數據采集子程序
MF430單片機自帶ADC模塊,采集轉換電路傳輸的信號,但是ADC的使用需要一定的初始化,否則不能正常運行。程序如下:
上述程序中設置采樣時間為33us,采集模式設置為單通道多次采樣,開啟采集允許和轉換允許.
5 總結
本文主要給出了軟件設計的總體框架,和比較重要的子程序設計,講述了軟件通過不斷的掃描實現數據的處理和顯示報警等。
作者簡介:石妍(1997-),女,陜西富平人,本科,研究方向:單片機。endprint