《例说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所示。


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 1 1-1 微型计算机与单片机 2 1-2 8051基础知识 2 1-2-1 8x51的结构 2 1-2-2 89c51/89s51的封装与引脚 3 1-2-3 89s51的基本电路 6 1-2-4 mcs-51系列 8 1-2-5 关于atmel的51系列 10 1-3 认识mcs-51的存储器结构 11 1-3-1 程序存储器 11 1-3-2 数据存储器 12 1-3-3 特殊功能寄存器 14 1-4 mcs-51的时序分析与复位 18 1-4-1 时序分析 18 1-4-2 复位 19 1-5 mcs-51开发流程工具 20 1-5-1 传统开发工具 21 1-5-2 altium designer电路设计软件 22 1-5-3 keil mvision3集成开发环境 23 1-5-4 89s51的在线刻录功能 23 .1-6 实例演练 24 1-7 实时练习 31 第2章 认识mvision3与keil c 33 2-1 mvision3环境简介 34 2-1-1 认识mvision3环境 34 2-1-2 项目管理与选项 37 2-1-3 认识调试/仿真环境 39 2-1-4 外围操作 40 2-2 keil c语言的基本结构 43 2-3 变量、常数与数据类型 47 2-3-1 数据类型 47 2-3-2 变量名称与保留字 49 2-3-3 变量的作用范围 50 2-4 存储器的形式与模式 50 2-4-1 存储器的形式 51 2-4-2 存储器的模式 52 2-5 keil c的运算符 53 2-6 keil c的流程控制 57 2-6-1 循环指令 57 2-6-2 选择指令 60 2-6-3 跳转指令 62 2-7 数组与指针 63 2-7-1 数组 63 2-7-2 指针 64 2-8 函数与中断子程序 64 2-8-1 函数 65 2-8-2 中断子程序 65 2-9 keil c的预处理命令 66 2-10 实时练习 67 第3章 输出端口的应用 69 3-1 认识mcs-51的输入/输出端口 70 3-2 输出电路设计 72 3-2-1 驱动led 72 3-2-2 驱动蜂鸣器 73 3-2-3 驱动继电器 74 3-2-4 驱动固态继电器 75 3-2-5 驱动七段led数码管 76 3-3 实例演练 78 3-3-1 驱动蜂鸣器实验 78 3-3-2 驱动继电器实验 81 3-3-3 霹雳灯实例演练 83 3-3-4 驱动七段led数码管实验 85 3-4 实时练习 87 第4章 输入口的应用 89 4-1 认识mcs-51的输入口 90 4-2 输入设备与输入电路设计 90 4-2-1 输入设备 90 4-2-2 输入电路设计 93 4-2-3 抖动与去抖动 95 4-3 实例演练 97 4-3-1 拨码开关控制 97 4-3-2 按钮开关控制 99 4-3-3 按钮切换式控制 100 4-3-4 按钮开关应用 102 4-3-5 bcd拨码开关 104 4-3-6 多个按钮开关 106 4-3-7 按钮开关放开后动作 111 4-4 实时练习 113 第5章 输入/输出端口的高级应用 115 5-1 键盘扫描 116 5-1-1 键盘扫描原理 118 5-1-2 4×4键盘程序分析 120 5-1-3 认识mm74c922/mm74c923 122 5-2 七段led数码显示管扫描 124 5-2-1 认识七段led数码管模块 125 5-2-2 认识7447/7448 128 5-2-3 认识74138/74139 131 5-3 静态显示与动态显示 132 5-3-1 使用bcd译码器 133 5-3-2 直接驱动 135 5-3-3 使用扫描译码器 136 5-3-4 闪烁 137 5-3-5 交替显示 138 5-3-6 飞入 139 5-3-7 跑马灯 141 5-4 实例演练 142 5-4-1 4位数七段led数码管 142 5-4-2 直接驱动七段led数码管 145 5-4-3 跑马灯 148 5-4-4 4×4键盘与七段led数码管 150 5-4-5 mm74c922 153 5-5 实时练习 154 第6章 中断的应用 156 6-1 认识mcs-51的中断 157 6-1-1 mcs-51的中断 157 6-1-2 中断使能寄存器ie 158 6-1-3 中断优先级寄存器ip 159 6-1-4 定时器/计数器控制寄存器tcon 160 6-1-5 中断向量 160 6-1-6 中断的应用 160 6-2 中断子程序的仿真 161 6-3 实例演练 162 6-3-1 外部中断int0 162 6-3-2 外部中断int1 164 6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值