于博 楊曉慶

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