《例说51单片机(C语言版)(第3版)》一1.5 MCS-51的开发流程与工具

简介: 本节书摘来自异步社区《例说51单片机(C语言版)(第3版)》一书中的第1章,第1.5节,作者 张义和 , 王敏男 , 许宏昌 , 余春长,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.5 MCS-51的开发流程与工具 例说51单片机(C语言版)(第3版) 8x51系统的开发流程与一般单片机微控制器的开发流程类似,其基本开发流程可分为软件与硬件两部分,而这两部分可以并行开发。

本节书摘来自异步社区《例说51单片机(C语言版)(第3版)》一书中的第1章,第1.5节,作者 张义和 , 王敏男 , 许宏昌 , 余春长,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.5 MCS-51的开发流程与工具

例说51单片机(C语言版)(第3版)
8x51系统的开发流程与一般单片机微控制器的开发流程类似,其基本开发流程可分为软件与硬件两部分,而这两部分可以并行开发。在硬件开发方面,主要是设计原型电路板(prototype),也就是目标板(target board)。在软件开发方面,则是编写源程序(可使用C语言或汇编语言),再经过编译、汇编成为可执行码,然后进行调试/仿真。当完成软件设计后,即可应用在线仿真器(In-Circuit Emulator,ICE),加载该可执行码,然后在目标板上进行在线仿真。若软、硬件设计无误,则可利用IC刻录器将其可执行码刻录到8x51,最后将该8x51插入目标板,即完成设计,如图1-22所示。


ea6d0d4614a5465950aca5449a99d149122adebe

图1-22 8x51系统的开发流程

8x51的开发工具非常多,在此只介绍三种较普及的工具。

1.5.1 传统开发工具

应用8x51来设计控制电路时,除了8x51的电路设计外,还得编写8x51程序。传统的8x51程序开发大多是在DOS环境下,而在Windows环境下反倒不是很方便。

如图1-23所示,其中各步骤说明如下。


076ba0b4fe2eac5f1a081f8c62a03bd695bb4178

图1-23 传统的8x51程序开发流程

image编辑源程序
首先利用文本编辑程序来编写源程序(source code,即/*.asm),这是以8x51汇编语言所编写的程序,是人们能解读的文字文件。若是在DOS环境下编写源程序,可使用PE2之类的文本编辑程序;若是在Windows环境下编写源程序,则可使用Windows自带的记事本。

image汇编与连接
当源程序编辑完成后,紧接着利用8x51的汇编程序,如美国2500AD公司的x8051,将源程序汇编得到目的码(即.obj);再利用连接程序将目的码连接而产生可执行文件(.TSK)或Intel的十六进制文件(*.HEX)。由于汇编与连接是利用两个不同的程序在DOS下依序进行的动作。我们可使用批处理程序来简化操作程序,如下所示为test.bat批处理程序,其功能是让我们一次操作就可完成汇编与连接两个动作。

Y9162!&2/btn!.E!
AFDIP!PGG!
JG!FSSPSMFWFM!2!HPUP!FSS! AFDIP!PO!
MJOL! ė D!&2/pck! AFDIP!PGG!
HPUP!FOE!
;FSS!
AFDIP!FsspsČ Č !
;FOE!
AFDIP!PGG!
test.bat

若要汇编与连接ch1.asm源程序,则在DOS命令行下输入:

test ch1    Enter(回车)

注意:

不要指定扩展文件名,如此将可省去不少麻烦。
image软件仿真
产生TSK文件或HEX文件后,可利用8x51的软件仿真程序,如AVSIM51,进行简单的软件仿真。

image在线仿真
在线仿真是将TSK文件或HEX文件加载在线仿真器,再以在线仿真器当做8x51,插入我们所开发的目标板上,即可进行在线仿真。当然80x51在线仿真器是不可缺的。而8x51在线仿真器的厂牌、种类繁多,而在光盘附录里介绍的8x51在线仿真器,属于较新一代的8x51在线仿真器。

如果一切都正确,则可利用IC刻录器将HEX文件刻录到8x51,该8x51就写入了我们所编写的程序,将它插在目标板上,就完成了此8x51电路设计。

1.5.2 Altium Designer电路设计软件

Altium Designer为一套多功能的电路设计软件,其中最著名的有两部分,第一部分是电路图/电路板的设计工具,也就是大家熟悉的Protel电路板设计软件;第二部分是FPGA嵌入式系统(embedded system)设计,即TASKING。实际上,TASKING拥有超过10万个客户,广泛地分布于全世界知名的通信厂商、资通厂商、无线厂商与外围装置厂商等,是嵌入式设计系统的领导品牌。我们可以应用这套软件来开发FPGA嵌入式系统、单片机微控制器的软件与硬件。TASKING除了提供集成文本编辑器外,还提供编译、调试、嵌入式Internet及RTOS(Real Time Operation System,实时操作系统)等,并支持多个DSP、8位、16位及32位的嵌入式微处理器。

在TASKING里,嵌入式软件的生成流程与一般微型计算机或单片机系统的软件生成流程类似,基本程序都是“编写源程序”→“编译(C语言)”→“汇编”→“连接”→“仿真/调试”→“在线仿真”。如图1-24所示是在TASKING里开发FPGA嵌入式系统设计或8x51单片机设计的开发流程。

如果是使用C语言编写源程序,则需先经过C语言的编辑器将源程序编译成.src文件;若在编译的过程中出现任何错误情况,将会把错误信息存入文件(即.err文件)中。.src文件与汇编语言编写的源程序相同,可经由汇编器将它汇编而产生目的文件(.obj)。另外,汇编过程也会产生错误信息文件(.ers)及列表文件(.lst)。紧接着再利用连接器连接目的文件与函数库(若在源程序里应用了函数库里的函数),即可产生可执行文件,其中包括三种可执行文件的格式,如Intel的十六进制文件(.hex)、IEEE—695目的文件(.abs)及Motorola S录制文件(*.sre)。而TASKING里的调试/仿真及在线仿真就是以IEEE—695目的文件为输入。当然,若要使用外部的在线仿真与刻录,则可取用其所产生十六进制文件。

另一方面,我们可同时在Altium Designer的电路设计环境里设计电路图、电路板,并产生制作电路板所需要的文件以及相关报告。


2156d905e9a93994e91627574959e6032892af78

图1-24 TASKING开发流程

1.5.3 Keil μVision3集成开发环境

Keil公司的μVision3集成开发环境(Integrated Development Environment,IDE)是一套相当好用的8x51开发软件。在集成开发环境里,包括项目管理器(Project Manager)、源程序编辑器(Editor)、汇编器(Assembler)、编译器(Compiler)、连接器(Linker/Locator)、调试器(Debugger)等,我们可从建立设计项目(Project)开始,然后编辑源程序(C语言或汇编语言)、编译、汇编、连接,再进行调试(调试就是一种程序功能仿真),图1-25所示为其开发流程。

对于初次尝试Keil μVision3的使用者,Keil公司提供了免费的评估版(evaluation version),让使用者满意再购买。当然,评估版也有其限制,就是无法产生超过2KB的可执行程序,尽管如此,想要编写超过2KB的可执行程序也不是件简单的事,尤其是初学者,本书中的范例编译后产生的文件都小于2KB,所以,大家可放心试用这套可爱又迷人的开发环境。在本书光盘中放置了这个程序。若需要更新版本,可直接到Keil公司网站下载(http://www.keil.com/
demo/eval/c51.htm)。

1.5.4 89S51的在线刻录功能

究竟有什么理由能让89S51取代89C51成为下一代MCS-51的新主流?最有说服力的莫过于其所提供的在线刻录功能(In-System Programmable,ISP)。实际上,89C51就具有ISP的雏型,而89S51更成熟,从此我们几乎摈弃IC刻录器了,甚至昂贵的在线仿真器也不一定需要。


080509fe433e2968d8b46fecff979fd0ee5dd0cd

图1-25 Keil μVision 3开发流程

Atmel公司所提供的ISP电路与程序可让使用者通过个人计算机的并行端口或串行口(RS232C)直接将可执行文件下载到89C51/89S51。如此一来不但可以省掉不少开发工具与设备,也将改写在线仿真的方式,对于初学者帮助很多。而本书也推荐一片89S51在线刻录实验板(USB版),除了ISP功能外,还提供一些简单的外围装置,如LED、蜂鸣器、拨码开关等,我们可直接这块实验板上开发89S51系统。关于这块实验板的说明,详见光盘附录。

相关文章
|
1月前
|
数据处理
MCS-51单片机汇编语言程序设计
MCS-51单片机汇编语言程序设计
20 0
|
1月前
MCS-51单片机串行接口
MCS-51单片机串行接口
20 1
|
1月前
|
C语言
嵌入式C语言中的工具代码助你一臂之力
嵌入式C语言中的工具代码助你一臂之力
21 0
第一章MCS-51单片机结构,单片机原理、接口及应用
第一章MCS-51单片机结构,单片机原理、接口及应用
377 0
第一章MCS-51单片机结构,单片机原理、接口及应用
|
2天前
|
存储 自然语言处理 编译器
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
|
1月前
|
存储 程序员 C语言
scanf函数:C语言中的标准输入工具
在C语言编程中,scanf函数是一个非常重要的工具,用于从标准输入(通常是键盘)读取数据。这个函数允许程序员按照指定的格式读取和存储各种类型的数据。scanf函数的名称来源于“scan formatted”,意味着它会按照特定的格式扫描输入。
14 0
|
1月前
|
C语言
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
72 0
|
8月前
|
存储 C语言
使用C语言编写文件读写工具
在现代软件开发中,文件读写是一个非常常见且重要的操作。通过使用C语言编程,我们可以轻松地实现文件的读取和写入。本文将介绍如何使用C语言编写文件读写工具,以及一些相关的注意事项。
45 0
|
9月前
|
C语言 芯片 数据格式
C语言课设项目-51单片机-红外通信
C语言课设项目-51单片机-红外通信
|
2月前
|
程序员 C语言 开发者
单片机与c语言
单片机是一种嵌入式系统,它是一个微型计算机系统,包含了微处理器、存储器、输入输出接口等功能,能够完成各种控制和处理任务。C语言是一种高级编程语言,它是一种结构化的、面向过程的语言,常用于编写系统软件、嵌入式系统和应用程序等。
35 0