
摘 要:在日異月新的二十一世紀,社會對大學生的素質要求越來越高,大學生是社會發展的主力軍,只有不對提高自己,創新科技才能跟上社會的發展,時代的要求。如果說社會是大海理想是小舟,理想信念就是引航的燈塔和推進的風帆。基于這些原因,這次由本人將設計與制作一個簡易計算機。
關鍵詞:創新;計算機;設計;制作
用單片機設計并制作一簡易計算器。要求能實現兩位十進制數的加、減、乘、除運算;能顯示負數;小數點后的數據四舍五入處理,若除以零,可以報警(如紅燈亮)。
電路的核心是AT89C52單片機,其內部帶有4kb的FLASHROM,無須擴展程序存儲器;電腦無很多的運算和暫存儲數據,現有的128B片內可以滿足s要求,不用擴展外部RAM,系統配了5位的led顯示和4乘以4的鍵盤,我們采用P1口接陣列按鍵盤,五個并/串移位寄存器芯片74LS164頭尾相連,每一片的并行輸出作為led管的段碼控制驅動信號,讓P3.6,P3.7串行靜態顯示模塊的CLK,DIN端。系統的全部采用查表法,把數碼管的段碼定義與按鍵的鍵碼定義分開以代碼的模式送入led管與鍵盤中。這樣我們就構成了計算機的電路組成部分。
電路由鍵盤掃描模塊,89C52主控模塊,LED顯示模塊,發聲模塊組成。鍵盤掃描模塊由17個獨立式鍵盤組成,主控模塊由89C52單片機、復位及晶振模塊組成,LED顯示模塊由一個4位7段數碼管和一個2位7段數碼管組成,發聲模塊由一個蜂鳴片組成。
根據要求,聲音開關使用外部中斷1來處理,當按下聲音開關時,觸發單片機進入中斷1,在中斷程序里,通過對聲音開關標志位取反,在按鍵掃描過程中,加入對聲音標志位的判斷,若為1,則發出聲音,即可實現聲音提示功能。
要進行數據的計算就必須先進行數據的輸入,也就必須確定按鍵輸入的數值是什么,這就需要讀一鍵盤進行掃描,從而確定究竟是哪個鍵按下。對鍵盤的掃描,這里采用行列掃描的方法來完成對鍵盤的掃描。原理就是先確定按鍵在哪一行,接著再確定哪一列,這樣就可以知道是哪個鍵被按下了。
主模塊的設計如圖:
調試過程中出現的問題及解決辦法:輸入數據在內部進行加減乘除時,加法乘法沒有錯誤,但減法除法因為一次輸出和二次輸入數據的位置關系導致第二次運作時出現錯誤,最后我們調整了儲存數據的變量,這個問題順利的解決了,最后一個問題困擾我們最久,甚至導致調試過程一度中止,由于我們是6位數的運算,在數字顯示過程中,出現了跳位現象,比如你輸入123,當輸如12時,數碼管正常顯示12,但將3輸入后,數碼管顯示變為了312,由于一直找不出原因,這個問題一直得不到解決,最后我嘗試改變display( )函數和大循環中函數的位置循序后才能正常顯示,但這從理論上說不通,最后得出可能是受到延時函數delay( )的延時影響,導致數碼管動態顯示位碼出錯。
首先感謝學校和老師安排這一次的單片機課程設計,在大學期間,做這類課程設計是非常有必要的,特別是對我們大三的學生,有利于我們將理論與實踐聯系起來。在兩周的課程設計時間里,經過努力學習,查閱了很多資料和文獻,終于完成了基于單片機的計算器的設計。在設計過程中,不僅鞏固了以前學過的理論知識,而且還學會了很多書本上沒有的知識,最重要的是把理論和實際結合起來,提高了自己的動手和獨立思考能力。在本設計中,由于時間和能力有限,難免會有不足的地方還指望老師批評指正,以便在以后的設計中改正。這次課程設計得以順利完成,少不了老師的指導和周圍同學的指教。
[參考文獻]
[1]吳寧.80x86/Pentiun微型計算機原理及應用[M].北京:電子出版社,2004:1-249.
[2]蔡美琴.MCS-51系列單片機系統及其應用[M].北京:高等教育出版社,2003:1-169.
[3]肖金球.單片機原理與接口技術[M].北京:清華大學出版社,2004:1-323.
[4]郭天祥.新概念51單片機C語音教程:入門,提高,開發拓展全攻略.北京:電子工業出版社,2009 P22.
[5])譚浩強.C語言設計(第三版).北京:清華大學出版社,2005:1-378.