APP下载

Proteus 和Keil C 在开发单片机控制系统中的应用

2013-08-12赵月静张永弟翟卫贺

实验科学与技术 2013年2期
关键词:原理图调试按钮

赵月静,张永弟,翟卫贺

(河北科技大学 机械工程学院,石家庄 050018)

1 Proteus 仿真软件

Proteus 软件是英国Labcenter electronics 公司研发的电路分析与实物仿真软件,是目前最好的单片机及外围器件仿真工具[1]。Proteus 软件提供了30多个元件库,近8 000 个数字和模拟元件模型(包括各种单片机、常用逻辑电路),各种调试工具,测试仪器,显示设备,虚拟仪器,调试信号等[2]。它由智能仿真输入系统ISIS (Intelligent Simulation Input System)和ARES (Advanced Range Editing Software)两个软件构成,其中ISIS 是原理图编辑与仿真软件,ARES 是布线编辑软件[3-4]。

利用Proteus 可实现单片机应用电路的仿真,包括模拟电路、数字电路、单片机外围电路、RS232 接口、I2C 调试器、SPI 调试器、键盘和LCD 等单元的仿真。该软件不但可以模拟硬件系统,而且可以把编译好的程序代码装入仿真元件中,对软件进行仿真调试,效果就像在焊接好的电路板上一样看到系统的执行结果[5-6]。真正实现了在计算机上完成从原理图设计、硬件电路分析和仿真、软件调试与仿真、系统测试与功能验证,到形成印刷电路板PCB (Print Circuit Board)文件的完整研发过程。

2 Keil C 软件

Keil C μVision4 是一款基于51 单片机的软件开发工具,提供了强大的项目管理功能,可以十分方便地进行模块化程序设计。其中的C 语言部分称为C51。C51 根据51 单片机的特点,对美国国家标准协会ANSI(American National Standard Institute)C 进行了若干扩展。在语法和库函数方面存在稍许差别,但大部分是兼容的[7],C51 和汇编语言一样可直接访问51 系列单片机的硬件资源。μVision4 集成开发环境IDE-(Integrated Develop Environment)包括项目管理器、程序编辑器、Cx51编译器、Ax51 宏汇编、BL51/Lx51 连接定位器、RTX51 实时操作系统、Simulator 软件模拟器以及Monitor51 硬件目标调试器等功能模块[7],并且支持汇编语言编程,还可以使用汇编语言和C 语言混合编程。其最大优势在于具有强大的仿真功能,可进行硬件和纯软件仿真。

采用Keil C μVision4 开发单片机应用程序的基本方法如下[7]:

1)在Keil C μVision4 集成环境中创建一个新项目(project),并为该项目选定合适的单片机型号。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。

2)利用Keil C μVision4 的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。

3)通过Keil C μVision4 的各种选项,配置Cx51 编译器、Ax51 宏汇编、BL51/Lx51 连接定位器以及Debug 调试器的功能。

4)利用Keil C μVision4 的构造(Build)功能对项目中的源程序文件进行编译链接,生成目标代码和可执行文件。如果出现编译链接错误则返回2)步,修改源程序中的错误后重新构造整个项目。

5)将没有错误的目标代码装入μVision4 调试器进行仿真调试,调试成功后用编程器将可执行文件写入到单片机应用系统的程序存储器或单片机内部的Flash Rom 中。

3 Proteus VSM(Virtual Simulation Mode)与Keil C μVision4 两者联调

VSM(Virtual Simulation Mode,VSM)是虚拟仿真模式,而Keil C 具备强大的软件仿真功能,在软件模拟仿真方式下不需要任何单片机硬件即可完成用户程序的调试;它还提供了硬件仿真功能,但我们在利用该功能时,会受到一定的限制。Proteus ISIS 则提供了完善的硬件仿真功能,如果我们把Proteus ISIS 与Keil C 整合起来使用,充分利用各自的优势,单片机软硬件的设计将变得十分便捷,可以有效降低开发成本[8-10]。

3.1 Proteus VSM 的设置

进入Proteus ISIS,打开一个原理图文件,鼠标左键单击Debug,选中use remote debugger monitor,便可实现Keil C μVision4 与Proteus 的连接调试。

3.2 Keil C μVision4 IDE 设置

打开μVision4,建立或打开一个工程,打开project 菜单下的option for target 1 选项,在弹出的窗口中单击debug 按钮,在出现的对话框中右栏上部的下拉菜单中选中Proteus VSM simulator,并单击一下use 前面的圆圈,选中它。然后打开output标签页,将Create Hex file 项打钩选中。

3.3 Proteus VSM 与Keil C μVision4 的联调

在μVision4 环境下,首先在project 菜单下选择build target,编译连接该项目,同时生成Hex 文件。Proteus VSM 下将生成的Hex 文件加载到单片机中。然后进入μVision4 环境下的debug 菜单,选中start/stop debug session 进入调试状态,取消所有断点,进入全速运行方式。然后切换到Proteus VSM 环境下就能观察到程序连续运行情况。此时Proteus VSM 的运行完全依赖于外部调试器μVision4。

4 单片机控制十字路口红绿灯控制系统

4.1 系统实现的具体功能

1)主干道和支干道上的车辆交替运行,主干道每次通行时间设为30 s,支干道每次通行时间设为20 s,主、支干道通行时间可通过修改,如图1所示,先按下K4 键,然后按下K0 键改变南北方向的时间,按一下加一秒;先按下K4 键,然后按下K1 键改变东西方向的时间,按一下加一秒。设定好时间后按返回键K2 开始运行。

2)在绿灯转为红灯时,要求黄灯先亮5 s,才能变换运行车道。

3)黄灯亮时,要求每秒闪亮一次。

4)除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示。

5)在需要手动控制时,按下开关K0 控制主干道手动放行,K1 控制支干道手动放行。

6)有紧急车辆要求通过时,系统能禁止普通车辆通行,按开关K3,主、支干道均为红灯。

4.2 硬件电路原理图设计

在Proteus ISIS 中绘制系统原理图。在Proteus软件主界面中通过对象选择按钮P(从库中选择元件)命令,在弹出的Pick Devices 窗口中选择电路所需的元件,放置元件并调整其相对位置,对元件参数进行设置,接着进行元器件间连线,添加网络标志,完成单片机系统的硬件原理图绘制,如图1所示。

图1 十字路口红绿灯控制系统硬件原理图

4.3 软件编程

通过分析可知,系统共有4 个状态:支干道绿灯,主干道红灯;支干道黄灯闪烁,主干道红灯;支干道红灯,主干道绿灯;支干道红灯,主干道黄灯闪烁;系统在各个状态之间进行转换。系统流程图见图2。

图2 程序流程图

利用Keil C μVision4 软件编程过程如下:

1)打开Keil C μVision4,选择project 菜单下的new project,新建工程。

2)在对话框中选择要保存项目文件的路径,最好事先编好一个该工程的文件夹,所有与该工程有关的文件都存放在该文件夹中,方便以后的工作。文件名文本框中输入项目名称为lightproject,然后保存,最好起一个有提示意义的名称,好找好记。

3)在弹出的对话框,选择CPU 的型号。先选择公司,然后选择型号。此处选择Atmel 公司下的AT89C51,单击“确定”按钮,弹出是否将8051 初始化代码复制到项目中去的询问窗口,单击“是”按钮。

4)选择File 菜单下的new,在弹出的程序文本框中输入编写好的程序,可以是汇编语言或C 语言文件,选择file 菜单下的Save as 或者单击工具栏按钮,保存文件。注意一定要输入扩展名,如* .c、* .asm 或* .a51、* .ini。此处文件保存为light.c。

5)鼠标右键单击左边项目窗口中的source group 1,在弹出的菜单中选择Add files to group“source group 1”,选择刚才建立的light.c 文件,然后单击Add 按钮,将light.c 文件加入到项目中。可以添加多个文件,添加完后单击close,关闭该窗口。

6)设置目标。用鼠标右键单击lightproject,在弹出的快捷菜单中选择option for Target“target 1”,在弹出的对话框中有10 个选项卡,分别针对这个项目进行相应的设置,如3.2 节中所示。

7)选择project 菜单下的Rebuild all target files,编译链接程序。编译完成后,选择Debug 下的start debug session 选项,即可进入Debug 调试环境。装载代码成功在左下角显示“load light”。

4.4 项目仿真

打开Proteus 下的硬件电路原理图,双击单片机AT89c51,打开Edit component 对话框,在program file 中选择在Keil C 中生成的hex 文件light. hex。在clock frequency 文本框中填入合适的单片机的时钟频率,单击OK 按钮退出。从文件下拉菜单中选择保存整个项目。单击仿真按钮开始运行。可以看到十字路口信号灯的变化状态。单击调整按钮,能按照对应的设定功能改变运行状态。

4.5 实物制作

借助Proteus 软件和Keil C 软件,完成原理图仿真后,就可以制作试验电路板。复杂系统原理图可以利用Proteus 下的Ares professional 进行PCB 板的设计。本系统实物图如图3 所示。

图3 单片机控制的十字路口红绿灯控制系统实物图

5 结束语

采用Proteus 和Keil C 仿真软件进行单片机系统开发具有比较明显的优势。只要拥有电脑并安装软件后,就可以进行单片机系统软硬件的设计、开发、调试工作[11]。借助Proteus 和Keil C 软件,即使没有实物硬件的情况下,也可将单片机应用电路的功能和运行的过程形象化。在硬件和软件仿真都正确后再进行实物制作,节省了大量时间和资金,能方便经济地开发单片机各种应用系统,而且很容易获得其PCB 图,为实物制作提供了方便。

[1]毛玉蓉.Proteus 在单片机原理及应用教学中的应用[J].实验科学与技术,2009,7(4):48-49.

[2] 张建华,靳婷.Proteus 软件在单片机教学中的应用[J].实验科学与技术,2011,9(1):60-61.

[3]刘燎原,孙秋波.Proteus 软件在单片机项目教学中的应用[J]. 徐州建筑职业技术学院学报,2009,9(2):63-65.

[4]张富贵,黄海松,吕敬堂,等. 单片机设计性实验与工程实践能力的培养[J]. 实验技术与管理,2011,28(2):135-138.

[5]陈慧,饶成明.Proteus 仿真软件在单片机项目教学中的应用[J]. 现代企业教育,2009.6:56-57.

[6]周润景,张丽娜. 基于PROTEUS 的电路及单片机系统设计与仿真[M]. 北京:北京航空航天大学出版社,2006:154-202.

[7]张齐,朱宁西. 单片机应用系统设计技术[M]. 北京:电子工业出版社,2009:46-75.

[8]杨明欣,郑郁正,赵建,等. 结合电子设计竞赛进行单片机课程改革[J]. 实验科学与技术,2007,5(4):94-97.

[9]殷士勇.keil 和proteus 在单片机实验教学中的应用[J].重庆工商大学学报:自然科学版,2009,26(6):567-570.

[10]许超,吴新杰,张丹. 基于Proteus 和Keil 的单片机课程教学改革[J]. 辽宁大学学报:自然科学版,2011,38(1):27-29.

[11]曾成,伍萍辉,刘艳萍. 基于虚拟硬件环境的单片机原理与应用实验开发[J]. 实验技术与管理,2011,28(2):91-93.

猜你喜欢

原理图调试按钮
当你面前有个按钮
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
基于航拍无人机的设计与调试
FOCAS功能在机床调试中的开发与应用
死循环
无线通信中频线路窄带临界调试法及其应用
调压柜的调试与试运行探讨
内心不能碰的按钮