張穩穩+嚴學文
摘 要: 針對顯示器件驅動技術實驗教學中存在的問題,提出利用 Proteus 軟件作為實驗教學的輔助手段,并以驅動2個4位LED數碼管為例,具體闡明了Proteus 軟件和Keil軟件在顯示器件驅動技術教學中的聯合運用方法。實踐證明,Proteus軟件的使用能激發學生的學習興趣, 加深學生驅動原理及應用的理解, 鍛煉學生進行軟硬件綜合開發能力,加快實驗進度,從而發掘學生的學習潛力。
關鍵詞: Proteus軟件; 實驗教學; 顯示器件驅動; 學習潛力
中圖分類號: TN41; TP312 文獻標識碼: A 文章編號: 1004?373X(2015)14?0124?03
0 引 言
顯示器件驅動技術是西安郵電大學光電信息工程專業的一門實踐性較強的專業課,共48學時,其中16學時的實驗課程。實驗作用是使學生掌握各種顯示器件驅動電路設計的基礎知識,主要內容涉及單片機(51系列STC89RC52)與常見顯示器件接口電路的控制和應用單片機C51語言編程實現顯示。在以往的傳統教學中,采取的方法是“先講解驅動原理,再動手實驗”,但是實驗效果并不好。原因是傳統教學中存在教、學、做受到條件的限制,學習效率不高等問題,經常會出現一節實驗課,學生的時間都用來調試程序代碼,嚴重影響了實驗的進度,影響了學生的學習熱情。在教學和實踐環節中引入高性能的軟件作為課程教學的輔助手段[1],能夠有效解決傳統教學中出現的這些問題。
Proteus軟件已經廣泛地應用于電子信息類課程中[1?7],也取得了良好的教學效果;所以在顯示器件驅動技術這門課中,選擇了Proteus仿真軟件作為教學的輔助工具,使得學生在課后可以按照自己的思路去設計驅動電路,完成絕大多數軟、硬件實驗,不受實驗電路、開發板等硬件設備的限制。本文將以LED數碼管的顯示驅動為例,具體介紹Proteus軟件在顯示器件驅動技術課程中的應用。實踐證明,Proteus仿真軟件的應用有助于學生對驅動電路的理解,解決了課外沒有硬件開發板的問題,充分調動學生的學習積極和創造性。實驗課的進度和教學效果也大幅度提高。
1 Proteus 軟件介紹
Proteus 軟件是英國 Labcenter Electronics 公司出版的 EDA 工具軟件,具有Proteus原理圖繪圖、布圖、PCB自動或人工布線、Spice電路仿真等功能[8];在教學中之所以選中它,因為它是目前比較好的仿真單片機及外圍器件的工具。與其他電子仿真軟件相比較,它除了能仿真單片機的工作情況,還能仿真單片機外圍電路或沒有單片機參與的其他電路的工作情況。 因此在仿真和程序調試時,關心的不再是某些語句執行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。從某種意義上講, 這種仿真彌補了實驗和工程應用間脫節的矛盾。
在教學中選擇Proteus軟件,還有一個原因就是它能和Keil,Matlab等軟件聯合使用,使得學生可以在設計中直接編輯修改源代碼,并實時觀察運行效果。
2 教學案例介紹
本文通過“在2個4位共陽極數碼管顯示自己生日”這一具體實驗要求,介紹Proteus軟件在教學中的應用。
2.1 硬件電路構建
首先,打開Proteus軟件的原理圖繪制ISIS軟件,繪制52單片機的最小系統及數碼管驅動電路,如圖1所示。
圖1 數碼管驅動電路圖
在顯示器件驅動技術這門課中引入Proteus軟件,主要目的是促進同學對驅動電路的理解及方便驅動程序的調試,課程采用的數碼管驅動電路是完全按照實驗室現有開發板上的原理圖設計的,數碼管是2個4位共陽極的數碼管。數碼管采用的是動態掃描的方式,所有數碼管的A~G和DP端連接在一起構成段選來確定顯示什么字形碼;每個數碼管的公共端,即圖中2個4位數碼管的1~4腳作為位選確定選擇那位數碼管被點亮,共需要16個I/O管腳來控制。89C52單片機有4個并行I/O口P0~P3,其中段碼由P0口的8個引腳P0.0~P0.7來控制;因為是共陽極的數碼管,位選需要提供高電平,但是單片機的I/O口驅動能力有限,提供給數碼管的電壓不一定能滿足點亮數碼管所需要的電壓電流,所以位選由P2口通過PNP型的三極管9012來控制,三極管在這里起到一個開關的作用;R1~R16是限流電阻。
2.2 軟件設計
在程序設計時,如果要讓某個數碼管亮,就必須給該數碼管送入選通信號,然后給某個字母所對應的筆段送入低電平時,該筆段就會被點亮,顯示出效果。簡單地說就是“開位選,送段選”。根據實驗具體要求,在Keil C編譯軟件下編寫的C51程序具體如下:
#include
unsigned int i=0;
unsigned char code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
unsigned char code table2[]={0xf9,0x90,0x90,0x92,0xc0,0x80,0xa4,0x82};
void delay(unsigned int );
void main(void)
{
while(1)
{
for(i=0;i<8;i++)
{
P2=table1[i]; //開位選
P0=table2[i]; //送段碼
delay(40);
}
}
}
void delay(unsigned int j) //delay {
while(j??);
}
數碼管在輪流顯示過程中,數碼管的點亮時間由delay函數決定,要求比較短1~2 ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感。
2.3 仿真調試
Proteus軟件仿真可以用2種方法,得到如圖2所示的仿真結果。
圖2 數碼管仿真結果
(1) 加載hex執行文件:在Keil C軟件中編譯生成*.hex文件,在Proteus軟件中雙擊單片機,在“Program File”選項中加載相應的hex文件,如圖3所示,然后啟動仿真過程。如果顯示有問題,終止仿真過程,返回Keil C軟件里調整,重新生成hex文件,在Proteus軟件中重新仿真。這個方法因為和平常實驗中步驟相似(生成hex文件,下載到開發板觀察結果),被大多數同學所接受。
圖3 Proteus中單片機加載HEX文件
(2) 用Proteus和Keil C聯合仿真:在Proteus的官網下載聯調的安裝驅動“VDMAGDI.EXE”,在Proteus的debug菜單中選中use remote debug monitor;進入 Keil 的 project 菜單 Option for Target‘Target1,在 Output 選項下的create hex file 選項前打鉤, 在Debug 選項欄右上角Use 選項右邊的下拉框中,選中 Proteus VSM Monitor ?51 Driver 。再進入setting,如果是單機聯調,IP為127.0.0.1,如圖4所示;如不是單機則填另一臺機的 IP 地址,端口號均為8000。在Keil C中啟動調試“Debug→Start/StopDebugSession”,在Proteus中觀察直接結果。
3 結 語
在顯示器件驅動技術課程的實驗教學中引入Proteus仿真軟件,向學生展示了系統硬件設計、軟件設計、調試過程。這種實驗教學方法彌補了學生在課前預習課后復習實驗時缺乏開發板不足的問題,消除了課堂上開發板損壞等因素對實驗結果的影響。同時也加深了學生對顯示器件驅動原理的理解,利于培養學生的創新能力和綜合應用技巧,明顯地提高了教學質量。
圖4 聯合仿真Keil C調試設置
參考文獻
[1] 王海燕,楊艷華.Proteus和Keil 軟件在單片機實驗教學中的應用[J].實驗室研究與探索,2012,31(5):88?91.
[2] 袁鋒偉,趙立宏,朱慧玲,等.基于Proteus的單片機課程教學與實驗改革[J].實驗室研究與探索,2007,26(12):75?78.
[3] 張力,林衛共.LabVIEW及Proteus軟件環境下單片機串口通訊的仿真方法[J].電子測量技術,2010(4):87?90.
[4] 陳朝元,魯五一.Proteus軟件在自動控制系統仿真中的應用[J].系統仿真學報,2008,20(2):318?320.
[5] 代啟化.基于Proteus的電路設計與仿真[J].現代電子技術,2006,29(19):82?84.
[6] 楊宏,李國輝.基于Proteus與單片機的步進電機控制設計[J].現代電子技術,2010,33(5):104?106.
[7] 王忠,秦英林.Proteus軟件在嵌入式系統教學中的應用研究[J].現代電子技術,2010,33(16):74?76.
[8] 朱清慧,張鳳蕊,翟天嵩,等.Proteus教程:電子線路設計、制版與仿真[M].北京:清華大學出版社,2008.
[9] 漆強,蔣泉.LED矩陣顯示屏實驗系統的設計[J].實驗科學與技術,2014(2):19?21.
[10] 羅芬,林芝.Proteus的特點及在《單片機應用技術》的應用淺析[J].大眾科技,2014(12):113?114.