摘 要:單片微型計算機(簡稱單片機)作為微型計算機家族的一員,以其獨特的結構,良好的穩定性,便宜的價格在嵌入式領域廣泛應用。與傳統的PC上設計的貪吃蛇游戲不同,本次利用Proteus硬件仿真軟件,16×16雙色LED點陣顯示屏,以STC12C5A32S2單片機為主控芯片,由74HC595作為數據掃描、74HC138和9012PNP型三極管作為行驅動,經過實際測試,可以達到預期的實驗效果。
關鍵詞:單片機;LED;數據掃描
中圖分類號:TP3-4;TN710-4 文獻標識碼:A 文章編號:1674-7712 (2014) 12-0000-01
“貪食蛇”又稱為“貪吃蛇”,是一種益智小游戲。其游戲規則比較簡單,就是一條小蛇,不停地在屏幕上游走去吃屏幕上出現的食物,越吃越長,到了一定的長度之后,就可以進入下一關,越到后面的關卡蛇移動的速度越快,只要蛇頭碰到四周的墻壁或者碰到自己的身體,小蛇就立即斃命并結束游戲。利用16×16雙色LED點陣顯示屏,以STC12C5A32S2單片機為主控芯片,由74HC595作為數據掃描、74HC138和9012PNP型三極管作為行驅動。本顯示屏帶有四個基本按鍵、一個蜂鳴器、程序下載模塊,不僅可作為顯示屏顯示使用,還可以作為開發板使用,能支持51系列芯片的下載。
一、硬件設計
(一)單片機核心模塊
STC12C5A32S2是一種低功耗、高性能CMOS8位微控制器,具有8K在系統可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單片機芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得STC12C5A32S2為眾多嵌入式控制應用系統提供靈活、有效的解決方案。
下面對單片機的I/O口的分配做一下說明,單片機中用P1.0-P1.3和P3.3口與74HC154的8位數據輸出口相接作為系統的行掃描驅動,P3.0-P3.1與4塊74HC594相接通過不同的信號作為點陣的列掃描。P0.0-P0.3的4個IO口分別接4個獨立按鈕相連,P3.5與蜂鳴器相連,而P1.5-P1.7和復位鍵與程序下載電路相連。
(二)點陣模塊
LED點陣模塊采用四個8×8模塊組成16行16列的顯示屏,為解決串傳輸中列數據準備和列數據顯示之間的矛盾,我們采用了74HC595作為列驅動。因為74HC595具有一個8bit的串入并出的移位寄存器和一個8bit輸出鎖存器的結構,而且為寄存器和輸出鎖存器的控制各自獨立。這使得行數據準備和列數據顯示可以同時進行。采用四個移位寄存器74HC595實現點陣的列掃描。由單片機P1口輸出4bit二進制信號,并發出寄存器的打入信號行號經一個4/16移碼器74HC138,生成16條行選通信號線,在和16個9012PNP型三極管實現對點陣的行掃描。由于單片機的TTL輸出口的驅動能力非常有限,所以在每個輸出口都加一個三極管,增加I/O口的驅動電流,用來驅動LED顯示屏的行信號。為了保證LED亮度,一次驅動一列或一行時必須外加驅動電路提高電流。
二、軟件設計
在本次開發中,采用了專門用于MCS.51系列單片機軟件開發的C51語言,這種語言與普通C語言相同,并提供了針對單片機的常量定義、庫函數等等。開發環境選擇了Keil uVision2編譯調試,硬件仿真軟件Proteus 7.1仿真運行。
貪食蛇軟件主要分成三個部分:主程序、外部中斷服務程序、定時中斷服務程序。主程序的作用是一些初始化工作及蛇體動作執行、食物的隨機產生、得分累計、圖像顯示等。外部中斷服務程序的功能是識別按鍵。定時中斷服務程序的作用是定時產生步進信號。外部中斷服務程序與主程序之間聯系的紐帶是全局變量MovDirection,鍵盤中斷服務程序每次執行都要把按鍵對應的方向更新到此變量,而主程序每次步進方向都以此變量為依據。定時中斷服務程序通過全局變量IsToStep與主程序聯系起來,主程序只有在IsToStep為1時才讓蛇體步進,且步進后將該變量置0,定時中斷服務程序每隔一段時間為IsToStep置位,使主程序得到步進信號。
三、系統仿真
Proteus軟件具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統仿真、RS232動態仿真、I2C調試器、SPI調試器、鍵盤和LCD系統仿真的功能,同時有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。
在Proteus軟件的ISIS中新建設計圖,畫出本設計的電路圖。電路設計完成后就可以進行仿真。先雙擊單片機,把用uVision3編譯生成的HEX文件指定為下載文件,點擊PLAY鍵即可進行仿真。當出現ANALYSER ERRORS時,表示電路有錯誤,列表中說明了具體的錯誤,必須要先排錯才可以進行仿真。
參考文獻:
[1]施智雄,胡放鳴.適用模擬電子技術[J].成都:電子科技大學出版社,2006.
[2]邊春元,李文濤,江杰.C51單片機典型模塊設計與應用[M].北京:機械工業出版社,2008.
[3]晃陽.單片機MCS-51原理及應用開發教程[M].北京:清華大學出版社,2007.
[4]龍國安.基于單片機的LED漢字顯示屏的制作和設計[J].現代電子技術,2008.