首页 理论教育 汇编与C语言结合的单片机开发环境

汇编与C语言结合的单片机开发环境

时间:2023-10-23 理论教育 版权反馈
【摘要】:汇编语言源程序的汇编。用户用汇编语言助记符编写的应用程序称为汇编语言源程序。通用的MCS-51汇编程序是MCS-51.EXE,它能实现对汇编语言源程序的汇编。图3-26两种语言源程序转换成目标程序过程支持写入单片机或仿真调试的目标程序有BIN文件和HEX文件两种文件格式。

汇编与C语言结合的单片机开发环境

1.单片机开发系统

单片机开发系统在单片机应用系统设计中占有重要的位置,是单片机应用系统设计中不可缺少的开发工具。

在单片机应用系统设计的仿真调试阶段,必须借助于单片机开发系统进行模拟,调试程序,检查硬件、软件的运行状态,并随时观察运行的中间过程而不改变运行中的原有数据,从而实现模拟现场的真实调试。

单片机开发系统应具备的功能:

(1)方便地输入和修改用户的应用程序。

(2)对用户系统硬件电路进行检查和诊断。

(3)将用户源程序编译成目标代码并固化到相应的ROM中去,并能在线仿真。

(4)以单步、断点、连续等方式运行用户程序,能正确反映用户程序执行的中间状态,即能实现动态实时调试。

常用的MCS-51开发系统主要有:

(1)Keil C51单片机仿真器。

(2)广州周立功单片机发展有限公司的TKS系列仿真器。(3)Flyto Pemulator单片机开发系统。

(4)Medwin集成开发环境

(5)WAVE(伟福)E6000系列仿真器。

2.汇编语言的编辑与汇编

MCS-51单片机的应用程序的完成,应经过3个步骤:

(1)在PC微机上运行编辑程序进行源程序的输入和编辑。

(2)在PC微机上对源程序进行交叉汇编得到机器代码。

(3)通过PC微机的串行口(或并行口)把机器代码传送到用户样机(或在线仿真器)进行程序的调试和运行。(www.xing528.com)

下面先来介绍一下汇编语言的编辑与汇编:

(1)汇编语言的编辑。编写程序并以文件的形式存于磁盘中的过程称为源程序的编辑。编辑完成后源程序应以“.ASM”扩展名的ASCII码文件形式存盘,以备汇编程序调用。

利用计算机中常用的EDLIN、PE等编辑软件或利用开发系统中提供的编辑环境,可在计算机上进行源程序的编辑。

(2)汇编语言源程序的汇编。用户用汇编语言助记符编写的应用程序称为汇编语言源程序。把汇编语言源程序转换翻译成机器语言目标程序(机器码)的过程称为汇编(或编译)。而能将汇编语言源程序转换成机器语言目标程序的系统软件称为汇编程序(或编译程序)。

汇编方法可分为手工汇编和机器汇编两种:

(1)人工汇编(手工汇编):是指利用人工查表直接把汇编语言源程序的每条指令翻译成对应机器代码的过程。这种方法遇到的相对转移指令时,需要根据转移的目标地址计算偏移量。其特点是简单易行,但很麻烦、效率低、且易出错。早期的低档计算机曾使用过,现已很少采用了。

(2)机器汇编:利用汇编程序自动把汇编语言源程序翻译成目标代码的过程。用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定,这些由伪指令来指定。汇编工作由计算机完成,一般的单片机开发系统中都能实现汇编语言源程序的汇编。在分析某些产品的程序的机器代码时,需将二进制的机器代码语言程序翻译成汇编语言源程序,称为“反汇编”。

目前工程应用中源程序都是采用机器汇编来实现的。通用的MCS-51汇编程序是MCS-51.EXE,它能实现对汇编语言源程序的汇编。汇编语言源程序(文件名.ASM)经汇编程序汇编后,可生成打印文件(文件名.PRT)、列表文件(文件名.LST)和目标文件(文件名.OBJ),最后生成出可执行文件(文件名.EXE)。

机器码通过PC微机的串口(或并口)传送到单片机的用户样机(或单片机的在线仿真器),进行程序的调试和运行。

目前很多公司将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成视窗集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,如KEIL、WAVE、Medwin等软件。汇编和C51两种语言源程序的编译过程见图3-26所示。

图3-26 两种语言源程序转换成目标程序过程

支持写入单片机或仿真调试的目标程序有BIN文件和HEX文件两种文件格式。其中,BIN文件是由编译器生成的二进制文件,是程序的机器码;HEX文件是由INTER公司定义的一种格式,这种格式包括地址、数据和校验码,并用ASCII码来存储,可供显示和打印。HEX文件需通过符号转换程序OHS51进行转换。

3.汇编语言的调试

最后简单地介绍一下汇编语言的调试。

单片机开发系统应具有的调试功能主要有:运行控制功能、对应用系统状态的读出功能和跟踪功能等。

调试中常见的软件错误主要有:逻辑语法错误、功能错误、指令错误、程序跳转错误、子程序错误、动态错误、上电复位电路的错误和中断程序错误等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈