单片机系统计算机辅助设计工具及软硬件设计和仿真
吴泽球
【摘 要】选用C51语言作编程语言,KEIL和Proteus、双龙软件作为主要的软件编译、调试、仿真、下载和制作的工具,可以方便地进行51单片机的软件设计,并能进行硬件仿真和电路板制作,是优异的计算机辅助开发工具组合.最后提出了一个单片机系统开发方法和工具的设想.
【期刊名称】《长治学院学报》
【年(卷),期】2010(027)002
【总页数】4页(P19-22)
【关键词】单片机;计算机辅助设计;软硬件;设计;仿真
【作 者】吴泽球
【作者单位】武夷学院,福建,武夷山,354300
【正文语种】中 文
【中图分类】TP391.9
使用适当的计算机辅助技术和工具来辅助单片机控制系统的设计开发能够大大地节省人的劳动,产生电脑解放人脑的巨大效益。早期的如Z80单片机,虽然使用汇编语言编程,但是机器只识别由0和1组成的编码,故当编出程序后还需要人工将其翻译成机器码,再输入到单片机中,然后才能进行软硬件调试。现在这种劳动早已经被电脑取代。其劳动效率提高了何止千百倍!虽然如此,人们还是在不断追求更高效的方法,开发更高效的工具。在单片机系统设计开发中,计算机辅助设计及软硬件结合仿真的开发设计工具已经被众多的开发者所使用。
现在对于51系列单片机已经有了不少开发工具和设备,如:支持用C语言开发51单片机程序的常用开发软件就有加拿大软件公司DAVEDUNFIELD推出的MICRO-C51编译器、IAR公司及2500 A.D公司开发的编译器[1]、Windows集成开发环境Keil软件[2]、Intel公司的ASM51、美国的Cybernetic Microsystern Inc公司的Cys8051等。国内的有Med-Win集成开发环境、伟福集成开发软件等[3]。功能比较齐全的集成开发环境可以将用户在开发应用软
电脑编程软件下载免费下载件过程中所需的所有工具有机地结合起来,这些工具包括编辑器,高级语言编译器,汇编器,定位/连接器等,能为用户提供友好的开发环境。软件和硬件仿真的工具有Nahau公司的EMUL5lXA-PC实时在线仿真器[4]、英国Labcenter公司的Proteus软件[5]等。
8051单片机应用程序可使用汇编语言,其优势是与硬件密切相关,可以方便地实现硬件功能,占用资源小、执行速度快。但后来开发的C51语言,可以方便地实现程序设计模块化,代码可读性好、易维护和升级,而且在绝大多数应用条件下执行效率已经非常接近汇编语言,采用C51语言进行单片机软件编程有其独特优势。因此用C51进行单片机程序设计已经成为单片机程序设计的主流之一。
对于C51的编译执行,目前最普遍使用的是KEIL 51软件。KEIL 51是德国KEIL公司开发的单片机C语言编译器,其前身是FRANKLIN C51,它集成了文件编辑处理、编译链接、项目管理、窗口、工具引用和软件仿真管理等多种功能,它的仿真功能中,有两种仿真模式:软件模拟方式和目标板调试方式。在软件模拟方式下,不需要8051单片机硬件就能完成程序仿真调试,这可以极大地提高用户程序的开发效率。
在硬件的仿真方面也有一些软件,其中Proteus是一款相当不错的软件。Proteus是英国Lab
center electronics公司研发的EDA工具软件,它不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,还是一款先进、完整的多种型号微控制器(单片机)仿真器[6]。其中的ISIS智能原理图输入系统是Proteus系统的中心,它是画原理图和仿真的设计环境。Proteus可以与KEIL结合使用和联合进行单片机软、硬件的仿真调试,这使得不需要单片机硬件系统就能完成程序仿真调试,以及对单片机系统硬件不能包括电子线路部分的仿真。这给单片机系统的设计带来了极大的便利。
根据上述情况,综合考虑使用的效果和工具软件获得的成本,本文推荐以下51单片机的计算机辅助设计工具组合:选择用C51语言作主要的编程语言,KEIL和Proteus、双龙软件作为主要的软件编译、调试、仿真、下载和制作PCB板的工具软件,应该是目前性价比上相当好的组合。这些软件都可以得到能满足一般需求的免费版本。
首先按照一个单片机控制系统的功能要求,设计出硬件电路和软件总体结构,对各模块作软件设计得到各模块的程序流程图。
C51是在完全支持标准C全部指令和规则基础上扩展而成的,可以方便地设计模块化的程序。有了各模块的程序流程图后,就容易分别对各程序模块按流程图用C语言进行编程。
编写程序可以启动KEIL,在其界面下进行。
为了能够对硬件电路进行仿真,需要用Proteus画出单片机系统的电路,一般可以按系统的各模块分别画出电路,仿真成功后再组合成总的电路,也可以将整个电路一次画出。用何种方法视电路、软件的复杂程度和调试难易的具体情况而定。
可以用KEIL软件对编好的C51语言程序进行编译,编译通过后就可以在KEIL上进行调试,这时可以用KEIL与Proteus联合工作进行软、硬件的调试和仿真。当然里往往需要对软、硬件设计进行多次的改动和仿真调试。
软硬件调试通过后,就可以制作硬件电路了,这时可用Proteus的ARES软件方便地进行PCB板的设计和制作,然后就可以进行元件的安装。
最后是用实际的硬件电路进行实际的软硬件调试和修改。这时可以用双龙软件将调试好的程序下载到硬件电路的8051单片机中进行测试和调整。由于软件并不能完全地仿真真实电路,所以这时的硬件电路及软件还可能需要作进一步改进。
下面用一个显示模块的设计来举例说明使计算机辅助设计工具进行软硬件结合仿真设计。
显示功能模块包括:需要发光显示的元件有八个七段LED数码管,七个发光二极管。一个七段LED数码管需要八条线控制段的显示(七段加一位小数点),一条线控制位显。七个发光二极管接成共阳极时与一个没有小数点的LED数码管一样可以用七条段的控制线加一条控制七个二极管的阳极的位线来控制,用动态扫描的方法使显示器件工作。硬件的电路原理图如图10所示。
其中,LED数码管是共阳极的,蓝的表示数据总线,总线与51单片机的P0口的八条引脚相接,用字母a-h标示,七个二极管的阴极分别接到总线的这些线上,LED的阴极也分别接到总线的相应线上,并在一起的八个驱动门则分别按顺序与八个LED的位线相接,左边单独的一个驱动门则与并在一起的七个发光二极管的阳极相接。其工作原理是:51单片机通过P0口按一定次序将段码送上总线,另一方面单片机又控制驱动门按一定顺序输出高电平到对应的LED的位线上使相应的LED被接通电源点亮相应段,最后点亮并在一起的发光二极管,这样从左到右依次点亮,周而复始,当扫描频率够高时(不少于25次/秒),人眼就会看到所有发光的元件是稳定地发光的。
据功能和硬件工作原理写出程序流程图1如下:
LED显示函数:dispLED( )
可以使用KEIL的文本编辑器写程序,按流程图不难写出C语言程序如下:void dispLED( )
启动Proteus的ISIS,可使用界面的默认设置,先按电路所需元件到元件库里选择好元件,将元件摆放到图中,连好线,保存到指定文件名。电路图如图2所示。
启动KEIL进行软件编译和调试,可以在KEIL的界面内先对程序文件进行编译,消除语法错误后再进行软硬件结合仿真。
软硬件结合仿真要设定KEIL与Proteus联调功能,方法是:启动KEIL,打开编译好的运行dispLED的项目,将KEIL的Option for target选项下的Debug设置成 Use proteus VSMMONITRE 51 DRIVE,并将Proteus的DEBUG菜单中选中“use remote debugermonitor”,就可以使用KEIL与 Proteus联调的功能进行软硬件结合仿真和调试。
使用KEIL与 Proteus联调功能时,同时启动KEIL和Proteus的ISIS并打开显示模块的软件和硬件项目,要将KEIL生成的HEX文件下载到ISIS打开的电路图中的8051中。这时KEIL的各
种调试、修改、查看系统状态、仿真等功能都可以使用,同时在Proteus的界面显示的电路图上可以直观地看到运行的结果,如图2所示。图中,元件引脚上的高、低电平分别用红、蓝直观地表示,不确定的电平则用灰表示,LED可以发光显示数码。这点给电路和程序的调试带来很大的方便。不但比只用KEIL对8051仿真方便快捷,比用实际的电路硬件利用单片机的串口与PC机通信来实现KEIL对用户程序的实时在线调试也更直观和方便快捷。
经过调试、修改得到满足要求的硬件电路后,就可以用Proteus的ARES得到PCB图。做法是:在ISIS中完成原理图,然后修改封装,把元件的封装修改成符合元件的实际形状的,调整好所有元件的封装后,到菜单Tools→Netlist Compiler,打开Netlist Compiler设置对话框,一般用默认设置就行了,单击OK生成网表文件。紧接着将网表文件导入到ARES。选择菜单Tools→Netlist to ARES,这样就会打开ARES,在放置元件前,要选画一个版框,之后所有的元件将在版框内布线。最好先把具有标志性的元件先手工放置,然后单击Set Strategies按钮,设置布线策略(规则),例如使线的宽度适合所通过的电流和单面板等,然后使用自动放置元件,自动布线,最后再人工调整、添加安装孔、焊盘等。满意后就可以打印出来制电路板,然后就可以进行硬件的安装、软件下载和调试了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论