钟娟+郑旋+刘琦
【摘要】单片机实验教学的内容较多,传统的实验手段存在实验内容更新慢、与工程实际应用脱节、硬件设备昂贵和设备维护工作量大等不足,实际教学效果也不理想。文中详细阐述采用Proteus软件仿真的特点,解决了实验教学中硬件条件不足的问题。
【关键词】proteus软件;仿真;单片机
随着嵌入式系统技术的迅速发展,单片机系统作为一种典型的嵌入式系统在汽车、通信、工业控制、家用电器等领域得到了广泛的应用。同时单片机课程是电子技术应用、机电、数控、自动化等专业的一门重要专业课程,实践性环节比重较大,要求理论与实际紧密结合,应着力于培养学生利用已学知识解决实际问题的能力。因此,在实践教学过程中,要求软件与硬件相结合、理论与实践相结合,但传统的单片机教学实验中,采用硬件仿真器、实验箱或实验板,需采购大量的、昂贵的硬件设备,而且设备维护工作量也非常大。
本文在简要介绍了Proteus仿真软件的基础上,对该软件在MCS-51系列单片机实验教学中的应用进行了详细分析,利用它既可以可调试单片机程序,也可仿真单片机外围器件的工作情况;既能充分利用学校计算机房现有计算机,减少硬件设备的维护工作量,还可为学生提供丰富的实验教学内容,激发学生学习单片机的兴趣,提高教学效果,进一步缩短教学与工程实际的距离。
一、Proteus仿真软件介绍
Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机以及外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;提供了多种虚拟仪器,如示波器、逻辑分析仪、信号发生器等,便于调试;支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列以及各种外围芯片;提供软件调试功能,同时支持第三方的软件编译和调试环境,如Keil等软件;具有强大的原理图绘制功能。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。同时,当硬件调试成功后,利用Proteus ARES软件,很容易获得其PCB图,为今后的制造提供了方便。
二、实验教学内容组织
在单片机的课程教学中,所涉及到的内容主要包括了四方面,即单片机系统资源、软件技术、硬件接口电路、软件和硬件结合的应用电路。结合这四方面内容,教师来组织单片机的实验教学内容。
1、系统资源部分实验。任何一款单片机均提供了一定的系统资源。对于MCS-51系列单片机来讲,其所提供的系统资源是以寄存器和存储器的方式体现出来的。对于寄存器内容的查看,可以执行Debug菜单下51CPU下的register项打开相应的窗口。对于系统内部存储器的查看,可以执行Debug菜单下51CPU下的internal memory项打开相应的窗口。对应这部分内容,教师在实验设置时应充分考虑到学生初次学习单片机、Proteus仿真软件和相应的第三方软件如Keil,实验内容应尽量简单主要目的是让学生了解MCS-51系列单片机的系统资源、Proteus仿真软件的基本操作和相应的第三方软件的使用,实验内容可以设计成简单的内存块清零程序在Proteus环境下的仿真与调试,学生学会用Proteus和第三方软件查看系统资源。
2、软件技术部分实验。在软件技术的仿真中所涉及到的内容主要包括对语言中具体语句的执行效果验证、算法的具体实现、程序中语法错误的检查和逻辑错误的验证等。对于纯软件的实验教学内容,教师在实验设置时应充分考虑到学生的能力循序渐进的安排实验内容,实验前要求学生根据实验内容自行编制好调试程序以提高实验效率,已达到预期的教学目的。具体实验内容可以设计为二进制BCD码转换、二进制ASCII码转换、程序跳转表、内存块移动、数据排序和多字节BCD码加减法取补等程序实验。
3、硬件接口部分实验。单片机的接口电路所涉及到的知识涵盖了电子电路设计的相关领域,也涉及到单片机应用系统具体的工作需要。接口电路部分涉及到线路的连接、元器件的选择、工作方式的设置、电路工作的稳定性和可靠性、电路的空间需求等等许多方面的知识和内容;但就课程教学来讲,所涉及到的并不需要这么全面。Proteus所模拟的元件真实工作情况和单片机应用系统的实际工作环境还是有一定的差别。因此只能根据教学的需要,让学生自行设计电路并设置其工作方式。可以通过两种方式组织实施:一是根据具体的要求,让学生设计接口电路并编写相应的程序;一是根据程序的要求,设计单片机接口电路。
4、软件与硬件结合部分实验。软件和硬件的结合,就是一个单片机的应用系统。这一部分的实验可以在课程设计中以课题的方式提出来处理,也可以将其分解成不同的接口部分在接口电路的多次实验中分次完成。在这一阶段,硬件电路的设计已经不是最为关键的了,而是软件系统的设计、调试和运行才是实验的主要内容。因此可以以建议性的意见给出具体的硬件电路,并提出该电路所需要完成的具体工作,由学生进行软件的设计和调试。
三、实验的设计实例
以单片机电子时钟系统为例,介绍使用Proteus6 Demo版本进行单片机电子日历时钟系统设计与仿真的过程。
1、硬件电路设计
该电子日历时钟系统硬件主要由AT89C55单片机、日历时钟芯片DS1302、LCD显示器LM016L、74LS373等元器件组成。
2、软件设计
部分程序清单如下:
SCLK equ P1.6
IO equ P1.7
RST equ P1.5
TIME DATA 60H
DATE DATA 63H
LCD_SETVISIBLE equ 8
LCD_SETCGADDR equ 64
LCD_SETDDADDR equ 128
Start:mov A,#038h; LM016L初始化为8位接口,16×2 行显示,5×7 点阵
call wrcmd; 写命令
mov A,#LCD_SETVISIBLE+6; 不显示光标
call wrcmd
loop:mov DPTR,#TIME; 取时间(时、分、秒)
call bcd2asc; BCD码转换ASCII 码
call wrtime; 时间送LCD 显示
mov DPTR,#200; 延时200 ms
call wtms
mov A,#LCD_SETDDADDR+64; 显示数据RAM 第二行地址
call wrcmd
mov DPTR,#DATE; 取日期(年、月、日)
call bcd2asc
call wrdate; 日期送LCD 显示
mov DPTR,#200
call wtms
mov A,#LCD_CLS; 清屏
call wrcmd
jmp loop
3、系统仿真分析
电路原理图在ISIS里设计完成,并将系统软件编译成.HEX文件后,下面就可以进行电子时钟的系统虚拟仿真了。
在ISIS的原理图中,右键单击AT89C55将其选中,然后单击左键打开AT89C55的Edit Component对话框,在Program File选项中选择文件CLOCK.HEX,单击OK按钮完成仿真设置。
点击ISIS下方仿真按钮的运行按钮,系统开始运行,实时显示当前时间。图1是系统运行时捕捉的瞬间画面。
图1 系统硬件运行状态
四、结束语
通过单片机电子日历时钟系统的实际开发发现,采用该方法可以大大简化硬件电路测试和系统调试过程中电路板制作、元器件安装、焊接等过程。很明显,使用该方法进行系统虚拟开发成功之后再进行实际制作,无疑可以提高开发效率、降低开发成本、提升开发速度,对单片机系统开发具有实用意义。
【参考文献】
[1] 代启化. 基于Proteus的电路设计与仿真[J]. 现代电子技术, 2006, 9(19): 84-86.
[2] 林志琦, 郎建军. 基于Proteus的单片机可视化软硬件仿真[M]. 北京: 航空航天大学出版社, 2006.