第7章 单片机应用系统设计课件

上传人:我*** 文档编号:139305670 上传时间:2020-07-21 格式:PPT 页数:190 大小:1.94MB
返回 下载 相关 举报
第7章 单片机应用系统设计课件_第1页
第1页 / 共190页
第7章 单片机应用系统设计课件_第2页
第2页 / 共190页
第7章 单片机应用系统设计课件_第3页
第3页 / 共190页
第7章 单片机应用系统设计课件_第4页
第4页 / 共190页
第7章 单片机应用系统设计课件_第5页
第5页 / 共190页
点击查看更多>>
资源描述

《第7章 单片机应用系统设计课件》由会员分享,可在线阅读,更多相关《第7章 单片机应用系统设计课件(190页珍藏版)》请在金锄头文库上搜索。

1、第七章,MCS-51应用系统的研制和调试,MCS-51应用系统的设计方法 MCS-51应用系统的调试方法 键盘与显示接口设计 步进电机应用设计 温度控制系统,7.1 MCS-51应用系统研制方法,MCS-51的应用系统随着用途的不同,它们的硬件和软件结构差别很大,但系统研制的方法和步骤是基本相同的。,7.1.1 确定任务,在着手系统设计之前,必须确定系统的技术指标,这是系统设计的依据和出发点,它贯串于系统设计全过程的。,不管是老产品改造还是新产品设计,应对产品性能改善的程度、成本、可靠性、可维护性以及经济效益等进行综合考虑,使所设计的产品达到最佳的性能/价格比。,7.1.2 总体设计,2)硬件

2、和软件的功能划分,硬件和软件具有一定的互换性 应用硬件完成某些功能,可以提高工作速度,但增加了硬件成本; 若用软件代替某些硬件的功能,可使硬件成本降低,但软件的工作量增加。,总体设计时,必须在硬件和软件之间均衡。一般的原则是看所设计的目标系统的生产量,如果成产量比较大,则能用软件实现的功能由软件完成,以便硬件结构简化。,7.1.3 硬件设计方法,1)程序存储器的容量,选择单片机时,应从容量、速度和价格方面考虑。在固化设备允许的条件下,宜选用容量大的器件,减少外部扩展的程序存储器,简化硬件逻辑。 ATMEL的89CXX系列和WINBOND的W77系列是目前国内最实用的单片机,它不要外接EPROM

3、电路作为存储器。,2)数据存储器和I/O接口,对于数据存储器的容量需求,系统之间差别比较大。对于常规的智能仪表和实时控制器,8031片上RAM已能满足要求。 若需要扩展少量的RAM和/IO,可用扩展器8155。对于单片机系统,如果要求有较大容量的RAM存储器,这时RAM电路选择的原则是尽可能地减小芯片数量。因为存储器容量大的电路性能价格依然高。,8031的应用系统一般都需要扩展I/O接口,在选择I/O接口电路时,应从性能、价格和负载等方面考虑。应选用标准I/O接口电路(如8255等),使编程方便,应用灵活,负载小,但它的I/O性和一些功能往往没有被充分利用,造成浪费。选用TTL电路作I/O口,

4、负载较大,同时因一个电路的口线少,利用率会提高,成本也降低。应根据系统总的接口要求来权衡。,3) 地址译码器 MCS51是根据地址来选择外部扩展电路进行信息交换的。外部的地址由所选择的地址译码来确定。通常采用全地址译码方法或线选法。 MCS51外部数据存储器和I/O接口电路是统一编址的。若系统只扩展少量的RAM和I/O口电路,则可采用线选法。,所谓线选法就是把单独的地址线连接到单 独的电路选片端,只要这一位地址为低电平 ,就选中该片电路。,图7.2 线选法连接示意图,表7.1 图7.2的地址编码,线选法的优点是硬件线路简单,但是地址空间没有被充分利用,对于RAM和I/O口容量较大的系统,采用译

5、码寻址,一般用74LS138作地址译码器。,表7.2 74LS138功能表,图7.3 74LS138逻辑符号,图7.4 地址译码逻辑,4)总线驱动器,74LS244和P2口的接口,(b) 74LS245和P0口的接口,7.1.4 软件设计方法,图7.6 软件设计过程,1)问题定义 问题定义是进一步明确系统对软件的要求,把软件承担的任务明确的定义出来。 定义输入/输出。 确定对输入数据进行哪些处理。把输入数据转变为输出结果的基本点过程,主取决于对算法的确定。 问题定义的基础,是建立在对系统应用环境的正确 了解程度和正确的工程判断上的,它对软件设计和硬件设计提供指导。,2)软件结构设计 在问题定义

6、的基础上,将软件分解为几个相对独立的任务,并根据这些任务的联系和时间关系,设计一个合理的软件结构,使CPU有条不紊地对这些任务进行处理。 软件结构设计还包括程序设计技术选择、程序设计技术、模块程序设计、自顶向下的程序设计和结构程序设计等。在单片机的软件设计中,模块程序设计是最常用方法。,程序模块的划分没有一定的标准,一般可参考以下原则: 每个模块的程序不宜太长; 力求使每个模块之间界限明确,而且在逻辑上相 对独立; 对一些简单的任务不必模块化; 尽量地利用现成的模块程序(如仿真机提供 MCS-51子程序)。,3)程序设计,建立数学模型是根据问题的定义,描叙出各个输入变量和输出变量之间的数学关系

7、。在单片机应用系统中,数学模型的正确程度,是系统性能好坏的决定性因素。,(1)建立数学模型,例如,在直接数字控制系统中,最简单的方法是数字PID控制算法及其改进形式。在测量系统中,从模拟输入通道得到的温度,流量,压力等现场信息与该信号对应的实际值往往存在非线性关系,则需要进行线性处理。为了削弱或消除干扰信号的影响,提高系精度,常采用算平均发,中值法,惯性数字滤波方法等等。,(2)绘制程序流程图,图7.7 查询程序功能流程图,功能流程图进行扩充和具体化应对存储器, 寄存器,标志位等工作单元作具体的分配和说明, 把功能流程图中每一个粗框转变为对具体 的存贮单元、工作寄存器或I/O口的操作, 绘制出

8、详细的流程图(细框图)。,图7.8 查询程序流程图,(3)编写程序,先分配单片机内部的RAM,指定工作寄存器,配标 志位,再估算子程序和中断嵌套的最大级数以及程序中 栈操作指令使用情况,指定堆栈区,栈区的大小应留有 余量,最后剩下部分作为数据缓冲器。若有扩展RAM存 贮器,应把使用频率最高的数据缓冲器设在内部RAM, 以利提高处理速度。在充分利用内部RAM基础上,再分 配外部的数据存贮器。,将MCS51汇编语言程序编译成MCS51目标程序(机器码),有手工汇编、交叉汇编和驻留汇编等方法。 手工汇编就是对照MCS51指令编码表,把每一个符号指令翻译成十六进制数表示的机器码指令。 单片机开发工具通

9、常提供MCS51交叉汇编(在PC上实现),或驻留自汇编(如SICE通用单片机在线的仿真器)。使用方法大同小异,具体操作与机器有关。程序的调试和固化方法与所提供的研制工具有关。,4)程序的汇编、调试和固化,逻辑错误,电源故障,元器件失效,可靠性问题,7.2 MCS51应用系统的调试方法,7.2.1 常见硬件故障分析,7.2.2 硬件调试方法 1)静态调试,2)联机仿真 在静态调试中,对目标机硬件进行初步调试,只排除一些明显的静态故障。 目标样机中的硬件故障(如各个部件内部存在的故障和部件之间连接的逻辑错误)主要是靠联机仿真来排除的。分别打开样机和仿真器电源后,便开始联机仿真调试。,用仿真机读出修

10、改目标样机扩展RAM存贮器的操作命令 ,将一批数据写入样机的外部RAM存贮器,然后用读样机扩展RAM的命令读出检查,若读出和写入的内容一致(任意的数据写入任意的单元正确),则扩展RAM存贮器没有故障。若存在写不进,读不出现象,则有故障存在。此时编一段循环读写RAM存贮器程序,并用连续方式运行,用示波器观察样机RAM电路的选片信号和读写信号,进一步查明故障点。,测试扩展RAM存贮器,对于I/O口有输入和输出口之分、,也有可编程接口的差别。应根据系统对I/O口的定义,先用仿真机的I/O写命令,把控制字写入可编程电路(如8255、8155等)的命令控制口,使之具有系统要求的逻辑结构。然后有用仿真机的

11、I/O写命令将数据写入输出口,观察输出口和所连设备的状态。同时用 I/O口读或写命令读输入口的状态,观察读出内容和输入设备的状态是否一致(如拨盘开关,键盘等),用这种方法测试I/O接口和所连设备是否存在故障,并对故障进行定位。,测试I/O口和I/O设备,用仿真机ROM命令,使样机中的EPROM电路作为目标机的程序贮存器。再用I/O口读命令读程序存贮器,根据读出的内容和EPROMM的内容是否一致来判断样机的程序存贮器电路是否存在故障。,测试程序存贮器,许多仿真机是以单CPU方式开发MCS-51目标系统的,可以用开关选择,使目标机选用仿真机内晶振电路或样机内的晶振电路,通过使用样机内的晶振电路来测

12、试它的功能。按下样机中复位开关(如果存在),正常情况下,系统应被复位。,晶振电路和复位电路,程序转跳错,常见故障进行分析,7.2.3 软件调试方法, STRT: CLR C MOV A,#0F0H LP1: INC A JNC LP1 GON: MOV DPTR, #7FFFH,例,设计这段程序的目的是为了延迟一段世间。但由于INC A指令执行结果不影响任何标志,所以JNC LOOP1这条指令执行后总是跳转到LP1,结果发生了死循环。我们可以用单拍、跟踪、断点运行方式这一段程序。,在 STRT,GON处后,目标机从STRT开始带断点进行,碰到GON则停下来。但由于程序发生了死循环,碰不到断点。

13、此时在仿真机终端上按下停止运行键,仿真机中的8031返回监控,屏幕显示出PC、PSW、ACC等状态信息。这种情况下,可发现程序中有死循环现象。,输入断点运行命令,在 STRT,GON。此时可以在终端上观察到PC、PSW、ACC等寄存器内容的动态变化,可以进一步确认程序有死循环。若按下停止运行,则停止跟踪。此时把A修改为FFH,从LP1开始运行一条指令,结果ACC变为0,但进位仍为0,找出错误的原因。,再输入跟踪命令,可以修改成下面的程序实现时间延迟: STRT:MOV A, #0F0H LP1: INC A CJNE A, #00H,LP1 GON:MOV DPTR, #7FFFH,2)程序错

14、误 对于计算程序,经过反复测试后,才能验正它的正确性。例如调试一个双字节的十进制加法程序,该程序的功能为8031内31H、30H和33H、32H单元内的BCD码相加,结果送到34H、33H、32H单元。,程序调试: STRT:MOV R0,#32H MOV R1,#30H MOV R7,#02H CLR C L1: MOV A,R0 ADDC A,R1 DA A, MOV R0,A INC R0 INC R1 DJNZ R7,L1 CLR A MOV ACC.0,C MOV R0,A L2: RET,调试这个子程序时,先用仿真机的读出修改命令,将数据和被加数写入8031的30H33H单元内。然

15、后输入断点运行命令: 在 STRT,L2处,目标机以断点的方式从STRT开始运行这个子程序,碰到断点L2后,仿真机中的8031从目标状态返回监控状态。,输入读目标系统8031内部RAM的命令,8031内部RAM状态显示在终端上,观察34H32H的内容,是否等于加数和被加数之和。若对任意的二个数相加,所得结果都正确,则程序是正确的。 若存在错误,再用单拍方式从STRT开始一条一条指令运行,并不断监察8031的状态变化,进一步查出错误原因。,3)输入/输出错误,图7.9 外部中断0输入电路,设中断0服务程序为: PIN0: MOV DPTR,#7F01H ; 读8155AD数据 MOVX A,DP

16、TR . RETI,先测试8031是否会执行外部中断0的服务次序,读取A/D结果。在 MAIN,PINO处输入断点运行命令,即把断点设在中断服务程序的入口,从主程序开始带断点运行,若能碰到断点,证明8031能响应外部中断0请求,再用单步运行命令或断点运行命令,进一步测试中断服务程序的正确性。若碰不到PIN0这个断点地址。说明8031不响应外部0中断。这时先用示波器测试8155定时器的输出波形(7135的时钟),7135的STROBE信号和8155AD的中断请求输出线(PC0)的电平,若发现异常,则从二方面查找原因。,首先,检查硬件逻辑,其次检查对8155的初始化编程,直至各点波形正常为止。若为低电平时,8031仍不响应中断0请求,则需要进一步检查8031的中断系统初始化编程是否有错误。这样从硬件和软件二个方面来诊断和排除系统的输入输出故障。,用单拍、断

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号