摘 要 單片機結合電子自動設計軟件proteus+keil仿真軟件的教學模式,使得教學效果相比純理論教學提高很多,文章使用了proteus+keil實現單片機軟件和硬件相結合的虛擬教學實驗平臺,并以4X4矩陣鍵盤為例,給出了proteus+keil仿真軟件在單片機矩陣鍵盤中的應用。
關鍵詞 proteus+keil 單片機教學 矩陣鍵盤
中圖分類號:G424 文獻標識碼:A
0 引言
Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。Keil是一款單片機開發系統平臺,支持C語言、匯編、PLM、以及混合編程。
利用Proteus+keil 仿真軟件來輔助單片機的教學具備以下意義:
其一,在教學中老師可以直觀展示各種硬件電路的設計,同時也可以向學生展示軟件的編寫過程和調試過程,使學生容易掌握單片機學習的各個過程。
其二,Proteus+keil仿真軟件可使學生有更多的動手機會,包括硬件設計和軟件調試,易于修改程序或者硬件電路的各種錯誤,在實際電路設計前使用仿真軟件能有效縮短了單片機電路設計的時間,提高了電子電路設計的效率。
其三,利用Proteus+keil的仿真可以實現實踐和理論相結合的一體化教學的效果,可以提高教學質量,對教學效果產生積極的影響。
本文將以單片機接口電路中的重要內容矩陣鍵盤的掃描為例,利用Proteus+keil仿真軟件實現4X4矩陣鍵盤軟硬件的三種掃描方式,并在仿真過程中遇到的問題給出相應的解決方案。
1 單片機矩陣鍵盤的掃描方式
單片機連接矩陣鍵盤是為了節省單片機的I/O口,常用的有4X4,8X8等矩陣鍵盤,按鍵較多的一般要加擴展芯片,但按鍵使用較少時則直接連接到單片機的I/O口上,以節省硬件成本,下面以單片機直接連接4X4矩陣鍵盤為例,按下的按鍵返回值直接顯示在共陰極數碼管上,介紹Proteus軟件仿真電路的三種掃描方式。
1.1 直接賦值掃描
4X4矩陣鍵盤在Proteus仿真時常用到直接賦值掃描,這種鍵盤掃描方式軟件和硬件都簡單,本文所舉例子如圖1所示的硬件電路的連接方法是將鍵盤的4行連接到單片機P1口的低4位,將4列連接到P1口的高4位,編寫程序時先將行控制的4位置低電平,4列置高電平,如若有按鍵按下,則4列的高電平中必然有一列拉低為低電平,此時編寫程序存高4位的列值,將低4位的行值與0相與,以便后面返回鍵值。然后將4列置低電平,4行置高電平,如若有鍵按下,則其中一行必定為低電平,此時編程存低4位的行值,將高4位的列值與0相與,最后將兩次存下的行列值相或后作為鍵值返回,本例中如果0號鍵按下則返回0x11,1號鍵按下返回0x21,其他按鍵按下的返回值以此類推。其軟件流程圖如圖2所示。
1.2 高電平掃描
矩陣鍵盤的另一種掃描方式為高電平掃描,即將鍵盤的列接低電平,如圖3所示,只需在鍵盤的行使用高電平一行一行掃描即可,如果有鍵按下則該列會被拉至高電平,圖3的硬件電路掃描初值賦值0x01,掃描到P13口后又從P10口開始掃描即可。但在Proteus里連接此電路時要增加三極管,主要是因為如果不加入三極管,則有按鍵按下該列的電平將達不到高電平狀態,影響鍵盤返回值,所以加入NPN型的開關三極管即可解決該問題,利用NPN三極管的基極為高電平時三極管導通,基極為低電平時三極管截止的原理。實際的硬件電路可以不必加入三極管,其軟件流程圖如圖5所示。
1.3 低電平掃描
在矩陣鍵盤掃描中常用的第3種硬件連接方式為低電平掃描,如圖4所示,這種掃描方式是將按鍵的一端連接高電平,這樣只需在用低電平掃描4行,本例所示掃描初值為0xfe,掃描到P13口后又從P10口開始掃描即可。如果有鍵按下則相應的列將為低電平,但在Proteus里由于軟件本身的原因,按鍵按下后檢測到的列值并無法被拉至低電平,相反而是相應的行被拉為高電平,而實際的硬件電路是將列值拉至低電平。如果想要和實際硬件電路保持一致,在本例中,在列連接按鍵處加入了反相器,這樣就可以在按鍵按下時正常地將列拉至低電平,而檢測到的列值為反相后的高電平,以本例所示0號鍵返回的鍵值為0x1e,1號鍵返回值為0x2e,其余按鍵值類推即可。低電平掃描軟件流程圖如圖5所示。
2 結論
本文以Proteus+keil 仿真軟件輔助單片機教學,并以單片機接口電路中最重要的矩陣鍵盤為例,列舉了4X4矩陣鍵盤的三種硬件連接電路和軟件掃描方式,并對高、低電平掃描方式在Proteus仿真軟件教學中出現的問題進行分析和列舉,并給出了解決方案,使得仿真教學和實際電路的教學保持一致,因此合理利用電子仿真技術,能有效解決在單片機教學中實踐和理論相結合的問題。
項目編號:武昌工學院校級教研項目(2013JY33)
參考文獻
[1] 馬華玲,Proteus+keil在單片機教學中的應用[J].高等函授學報,2012(4):26-27.
[2] 杜力,肖學玲. Proteus仿真矩陣鍵盤時遇到的問題和解決方案[J].科技經濟市場,2011(2):10-11.
[3] 馬忠梅,籍順心,馬凱,等.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,2007:182-192
[4] 蘇變玲,朱志平,袁衛.基于Proteus的單片機仿真教學研究[J].實驗室研究與探索,2009(4):75-78.
[5] 王瑋,曹會寧.Proteus仿真軟件在單片機一體化教學中的應用[J].機電產品開發與創新,2009(5):207-208.