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

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

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

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

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

1.5.1 传统开发工具

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

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

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

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

汇编与连接
当源程序编辑完成后,紧接着利用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(回车)

注意:

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

在线仿真
在线仿真是将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的电路设计环境里设计电路图、电路板,并产生制作电路板所需要的文件以及相关报告。

图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刻录器了,甚至昂贵的在线仿真器也不一定需要。

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

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

时间: 2024-11-01 20:53:15

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

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

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

c语言-51单片机C语言编程问题

问题描述 51单片机C语言编程问题 這個程序是這樣的分IN0IN1JP1JP2 JP2為0時常規測試(全顯示格子1格子2)JP2為1時測試模式 當JP2為1時而且JP1為1時進入測試模式1 測試模式1:當IN0為0時顯示pic1;當IN1為0時顯示pic2; 當IN0=0&&IN1=0以及IN0=1&&IN1=1顯示blank 當JP2為1時而且JP1為0時進入測試模式2當IN1接收到一段約為50ms的脈衝將IN0拉高1.5秒如果這1.5秒內IN0有變為0就顯示pic1且持

《例说8051:单片机程序设计案例教程》——1-3 8051的开发流程与工具

1-3 8051的开发流程与工具 8051系统的开发流程与一般单片机的开发流程类似,其基本开发流程可分为软件与硬件两部分,而这两部分是并行开发.在硬件开发方面,主要是设计原型电路板(prototype),也就是目标板(target board).在软件开发方面,则是编写源程序(可使用C语言或汇编语言).再经过编译.汇编成为可执行代码,然后进行排错/仿真.当完成软件设计后,即可应用在线仿真器(In-Circuit Emulator,ICE),下载该可执行代码,然后在目标板上进行在线仿真.若软.硬件

《Linux C编程从入门到精通》一第2章 在Linux中编写C语言代码2.1 Linux中C语言程序开发流程和工具介绍

第2章 在Linux中编写C语言代码 Linux C编程从入门到精通 Linux作为一个操作系统,一项重要的功能就是要支持用户编程.传统的UNIX下的程序开发语言是C语言,C语言是一种平台适应性强.易于移植的语言.Linux是用C语言写成的.反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc.调试工具gdb属于最早开发出来的一批自由软件.因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法. 2.1 Lin

《Linux C编程从入门到精通》——第 2 章 在Linux中编写C语言代码 2.1Linux中C语言程序开发流程和工具介绍

第 2 章 在Linux中编写C语言代码 Linux作为一个操作系统,一项重要的功能就是要支持用户编程.传统的UNIX下的程序开发语言是C语言,C语言是一种平台适应性强.易于移植的语言.Linux是用C语言写成的.反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc.调试工具gdb属于最早开发出来的一批自由软件.因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法. 2.1 Linux中C语言程序开发流程和工

51单片机 c语言-单片机作业,明天的考试估计会有类型题,但不会,20分啊。。。。呜呜,求帮助

问题描述 单片机作业,明天的考试估计会有类型题,但不会,20分啊....呜呜,求帮助 解决方案 最小系统要求能够正确运行,所以晶振是必须的,另外还要能够正确复位,因此,复位电路也是必须的. 由于程序要求不复杂,因此使用片内的程序空间就可以,所以不需要外部程序存储器,所以EA引脚需要接到高电平. 如下图所示 --其它问题楼下继续 解决方案二: 明天考试,那试题怎么提前能得到?试题都泄露了还不会实在羞羞. 解决方案三: 对于80C51来说,它的定时器脉冲来自于12分频的晶振频率,由于晶振12M,12

《产品设计与开发(原书第5版)》——2.3 采用基本的产品开发流程

2.3 采用基本的产品开发流程 图表2-2和图表2-3描述的是最基本的开发流程,特定的流程会随着项目具体情况和企业具体环境的不同而不同.基本的流程非常类似于市场拉动(market-pull)情况下使用的流程:企业从具有市场机会开始产品开发,然后寻找可以满足市场需求的技术(即市场"拉动"开发决策).除了图表2-2和图表2-3所示的市场拉动流程,还有其他几种常见的变化形式:技术推动型(technology-push)产品.平台型(platform)产品.流程密集型(process-inte

《例说51单片机(C语言版)(第3版)》一导读

内容提要 例说51单片机(C语言版)(第3版) 本书分为基本开发环境.8x51结构与应用.外围系统应用三部分.前两章为基本开发环境的介绍,其中包括8x51基本知识.开发系统(μVision3)与程序设计语言(Keil C).第3章到第8章为8x51结构与应用,包括输入/输出端口.中断.定时器/计数器.串行口等,并分别以实例引出.第9章到第14章则是外围系统应用,包括音乐程序的开发.步进电机的控制.AD/DAC接口芯片的应用.LED点阵的驱动.LCD模块的应用.习题解答等. 本书整体结构采用循序渐

《例说51单片机(C语言版)(第3版)》——1-7 实时练习

1-7 实时练习 例说51单片机(C语言版)(第3版)在本章里快速地介绍了8x51,包括基本的硬件以及简单开发工具,这些都是学习8x51的基本知识与必备技能.在此请试着回答下列问题,以确认可顺利进入8x51的世界. 选择题( )1.89S51的内部程序存储器与数据存储器容量各为多少? (A)64KB.128B (B)4KB.64KB (C)4KB.128B (D)8KB.256B ( )2.89S51比89C51多出了哪个功能? (A)存储器加倍 (B)具有WDT功能 (C)多了一个8位输入/输