軟件部分主要實現如下功能:鍵盤掃描、LED顯示、A/D溫度數據采集、PWM0/1輸出控制、I2C總線時序模擬、DS1337數據讀寫、RF遙控器信號的外部中斷處理。主程序流程如圖5所示。
首先單片機上電運行,進行I/O口狀態、DS1337實時時間等的初始化,然后調用LED顯示子程序顯示當前發生器狀態,同時開中斷。接著進行按鍵掃描,有鍵按下則調用按鍵處理程序。如果此時發生器是運行狀態則要進行A/D轉換,檢測發生器內的溫度,如果溫度高于設定值則調節PWM0使風機加速,以降低溫度,在溫度不高于設定值時則減小風機轉速,這樣使溫度始終穩定在最適合臭氧產生的溫度值左右,此外如果溫度高于安全溫度時發生器會蜂鳴報警并關機。執行A/D程序后,單片機會讀取PA4輸入狀態,以判斷定時時間到,時間到,如果是開機狀態(F=1)則關機,如果是關機狀態(F=0)則開機,以實現定時開關機功能,如此反復循環。
在主程序執行過程中,如果外部中斷發生,則轉去中斷處理程序,在中斷程序中,首先關中斷,然后對遙控器信號或者鍵盤信號進行處理,執行相應的按鍵處理程序,再開中斷返回。