APP下载

软硬件仿真在单片机教学中的应用

2016-03-18潘爱民

移动信息 2016年10期
关键词:原理图代码调试

潘爱民



软硬件仿真在单片机教学中的应用

潘爱民

武汉东湖学院电子信息工程学院,湖北 武汉 430212

针对传统单片机教学的弊端,提出了使用 Keil 软件与 Proteus 软件联合仿真降低硬件成本和减少调制周期的方法。首先简要介绍了 Keil 软件、Proteus 软件和联合仿真的优势。最后以“仿真万年历”为例,讲解在 Keil中编写 C 语言程序,通过 Proteus 软件画出原理图,进行联合仿真调试的具体过程。

单片机;仿真;Keil;Proteus

当前,高校电子电信类专业都开设了单片机课程,单片机技术已成为目前电子类大学生的一项基本技能。单片机课程的传统教学模式以单片机的结构为主线,先讲硬件结构后讲指令系统最后综合代码验证。这种先原理后设计,先理论后实验的教学模式的缺点是:单片机内部结构和工作原理的讲解不仅使学生理解困难而且感觉课程枯燥乏味;以单片机原理和汇编指令为核心的教学造成学生应用能力的不足; 理论和实践脱节的教学使学生缺少对单片机应用设计的感性认识和工程体验。这种教学模式不能有效培养学生的应用技能和激发学生的积极性。在单片机教学中,综合运用仿真教学可以提高学生学习兴趣,培养学生的应用能力。

1 Keil软件介绍

Keil 是美国 Keil Software 公司出品的单片机 C 语言软件开发系统。传统的单片机原理课程用汇编语言编程,能够让学生具体了解单片机的结构及工作原理,但是汇编语言是结构化程序设计语言,可移植性差,代码复杂;与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,Keil生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。

2 Proteus软件介绍

Proteus是英国 Lab Center Electronics公司开发的一款著名的能够对大多数主流单片机进行仿真、调试与测试的EDA工具,真正实现了对系统进行仿真设计、测试与验证。 Proteus提供的元件库涵盖了目前实践应用中的大部分资源,既有模拟元件也有数字元件。在单片机仿真应用方面支持多种微控制器及常见的外围芯片,并且支持与当前流行的单片机开发环境(Keil、MPLAB、IAR)联合调试的软硬件仿真系统。

3 Proteus与Keil联合仿真

在实际的单片机系统开发中应用Proteus 软件与 Keil 软件的联合仿真,设计的效果可以通过仿真预览,大大减少了调制周期和硬件成本。仿真过程中可以从多个角度直接观察程序运行和电路工作的过程与结果,简化了设计实验过程,极大地提高学生学习单片机的兴趣。

4 举例说明Proteus与Keil联合仿真过程

下面以“仿真万年历”为例来说明Proteus与Keil联合仿真过程。

4.1 代码实现

打开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无符号字符数组和show_ data()日期显示函数构成。DIS_CODE数组元素是数字0~9的显示码,show_ data()函数主要做年、月、日的显示处理。

4.2 仿真电路设计

打开Proteus软件,在原理图编辑窗口绘制万年历仿真电路,如图1所示。

图1 万年历仿真电路

原理图中主要用到以下元器件:AT89C51单片机、16引脚排阻、七段共阳极四位数码管、七段共阳极两位数码管。

4.3 软硬件结合仿真调试

利用 Keil软件编辑、编译C语言代码,生成.HEX文件,然后将.HEX文件加载到单片机中,点击仿真运行开始按钮即可。也可以把 Keil 和 Proteus 结合起来,对单片机系统作联合仿真调试。这种联合仿真调试方法类似于实际工程设计中的硬件仿真,即利用Keil软件直接控制 Proteus中程序的运行。仿真效果如图1所示[1]。在单片机课程教学中,综合运用Proteus与Keil联合仿真有效地克服了一些纯硬件平台存在的实际问题的束缚,节省了大量的设备准备、实际电路的连接以及现场试验的时间。从而有效地解决了学生理论与实践脱钩、动手能力不足的问题,大幅度地提高了学习兴趣[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核心板原理图设计
电路原理图自动布图系统的设计与实现
电气CAD原理图数据提取与辅助建模
基于Protel DXP 2004层次原理图的设计
创世代码
创世代码
创世代码
创世代码
基于航拍无人机的设计与调试
FOCAS功能在机床调试中的开发与应用