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

简介:

本节书摘来异步社区《例说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所示。

c625261a22167973deeacbd7c30ae7d52b813ba8

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

1-5-1 传统开发工具

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

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

8380f7e6b96cde9f82a19a4bf1edd3846794c723

圓 编辑源程序
首先利用文本编辑程序来编写源程序(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的电路设计环境里设计电路图、电路板,并产生制作电路板所需要的文件以及相关报告。

2694213093595f92ba19011e2ca802efcdc7aed4

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公司网站下载。

1-5-4 89S51的在线刻录功能

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

f1c3852041127171ec8e72fea25ccbbaf2cfe14e

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

相关文章
|
7月前
|
C语言
嵌入式C语言中的工具代码助你一臂之力
嵌入式C语言中的工具代码助你一臂之力
57 0
|
7月前
|
存储 自然语言处理 编译器
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
|
4月前
|
算法 NoSQL IDE
C语言性能优化:代码优化技巧与工具。
C语言性能优化:代码优化技巧与工具。
139 0
|
27天前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
43 1
|
27天前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
36 1
|
27天前
|
人工智能 安全 算法
基于C语言的嵌入式系统开发,涵盖嵌入式系统概述、C语言的优势、开发流程、关键技术、应用实例及面临的挑战与未来趋势。
本文深入探讨了基于C语言的嵌入式系统开发,涵盖嵌入式系统概述、C语言的优势、开发流程、关键技术、应用实例及面临的挑战与未来趋势。C语言因其高效、可移植、灵活及成熟度高等特点,在嵌入式系统开发中占据重要地位。文章还介绍了从系统需求分析到部署维护的完整开发流程,以及中断处理、内存管理等关键技术,并展望了嵌入式系统在物联网和人工智能领域的未来发展。
62 1
|
2月前
|
C语言
【总结】单片机重点知识总结记录之C语言条件编译(五)
【总结】单片机重点知识总结记录之C语言条件编译(五)
|
7月前
|
NoSQL 编译器 C语言
【C 言专栏】C 语言中的调试技巧与工具
【5月更文挑战第6天】在C语言编程中,调试是必不可少的技能,涉及基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查和性能分析。通过分析问题、设置断点、逐步调试和检查逻辑来解决错误。调试时需保持耐心,合理选用工具,记录过程,并避免过度调试。熟练掌握这些技能将提升代码质量和开发效率。
174 0
【C 言专栏】C 语言中的调试技巧与工具
|
7月前
|
存储 API C语言
C语言Log工具推荐-easylogger
C语言Log工具推荐-easylogger
182 1
|
存储 C语言
使用C语言编写文件读写工具
在现代软件开发中,文件读写是一个非常常见且重要的操作。通过使用C语言编程,我们可以轻松地实现文件的读取和写入。本文将介绍如何使用C语言编写文件读写工具,以及一些相关的注意事项。
82 0