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