导航菜单

Proteus仿真软件在“显示器件驱动技术”教学中的应用

张稳稳,严学文

(西安邮电大学电子工程学院,陕西西安710121)

摘要:针对显示器件驱动技术实验教学中存在的问题,提出利用Proteus 软件作为实验教学的辅助手段,并以驱动2个4位LED数码管为例,具体阐明了Proteus 软件和Keil软件在显示器件驱动技术教学中的联合运用方法。实践证明,Pro?teus软件的使用能激发学生的学习兴趣,加深学生驱动原理及应用的理解,锻炼学生进行软硬件综合开发能力,加快实验进度,从而发掘学生的学习潜力。

教育期刊网 http://www.jyqkw.com
关键词 :Proteus软件;实验教学;显示器件驱动;学习潜力

中图分类号:TN41;TP312 文献标识码:A 文章编号:1004?373X(2015)14?0124?03

收稿日期:2015?01?08

基金项目:西安邮电大学青年教师科研基金资助项目(101?1215;101?0473);西安邮电大学教改创新项目(JGB201314)

0 引言

显示器件驱动技术是西安邮电大学光电信息工程专业的一门实践性较强的专业课,共48学时,其中16学时的实验课程。实验作用是使学生掌握各种显示器件驱动电路设计的基础知识,主要内容涉及单片机(51系列STC89RC52)与常见显示器件接口电路的控制和应用单片机C51语言编程实现显示。在以往的传统教学中,采取的方法是“先讲解驱动原理,再动手实验”,但是实验效果并不好。原因是传统教学中存在教、学、做受到条件的限制,学习效率不高等问题,经常会出现一节实验课,学生的时间都用来调试程序代码,严重影响了实验的进度,影响了学生的学习热情。在教学和实践环节中引入高性能的软件作为课程教学的辅助手段[1],能够有效解决传统教学中出现的这些问题。

Proteus 软件已经广泛地应用于电子信息类课程中[1?7],也取得了良好的教学效果;所以在显示器件驱动技术这门课中,选择了Proteus 仿真软件作为教学的辅助工具,使得学生在课后可以按照自己的思路去设计驱动电路,完成绝大多数软、硬件实验,不受实验电路、开发板等硬件设备的限制。本文将以LED数码管的显示驱动为例,具体介绍Proteus 软件在显示器件驱动技术课程中的应用。实践证明,Proteus 仿真软件的应用有助于学生对驱动电路的理解,解决了课外没有硬件开发板的问题,充分调动学生的学习积极和创造性。实验课的进度和教学效果也大幅度提高。

1 Proteus 软件介绍

Proteus 软件是英国Labcenter Electronics 公司出版的EDA 工具软件,具有Proteus 原理图绘图、布图、中之所以选中它,因为它是目前比较好的仿真单片机及外围器件的工具。与其他电子仿真软件相比较,它除了能仿真单片机的工作情况,还能仿真单片机外围电路或没有单片机参与的其他电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。从某种意义上讲,这种仿真弥补了实验和工程应用间脱节的矛盾。

在教学中选择Proteus 软件,还有一个原因就是它能和Keil,Matlab 等软件联合使用,使得学生可以在设计中直接编辑修改源代码,并实时观察运行效果。

2 教学案例介绍

本文通过“在2个4位共阳极数码管显示自己生日”这一具体实验要求,介绍Proteus软件在教学中的应用。

2.1 硬件电路构建

首先,打开Proteus软件的原理图绘制ISIS软件,绘制52单片机的最小系统及数码管驱动电路,如图1所示。

在显示器件驱动技术这门课中引入Proteus 软件,主要目的是促进同学对驱动电路的理解及方便驱动程序的调试,课程采用的数码管驱动电路是完全按照实验室现有开发板上的原理图设计的,数码管是2个4位共阳极的数码管。数码管采用的是动态扫描的方式,所有数码管的A~G 和DP 端连接在一起构成段选来确定显示什么字形码;每个数码管的公共端,即图中2个4位数码管的1~4脚作为位选确定选择那位数码管被点亮,共需要16个I/O管脚来控制。89C52单片机有4个并行I/O口P0~P3,其中段码由P0 口的8 个引脚P0.0~P0.7 来控制;因为是共阳极的数码管,位选需要提供高电平,但是单片机的I/O口驱动能力有限,提供给数码管的电压不一定能满足点亮数码管所需要的电压电流,所以位选由P2口通过PNP型的三极管9012来控制,三极管在这里起到一个开关的作用;R1~R16是限流电阻。

2.2 软件设计

在程序设计时,如果要让某个数码管亮,就必须给该数码管送入选通信号,然后给某个字母所对应的笔段送入低电平时,该笔段就会被点亮,显示出效果。简单地说就是“ 开位选,送段选”。根据实验具体要求,在Keil C编译软件下编写的C51程序具体如下:

#include <reg52.h>

unsigned int i=0;

unsigned char code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,

0xfd,0xfe};

unsigned char code table2[] ={0xf9,0x90,0x90,0x92,0xc0,

0x80,0xa4,0x82};

void delay(unsigned int );

void main(void)

{

while(1)

{

for(i=0;i<8;i++)

{

P2=table1[i]; //开位选

P0=table2[i]; //送段码

delay(40);

}

}

}

void delay(unsigned int j) //delay

{

while(j??);

}数

码管在轮流显示过程中,数码管的点亮时间由delay函数决定,要求比较短1~2 ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

2.3 仿真调试

Proteus软件仿真可以用2种方法,得到如图2所示的仿真结果。

(1)加载hex 执行文件:在Keil C 软件中编译生成*.hex 文件,在Proteus 软件中双击单片机,在“ProgramFile”选项中加载相应的hex文件,如图3所示,然后启动仿真过程。如果显示有问题,终止仿真过程,返回KeilC软件里调整,重新生成hex文件,在Proteus软件中重新仿真。这个方法因为和平常实验中步骤相似(生成hex文件,下载到开发板观察结果),被大多数同学所接受。

(2)用Proteus 和Keil C 联合仿真:在Proteus 的官网下载联调的安装驱动“VDMAGDI.EXE”,在Proteus的debug 菜单中选中use remote debug monitor;进入Keil的project 菜单Option for Targe‘t Target1’,在Output 选项下的create hex file 选项前打钩,在Debug 选项栏右上角Use 选项右边的下拉框中,选中Proteus VSM Mon?itor ?51 Driver 。再进入setting,如果是单机联调,IP 为127.0.0.1,如图4 所示;如不是单机则填另一台机的IP地址,端口号均为8000。在Keil C中启动调试“Debug→Start/StopDebugSession”,在Proteus中观察直接结果。

3 结语

在显示器件驱动技术课程的实验教学中引入Proteus仿真软件,向学生展示了系统硬件设计、软件设计、调试过程。这种实验教学方法弥补了学生在课前预习课后复习实验时缺乏开发板不足的问题,消除了课堂上开发板损坏等因素对实验结果的影响。同时也加深了学生对显示器件驱动原理的理解,利于培养学生的创新能力和综合应用技巧,明显地提高了教学质量。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 王海燕,杨艳华.Proteus和Keil 软件在单片机实验教学中的应用[J].实验室研究与探索,2012,31(5):88?91.

[2] 袁锋伟,赵立宏,朱慧玲,等.基于Proteus的单片机课程教学与实验改革[J].实验室研究与探索,2007,26(12):75?78.

[3] 张力,林卫共.LabVIEW及Proteus软件环境下单片机串口通讯的仿真方法[J].电子测量技术,2010(4):87?90.

[4] 陈朝元,鲁五一.Proteus软件在自动控制系统仿真中的应用[J].系统仿真学报,2008,20(2):318?320.

[5] 代启化.基于Proteus 的电路设计与仿真[J].现代电子技术,2006,29(19):82?84.

[6] 杨宏,李国辉.基于Proteus与单片机的步进电机控制设计[J].现代电子技术,2010,33(5):104?106.

[7] 王忠,秦英林.Proteus软件在嵌入式系统教学中的应用研究[J].现代电子技术,2010,33(16):74?76.

[8] 朱清慧,张凤蕊,翟天嵩,等.Proteus教程:电子线路设计、制版与仿真[M].北京:清华大学出版社,2008.

[9] 漆强,蒋泉.LED矩阵显示屏实验系统的设计[J].实验科学与技术,2014(2):19?21.

[10] 罗芬,林芝.Proteus的特点及在《单片机应用技术》的应用浅析[J].大众科技,2014(12):113?114.

作者简介:张稳稳(1977—),女,陕西咸阳人,讲师,博士。研究方向为光电显示器件研究与嵌入式开发应用。

下载文本