单片机开发系统_第1页
单片机开发系统_第2页
单片机开发系统_第3页
单片机开发系统_第4页
单片机开发系统_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 单片机开发系统,实训2 单片机开发系统及应用 2.1 单片机开发系统 2.2 单片机开发系统的功能 2.3 单片机应用系统的调试 2.4 Keil软件的使用 本章小结 习题2,实训2 单片机开发系统及应用 1实训目的 (1) 了解单片机开发系统的基本组成及功能。 (2) 通过最简应用系统实例了解单片机开发系统的使用方法。 2实训设备与器件 (1) 实训设备:单片机开发系统。 (2) 实训器件与电路:与实训1相同。 3实训步骤及要求 (1) 系统连接。参照图2.1将单片机仿真器、实验板及计算机连接起来。,图2.1 单片机开发系统连接图,(2) 输入、编辑汇编语言源程序。先打开计算机中的仿

2、真软件,进入仿真环境,新建源文件,输入下面的程序。注意,分号后面的文字为说明文字,输入时可以省略。保存文件时,程序名后缀应为.asm,例如LED2.asm。 程序 ;说明 ORG 0000H ;程序从地址0000H开始存放 MOV A,#0FEH ;把立即数FEH送A START:MOV P1,A ;把A送P1口,点亮一个发光二极管 RL A ;左移 ACALL DELAY ;延时 AJMP START ;重复闪动 DELAY:MOV R3,#200 ;延时(200 ms)子程序开始,DEL2: MOV R4,#250 DEL1: NOP NOP DJNZ R4,DEL1 DJNZ R3,DE

3、L2 RET ;子程序返回 END ;汇编程序结束 注:下一次打开该文件时,可直接用Open命令打开。,(3) 启动单片机开发系统调试软件。使用的单片机开发系统不同,所用的调试软件也不同。例如:MICE-51单片机开发系统的调试软件是MBUG,Insight-51单片机开发系统的调试软件是Medwin,美国Keil Software公司出品的51单片机开发系统的调试软件是Keil。不同的调试软件,其功能大致相同。在调试软件中,可完成以下操作: 打开(Open)上一步输入的汇编语言源程序文件。 将汇编语言源程序汇编(Assembly),生成十六进制文件。 将汇编后生成的十六进制文件装载(Load

4、)到单片机开发系统的仿真RAM中。,(4) 运行及调试程序: 运行(Execute)程序,观察实验板上8个发光二极管的亮灭状态。 单步运行(Step)程序,观察每一句指令运行后实验板上8个发光二极管的亮灭状态。 (5) 修改、运行程序。将程序的第2行MOV A,#0FEH修改为MOV A,#01H,重复步骤(2)步骤(4)。,4. 实训分析与总结 (1) 利用单片机开发系统运行、调试程序的步骤一般包括:输入源程序、汇编源程序、装载汇编后的十六进制程序及运行程序。 (2) 为了方便程序调试,单片机开发系统一般提供以下几种程序运行方式:全速运行(简称运行Execute)、单步运行(Step)、跟踪

5、运行(Trace)、断点运行(Breakpoint)等。 全速运行可以直接看到程序的最终运行结果,本实训中程序的运行结果是实验板上8个发光二极管轮流闪动,跟实训1中的运行结果不相同。 单步运行可以使程序逐条指令地运行,每运行一步都可以看到运行结果。单步运行是调试程序中用得比较多的运行方式。,跟踪运行与单步运行类似,不同之处在于跟踪运行可以进入子程序运行。试将本实训中的程序跟踪运行,观察它与单步运行过程的不同。 断点运行是预先在程序中设置断点,当全速运行程序时,遇到断点即停止运行,用户可以观察此时的运行结果。断点运行给调试程序提供了很大的方便。试将本实训中的程序进行断点运行,观察其运行过程。 (

6、3) 程序调试是一个反复的过程。一般来讲,单片机硬件电路和汇编程序很难一次设计成功,因此,必须反复调试,不断修改硬件和软件,直到运行结果完全符合要求为止。,2.1 单片机开发系统 单片机应用系统建立以后,电路正确与否,程序是否有误,怎样将程序装入机器等,都必须借助单片机开发系统(装置)来完成。单片机开发系统是单片机编程调试的必需工具。 单片机开发系统和一般通用计算机系统相比,在硬件上增加了目标系统的在线仿真器、编程器等部件,在软件上除有类似一般计算机系统的简单的操作系统之外,还增加了目标系统的汇编和调试程序等。单片机开发系统有通用和专用两种类型。通用的单片机开发系统配备多种在线仿真器和相应的开

7、发软件,使用时,只要更换系统中的仿真器板,就能开发相应的单片机或微处理器。只能开发一种类型的单片机或微处理器的开发系统称为专用开发系统。,功能强、操作方便的单片机开发系统能加快单片机应用系统的研制周期。国外早已研制出功能较全的产品,但价格昂贵,在国内没有得到推广。国内很多单位根据我国国情研制出以8031作为开发芯片的MCS-51单片机开发系统的系列产品,例如MICE-51、DVCC-51、SICE、SYBER等。这些产品大部分是开发型单片机,通过软件手段可达到或接近国外同类产品的水平。尽管它们的功能强弱并不完全相同,但都具有较高的性能价格比。,2.2 单片机开发系统的功能 2.2.1 在线仿真

8、功能 单片机的仿真器本身就是一个单片机系统,它具有与所要开发的单片机应用系统相同的单片机芯片(如8031或8051等)。当一个单片机用户系统接线完毕后,由于自身无调试能力,无法验证好坏,因此可以把应用系统中的单片机芯片拔掉,插上在线仿真器提供的仿真头(参考图2.1)。此时单片机应用系统和仿真器共用一块单片机芯片。在开发系统上通过在线仿真器调试单片机应用系统时,就像使用应用系统中真实的单片机一样,这种觉察不到的“替代”称为“仿真”。仿真是单片机开发过程中非常重要的一个环节,除了一些极简单的任务外,一般产品的开发过程中都需要仿真。,在线仿真器的英文名为In Circuit Emulator(简称I

9、CE)。ICE是由一系列硬件构成的设备。开发系统中的在线仿真器应能仿真目标系统(即应用系统)中的单片机,并能模拟目标系统的ROM、RAM和I/O口,使在线仿真时目标系统的运行环境和脱机运行的环境完全“逼真”,以实现目标系统的一次性开发。仿真功能具体地体现在以下几个方面: (1) 单片机仿真功能。在线仿真时,开发系统应能将在线仿真器中的单片机完整地出借给目标系统,不占用目标系统单片机的任何资源,使目标系统在联机仿真和脱机运行时的环境(工作程序、使用的资源和地址空间)完全一致,实现完全的一次性仿真。,单片机的资源包括:片上的CPU、RAM、SFR、定时器、中断源、I/O口以及外部可扩充的程序存储器

10、和数据存储器地址空间。这些资源应允许目标系统充分自由地使用,而不应受到任何限制,使目标系统能根据单片机固有的资源特性进行硬件和软件的设计。 (2) 模拟功能。在开发目标系统的过程中,单片机的开发系统允许用户使用它内部的RAM存储器和输入/输出来替代目标系统中的ROM程序存储器、RAM数据存储器和输入/输出,使用户在目标系统样机还未完全配置好以前,便可以借用开发系统提供的资源进行软件的开发。,在研制目标系统的初级阶段,目标程序还未生成,此时用户编写的程序必须存放在开发系统的RAM存储器内,以便于对程序进行调试和修改。开发系统所能出借的可作为目标系统程序存储器的RAM,常称为仿真RAM。仿真RAM

11、的容量和地址映射应和目标机系统完全一致。对于MCS-51系列单片机开发系统,最多能出借64 KB的仿真RAM,并保持原有复位入口和中断入口地址不变。注意:不同的开发系统所能出借的仿真RAM的容量不一定相同,使用时应参考有关说明。,2.2.2 调试功能 1. 运行控制功能 开发系统应能使用户有效地控制目标程序的运行,以便检查程序运行的结果,对存在的硬件故障和软件错误进行定位。 单片机开发系统提供了以下几种程序运行方式: (1) 单步运行:能使CPU从任意的程序地址开始,执行一条指令后停止运行。 (2) 断点运行:允许用户任意设置断点条件,启动CPU从规定地址开始运行后,当断点条件(程序地址和指定

12、断点地址符合或者CPU访问到指定的数据存储器单元等条件)符合以后停止运行。,(3) 全速运行:能使CPU从指定地址开始连续地全速运行目标程序。 (4) 跟踪运行:类似单步运行过程,但可以跟踪到子程序中运行。 上述几种运行方式在实训2中已经初步涉及,读者在今后的单片机系统开发过程中,可逐步深入地理解各种方式的应用。只有灵活运用这些方法,才能够对程序进行全方位的纠错、调试与运行。,2. 目标系统状态的读出修改功能 当CPU停止执行目标系统的程序后,允许用户方便地读出或修改目标系统资源的状 态,以便检查程序运行的结果、设置断点条件以及设置程序的初始参数。可供用户读出/修改的目标系统资源包括: (1)

13、 程序存储器(开发系统中的仿真RAM存储器或目标机中的程序存储器) (2) 单片机中片内资源(工作寄存器、特殊功能寄存器、I/O口、RAM数据存储器、位单元)。 (3) 系统中扩展的数据存储器、I/O口。,3. 跟踪功能 高性能的单片机开发系统具有逻辑分析仪的功能,在目标程序运行过程中,能跟踪存储目标系统总线上的地址、数据和控制信号的状态变化,跟踪存储器能同步地记录总线上的信息。用户可以根据需要显示跟踪存储器搜集到的信息,也可以显示某一位总线状态变化的波形,从而掌握总线上状态变化的过程,这对各种故障的定位特别有用,可大大提高工作效率。,2.2.3 软件辅助设计功能 1. 程序设计语言 单片机的

14、程序设计语言有机器语言、汇编语言和高级语言。 使用机器语言开发时,程序的设计、输入、修改和调试都很麻烦,因而只能用来开发一些非常简单的单片机应用系统。 汇编语言具有使用灵活、程序容易优化的特点,是单片机中最常用的程序设计语言。但是用汇编语言编写程序还是比较复杂的,只有对单片机的指令系统非常熟悉,并具有一定的程序设计经验的人,才能编写出功能复杂的应用程序。,2. 程序编辑 单片机大都在一些简单的硬件环境中工作,因此大都直接使用机器代码程序。可借助开发系统提供的软件将用户系统的源程序翻译成目标程序。,几乎所有的单片机开发系统都能与PC机连接,允许用户使用PC机的编辑程序编写汇编语言或高级语言程序。

15、例如,PC机上的EDLIN行编辑和PE、WS等屏幕编辑程序,可使用户方便地将源程序输入到计算机开发系统中,生成汇编语言或高级语言的源文件。然后利用开发系统提供的交叉汇编或编译系统,将源程序编译成可在目标机上直接运行的目标程序。开发型单片机一般都具有能和PC机串行通信的接口,在PC机上生成的目标程序可通过命令直接传输到开发机的RAM中,这大大减轻了人工输入机器码的繁重劳动。 一些单片机的开发系统还提供反汇编功能,并可提供用户宏调用的子程序库,以减少用户研制软件的工作量。,2.2.4 程序固化功能 在单片机应用系统中常需要扩展EPROM或EEPROM,作为存放程序和常数的存储器。应用程序尚未调试好

16、时可借用开发系统的存储器。当系统调试完毕,确认软件无故障时,应把用户应用系统的程序固化到EPROM或单片机内部的FPEROM中去。程序固化器就是完成这种任务的专用设备,它也是单片机开发系统的重要组成部分。,2.3 单片机应用系统的调试 2.3.1 硬件调试方法 1. 常见的硬件故障 1) 逻辑错误 样机硬件的逻辑错误是由设计错误和加工过程中的工艺性错误造成的。这类错误包括错线、开路、短路等几种,其中短路是最常见的故障。在印刷电路板布线密度高的情况下,极易因工艺原因造成短路。,2) 器件失效 元器件失效的原因有两个方面:一是器件本身已损坏或性能不符合要求;二是由于组装错误造成的元器件失效,如电解

17、电容、二极管的极性错误,集成块安装方向错误等。 3) 可靠性差 引起系统不可靠的因素很多,如金属化孔、接插件接触不良会造成系统时好时坏;内部和外部的干扰、电源纹波系数过大、器件负载过大等造成逻辑电平不稳定。另外,走线和布局的不合理等也会造成系统可靠性差。,4) 电源故障 若样机中存在电源故障,则加电后将造成器件损坏。电源的故障包括:电压值不符合设计要求,电源引出线和插座不对应,电源功率不足、负载能力差等。,2. 硬件调试方法 1) 脱机调试 脱机调试是在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。应特别注意电源

18、的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总线是否存在相互间的短路或其它信号线的短路。 样机所用的电源,事先必须单独调试。调试好后,确认其电压值、负载能力、极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上的各点电位是否正常。若有高压,联机时将会损坏开发机。,2) 联机调试 通过脱机调试可排除一些明显的硬件故障。有些硬件故障需要通过联机调试才能发现和排除。 联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。如一切正常,即可打开电源。,通电

19、后,执行开发机读/写指令,对用户样机的存储器、I/O端口进行读/写操作、逻辑检查,若有故障,可用样机的存储器、I/O端口进行读/写操作、逻辑检查,若仍有故障,可用示波器观察波形(如输出波形、读/写控制信号、地址数据波形以及有关控制电平)。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上有逻辑错误、有断路或短路现象、集成电路失效等。 在用户系统的样机(主机部分)调试好后,可以插上用户系统的其它外围部件,如键盘、显示器、输出驱动板、A/D或D/A板等,然后再对这些部件进行初步调试。在调试中若发现用户系统工作不稳定,可能有下列原因:电源系统供电电流不够;联机时公共地线接

20、触不良;用户系统主机板负载过大;用户系统各级电源滤波不完善等。,2.3.2 软件调试方法 对于模块结构程序,要一个个子程序分别调试。调试子程序时,一定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步调通一个个程序模块。,各程序模块调通后,可以把各功能块联合起来一起进行整体程序综合调试。在这一阶段,若

21、发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上是否失误,堆栈区域是否溢出,输入设备的状态是否正常,等等。若用户系统是在开发系统的监控程序下运行的,则还要考虑用户缓冲单元是否和监控程序的工作单元发生了冲突。 单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求,安排的用户操作是否合理等,必要时还要作适当修正。,实时多任务操作系统的调试方法与上述方法有很多相似之处,只是实时多任务操作系统的应用程

22、序是由若干个任务程序组成的,一般是逐个任务进行调试。在调试某一个任务时,同时也要调试相关的子程序、中断服务程序和一些操作系统的程序。各个任务调试好以后,再使各个任务同时运行,如果操作系统中没有错误,一般情况下系统就能正常运转。 在全部调试和修改完成后,将用户软件固化于EPROM或单片机内部的FPEROM中,插入用户样机后,用户系统即能脱离开发机独立工作,至此,系统研制完成。,2.4 Keil软件的使用 Keil软件的使用步骤如下: (1) 首先启动Keil软件的集成开发环境。从桌面上直接双击uVision的图标以启动该软件,出现的窗口如图2.2所示。,图2.2 启动窗口,(2) 建立工程文件。

23、在项目开发中并不是仅有一个源程序就行了,还要建立一个工程文件,并为这个工程选择CPU,确定编译、汇编、链接的参数,指定调试的方式。Keil使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中。 点击“工程-新建工程”菜单,出现一个对话框,如图2.3所示。,图2.3 建立工程文件,要求给将要建立的工程起一个名字,可以在编缉框中输入一个名字(例如LED),不需要扩展名,点击“保存”按钮,则出现第二个对话框,如图2.4所示。 这个对话框要求选择目标CPU(即所用芯片的型号)。Keil支持的CPU很多,我们选择Atmel公司的AT89C51芯片,即点击Atmel前面的“+

24、”号,展开该层,点击其中的AT89C51,然后再点击“确定”按钮,回到主界面。 (3) 建立源文件。使用菜单“文件-新建”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,如图2.5所示。在该窗口中输入源程序。保存该文件,注意必须加上扩展名,如le01.asm。需要说明的是,源文件就是一般的文本文件,不一定使用Keil软件编写,可以使用任意文本编缉器编写。,图2.4 选择目标CPU,图2.5 文本编缉窗口,将左边LED前面的“+”号展开,在它下面的字符“File Group”上点击鼠标右键,再点击弹出的快捷菜单中的“追加文件到文件组”命令,如图2.6所示。 在随后出现

25、的如图2.7所示的对话框中,在文件类型中点击asm源文件。 在文件中找到前面新建的le01.asm文件,然后点击“打开”按钮加入工程中,如图2.8所示。,图2.6 追加文件到文件组,图2.7 选择文件类型,图2.8 加入文件,此时,左边的文件夹“File Group”前面就有了一个“+”号,点击该“+”号展开后,下面就出现了一个名为“le01.asm”的文件,说明已经将文件加进来了。 接下来将鼠标移到“LED”上,点击右键,再点击“配置目标工程”命令,将弹出如图2.9所示的窗口,在该窗口中点击“输出”选项卡,将新弹出一个窗口,如图2.10所示,此时一定要选中“创建应用文件”选项,然后再点击“确定”;最后在图2.9中点击“调试”选项卡,在新弹出的窗口(如图2.11所示)中选择“使用软件仿真”或“使用仿真器”选项,最后再点击“确定”。,图2.9 配置目标工程,现在可以进行程序调试了。在图2.12中点击“调试”菜单,在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论