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