【摘要】本文主要分析了单片机在传统教育中的不足,总结Proteus在实践教学中的优点,利用以一个模拟交通灯案例来分析了Protues在理实一体化教学中的应用的,实践证明,不仅能够提高学生的兴趣,而且提高了学生的动手能力和独立思考问题的能力。
【关键词】Protues仿真软件;理实一体化;单片机
一、传统单片机教学存在的问题
单片机作为一个计算机的分支,从20世纪70年代诞生以来,广泛的应用于工业控制、智能仪表、家用电器等各个领域。目前单片机基础这门课程在各个高职院校的信息、自动化、机电等开设,由于单片机是具有很强的理论性和实践性,需要有高质量的实践环节来配合教学,然而传统的单片机教学普遍存在以下的问题,制约了单片机教学的发展。
1.硬件条件跟不上。通常学校需要投入一定钱来购买单片机试验箱,但是在使用的过程中,经常出现元器件的损坏,损坏后没有得到及时的维修,影响后续学生的使用。
2.注重理论教学,实践跟不上。在笔者读书时,一般单片机教学都是从指令教学开始,需要很多计算机方面的知识,学生在学习过程中不仅觉得这门课程难学,而且失去了兴趣,进而对单片机产生了畏惧。
3.有很多学校购买了试验箱,试验箱主要是演示性和验证性,学生在学习过程中缺乏动手能力,这样就不能培养学生独立思考问题能力和解决问题能力。
基于这些问题的存在,我们将Proteus软件引入到单片机教学中,用以改善上述的问题。
二、Proteus软件简介
随着计算机技术的发展,虚拟现实技术已经成为我们工作设计的一个重要辅助工具,市场上也出现了多种单片机仿真软件,其中最著名的是Proteus仿真软件。Proteus软件是英国Labcenter公司1989年开发的电路分析和仿真软件。它集原理图设计、电路分析、仿真和PCB设计一体,配有各种信号源和电路分析所需要的虚拟仪表;具有模拟电路、数字电路、单片机应用系统、嵌入式系统设计与仿真功能。基于Proteus的电子电路设计从根本上克服了传统电子产品没有物理原型就无法对系统进行测试,没有系统硬件就很难对软件进行调试的缺点。
三、Proteus在理实一体化教学中的应用
现我院每年的第一学年开设单片机课程,并且设为必修课程,足可以见我院对单片机教学的重视,学院每一届都将近一千人,受教学条件的影响,实验设备,实验场地很难满足这么大规模的教学,而且实践证明,光学习理论,面对一些指令、单片机结构,而没有实践, 不仅学生学习没有兴趣,老师教学也缺乏热情,严重影响了单片机教学。目前采用Proteus软件结合理论教学,是实现单片机理实一体化教学比较理想的模式。
为了激发学生兴趣,培养学生动手能力和独立思考问题的能力,采用任务驱动教学,从最简单的点亮流水灯任务开始,一步步的将学生带入单片机的世界。从而避开一上来就讲单片机的硬件结构原理,一上来就讲指令系统汇编程序,令人枯燥的教学模式下面以其中一项驱动任务为例。
1.任务要求
要求利用单片机作为核心控制器件,设计交通灯模拟任务,要求能够显示红绿黄三种灯的颜色,当绿灯亮27秒后,黄灯亮,绿灯灭,黄灯亮3秒后红灯亮,红灯亮7秒后熄灭黄灯继续亮3秒,接着黄灯熄灭继续绿灯亮,以此循环来模拟交通灯,数码管要求显示倒计时的数码。本实验运用了单片机内部的IO口,定时器中断,数码管动态扫描等接口知识,是一个综合性实验。
2.仿真电路的设计
打开Proteus软件,在原理图编辑窗口中绘制图1所示。
原理图主要电子元器件包括AT89C52,74HC138译码器,两个共阴极数码管,三个LED发光二极管。数码管以动态扫描的方式来驱动,位选信号通过译码管来选择,单片机的P1口接数码管的管脚,P2.0,P2.1接译码器的低两位,用来做数码管的位选信号,LED发光二级管经过限流电阻接到P2.2,P2.3,P2.4口,用来模拟红绿黄三种颜色的交通灯。
3.软件设计
本实验程序主要两大模块程序组成。由主程序模块,定时器T0的中断服务程序模块。
(1)主程序模块,主要完成系统任务的初始化,比如定时器中断的初始化任务,红黄绿交通灯的初始化,数码管显示的初始化。部分主程序如下:
void main()
{
init()//初始化定时器中断
GREENLED=0;//点亮绿灯
while(1){
display(num);//数码管显示
}
}
(2)定时器T0中断服务模块。本程序利用定时器T0产生一个50ms的中断,在中断服务程序中累计中断的次数,若超过20次计数一次。这样就相当于1秒钟就计数。中断程序要处理的是判断是否倒计时到3秒和0秒,在最后3秒点亮黄灯,在最后1秒还要判断接下来是点亮红灯还是绿灯。中断服务程序如下:
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;//重新装载计数
Count++;
if(Count==20){//20次中断,即1秒
num++;
if(num==3){//判断是否还剩3秒
YELLOWLED=0;//黄灯亮;
if(tagGR==1){//标志位用来判断接下来点亮的是红灯还是黄灯
tagGR=0;
}else{
tagGR=1;
}
}
if(num==0){//倒计时最后
num=29;//让计时器重新开始计时
if(tagGR==1){
REDLED=0;//点亮红灯
}else{
GREENLED=0;//点亮绿灯
}
}
}
}
4.软硬件结合仿真联调
本实验编程主要用C语言编写,C语言的集成开发环境主要采用的是keil编译软件,利用keil生成的hex文件,然后将hex文件装载到Proteus当中即可。
1)keil软件中的设置。打开菜单栏里的“Project”,选择“Option for Target Target1”,在对话框里选择“output”这一栏,然后在将“Create Hex Fi”选择上。如图2所示。
2)Proteus软件的设置。双击仿真图上的单片机,在弹出的对话框里选择需要加载的hex文件,即你的程序生成的文件(如图3所示)。
图4
3)运行软件。点击Proteus左下角的运行软件(如图4所示)。
四、结束语
将仿真软件Proteus用于课堂教学中,可有效的克服传统教学的一些不足,提高单片机教学的质量,而且有利于理实一体化的教学的设计。如果要学生真正掌握单片机,除了仿真软件的使用,更多的是要学生能够将单片机技术与实际结合起来,运用到实际中去才会有价值。
参考文献
[1]江世民,黄同成.单片机原理及应用[M].北京:中国铁道出版社,2010.
[2]朱玉红,林小军.单片机原理与接口技术[M].北京:机械工业出版社,2014.
[3]柯艳明.Proteus仿真软件在单片机实验教学中的应用[J].实验室科学,2014,17(3):75-78.
[4]石英.仿真技术在单片机教学中的应用[J].黄山学院报,2012,14(3):128-130.
[5]陈炳杰,余里超.基于Proteus与Keil的虚拟实验室构建[J].茂名学院学报,2009,19(03):65-68.
[6]王咏梅,王印松.单片机实验教学改革的探索与实践[J].实验室科学,2012,15(4):25-26.
作者简介:何旭东(1983—),湖南邵阳人,毕业天津职业技术师范大学,现任教于贵阳职业技术学院轨道交通分院。