于博 楊曉慶
摘 要:傳統(tǒng)單片機(jī)技術(shù)教學(xué)中,采用的理論教學(xué)與實(shí)驗(yàn)讓學(xué)生感到難以入門,針對(duì)教學(xué)中存在的這個(gè)問題,采用Keil C51和Proteus進(jìn)行仿真教學(xué),這種教學(xué)方法給學(xué)生創(chuàng)造一個(gè)直觀的形象,更有利于學(xué)生對(duì)單片機(jī)技術(shù)的掌握,從而提高了教學(xué)質(zhì)量。
關(guān)鍵詞:軟件調(diào)試;單片機(jī);KEILC51;PROTEUS;硬件仿真
中圖分類號(hào):TP399 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
單片機(jī)技術(shù)在各行各業(yè)中得到廣泛的應(yīng)用,同時(shí)單片機(jī)技術(shù)應(yīng)用課程是一門實(shí)踐性很強(qiáng)的軟硬件結(jié)合的技術(shù),需要通過大量的實(shí)踐才能理解和掌握程序設(shè)計(jì)方法與硬件結(jié)構(gòu)設(shè)計(jì)。同時(shí)在目前的教學(xué)中,單片機(jī)開發(fā)Keil C51與Proteus軟件的聯(lián)合仿真在實(shí)際的單片機(jī)系統(tǒng)開發(fā)中被普遍應(yīng)用。為此,在單片機(jī)課程教學(xué)過程中,教師一定要結(jié)合工程實(shí)際做到軟件和硬件相結(jié)合,實(shí)現(xiàn)理論教學(xué)與工程實(shí)踐緊密結(jié)合,在傳授理論知識(shí)的同時(shí),教會(huì)學(xué)生如何使用實(shí)際工程所應(yīng)用的相關(guān)軟件進(jìn)行單片機(jī)系統(tǒng)開發(fā)。
2 PROTEUS與KEIL C51介紹(Introduction of
PROTEUS與KEIL C51)
2.1 程序編譯軟件Keil C51
Keil C51軟件是德國(guó)Keil Software公司開發(fā)的51系列單片機(jī)開發(fā)軟件。Keil μVison系列是該公司推出的51系列兼容單片機(jī)軟件開發(fā)系統(tǒng)。μVison是集成的可視化Windows操作界面,其提供了豐富的庫(kù)函數(shù)和各種編譯工具,能夠?qū)?1系列單片機(jī)以及和51系列兼容的絕大部分類型的單片機(jī)進(jìn)行設(shè)計(jì)[1]。Keil μVison系列可以支持單片機(jī)C51程序設(shè)計(jì)語(yǔ)言,也可以直接進(jìn)行匯編語(yǔ)言的設(shè)計(jì)與編譯。
2.2 仿真軟件Proteus
為了驗(yàn)證設(shè)計(jì)程序的正確性,單片機(jī)程序設(shè)計(jì)與開發(fā)往往采用軟件仿真與硬件仿真相結(jié)合的形式。軟件仿真只能驗(yàn)證程序的正確性,不能仿真具體的硬件環(huán)境。硬件仿真常用的軟件是英國(guó)Labcenter Electronics公司研發(fā)的電路設(shè)計(jì)與仿真平臺(tái)Proteus。Proteus具有原理圖編輯、印刷電路板(PCB)設(shè)計(jì)及電路仿真功能,該軟件由ISIS和ARES兩部分構(gòu)成,其中ISIS是一款便捷的電子系統(tǒng)原理設(shè)計(jì)和仿真平臺(tái)軟件,ARES是一款高級(jí)的PCB布線編輯軟件。
3 硬件電路設(shè)計(jì)(Hardware circuit design)
3.1 運(yùn)用Proteus進(jìn)行的硬件電路設(shè)計(jì)原理
LED發(fā)光管控制就是通常所說的流水燈控制,這是單片機(jī)控制技術(shù)入門的基本控制項(xiàng)目。通過花樣繁多的流水燈控制任務(wù),可以學(xué)習(xí)和應(yīng)用基本的單片機(jī)和C語(yǔ)言程序設(shè)計(jì)的知識(shí)與技術(shù),積累豐富的單片機(jī)項(xiàng)目開發(fā)與程序設(shè)計(jì)的經(jīng)驗(yàn)與技巧,為進(jìn)一步提高單片機(jī)技術(shù)水平打下堅(jiān)實(shí)的基礎(chǔ)[2]。本項(xiàng)目采用的流水燈實(shí)際上是一個(gè)帶有八個(gè)發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管D1—D8、晶振Xl、電源VCC、單片機(jī)AT89C51和程序等組成的系統(tǒng)。如果讓接在P1.0口的D1亮起來,那么只要把P1.0口的電平變?yōu)榈碗娖骄涂梢粤?;相反,如果要接在P1.0口的D1熄滅,就要把P1.0口的電平變?yōu)楦唠娖?;同理,接在P1.1—P1.7口的其他七只發(fā)光二極管點(diǎn)亮和熄滅的方法同D1。因此,要實(shí)現(xiàn)流水燈功能,只要將發(fā)光二極管D1—D8依次點(diǎn)亮、熄滅,八只發(fā)光二極管便會(huì)一亮一暗的做流水燈了[3]。在此還應(yīng)注意一點(diǎn),由于人眼的視覺暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時(shí)間很短,在控制二極管亮滅的時(shí)候應(yīng)該延時(shí)一段時(shí)間,否則就看不到“流水”效果了。
3.2 KEIL C語(yǔ)言序的編程
單片機(jī)的應(yīng)用系統(tǒng)由硬件和程序組成,上述硬件原理圖搭建完成上電之后,還不能看到流水燈循環(huán)點(diǎn)亮的現(xiàn)象,要實(shí)現(xiàn)流水燈循環(huán)點(diǎn)亮,還要告訴單片機(jī)該怎么進(jìn)行工作,即編寫程序控制單片機(jī)管腳電平的高低變化,以實(shí)現(xiàn)發(fā)光二極管的一亮一滅。下面以八個(gè)發(fā)光二極管循環(huán)點(diǎn)亮來介紹兩種。采用數(shù)組控制與運(yùn)算符控制兩種編程[4]方法實(shí)現(xiàn)。
(1)數(shù)組控制P0口流水燈
#include
void delay(unsigned char x)
{
unsigned char m,n;
for(m=0;m
for(i=0;i<8;i++)
{
P2=P2>>1; //P2每次右移一位
delay();
}
}
void zizeng_LED(void)
{
unsigned char i;
for(i=0;i<32;i++)
{
P2=i;
delay();
}
}
void main(void)
{
while(1) //無限循環(huán)
{
rightmove_LED();
delay();
zizeng_LED();
delay();
}
}
4 程序仿真與Proteus 聯(lián)合調(diào)試(Program simulation
and proteus debug)
4.1 在Proteus硬件仿真電路圖單片機(jī)中加載HEX文件
打開先前設(shè)計(jì)好的Proteus設(shè)計(jì)文件“項(xiàng)目1.DSN”,右鍵單擊AT89C51單片機(jī),從彈出的快捷菜單中選擇“編輯屬性”命令;或者直接雙擊AT89C51單片機(jī),彈出“編輯元件”對(duì)話框,在“Program File”文本框中載入在編譯生成的“項(xiàng)目1.hex”HEX文件,在“Clock Frequency”文本框中輸入“11.0592MHz”,單擊“確定”按鈕返回到Proteus設(shè)計(jì)文件“項(xiàng)目1.DSN”工作界面。
4.2 運(yùn)用Proteus硬件仿真電路圖進(jìn)行仿真實(shí)驗(yàn)
執(zhí)行菜單“調(diào)試”→“執(zhí)行”命令,或者直接點(diǎn)擊仿真工具欄中的仿真啟動(dòng)按鈕,或者直接按下“F12”功能鍵,均能啟動(dòng)功能仿真。仿真效果如圖1所示。
從圖中可見,接至P1.0的發(fā)光二極管D1處于點(diǎn)亮狀態(tài),其他二極管處于熄滅狀態(tài)。從仿真效果上看,設(shè)計(jì)的C語(yǔ)言程序?qū)崿F(xiàn)了對(duì)單片機(jī)的預(yù)期控制。要停止電路的仿真運(yùn)行,可以點(diǎn)擊工具欄中的仿真停止按鈕,要暫停電路的仿真運(yùn)行,可以點(diǎn)擊仿真暫停按鈕。要對(duì)電路進(jìn)行單步運(yùn)行仿真,可以點(diǎn)擊幀進(jìn)仿真按鈕。
5 結(jié)論(Conclusion)
單片機(jī)開發(fā)Keil C51與Proteus軟件的聯(lián)合仿真應(yīng)用于單片機(jī)接口技術(shù)的課程教學(xué),收到了良好的教學(xué)效果,教學(xué)質(zhì)量得到明顯提高,學(xué)生對(duì)單片機(jī)學(xué)習(xí)興趣明顯增強(qiáng)。在教學(xué)過程中,每個(gè)實(shí)例都采用單片機(jī)開發(fā)Keil C51與Proteus軟件聯(lián)合仿真、調(diào)試,學(xué)生可以直觀地看到電路輸出狀態(tài)從而方便的進(jìn)行開發(fā)練習(xí)。
參考文獻(xiàn)(References)
[1] 徐磊,申紅軍,蔡亞永.單片機(jī)開發(fā)Keil C51與Proteus仿真聯(lián)合
應(yīng)用研究[J].電子設(shè)計(jì)工程,2013,(9):178-181.
[2] 楊暾.單片機(jī)技術(shù)及應(yīng)用:基于Proteus仿真的C語(yǔ)言程序設(shè)計(jì)
[M].北京:電子工業(yè)出版社,2012.
[3] 周靈彬,張靖武.PROTEUS的單片機(jī)教學(xué)與應(yīng)用仿真[J].單片
機(jī)與嵌入式系統(tǒng)應(yīng)用,2008(1):76-79.
[4] 杜樹春.基于Proteus和Keil C51的單片機(jī)設(shè)計(jì)與仿真[M].北
京:電子工業(yè)出版社,2012.
作者簡(jiǎn)介:
于 博(1981-),男,碩士,講師.研究領(lǐng)域:嵌入式開發(fā),圖
像處理技術(shù).
楊曉慶(1980-),女,碩士,講師.研究領(lǐng)域:網(wǎng)絡(luò)技術(shù)開發(fā).