本节书摘来自异步社区《例说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系统。关于这块实验板的说明,详见光盘附录。

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

  1. c语言看门狗的作用,51单片机 c语言看门狗程序怎么写

    51单片机 c语言看门狗程序怎么写 51单片机 c语言看门狗程序怎么写 看门狗在51单片机电路里的作用是防止程序 "跑飞"."死机"后,系统不动作,而采取复位的 ...

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

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

  3. 例说51单片机C语言答案,例说51单片机(C语言版)(第3版)

    章  轻松看MCS-51  1 1-1  微型计算机与单片机  2 1-2  8051基础知识  2 1-2-1  8x51的结构  2 1-2-2  89C51/89S51的封装与引脚  3 1-2 ...

  4. 单片机c语言100例 的案例,51单片机C语言100个实例 [推荐下载】

    51单片机c语言100例 ,墙裂推荐下载 附上目录 ************************************************************函数的使用和熟悉****** ...

  5. 51单片机C语言程序100例分析(1)IO+C语言+头文件

    51单片机C语言程序100例分析(1)IO+C语言+头文件 \\\插播一条:文章末尾有惊喜哟~///  P1=0xfe;//P1=11111110B,即P1.0输出低电平} 分析:通过这短短的几行代码 ...

  6. 51单片机c语言编程100,51单片机C语言编程100例.doc

    51单片机C语言编程100例.doc 目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0.P2.P3口认识I/O口的引脚功能4实例6 ...

  7. 51单片机c语言版清华大学,51单片机c语言版.docx

    51单片机(呼吸灯)C语言版 基于单片机与PWM的呼吸灯设计 实训指导教师:班级: 设计人姓名:设计日期:设计地点:完成时间: 本设计是基于单片机的原理与接口设计,采用单片机I/O 口,加以C 语言编 ...

  8. 51单片机蜂鸣器演奏《小苹果》C语言程序,51单片机C语言蜂鸣器发声生日快乐播放程序...

    <51单片机C语言蜂鸣器发声生日快乐播放程序>由会员分享,可在线阅读,更多相关<51单片机C语言蜂鸣器发声生日快乐播放程序(4页珍藏版)>请在人人文库网上搜索. 1.按键发音/ ...

  9. 51单片机c语言试题及答案,单片机C语言期末考试题..

    单片机C语言期末考试题..,单片机的c语言应用程序设计,单片机c语言编程,51单片机c语言程序100例,单片机c语言,单片机c语言编程思想,c语言开发单片机,c语言单片机程序,新概念51单片机c语言教 ...

最新文章

  1. 棋盘上的孙子兵法之我见
  2. 解决linux ssh登陆缓慢问题
  3. python3.6.5安装-Ubuntu16.04安装python3.6.5详细步骤
  4. UVa 11481 (计数) Arrange the Numbers
  5. 在Windows平台下使用Gitblit搭建Git服务器图文解说
  6. 招几个兄弟和我一起做项目
  7. python做图片-python做图
  8. request转发,response重定向,异步请求json数据输出到页面
  9. 使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map
  10. 揭秘!用Python做副业躺赚的4个大招
  11. LWN: 利用 DAMON 进行内存主动回收!
  12. 【安卓源码】简单分析smaps节点
  13. Joel Spolsky给计算机专业学生的七个建议
  14. 3G杀手应用还是全方位轰炸?
  15. R3.6.3下载 Rstudio下载及安装,网盘链接永久有效
  16. 经典同态加密算法Paillier解读 - 原理、实现和应用
  17. Qt入门-QLabel类
  18. RecyclerView添加头部
  19. SOA、RMI、RPC、Rest、RestFul、Soap、WebService 详解
  20. string转换long

热门文章

  1. OpenCV笔记之 图像有效区域复制 image.copyTo()
  2. 如何增强服务器io性能,云服务器磁盘io性能提升
  3. 意男子秘建地下神庙 堪称世界第八奇迹
  4. vue中使用element-resize-detector
  5. 超算力量|“神威·太湖之光”:“速度”与“应用”兼具
  6. 安卓期末大作业——手账本
  7. 打开PhotoshopTea的正确姿势
  8. 【OpenHarmony-v3.2代码分析】02 - device目录 uboot源码分析
  9. 如何增肥,变成肌肉男【转】
  10. html table水平和垂直滚动条,Ajax: Excel风格的HTML Table输入控件[二]:外部表格与水平垂直滚动条...