软硬件仿真在单片机教学中的应用
2016-03-18潘爱民
潘爱民
软硬件仿真在单片机教学中的应用
潘爱民
武汉东湖学院电子信息工程学院,湖北 武汉 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—),男,汉族,籍贯(精确到市)为湖北省老河口市,当前职务为专职教师,当前职称为工程师,学历硕士,研究方向为单片机、传感器、计算机、通信。