基于Proteus虚拟技术的开放式微机控制系统

时间:2022-08-29 04:29:27

基于Proteus虚拟技术的开放式微机控制系统

摘要:根据实验教学与科学研究的实际需求,提出在已有单片机设备的基础上自行研制开放式微机接口板,既可单独使用,又可作为配套设备。系统设计引入EDA技术,利用Proteus虚拟开发平台对各模块进行建模与仿真,实现了软、硬件并行开发,可有效节约硬件资源,缩短开发周期。

关键词:开放式;微机;虚拟技术;Proteus

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)16-3964-03

Opening Microcontroller System on the Basis of Proteus Virtual Technology

WU Feng-jie1, WU Shang-hu2

(1.Laboratory Center of Guangzhou University, Guangzhou 510006, China; 2.Lianchuang Power Engineering Services of Gaoming, Foshan 528500, China)

Abstract: According to the actual needs of experimental teaching and research, MCU devices proposed on the basis of self-developed open-computer interface board can be used alone, but also as supporting equipment. The system development introduces EDA technology and uses Proteus to model and simulate. It can effectively save hardware resources and shorten the development cycle by adpoting a new design concept and implementation of software and hardware for parallel development.

Key words: opening; microcontroller; virtual technology; proteus

对微机控制类课程,本校使用伟福公司生产的微机原理/单片机实验系统,其支持86/51/ISP/96等类型的MCU,主要承担全校微机/单片机原理与接口技术的实验教学与课程设计,及相关专业的毕业设计、各类电子竞赛与科学研究等任务。经过较长时间的使用,发现该系统存在一些问题有待完善与改进,如某些综合设计性实验不被支持、个别实验实现方式单一或接线复杂、系统开放性及扩展性不强等,这在一定程度上影响了学生学习及科研的积极性与主动性,更不利于创新性人才的培养。

为了满足实践教学、毕业设计及自主学习的要求,拟在原有实验系统的基础上自行研制单片机控制系统。该系统以方便使用者学习与开发为前提,按模块化进行设计与开发,提供多种功能模块及多个用户扩展区。一方面,功能模块提供更多用户接口、扩展接口,及更灵活的接线方式,有利于使用者自主学习及科研创新;另一方面,用户扩展区为使用者提供多种元件及模块的接入端口,及提供小型硬件电路搭建平台,插拔方便,提高了器件重复利用率,同时减少了硬件焊接工作,可缩短实验及开发周期。

1 Proteus虚拟开发平台简介

为了有效利用硬件资源及缩短开发周期,系统设计引入基于proteus虚拟开发技术[1]。Proteus是一款电路分析与实物仿真软件,具有实验资源丰富、实验周期短、硬件投入少、实验过程损耗小、与实际设计接近程度大等优点[2],它最大的特点是基于微控制器的设计连同所有的电路一起仿真,能直接在单片机虚拟系统上对MCU编程,并对软件源代码进行实时调试。同时,它具有电路互动仿真功能,通过动态外设模型,如键盘、LED/LCD等,可实时显示系统输入、输出结果,以实现交互仿真,或配合Proteus配置的虚拟仪器如示波器、逻辑分析仪等,使单片机虚拟系统实现预期的实验效果。

Proteus虚拟开发技术的应用,形成了一种全新的系统设计理念,其设计流程为:电路设计与仿真―电路修改与完善―绘制PCB―硬件组装与调试,打破了传统的系统设计模式,使系统设计缺陷暴露在设计初期,克服了因设计中不断修改焊接电路带来的弊端。

2 系统模块化设计

该系统按实际教学与科学研究的需要,共包括以下五个功能模块,各模块设计如下。

1) CUP核心模块

系统的核心组成部分,包括主控芯片(支持多款51单片机,如AT89S系列、STC89系列等)及其必须电路(如下载电路、振荡电路、复位电路等),主要完成对各个模块的功能控制,是系统不可缺少的灵魂。为了提高系统兼容性,设计了两种ISP方法,其接口电路图如图1所示,图(a)是一个串口下载线,其利用MAX232实现单片机与台式机的电平转换;图(b)是一个并口下载线,74HC244起到电平缓冲与驱动作用,从而保证程序烧写质量。

2) 键盘控制及显示模块

键盘控制部分由4个独立式按键及2个4*2的矩阵式非编码键盘及其电路组成[3],可按扫描方式及中断方式进行键盘操作,可弥补已有实验系统键盘输入模块化、集成化带来的局限性,并增强系统人机交互的开放性,使实验者不仅从书本上,更从实践中深刻领悟多种键盘输入方式。显示部分由8个共阴极LED数码管及其驱动电路组成,如图2所示。电路采用74HC573进行两级驱动,一方面,4片2位LED模块的段码分别并联到U1的输出端,由U1对输出信号进行锁存及驱动;另一方面,8个LED的位选端子接U2的输出端,通过控制U2的输出状态,可轮流点亮1位或多位LED数码管。

3) 交通灯控制模块

交通灯是微机类课程较典型的综合设计性实验,一般的实验设备因板面因素往往不能直观、真实模拟十字路通现场,而由流水灯代替之,较容易造成该设计性实验索然无味。本设计由红、黄、绿各12个发光二极管、4片2位LED模块及驱动电路组成,可模拟东西、南北方向十字路口双向六车道的车辆交替运行及特殊紧急车辆通行,平面布局图如图3所示[4]。红、黄、绿发光二极管分别代表红、黄、绿三种信号灯,用于显示车辆通行状况。该模块共有6组信号灯,南北方向和东西方向各3组,如图4所示是其中一组信号灯的电路设计图,每组均包括红、黄、绿三种信号灯,其中绿灯表示允许通行, 红灯表示禁止通行,黄灯是绿灯过渡到红灯的提示灯,其转换顺序及灯亮时间由使用者根据控制算法软件设置。通行倒计时显示采用LED数码管,为节约端口数,LED显示采用动态扫描方式,其显示电路与图2类似,不同的是本模块的LED显示只需4位位选信号,其中东西方向两位, 南北方向两位,具体做法可把图3所示的东西方向、南北方向的X1、X2分别并联,两位数码管可以显示的时间为0~99秒,完全可以满足系统要求。结合本系统的键盘控制模块,设计紧急通行开关,采用实时中断方式实现,对有紧急车辆通行的方向不管其当前信号灯状态如何一律转为绿灯,相反其交叉方向一律为红灯。

4) 16×16点阵LED模块

由1片单色16*16点阵LED及驱动控制电路组成,经测试,16*16点阵LED引脚如图5所示。采用共阳的接法,列驱动电路由一组选通三极管8550(16个)及数据锁存器74HC573(2片)组成,行驱动同样选用具有数据锁存及驱动能力的74HC573(2片)芯片,其电路框图如图6所示。这种驱动方式尽管浪费了一部分硬件资源,如列驱动可只用8个8550管及1片74HC573或行驱动只用1片74HC573,但却使本模块更具开放性,实验者可采用逐行扫描或逐列扫描的方式实现显示,并可左--右、上--下动态翻页显示,突破了目前固定行列扫描的显示模式[5]。

5) 扩展区模块

①系统I/O接口扩展区:用可编程并行I/O接口芯片8155扩展系统I/O口,当单片机口资源不够时,可为系统提供多个口资源;②插件及电路扩展区:由一个DIP固定座、一片面包板及其接口器件组成,能进行多种芯片、模块插件的扩展,同时,还能进行各种分立元件、集成元件、简单数字电路、模拟电路等的搭建与调试工作。

3 系统虚拟开发实例

以键盘控制及显示模块为例介绍系统引入Proteus虚拟技术进行开发的过程。

3.1 电路软硬件设计

该功能模块需要CUP核心模块、键盘模块及显示控制模块共同配合完成,可进行一系列的人机交互实验,本文以四位独立按键控制数码管移位显示为例,要求分别按下K1~K4键时,向左移位显示相对应的键值1~4。8个LED数码管的段码接线端子、位控制接线端子分别与单片机的P1口、P2口相接,同时四位独立按键分别与P3.4、P3.5、P3.6、P3.7相接。

运行Proteus,选择需要的元器件并进行相关属性设置[6],绘制硬件电路原理图如图7所示。

软件开发可利用原有的实验仿真环境----WAVE,或直接在Proteus平台上进行,还可引入第三方软件,如Keil等,主要完成编制、调试软件程序,并下载.hex文件到虚拟CUP等工作,本设计采用Keil Vision2开发环境。

系统启动并完成初始化后,进入无限等待状态。当检测到有键按下时,延时、消抖;确定有键按下后,根据算法得到键码,并通过查表得到相应的段码,再由P0口输出;同时位控制线左移一位,并通过P2口点亮相应LED数码管,从而实现在LED数码管上移位显示相应键值,如此循环。

3.2 Proteus与Keil联调

利用Proteus与Keil的互调功能,能随时掌握程序运行情况及对应的硬件电路输入/输出状态,如出现不符,则对存在问题运用Debug命令深入跟踪,迅速找出问题症结并解决。

第三方软件Keil的引入,实现了在虚拟开发中像用仿真器一样调试程序[7]。在Keil的模拟调试环境中,可单步运行,观察Proteus硬件电路的输出状态变化情况,或在程序中设置断点,如图8,再按F5全速运行,查看Proteus在断点处的运行结果,如图9所示。

该功能模块软硬件调试成功后,按下K1、K2、K3、K4键,Proteus仿真结果如图10所示。

4 结论

该自制微机控制系统可作为伟福实验系统的配套设备,也可作为一块独立的微机接口实验及开发板,提供多种功能模块及用户扩张区,给使用者提供一个充分发挥硬件设计能力的平台,是对现有实验系统的一个有力补充,更是培养学生自主学习能力及科研创新能力的一种有效方法。

参考文献:

[1] 王瑞萍.基于Proteus的单片机虚拟开发环境[J].现代电子技术,2009(8):155-157.

[2] 许文斌.Proteus软件在单片机仿真实验教学中的应用[J].商业经济,2006(3):90-93.

[3] 吴黎明.单片机原理及应用技术[M].北京:科学出版社,2005:106-112.

[4] 何灿,张江霞.智能交通灯控制系统的设计和仿真[J].重庆工商大学学报:自然科学版,2009(2):84-87.

[5] 罗云松,于娟.基于Proteus的单片机点阵LED汉字显示[J].科技信息,2009(17):60-61.

[6] 伍冯洁,谢陈跃,谢斌.Proteus与Keil在单片机开放性实验中的应用[J].电子测量技术,2008(6):100-103.

[7] 赵巧妮.Proteus在单片机仿真中的应用[J].自动化技术与应用,2009(6):113-114,129.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:浅析计算机网络安全缺陷与防范 下一篇:基于数据库的语句优化经验之谈