摘要:學校實施目標管理深化內部管理1體制改革,努力創辦高水平有特色的地方綜合性大學。文章以單片機課程中的“8155控制交通燈實驗”為素材,結合小城市交通信號燈的實際,指出傳統設計方案的不足,并從系統總體方案確定、硬件和軟件設計方面詮釋作者在實施個人目標管理過程中基于實驗教學的思考。
關鍵詞:單片機看門狗定時器 集成開發環境IDE
1 引言
為深人學習實踐科學發展觀,我校自2009年開始實施目標管理。學校下達指標到學院,學院職能部門擬訂本部門的專項目標,教師個人在學期開始撰寫個人計劃,年終作為學校對學院和教師個人的考核依據。這種激勵機制變被動工作為創造性地開展工作。2009~8月,學院成功籌辦第24屆中國自動化學會青年學術年會,資深的自動化領域知名院士、海外學者引領教師接觸科技和知識前沿;9月,學院被授權為控制理論與控制工程專業博士點立項建設單位,目前的主要工作是以學科建設為重點的專業建設和進一步完善學院的二級管理體制機制。在這樣的背景下,作者本人以《單片機原理及應用》課程實驗環節中的“8155控制交通燈實驗”為切入點,談談在實施個人目標管理過程中對于交通信號燈設計的構想。
2 現狀分析
調研發現,某些小城市十字路口的交通燈運行控制系統,會出現某一方向全滅而只有另一方向通車或交通燈的指示與既定的狀態切換次序不一致,無法正常指示交通通車的故障現象。這種可靠性待提高和更新的系統,初步分析存在兩方面問題:1、沿用傳統的設計思路,將狀態孤立地賦給輸出端,沒有建立起輸出端之間的相互聯系;2、系統缺乏保護措施,當受到外界環境干擾或由于系統自身長期反復運行導致程序“跑飛”或陷入死循環時,系統無法恢復正常運行。作為嵌入式系統的初學者,作者從系統的總體設計方案、硬件和軟件設計、系統可靠性方面闡述自己的設計思路。
3 任務分析
系統性能及工作原理:起始紅燈亮3秒,作為程序運行的起始,東西方向通車40秒,東西方向左轉彎15秒,南北方向通車40秒,南北方向左轉彎15秒。這樣設計通車順序的好處是:當東西方向對直通車時'不妨礙東西方向的右轉彎,當切換為東西方向左轉彎時,東西向已幾乎不存在右轉彎的車輛。避免了先左轉彎設計中東西方向左轉彎時西側左轉彎的車輛與東側右轉彎車輛同時通車的沖突。提高了十字路口的通車效率。依據以上分析:十字路口四側各需要3只指示燈,且自左向右的次序依次為:左轉向綠燈A、禁止對直方向通車紅燈、對直通車綠燈B。總計需要的交通燈個數為12個,需要由兩個8位的單片機并口承擔。由于交通燈具有這樣的特點:在正常交通通車過程中的任一時刻:東西方向東側和西側的指示燈狀態相同·南北方向南側和北側指示燈狀態相同,所以可以只考慮東西方向東側和南北方向南側,這樣任務就減少了一半。將該兩側的狀態作為一個整體賦給一個并口輸出端,只需要軟件中的一次寫外部I/O端口,就可以實現四側狀態的演示。
4 系統構成
系統在硬件實現上需要以下部件:1、微控制器MCu單片機,負責對整個系統的控制。2、專用的可編程RAM/IO芯片Intel8155擴展單片機的并行接口,擴展的A口和B口作為交通燈信號的輸出端口·3、驅動顯示裝置; 4、帶有看門狗定時器的監控電路監控程序運行4外部硬件電路設計
4.1 可編程擴展并行I/O接口和驅動顯示模塊設計
為了便于系統的功能擴展,我們將單片機固有的并口Pl留出,使用IntelSl55可編程RAM/IO芯片擴展并口A和井口B。驅動顯示裝置選用共陽極連接的紅綠雙色發光二極管,當給輸入端輸入低電平時,將會點亮相應的LED發光二極管。為防止LED導通時的電流損壞并口引腳,我們使用7407芯片進行隔離緩沖,增強端口的驅動能力。
4.2 看門狗、電源復位電路模塊設計
影響系統穩定性的因素是多方面的。我們采取硬件看門狗措施監控系統運行。專用看門狗集成電路芯片IMP813L兼有系統上電、掉電及供電電壓低于門限電壓時復位輸出的功能。其實質是軟件與硬件結合實現的監視技術,若在看門狗規定的時間內沒有檢測到輸入端電平的變化,看門狗就會輸出復位脈沖,復位單片機。
5 軟件設計
5.1 主程序模塊設計
依據系統總體硬件設計方案分配Intel8155的命令/狀態寄存器,數據端口A和B的口地址。依據8155的工作模式確定其命令字各位的狀態,依據程序的功能分配內存單元和寄存器并賦初值。主程序的功能包括:1、賦8155的命令字及各內存單元和寄存器的初值; 2、設定定時器的工作模式和中斷優先級別,賦定時器定時初值并啟動定時器運行,由于同時使用了定時器TO和Tl,為避免兩者發生沖突,設定Tl的優先級別為高。3、主循環程序的功能是將從定時器中斷服務程序中獲得的出口參數送并口輸出端顯示,通過設立位標記20H.O使得主程序的一次循環與一個顯示狀態一致,當位標記滿足條件時,清零標志位并轉人下一輪循環,不滿足條件盹循環等待。
5.2 秒延時程序設計
很多延時程序是通過使用NOP和gDJNZ指令的軟延時來實現的,這對于使用電源的系統是一種消耗。一種行之有效的辦法是使用內部定時器實現對cPu定時。目標硬件提供的TO工作在方式1時為16位定時器/計數器,使用的晶振頻率為11.0592MHz,定時時間最大值~7lms。系統同時使用定時器TO和Tl使軟件程序設計大大得到簡化。將TO工作在方式1,T1工作在外部事件計數方式,TO定時50ms時間到,對P1.0引腳狀態取反,實現該引腳輸出周期為100ms的方波信號。定時器T1對PI.O端口脈沖計滿10個,取反P1.5引腳的狀態,可以使該引腳輸出周期為2秒的方波信號。為確保P1.5引腳輸出的方波半個周期滿1秒。設定P1.0輸出起始狀態為低電平。
5.3 定時器中斷服務程序設計
TO定時中斷服務程序用于定時50ms,井在P1,O端口輸出100ms周期的方波信號;定時器Tl中斷服務程序用于產生1秒定時信號并在P1.5端口輸出周期為2秒的方波信號,同時還實現交通燈狀態保持時間的判斷,此處是利用工作寄存器R6內容加1實現實際記錄的1秒個數,與理論設定的1秒個數相比較,秒個數未到不改變位標記20H.0,秒數到則清空R6并置1位標記20H.0并查表獲得下一個輸出狀態送存儲單元30H,供cPu在主程序中查詢。由于送給主程序的顯示