本节书摘来自异步社区《例说8051:单片机程序设计案例教程》一书中的第1章,第1-3节,作者 张义和,陈敌北,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1-3 8051的开发流程与工具
8051系统的开发流程与一般单片机的开发流程类似,其基本开发流程可分为软件与硬件两部分,而这两部分是并行开发。在硬件开发方面,主要是设计原型电路板(prototype),也就是目标板(target board)。在软件开发方面,则是编写源程序(可使用C语言或汇编语言)、再经过编译、汇编成为可执行代码,然后进行排错/仿真。当完成软件设计后,即可应用在线仿真器(In-Circuit Emulator,ICE),下载该可执行代码,然后在目标板上进行在线仿真。若软、硬件设计无误,则可利用IC烧录器将其可执行代码烧录到89S51,最后将该89S51插入目标板,即完成设计,如图1-17所示。
本书所要探讨的是以汇编语言的方式开发8051的软件,可采用的软件开发工具有很多,例如:
Altium Designer
广泛流行的Altium Designer不但是实用的电路板设计软件,还具有功能强大的嵌入式系统(Embedded System)设计工具,不但提供多个8位微处理器(8051、PIC165、Z80等)的软件开发环境,还提供多个32位微处理器的软件开发环境;从软件编辑开始(可使用汇编语言或C语言),然后编译、汇编、连接,产生可执行文件,还可进行排错/仿真与在线仿真。设计结果不但可烧录到单片机里,还可放入FPGA(Field Programming Gate Array,现场可编程门阵列)嵌入式系统。实际上,8051单片机的开发只是Altium Designer的一个小功能而已,而整个Altium Designer系统被它强大的电路板设计与FPGA设计工具所掩盖了。尽管如此,其8051单片机的开发同样非常强劲,一点也不输给其他专用的8051开发工具,读者可以参考其他书籍介绍。
Keil Vision 2
Keil Vision 2提供了集成开发环境(Integrated Development Environment,IDE),可让我们从建立设计工程(Project)开始,然后编辑源程序(C语言或汇编语言)、编译、汇编、连接,再进行排错(排错就是一种程序功能仿真,读者可以参考其他书籍介绍)。
在本书中,将采用传统的开发工具进行8051程序的开发,如图1-18所示。
其中各步骤说明如下:
编辑源程序
首先利用文本编辑程序来编写源程序(source code,即*.asm),这是以8051汇编语言所编写的程序,是人们能阅读的文本文件。若是在DOS环境下编写源程序,可使用PE2之类的文本编辑程序;若是在Windows环境下编写源程序,则可使用Windows所附的记事本。
编译与连接
当源程序编辑完成后,紧接着利用8051的编译程序,如美国2500AD公司的x8051,将源程序进行编译得到目标文件(object code,即.obj);再利用连接程序(Link)将目标文件进行连接产生可执行文件(.TSK)或十六进制文件(*.hex)。由于编译与连接是利用两个不同的程序在DOS下依次进行的动作,因此我们可使用批处理文件来简化操作程序,如下所示为test.bat批处理文件,其功能是让我们一次操作就可完成编译与连接两个动作:
X8051 %1.asm -D
@ECHO OFF
IF ERRORLEVEL 1 GOTO ERR
@ECHO ON
LINK –C %1.obj
@ECHO OFF
GOTO END
:ERR
@ECHO Error……
:END
@ECHO OFF
test.bat
若要编译与连接ch1.asm源程序,则在命令提示符下输入:
注意:可以省略文件扩展名,这样将可省去不少麻烦。
软件仿真
产生TSK文件或hex文件后,可利用8051的软件仿真程序,如AVSIM51,进行简单的软件仿真。
在线仿真
在线仿真是将TSK文件或hex文件下载到在线仿真器中,再以在线仿真器当做8051,插入我们所开发的目标板上,即可进行在线仿真。当然8051在线仿真器是不可缺的!而8051在线仿真器的厂牌、种类繁多,而在附录A里介绍的8051在线仿真器,属于较新一代的8051在线仿真器。
如果一切都正确,则可利用IC烧录器,将hex文件烧录到89C51/89S51中,那么该89C51/89S51就具有我们所编写的程序,然后将它插在目标板上,就完成了此8051电路设计。