国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟硬件仿真在單片機教學中的應用

2016-03-18 07:22潘愛民
移動信息 2016年10期
關鍵詞:原理圖代碼調試

潘愛民

?

軟硬件仿真在單片機教學中的應用

潘愛民

武漢東湖學院電子信息工程學院,湖北 武漢 430212

針對傳統(tǒng)單片機教學的弊端,提出了使用 Keil 軟件與 Proteus 軟件聯(lián)合仿真降低硬件成本和減少調制周期的方法。首先簡要介紹了 Keil 軟件、Proteus 軟件和聯(lián)合仿真的優(yōu)勢。最后以“仿真萬年歷”為例,講解在 Keil中編寫 C 語言程序,通過 Proteus 軟件畫出原理圖,進行聯(lián)合仿真調試的具體過程。

單片機;仿真;Keil;Proteus

當前,高校電子電信類專業(yè)都開設了單片機課程,單片機技術已成為目前電子類大學生的一項基本技能。單片機課程的傳統(tǒng)教學模式以單片機的結構為主線,先講硬件結構后講指令系統(tǒng)最后綜合代碼驗證。這種先原理后設計,先理論后實驗的教學模式的缺點是:單片機內部結構和工作原理的講解不僅使學生理解困難而且感覺課程枯燥乏味;以單片機原理和匯編指令為核心的教學造成學生應用能力的不足; 理論和實踐脫節(jié)的教學使學生缺少對單片機應用設計的感性認識和工程體驗。這種教學模式不能有效培養(yǎng)學生的應用技能和激發(fā)學生的積極性。在單片機教學中,綜合運用仿真教學可以提高學生學習興趣,培養(yǎng)學生的應用能力。

1 Keil軟件介紹

Keil 是美國 Keil Software 公司出品的單片機 C 語言軟件開發(fā)系統(tǒng)。傳統(tǒng)的單片機原理課程用匯編語言編程,能夠讓學生具體了解單片機的結構及工作原理,但是匯編語言是結構化程序設計語言,可移植性差,代碼復雜;與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,Keil生成的目標代碼效率非常高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。

2 Proteus軟件介紹

Proteus是英國 Lab Center Electronics公司開發(fā)的一款著名的能夠對大多數(shù)主流單片機進行仿真、調試與測試的EDA工具,真正實現(xiàn)了對系統(tǒng)進行仿真設計、測試與驗證。 Proteus提供的元件庫涵蓋了目前實踐應用中的大部分資源,既有模擬元件也有數(shù)字元件。在單片機仿真應用方面支持多種微控制器及常見的外圍芯片,并且支持與當前流行的單片機開發(fā)環(huán)境(Keil、MPLAB、IAR)聯(lián)合調試的軟硬件仿真系統(tǒng)。

3 Proteus與Keil聯(lián)合仿真

在實際的單片機系統(tǒng)開發(fā)中應用Proteus 軟件與 Keil 軟件的聯(lián)合仿真,設計的效果可以通過仿真預覽,大大減少了調制周期和硬件成本。仿真過程中可以從多個角度直接觀察程序運行和電路工作的過程與結果,簡化了設計實驗過程,極大地提高學生學習單片機的興趣。

4 舉例說明Proteus與Keil聯(lián)合仿真過程

下面以“仿真萬年歷”為例來說明Proteus與Keil聯(lián)合仿真過程。

4.1 代碼實現(xiàn)

打開Keil軟件,編寫主程序代碼如下: #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無符號字符數(shù)組和show_ data()日期顯示函數(shù)構成。DIS_CODE數(shù)組元素是數(shù)字0~9的顯示碼,show_ data()函數(shù)主要做年、月、日的顯示處理。

4.2 仿真電路設計

打開Proteus軟件,在原理圖編輯窗口繪制萬年歷仿真電路,如圖1所示。

圖1 萬年歷仿真電路

原理圖中主要用到以下元器件:AT89C51單片機、16引腳排阻、七段共陽極四位數(shù)碼管、七段共陽極兩位數(shù)碼管。

4.3 軟硬件結合仿真調試

利用 Keil軟件編輯、編譯C語言代碼,生成.HEX文件,然后將.HEX文件加載到單片機中,點擊仿真運行開始按鈕即可。也可以把 Keil 和 Proteus 結合起來,對單片機系統(tǒng)作聯(lián)合仿真調試。這種聯(lián)合仿真調試方法類似于實際工程設計中的硬件仿真,即利用Keil軟件直接控制 Proteus中程序的運行。仿真效果如圖1所示[1]。在單片機課程教學中,綜合運用Proteus與Keil聯(lián)合仿真有效地克服了一些純硬件平臺存在的實際問題的束縛,節(jié)省了大量的設備準備、實際電路的連接以及現(xiàn)場試驗的時間。從而有效地解決了學生理論與實踐脫鉤、動手能力不足的問題,大幅度地提高了學習興趣[2]。

[1]萬松峰. Proteus在單片機理實一體化教學的應用[J].實驗科學與技術,2016(14):85-86.

[2]吳志祥.Proteus仿真軟件在單片機教學和科研中的應用[J].實驗科學與技術,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

潘愛民(1973—),男,漢族,籍貫(精確到市)為湖北省老河口市,當前職務為專職教師,當前職稱為工程師,學歷碩士,研究方向為單片機、傳感器、計算機、通信。

猜你喜歡
原理圖代碼調試
淺談STM32核心板原理圖設計
電路原理圖自動布圖系統(tǒng)的設計與實現(xiàn)
電氣CAD原理圖數(shù)據(jù)提取與輔助建模
基于Protel DXP 2004層次原理圖的設計
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
基于航拍無人機的設計與調試
FOCAS功能在機床調試中的開發(fā)與應用
抚远县| 静乐县| 闽侯县| 长岭县| 屯门区| 莒南县| 玉龙| 木兰县| 康乐县| 嘉善县| 清镇市| 宁海县| 新宁县| 宜良县| 台中县| 昌图县| 新化县| 恩平市| 镇康县| 堆龙德庆县| 安图县| 济源市| 敦化市| 健康| 得荣县| 兴山县| 高雄县| 石台县| 香格里拉县| 荣成市| 台东县| 崇州市| 黔西| 禹城市| 西和县| 平和县| 惠水县| 冀州市| 威宁| 新丰县| 郓城县|