基于A(yíng)Tmage8的打鈴器設計
打鈴器可工作在冬制、夏制和臨時(shí)打鈴三種模式,每種工作模式最多可設置80個(gè)打鈴時(shí)間點(diǎn),基本滿(mǎn)足任何工作場(chǎng)合要求。每個(gè)打鈴時(shí)間點(diǎn)用2個(gè)字節表示,3種工作模式共占480字節的存儲空間,根據工作模式的不同,打鈴時(shí)間分3個(gè)區存放在ATmage8的EEPROM存儲器中。系統上電后,SCM根據模式特征字自動(dòng)判別工作模式,并將對應區間的打鈴數據復制到SCM片內的SRAM區。
2.1 打鈴時(shí)間比較子程序
在主程序中,SCM讀取DS1302的數據后,對秒數據進(jìn)行判斷。當秒單元為“00”時(shí),程序立即調用打鈴時(shí)間比較子程序,否則將不執行該子程序的調用。在打鈴時(shí)間比較子程序中,SCM首先從片內的EEPROM區取出當前工作模式的打鈴次數字,將其復制到Ring cnt計數變量中,然后將當前模式的第一組打鈴時(shí)間與系統時(shí)間進(jìn)行比較,若打鈴時(shí)間與當前時(shí)間相等,置PD0引腳為低電平,打鈴控制電路接通并響鈴,同時(shí)置響鈴標志位為‘1’,程序返回。若不相等,Ring cnt變量減一,繼續比較下一組打鈴時(shí)間,直到時(shí)間相等或Ring cnt變量減為‘0’,則子程序返回。程序流程圖如圖4所示。響鈴標志位置‘1’后,系統將啟動(dòng)15s定時(shí),定時(shí)結束后,PD0置高電平當,電鈴停止工作,同時(shí)將響鈴標志位也置‘0’。
2.2 串口通訊子程序
打鈴器的時(shí)間設定、查詢(xún)和系統設置可通過(guò)鍵盤(pán)操作完成。為了準確快捷地完成打鈴器設置,系統還支持串口操作功能,通過(guò)串行口與PC機進(jìn)行通訊,在上位機上可以完成打鈴器的相關(guān)設置。上位機軟件通過(guò)串行口向打鈴器發(fā)送命令,完成打鈴器參數的設置與查詢(xún),命令格式為:命令字+數據+結束標識,其具體組成如表1所示。在通訊過(guò)程中,SCM在RAM區開(kāi)辟一塊存儲空間接收上位機發(fā)送的數據。每接收到一個(gè)字節都判斷其是否為結束標識,若為結束標識,則停止接收,否則繼續接收。當數據接收完成后,程序便開(kāi)始查詢(xún)命令字狀態(tài),并根據表1中命令字含義進(jìn)行數據的相關(guān)處理。若命令字為查詢(xún)命令字時(shí),則SCM根據命令字含義返回相應的數據至PC,并通過(guò)上位機軟件顯示出來(lái),上位機軟件如圖5所示。
評論