潘愛(ài)民
?
軟硬件仿真在單片機(jī)教學(xué)中的應(yīng)用
潘愛(ài)民
武漢東湖學(xué)院電子信息工程學(xué)院,湖北 武漢 430212
針對(duì)傳統(tǒng)單片機(jī)教學(xué)的弊端,提出了使用 Keil 軟件與 Proteus 軟件聯(lián)合仿真降低硬件成本和減少調(diào)制周期的方法。首先簡(jiǎn)要介紹了 Keil 軟件、Proteus 軟件和聯(lián)合仿真的優(yōu)勢(shì)。最后以“仿真萬(wàn)年歷”為例,講解在 Keil中編寫(xiě) C 語(yǔ)言程序,通過(guò) Proteus 軟件畫(huà)出原理圖,進(jìn)行聯(lián)合仿真調(diào)試的具體過(guò)程。
單片機(jī);仿真;Keil;Proteus
當(dāng)前,高校電子電信類專業(yè)都開(kāi)設(shè)了單片機(jī)課程,單片機(jī)技術(shù)已成為目前電子類大學(xué)生的一項(xiàng)基本技能。單片機(jī)課程的傳統(tǒng)教學(xué)模式以單片機(jī)的結(jié)構(gòu)為主線,先講硬件結(jié)構(gòu)后講指令系統(tǒng)最后綜合代碼驗(yàn)證。這種先原理后設(shè)計(jì),先理論后實(shí)驗(yàn)的教學(xué)模式的缺點(diǎn)是:?jiǎn)纹瑱C(jī)內(nèi)部結(jié)構(gòu)和工作原理的講解不僅使學(xué)生理解困難而且感覺(jué)課程枯燥乏味;以單片機(jī)原理和匯編指令為核心的教學(xué)造成學(xué)生應(yīng)用能力的不足; 理論和實(shí)踐脫節(jié)的教學(xué)使學(xué)生缺少對(duì)單片機(jī)應(yīng)用設(shè)計(jì)的感性認(rèn)識(shí)和工程體驗(yàn)。這種教學(xué)模式不能有效培養(yǎng)學(xué)生的應(yīng)用技能和激發(fā)學(xué)生的積極性。在單片機(jī)教學(xué)中,綜合運(yùn)用仿真教學(xué)可以提高學(xué)生學(xué)習(xí)興趣,培養(yǎng)學(xué)生的應(yīng)用能力。
Keil 是美國(guó) Keil Software 公司出品的單片機(jī) C 語(yǔ)言軟件開(kāi)發(fā)系統(tǒng)。傳統(tǒng)的單片機(jī)原理課程用匯編語(yǔ)言編程,能夠讓學(xué)生具體了解單片機(jī)的結(jié)構(gòu)及工作原理,但是匯編語(yǔ)言是結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,可移植性差,代碼復(fù)雜;與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),Keil生成的目標(biāo)代碼效率非常高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。
Proteus是英國(guó) Lab Center Electronics公司開(kāi)發(fā)的一款著名的能夠?qū)Υ蠖鄶?shù)主流單片機(jī)進(jìn)行仿真、調(diào)試與測(cè)試的EDA工具,真正實(shí)現(xiàn)了對(duì)系統(tǒng)進(jìn)行仿真設(shè)計(jì)、測(cè)試與驗(yàn)證。 Proteus提供的元件庫(kù)涵蓋了目前實(shí)踐應(yīng)用中的大部分資源,既有模擬元件也有數(shù)字元件。在單片機(jī)仿真應(yīng)用方面支持多種微控制器及常見(jiàn)的外圍芯片,并且支持與當(dāng)前流行的單片機(jī)開(kāi)發(fā)環(huán)境(Keil、MPLAB、IAR)聯(lián)合調(diào)試的軟硬件仿真系統(tǒng)。
在實(shí)際的單片機(jī)系統(tǒng)開(kāi)發(fā)中應(yīng)用Proteus 軟件與 Keil 軟件的聯(lián)合仿真,設(shè)計(jì)的效果可以通過(guò)仿真預(yù)覽,大大減少了調(diào)制周期和硬件成本。仿真過(guò)程中可以從多個(gè)角度直接觀察程序運(yùn)行和電路工作的過(guò)程與結(jié)果,簡(jiǎn)化了設(shè)計(jì)實(shí)驗(yàn)過(guò)程,極大地提高學(xué)生學(xué)習(xí)單片機(jī)的興趣。
下面以“仿真萬(wàn)年歷”為例來(lái)說(shuō)明Proteus與Keil聯(lián)合仿真過(guò)程。
4.1 代碼實(shí)現(xiàn)
打開(kāi)Keil軟件,編寫(xiě)主程序代碼如下: #include<reg51.h>
#include"main.h"
#include"delay.h"
Uchar code DIS_CODE[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XFF};
void show_date(uint year,uchar month,uchar day)
{
uint tmp;
tmp=year/1000;
P1=0X01;
P2=DIS_CODE[tmp];
delay_ms(5);
tmp=year%1000;
tmp=tmp/100;
P1=0X02;
P2=DIS_CODE[tmp];
delay_ms(5);
tmp=year%100;
tmp=tmp/10;
P1=0X04;
P2=DIS_CODE[tmp];
delay_ms(5);
tmp=year%10;
P1=0X08;
P2=DIS_CODE[tmp];
delay_ms(5);
tmp=month/10;
P1=0X10;
P2=DIS_CODE[tmp];
delay_ms(5);
tmp=month%10;
P1=0X20;
P2=DIS_CODE[tmp];
delay_ms(5);
tmp=day/10;
P1=0X40;
P2=DIS_CODE[tmp];
delay_ms(5);
tmp=day%10;
P1=0X80;
P2=DIS_CODE[tmp];
delay_ms(5);
}
void main(void)
{
while(1)
{
show_date(2016,5,25);
}
}
該代碼主要由DIS_CODE無(wú)符號(hào)字符數(shù)組和show_ data()日期顯示函數(shù)構(gòu)成。DIS_CODE數(shù)組元素是數(shù)字0~9的顯示碼,show_ data()函數(shù)主要做年、月、日的顯示處理。
4.2 仿真電路設(shè)計(jì)
打開(kāi)Proteus軟件,在原理圖編輯窗口繪制萬(wàn)年歷仿真電路,如圖1所示。
圖1 萬(wàn)年歷仿真電路
原理圖中主要用到以下元器件:AT89C51單片機(jī)、16引腳排阻、七段共陽(yáng)極四位數(shù)碼管、七段共陽(yáng)極兩位數(shù)碼管。
4.3 軟硬件結(jié)合仿真調(diào)試
利用 Keil軟件編輯、編譯C語(yǔ)言代碼,生成.HEX文件,然后將.HEX文件加載到單片機(jī)中,點(diǎn)擊仿真運(yùn)行開(kāi)始按鈕即可。也可以把 Keil 和 Proteus 結(jié)合起來(lái),對(duì)單片機(jī)系統(tǒng)作聯(lián)合仿真調(diào)試。這種聯(lián)合仿真調(diào)試方法類似于實(shí)際工程設(shè)計(jì)中的硬件仿真,即利用Keil軟件直接控制 Proteus中程序的運(yùn)行。仿真效果如圖1所示[1]。在單片機(jī)課程教學(xué)中,綜合運(yùn)用Proteus與Keil聯(lián)合仿真有效地克服了一些純硬件平臺(tái)存在的實(shí)際問(wèn)題的束縛,節(jié)省了大量的設(shè)備準(zhǔn)備、實(shí)際電路的連接以及現(xiàn)場(chǎng)試驗(yàn)的時(shí)間。從而有效地解決了學(xué)生理論與實(shí)踐脫鉤、動(dòng)手能力不足的問(wèn)題,大幅度地提高了學(xué)習(xí)興趣[2]。
[1]萬(wàn)松峰. Proteus在單片機(jī)理實(shí)一體化教學(xué)的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2016(14):85-86.
[2]吳志祥.Proteus仿真軟件在單片機(jī)教學(xué)和科研中的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2014(33):45-48.
The Application of Hardware and Software Simulation in Single Chip Microcomputer Teaching
Pai Aimin
School of Electronic and Information Engineering, East Lake College of Wuhan, Hube Wuhan 430212
Aiming at the drawbacks of traditional teaching, and proposes to use the Keil software and Proteus software to reduce the hardware cost and reduce the modulation period. This paper firstly introduces the Keil software, Proteus software, and the advantage of the joint simulation. This paper takes "simulation calendar" as an example to explain the process of writing C language program in Keil, drawing the schematic diagram through Proteus software, and carrying on the joint simulation and debugging process.
single chip microcomputer; simulation; Keil; Proteus
TP368.1-4
A
1009-6434(2016)10-0129-02
潘愛(ài)民(1973—),男,漢族,籍貫(精確到市)為湖北省老河口市,當(dāng)前職務(wù)為專職教師,當(dāng)前職稱為工程師,學(xué)歷碩士,研究方向?yàn)閱纹瑱C(jī)、傳感器、計(jì)算機(jī)、通信。