MCS51单片机应用教程谭浩强主编清华大学出版社第5章[1].ppt

上传人:sccc 文档编号:5299519 上传时间:2023-06-23 格式:PPT 页数:60 大小:3.62MB
返回 下载 相关 举报
MCS51单片机应用教程谭浩强主编清华大学出版社第5章[1].ppt_第1页
第1页 / 共60页
MCS51单片机应用教程谭浩强主编清华大学出版社第5章[1].ppt_第2页
第2页 / 共60页
MCS51单片机应用教程谭浩强主编清华大学出版社第5章[1].ppt_第3页
第3页 / 共60页
MCS51单片机应用教程谭浩强主编清华大学出版社第5章[1].ppt_第4页
第4页 / 共60页
MCS51单片机应用教程谭浩强主编清华大学出版社第5章[1].ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《MCS51单片机应用教程谭浩强主编清华大学出版社第5章[1].ppt》由会员分享,可在线阅读,更多相关《MCS51单片机应用教程谭浩强主编清华大学出版社第5章[1].ppt(60页珍藏版)》请在三一办公上搜索。

1、第5章 单片机实用开发步骤,5.1 单片机应用系统设计的一般流程5.2 单片机汇编程序的编辑方法5.3 源程序的编译5.4 程序的仿真调试(下载源码就到源码网:),单片机应用系统是以单片机为核心,配以相应的外围电路和软件,能实现某种功能的应用系统,它由硬件部分和软件部分组成。硬件是系统的基础,软件则是在硬件的基础上对其合理的调配和使用,从而完成应用系统所要完成的任务。,5.1 单片机应用系统设计的一般流程,单片机应用系统的研制过程主要包括总体设计、硬件设计、软件设计、仿真调试等几个阶段,图5-1为单片机应用系统设计过程框图。单片机应用系统一般要求可靠性好、系统具有自诊断功能、操作维修方便、性能

2、价格比较高。这些要求在进行应用系统设计的过程中要根据不同的需要和应用场合予以考虑。,图5-1 单片机应用系统设计过程框图,1.总体设计(1)总体方案设计、确定技术指标对于一个待开发的单片机应用系统,应收集相关的技术资料,查看过去是否有类似项目、产品。如果有,则可分析这些项目、产品有什么优点、缺点,有什么值得借鉴。如果没有,则应首先从理论上分析、探讨实现的可能方案,根据客观条件如环境、测试手段、仪器设备、资金成本等,选择一种最佳方案。,总体方案确定后,对应用对象的工作过程进行深入调查和分析,了解课题的要求、信号的种类和数量、应用环境等。不管是老产品改造还是新产品的设计,都应对产品性能改善的程度、

3、成本、可靠性、可维护性及经济效益等进行综合考虑,提出合理可行的技术指标。主要技术指标是系统设计的依据和出发点,此后的整个设计与开发过程都要围绕如何能达到技术指标的要求来进行。,(2)具体方案设计(软硬件功能划分)具体方案设计是将总体设计方案具体化、细化。画出各部分功能框图,大致给出各框图的实现方法,明确哪些部分由软件完成,哪些部分由硬件完成。系统的硬件配置和软件的设计是紧密地联系在一起的,且硬件和软件具有一定的互换性。多用硬件完成一些功能,可以提高工作速度,减少软件研制工作量,但增加了硬件成本。若用软件替代某些硬件的功能,可使硬件成本降低,但增加了软件的复杂性,而且降低了系统的工作速度。因此,

4、总体设计时,应综合考虑以上因素,合理搭配软硬件的比重。,(3)机型和器件选择在选择机型和器件时应考虑以下几点。货源充足稳定,便于批量生产。在考虑性能/价格比的前提下,选择最容易实现应用系统技术指标的机种。所选机型功能强、性能价格比好、有便于使用的开发装置。要选择设计者最熟悉的机种和元器件,以缩短研制周期。按照系统的精度、速度和可靠性等方面的要求合理选择包括传感器、模拟电路、输入输出电路和存储器等器件。,2.硬件设计硬件设计的任务是根据总体设计要求,确定系统扩展所需的扩展部分和各功能模块,包括存储器(EPROM、E2PROM、FLASHROM和RAM)的扩展、I/O电路、A/D、D/A电路以及有

5、关外围电路(键盘、显示器、打印机)等,然后设计出系统的硬件电路原理图。,(1)程序存储器可作为程序存储器的芯片有EPROM、E2PROM及FLASHROM等。从性能和价格方面考虑,对于大批量生产已成熟的应用系统宜选用EPROM、FLASHROM。调试阶段以及样机的研制可选用FLASHROM、E2PROM。,(2)数据存储器和I/O接口对于数据存储器的容量需求,各个系统之间差别较大,对于常规的智能仪器和实时控制系统,MCS-51单片机片内RAM已能满足要求。若需要扩充少量RAM,可以考虑选用RAM/IO扩展芯片8155,不仅扩充了RAM,而且增加输入输出接口。对于数据采集系统,往往需要有较大容量

6、的RAM存储器,这时RAM芯片的选择原则是尽可能减少芯片的数量。,在选择I/O接口电路时,应从体积、价格、功能、负载等方面考虑。标准的可编程接口电路8255、8155接口简单,使用方便,对总线负载小,可优先选用,但对要求口线扩充较少的系统,则可用TTL或CMOS电路,以提高口线的利用率。需要注意的是,CPU的I/O口负载能力有限,扩展以后,不宜满载,应留有余量,否则会降低系统抗干扰能力。对于A/D和D/A电路芯片的选择原则,应根据系统对它的速度、精度和价格的要求来确定。外围模拟电路应根据系统的要求,在速度、精度和价格等方面选用,同时还应注意它们与传感器等的匹配问题。,(3)总线驱动MCS-51

7、系列单片机的外部扩展空间可达64KB,但扩展总线口(P0、P2)的负载能力有限(P0口为8个LSTTL电路,P2口为4个LSTTL电路)。若负载过重,系统便不能可靠地工作,这时可在P0口增加双向三态缓冲器74LS245,在P2口加单向三态缓冲器74LS244。,3.软件设计软件设计的任务是在总体设计和硬件设计的基础上确定程序结构,分配单片机内部RAM资源,划分功能模块,然后进行主程序和各模块程序的设计,最后连接起来成为一个完整的应用程序。软件设计的一般步骤如图5-2所示。,图5-2 软件设计步骤,(1)系统定义系统定义是在进行软件设计前明确软件承担的任务,然后结合硬件结构进一步确定软件所承担任

8、务的细节。细节如下:定义说明各输入输出口的功能,确定信息交换的方式、系统接口方式、占有口地址、读取和输出方式等。在程序存储器和数据存储器区域中(注意考虑是否有断电保护措施)合理分配存储空间,包括系统主程序、常数表格、数据暂存区域、堆栈区域、入口地址等。对面板、控制开关、按键等输入量以及显示、打印等输出量也必须给予定义,作为编程的依据。,(2)软件结构设计设计出合理的软件结构是设计性能优良的单片机应用系统软件的基础。常用的程序设计方法有3种:模块化程序设计;自顶向下逐步求精程序设计;结构化程序设计。MCS-51应用系统的软件设计一般采用模块化程序设计。为了便于编程和调试,应先进行软件结构设计,根

9、据系统要求的功能,把软件分为不同的“模块”,明确各模块应完成的功能,以及各模块之间的关系,主要是要指定哪些任务由主程序完成,哪些任务由中断服务程序完成,以便进行模块化的程序设计。,模块化程序设计是单片机应用系统软件设计中最常用的方法。这种设计方法是把一个完整的程序分成若干个功能相对独立的较小的程序模块,各个程序模块分别进行设计、编制程序和调试,最后将调试好的程序模块连接起来。模块程序设计的优点是:单个程序模块设计和调试比较方便、容易完成,一个模块可以被多个任务共用。,(3)建立数学模型根据问题的定义,描述出各个输入变量和各个输出变量之间的数学关系,称为建立数学模型。数学模型随系统任务的不同而不

10、同。例如在直接数字控制系统中,可采用数字(proportional integral and differential controller,比例积分与微分控制器)控制算法或其改进形式;在测量系统中,从模拟输入通道得到的温度、流量、压力等现场信息与该信号对应的实际值往往存在非线性关系,需要进行非线性补偿。,(4)绘制程序流程图通常是根据系统功能及操作过程和软件的结构,先列出程序的简单功能流程图,再对该图进行扩充和具体化,把简单功能流程图中每一部分转变成具体的存储单元、寄存器和I/O口的操作,从而绘制出详细的程序流程图。(5)编写程序在完成流程图设计以后,依据流程图编写程序。,(6)汇编程序编写

11、完后用开发系统或仿真器的汇编程序将所编写的用户程序汇编成MCS-5l单片机的机器码。(7)在线仿真调试通过单片机的开发系统,将所编写的程序进行在线仿真调试,完成单片机应用系统的各种功能,完成系统软件设计。,4.联机在线仿真调试、修正软硬件错误主要包括用户软件程序的调试和目标系统的硬件调试。(1)用户软件程序的调试用户软件程序的调试可分为以下几个步骤:建立用户源程序。在单片机开发系统上,对用户源程序进行编译,如果编译有错误,则要进行修改,再进行编译,直至错误全部纠正为止。,动态在线调试。用户程序中分为内部服务程序以及与外部的接口程序。内部服务程序是指与用户样机硬件无联系的用户程序,例如计算程序,

12、虽然经编译后已经没有语法错误,但可能有逻辑错误,必须借助于动态在线调试手段,如单步运行、设置断点等,发现逻辑错误,然后进行修改。对于外部接口程序,一定要先把硬件故障排除以后,再对用户程序进行动态在线调试,如果有错误,则进行修改。在调试这一类程序时,硬件调试与软件调试是不能完全分开的,许多硬件错误是通过对软件的调试从而发现和纠正的。将调试完毕的用户程序通过专用编程器固化在EPROM中。,(2)用户样机硬件调试 静态调试。对用户样机进行调试,首先要进行静态调试,静态调试的目的是排除明显的硬件故障。第一步断电测量,在样机加电之前,先用万用表等工具,根据硬件电路图,仔细检查样机线路是否连接正确,并核对

13、元器件的型号、规格和安装是否符合要求。应特别注意对电源系统的检查,以防止电源的短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间的短路或与其他信号线的短路。,第二步加电后检查各插件上引脚的电位,仔细测量各点电平是否正常、尤其应注意8051插座的各点电位。第三步是在断电情况下,除CPU外,插上所有的元器件,并把仿真器的仿真插头插入样机上的CPU插座,准备联机仿真调试。,联机仿真、在线动态调试。在静态调试中,仅对目标样机硬件进行了初步调试,只是排除了一些明显的静态故障,而样机中的硬件故障(如各部件内部存在的故障和部件之间连接的逻辑错误)主要是靠联机仿真排除的。分别打

14、开样机和仿真器电源后,便可开始联机仿真调试,排除硬件的故障。上面已经谈到,硬件调试和软件调试是不能完全分开的,许多硬件错误是在软件调试中发现和被纠正的。因此,在上面介绍的软件在线调试中,也包括联机仿真、硬件在线动态调试以及硬件故障的排除。,5.程序固化,系统独立运行至此可将用户程序固化在程序存储器中,然后将程序存储器插入目标样机系统中,目标样机系统可独立运行。目标样机系统独立运行一段时间无故障后,可认为整个设计开发过程结束。,单片机的程序设计可以使用机器语言、单片机汇编语言和高级语言三种编程语言。机器语言是CPU惟一能够识别的语言,其他语言必须通过编译后形成机器码供CPU识别;汇编语言是单片机

15、系统设计中最常用的程序设计语言;高级语言通用性好,只要单片机开发系统具有编译的能力,就可以直接用高级语言编写程序。MCS-51系列单片机的编译型高级语言有:PL/M51、C-51、MBASIC-51等。,5.2 单片机汇编程序的编辑方法,可以使用单片机仿真器提供的软件包中的编辑器来编写单片机程序,也可以使用PC的编辑程序编写程序,例如PC上的EDIT、PE等编辑软件。然后利用开发系统提供的汇编或编译系统,将源程序编译成可在目标机上直接运行的目标程序。该目标程序可通过PC的串行通信接口直接传送到开发系统的RAM中。本节主要介绍利用单片机仿真器进行51汇编语言程序的编辑方法。,单片机应用系统本身并

16、无自开发能力,需要借助于开发工具进行软件编辑、汇编和调试。目前国内用于MCS-51型单片机的开发系统很多,伟福E2000系列仿真器属于新型的专用开发系统,本节内容是结合其软件包,对汇编程序的编辑等进行说明。,5.2.1 伟福仿真器软件包,源程序的编辑可以在开发系统的软件包中进行。下面以一个延时程序为例介绍如何在伟福E2000仿真器的软件包中进行源程序的编辑。(1)单击WINDOWS界面的开始|程序|WAVE for WINDOWS|wave,进入伟福软件模拟器选择界面,单击好进入编辑器管理窗口。如图5-3所示。,5.2.2 汇编源程序的编辑方法,图5-3 程序编辑器管理窗口,(2)单击文件|新

17、建文件或工具栏的新建文件图标,进入程序编辑器,编辑器自动为程序取名为“NONAME1”。(3)在编辑器中输入并修改程序,注意,字符可以大写或小写,符号和特殊字符必须为英文状态。(4)编辑完成后单击文件|保存文件或文件|另存文件或工具栏的保存文件图标,出现保存对话框或另存对话框,输入文件名TIME1.ASM后,单击保存按钮,完成汇编源文件的保存。如图5-4所示。,图5-4 存储窗口,由于单片机只能执行机器语言的程序(目标程序),因此设计者将自己的源程序编写好并以扩展名ASM保存之后,应将源程序编译成目标程序。在编译过程中,能够检验程序的正确性,并能发现源程序中的语法错误和一般性的逻辑错误,但不能

18、检查结构上的错误。如果有错误,汇编程序会报告,指出错误位置及错误类型。程序错误被纠正后,要重新进行编译调试,直至程序汇编无误为止。,5.3 源程序的编译,下面以前面编辑过的程序TIME1.ASM为例说明汇编的过程:(1)打开已编辑好的源程序TIME1.ASM。(2)单击 项目|编译或按F9键或工具栏的编译按钮,如图5-5所示。,图5-5 编译窗口,(3)编译器开始对源程序进行编译,如果源程序有错误,那么当编译到错误处时,编译会中止并出现提示信息窗口,提示出现错误并报告错误类型和错误出现的位置,如图5-6所示。第一行出现错误并报告错误类型为331:操作数错。原因就是操作数的“#”使用的是中文格式

19、的“#”。可以直接到编辑窗口修改错误,也可以在信息窗口双击错误提示行,自动转到错误程序行处进行修改(这对于较长的源程序相当有用)。,图5-6 提示信息窗口,(4)将所有符号和特殊字符错误修改完毕后,再重新进行编译,结果如图5-7所示。发现又出现了错误,第7行出现错误353:符号未定义。原因是被调用的子程序DELAY1不存在,将子程序补上或去掉对子程序DELAY1的调用后再进行编译。这时由于源程序没有错误,将不会出现信息框,编译通过并产生一个扩展名为.HEX和一个扩展名为.LST的文件,并自动与源文件放在同一个目录下。.HEX文件为目标程序文件,可以在调试后写入程序存储器,.LST文件为列表文件

20、,将原文件与对应的目标文件组合在一起,以备查验。,图5-7 信息窗口,对源程序编译形成目标程序,只是排除了语法错误和一般性的逻辑错误,只有将目标程序应用到目标样机中,经过仿真调试满足功能要求才能最后写到程序存储器中。仿真调试是对程序功能是否能实现所做的最后检查。,5.4 程序的仿真调试,对于模块结构程序,要逐个模块分别调试。调试模块时,一定要符合现场环境,即符合入口条件和出口条件。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU内部资源状态、RAM的内容和I/O口的状态,检查程序执行结果是否符合设计要求。,5.4.1 仿真调试的一般步骤,通过检查,可以发现程序中的死循环错误、

21、转移地址错误、用户系统中的硬件故障、软件算法及硬件设计的错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过各个程序模块。各程序模块通过后,可以把有关的功能模块联合起来一起进行整体程序的综合调试。若在这阶段发生故障,可以考虑各子程序在运行时是否破坏现场、缓冲单元是否发生冲突、标志位的建立和清除在设计上是否有失误、堆栈区域是否有溢出、输入设备的状态是否正常,等等。,单步和断点调试后,还应进行程序连续运行调试。这是因为单步运行只能检验程序的正确与否,而不能确定定时精度和CPU的实时响应等问题。待全部调试完成后,应反复运行多次。此时,除了观察稳定性外,还要观察用户系统的操作是否符合原始设计要求以

22、及安排的用户操作是否合理等,必要时还要作适当修正。,实时多任务控制系统的调试方法与上述方法有很多相似之处,只是实时多任务控制系统的应用程序是由若干个任务程序组成,一般是逐个任务进行调试。在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。逐个任务调试好以后,再使各个任务同时运行。如果控制系统中没有错误,一般情况下系统就能正常运转。,伟福仿真器提供两种仿真调试手段:一是软件模拟仿真,即不需要仿真器而只通过软件包对程序进行模拟仿真调试;二是硬件仿真,即通过仿真器直接对目标样机进行硬件、程序进行仿真调试。对程序进行仿真调试时,这两种方法的使用是一样的。下面以利用例6-9将“

23、F”和“E”转换为ASCII码并存放在内部RAM的25H、26H的程序为例,说明仿真调试的一般步骤:(1)编写程序并以TRANS1.ASM保存。(2)汇编、修改直至汇编无误后如图5-8所示,这时可直接进行仿真调试。,图5-8 正确编译结果,(3)也可以单击文件|调入目标文件将目标程序加载到软件包,这时就可以进行模拟仿真调试了。从图5-9可以看出,进行仿真调试时,在状态栏中可观察PC、DPTR、A、PSW、SP中的值的变化,还可观察执行至当前指令所用的时间。(4)利用单步或跟踪逐条执行程序,并观察内部RAM、各寄存器、定时器以及外部口线的状态值是否正确。观察状态可以利用状态栏的显示、CPU窗口显

24、示或数据窗口的显示进行,如图5-9所示。在CPU窗口或程序窗口中的任意一行中单击鼠标左键,则立即显示出该行程序中操作数的地址和内容或程序转移的地址。,图5-9 加载窗口,(5)设置一系列断点,然后运行程序,看程序能否正常地运行至断点处,同时观察RAM、各寄存器、定时器和外部口线的状态是否正确。断点一般设置在跳转指令、跳转目的处指令、子程序入口、返回指令以及对程序的运行有重要影响的指令处。断点的设置情况如图5-10所示。,图5-10 断点设置,(6)在上面步骤完毕后,单击执行|全速执行,全速运行程序以观察定时器和计数器的工作是否符合要求。,现对伟福仿真器软件包的仿真命令说明如下:在模拟软件仿真器

25、窗口中单击执行按钮,出现如图5-11所示的下拉菜单。在菜单中单击相应选项则执行相应的操作。,5.4.2 仿真调试的一般命令,图5-11 执行菜单,各操作项目的含义如下:全速执行:全速运行程序。跟踪:跟踪程序执行的每一步,观察程序运行状态。单步:单步执行程序。与跟踪不同的是,跟踪可以跟踪到函数或过程的内部,而单步执行则不能。执行到光标处:程序从当前PC位置开始,全速执行到光标所在的行。如果光标所在行没有可执行代码,则提示“这行没有代码”。暂停:暂停正在全速执行的程序。,复位:终止调试过程,且程序被复位。若程序正在执行,则应先停止再复位。设置PC:将程序指针PC设置到光标所在行。程序将从光标所在行

26、开始执行。编辑观察项:观察变量或表达式的值,可以将需要检查和修改的值或表达式放到观察窗口里以便检查和修改。设置/取消断点:将光标所在行设为断点,如果该行原来已为断点,则取消该断点。清除全部断点:清除程序中所有断点。,使用以下4种方法可以在光标处设置/取消断点:(1)将光标移到编辑窗口内行左边的空白处,光标变成右上指箭头,双击鼠标左键,可以设置/取消断点。(2)使用Ctrl+F8快捷键,可以在光标所在行设置/取消断点。(3)右击鼠标,弹出快捷菜单,选择设置/取消断点。,(4)单击主菜单执行|设置/取消断点可设置断点,也可以用Alt+R|B菜单快捷设置/取消断点。断点设置好后,当前行左空白处出现叉状图标。如果断点有效,则当前行背景色为红,如果背景色为绿,说明当前程序行不产生代码,断点无效。此外,在工具栏中有与复位、暂停、全速执行、单步执行和跟踪相对应的按钮,使用起来比较方便。,在程序全部调试、修改和汇编完成后,可将用户软件(目标程序)通过专用的编程器固化于程序存储器中。插入用户样机后,用户系统即能脱离仿真器独立工作,至此系统研制基本完成。目标程序写入CPU的程序存储器后,将CPU插到用户样机中,通电运行,看能否满足设计要求。此时如果再出现问题,则可能性较大的主要是晶振和复位电路等方面的错误。,5.4.3 程序的写入与运行,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号