沈矗 孫妍 沈陽工學院
計數(shù)器是一種常見的運算邏輯電路,它會對脈沖個數(shù)進行統(tǒng)計和控制。當下,計數(shù)器的應用十分廣泛,例如在計算機的控制器中對指令地址進行計數(shù),在運算器中作乘除法運算時記下加減法次數(shù)等等??萍荚诓粩噙M步,計數(shù)器的控制系統(tǒng)也在不斷更新?lián)Q代,本次將利用AT89C51 單片機對計數(shù)器的控制系統(tǒng)進行設計。使其具有操作方便,維修便捷,簡易,成本低廉等優(yōu)點。
一、計數(shù)器的設計思路
該時鐘以AT89C51 為主控芯片,采用C 語言進行編程設計。由于計數(shù)器的計數(shù)范圍為0—99,可以用2 位LED 數(shù)碼管來顯示計數(shù)值,采用動態(tài)顯示方式,P2 口做段選口,輸出段碼,P3 口做位選口,輸出位選信號,P1 口接按鍵。在軟件設計上,設置一個軟件計數(shù)器,用來統(tǒng)計按鍵的次數(shù),然后將計數(shù)值的個位、十位所對應的段碼送到LED 數(shù)碼管中顯示。
二、計數(shù)器的電路設計
計數(shù)器的硬件部分主要包括電容、電阻、電源、按鍵、數(shù)碼管、導線、開關等,反映在ISIS 7 professional 仿真軟件中則是:RES、AT89C51、BUTTON、CAP、CAP-ELEC、CRYSTAL、7SEG-MPX2-CA等。我們需對電路進行模擬仿真,如果模擬成功,然后在PCB 電路板上搭線、焊接、連接電路。如果模擬失敗則需重新設計電路,再依次進行上述流程。
三、計數(shù)器的程序設計
首先對兩位數(shù)碼管的數(shù)字分別命名并設置起始數(shù)值與終止值,其次對個位與十位數(shù)字設置顯示函數(shù),然后再設置按鍵流程,按鍵釋放時,刷新數(shù)碼管,初次判斷按鍵是否按住時,設計加函數(shù)并加一個延時函數(shù),再次判斷按鍵按住時,依次取出十位、取出個位,最后與之前設計思路一樣對另外兩個按鈕設置減函數(shù)和清零函數(shù)。將所有程序語言輸入Keil uVision4 軟件進行模擬運行,檢測成功以后導入單片機。
四、計數(shù)器的總體測試
在PCB 板上焊接一個個電氣元件,符合走線方便的原則。插上單片機芯片,按下第一個按鍵,觀察計數(shù)器數(shù)值是否累加,按下第二個按鍵,觀察計數(shù)器數(shù)值是否遞減,按下第三個按鍵觀察數(shù)碼管是否清零。

圖1 仿真圖

圖2
五、模擬仿真圖(見圖1)
六、程序流程圖(見圖2)
七、小結
本文討論了基于AT89C51 單片機的計數(shù)器設計,該設計體現(xiàn)了AT89C51 的可控性與簡易性等諸多特點。AT89C51 單片機操作簡單,便于維護且穩(wěn)定性很高,它是作為連接電路與程序的理想中端。但它亦有不少缺點,其中之一就是應對復雜功能設計時設計較為繁瑣,這些問題我們值得考慮。本次設計是在老師的指導下完成的,我明白自身還存在很多不足,以后的學習中,我們將學到不同的單片機原理,希望可以不斷進步。作為一個初學者,筆者對AT89C51 單片機的掌握程度比較有限,本文可能存在一些疏漏的地方,虛心誠受廣大同仁和各位老師的批評指正。