第13章AT89S51单片机的应用设计与调试.ppt
《第13章AT89S51单片机的应用设计与调试.ppt》由会员分享,可在线阅读,更多相关《第13章AT89S51单片机的应用设计与调试.ppt(187页珍藏版)》请在三一办公上搜索。
1、1,第13章 AT89S51单片机的应用 设计与调试,1,成都理工大学工程技术学院自动化工程系,2,2,第13章 目录13.1 单片机应用系统的设计步骤13.2 单片机应用系统设计 13.2.1 硬件设计应考虑的问题 13.2.2 典型的单片机应用系统 13.2.3 系统设计中的地址空间分配与总线驱动 13.2.4 AT89S51单片机的最小应用系统 13.2.5 应用设计举例水温测控系统的硬件设计 13.2.6 软件设计考虑的问题 13.2.7 软件的总体框架设计,3,13.3 单片机应用系统的仿真开发与调试 13.3.1 仿真开发系统简介 13.3.2 用户样机的仿真调试13.4 单片机应
2、用系统的抗干扰与可靠性设计 13.4.1 AT89S51片内看门狗定时器的使用 13.4.2 指令冗余和软件陷阱 13.4.3 软件滤波 13.4.4 开关量输入/输出软件抗干扰设计 13.4.5 过程通道干扰的抑制措施-隔离,4,13.4.6 印刷电路板抗干扰布线的基本原则 13.4.7 掉电保护设计和硬件“看门狗”13.5 单片机应用系统的I/O功率驱动 13.5.1 AT89S51与外围集成数字驱动电路的接口 13.5.2 AT89S51与光电耦合器的接口 13.5.3 AT89S51与集成功率电子开关输出接口,5,内容概要本章介绍AT89S51单片机应用系统的设计。主要内容:设计步骤和
3、方法,硬件设计,程序的总体框架设计以及设计举例。此外,介绍目前仿真开发工具以及如何利用仿真开发工具对单片机应用系统进行开发调试。最后介绍单片机应用系统的抗干扰和可靠性设计。,6,13.1 单片机应用系统的设计步骤以单片机为核心,配以一定的外围电路和软件、能实现用户所要求的测控功能的系统。设计工作,需经过深入细致需求分析,周密科学方案论证才能使系统设计工作顺利完成。需求分析包括:被测控参数的形式(电量、非电量、模拟量、数字量等)、被测控参数的范围、性能指标、系统功能、工作环境、显示、报警、打印要求等。注意,方案确定时候,简单的方法往往可以解决大问题,切忌“简单的问题复杂化”。,6,7,一个应用系
4、统设计,一般可分为4个阶段。(1)明确任务和需求分析以及拟定设计方案阶段明确系统要完成的任务十分重要,是设计工作的基础以及系统设计方案正确性的保证。(2)硬件和软件设计阶段根据拟定的方案,设计系统硬件电路。硬件设计的前提是必须能够完成系统的要求和保证可靠性。在硬件设计时,如能将硬件电路设计与软件设计结合起来考虑效果会更好。因为当有些问题在硬件电路中无法完成时,,7,8,当软件编写程序很麻烦时,通过稍改动硬件电路(或尽可能不改动)可能会使软件变得简单。另外在要求系统实时性强、响应速度快的场合,往往必须用硬件代替软件来完成某些功能。可直接由软件来完成(如软件滤波、校准功能等)。所以硬件设计时,最好
5、与软件的设计结合起来,统一考虑,合理地安排软、硬件的比例,使系统具有最佳性价比。当硬件电路设计完成后,就可以进行硬件电路板绘制和焊接工作了。接下来介绍软件设计。正确编程方法就是根据需求分,8,9,析,先绘制出软件的流程图,该环节十分重要。流程图绘制往往不能一次成功,需多次修改。绘制可由简到繁逐步细化,先绘制系统大体上需要执行的程序模块,然后将这些模块按照要求组合在一起(如主程序、子程序以及中断服务子程序等),在大方向没问题后,再将每个模块细化,最后形成流程图,程序编写速度就会很快,同时为后面的调试工作带来很多方便,如调试中某模块不正常,就可以通过流程图来查找问题的原因。一定要克服不绘制流程图直
6、接在计算机上编写程序的习惯。,9,10,设计者也可在上述软硬件设计完成后,先使用单片机的EDA软件仿真开发工具Proteus,来进行仿真设计。用软件仿真开发工具Proteus设计的系统与用户样机在硬件上无任何联系,是一种完全用软件手段来对单片机硬件电路和软件进行设计、开发与仿真调试的开发工具。如果先在软件仿真工具的软环境下进行系统设计并调试通过,虽然还不能完全说明实际系统就完全通过,但至少在逻辑上是行得通的。软件仿真通过后,再进行软硬件设计与实现,可大大减少设计上所走的弯路。这也是目前世界上流行的一种开发方,10,11,法。(3)硬件与软件联合调试阶段下一步就是软硬件的联合调试。需通过硬件仿真
7、开发工具来进行,具体的调试方法和过程,在本章后面介绍。所有软件和硬件电路全部调试通过,并不意味系统设计成功,还需通过运行来调整系统的运行状态,例如系统中的A/D转换结果是否正确,如果不正确,是否要调零和调整基准电压等。(4)资料与文件整理编制阶段系统调试通过,就进入资料与文件整理编制阶段。,11,12,资料与文件包括:任务描述、设计的指导思想及设计方案论证、性能测定及现场试用报告与说明、使用指南、软件资料(流程图、子程序使用说明、地址分配、程序清单)、硬件资料(电原理图、元件布置图及接线图、接插件引脚图、线路板图、注意事项)。文件不仅是设计工作的结果,而且是以后使用、维修以及进一步再设计的依据
8、。因此,要精心编写,描述清楚,使数据及资料齐全。,12,13,13.2 单片机应用系统设计介绍如何进行系统的设计。主要从硬件设计和软件设计两方面考虑。13.2.1 硬件设计应考虑的问题硬件设计时,应重点考虑以下问题。1尽可能采用功能强的芯片(1)单片机选型。单片机的集成度越来越高,许多外围部件都已集成在芯片内,有的单片机本身就是一个系统,这可省去许多外围部件的扩展工作,使设计工作简化。,13,14,第1章已介绍较为流行的各种单片机,根据需求,选择合适机型。例如,目前市场上较为流行的美国Cygnal公司的C8051F020 8位单片机,片内集成有8通道A/D、两路D/A、两路电压比较器,内置温度
9、传感器、定时器、可编程数字交叉开关和64个通用I/O口、电源监测、看门狗、多种类型的串行总线(两个UART、SPI)等。用1片C8051F020 单片机,就构成一个应用系统。再如,如系统需要较大的I/O驱动能力和较强的抗干扰能力,可考虑选用AVR单片机。,14,15,(2)优先选片内有闪存的产品。例如,使用ATMEL公司的AT89C5x系列产品,Philips公司的89C58(内有32KB的闪速存储器)等,可省去片外扩展程序存储器的工作,减少芯片数量,缩小系统体积。(3)RAM容量的考虑。多数单片机片内的RAM单元有限,当需增强数据处理功能时,往往觉得不足,这就要求系统配置外部RAM,如626
10、4、62256芯片等。如果处理的数据量大,需要更大的数据存储器空间,可采用数据存储器芯片DS12887,其容量为256KB,内有锂电池保护,保存数据可达10年以上。,15,16,(4)对I/O端口留有余地。在样机研制出来现场试用时,往往会发现一些被忽视的问题,而这些问题是不能单靠软件措施来解决的。如有新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件设计之初就多设计留有一些I/O端口,这些问题就会迎刃而解。(5)预留A/D和D/A通道。与上述I/O端口同样原因,留出一些A/D和D/A通道将来可能会解决大问题。,16,17,2以软代硬原则上,只要软件能做到且
11、能满足性能要求,就不用硬件。硬件多不但增加成本,而且系统故障率也会提高。以软带硬的实质,是以时间换空间,软件执行过程需要消耗时间,因此带来的问题就是实时性下降。在实时性要求不高的场合,以软代硬是很合算的。3工艺设计包括机箱、面板、配线、接插件等。须考虑到安装、调试、维修方便。另外,硬件抗干扰措施(将在本章后面介绍)也须在硬件设计时一并考虑进去。,17,18,13.2.2 典型的单片机应用系统典型单片机应用系统框图如图13-1所示。图13-1 单片机典型应用系统框图,18,19,主要由单片机基本部分、输入部分和输出部分组成。(1)单片机基本部分由单片机及其扩展的外设及芯片,如键盘、显示器、打印机
12、、数据存储器、程序存储器、数字I/O等组成。(2)输入部分“测”的部分,被“测”的信号类型有:数字量、模拟量和开关量。模拟量输入检测的主要包括信号调理电路以及A/D转换器。A/D转换器中又包括多路切换、采样保持、A/D转换电路,目前都集成在A/D转换器芯片中,或直接集成在单片机片内。,19,20,连接传感器与A/D转换器之间的桥梁是信号调理电路,传感器输出的模拟信号要经信号调理电路对信号进行放大、滤波、隔离、量程调整等,变换成适合A/D转换的电压信号。信号放大通常由单片式仪表放大器承担。仪表放大器对信号进行放大比普通运算放大器具有更优异的性能。如何根据不同的传感器正确地选择仪表放大器来进行信号
13、调理电路的设计,请读者参阅有关资料和文献。(3)输出部分是应用系统“控”的部分,包括数字量、开关量控制信号的输出和模拟量控制信号(常用于伺服控制)的输出。,20,21,13.2.3 系统设计中的地址空间分配与总线驱动一个AT89S51应用系统有时往往是多芯片系统,这时会遇到两个问题:一是如何把64KB程序存储器和64KB数据存储器的空间分配给各个芯片;二是如何实现AT89S51单片机对多片芯片的驱动。本小节介绍单片机应用系统设计时经常遇到的地址空间分配和总线驱动问题,供设计参考。,21,22,1地址空间分配扩展多片芯片的应用系统,首先应考虑如何把64KB程序存储器和64KB数据存储器的空间分配
14、给各个芯片。第8章已介绍地址空间分配的两种方法:线选法和译码法。下面通过一个例子来说明如何解决这个问题。图13-2所示为一个全地址译码的系统实例。图中所示的AT89S51单片机扩展的各器件芯片所对应的地址见表13-1。,22,23,23,图13-2 全地址译码的系统实例,24,24,25,因6264、2764都是8KB,故需要13条低位地址线(A12A0)进行片内寻址,低8位地址线A7A0经8D锁存器74LS373输出(图中没有画出),其他3条高位地址线A15A13经3线-8线译码器74LS138译码后作为外围芯片的片选线。图中尚剩余3条地址选择线,还可扩展3片存储器芯片或外围I/O接口芯片。
15、2总线驱动扩展多片芯片时,注意AT89S51单片机4个并行双向口的P0P3口的驱动能力。下面首先讨论这个问题。,25,26,AT89S51的P0、P2口通常作为总线端口,当扩展芯片较多,可能造成负载过重,致使驱动能力不够,通常要附加总线驱动器或其他驱动电路。因此在多芯片应用系统设计中首先要估计总线的负载情况,以确定是否需要对总线的驱动能力进行扩展。图13-3为AT89S51单片机总线驱动扩展原理图。P2口需单向驱动,常见的单向总线驱动器为74LS244。图13-4为74LS244引脚图和逻辑图。8个三态驱动器分成两组,分别由1 和2 控制。,26,27,27,图13-3 AT89S51单片机总
16、线驱动扩展原理图,28,P0口作为数据总线,双向传输,其驱动器应为双向驱动、三态输出,由两个控制端来控制数传方向。如图13-3所示,数据输出允许控制端DBEO有效时,数据总线输入为高阻状态,输出为开通状态;数据输入允许控制端DBEI有效时,则状态与上相反。常见双向驱动器为74LS245,图13-5为引脚图和逻辑图。驱动方向由、DIR两个控制端控制,控制端控制驱动器有效或高阻态,在 控制端有效(=0)时,DIR控制端控制驱动器的驱动方向,DIR=0时驱动方向为从B至A,DIR=1时则相反。,28,29,图13-6所示为AT89S51系统总线驱动扩展电路图。P0口的双向驱动采用74LS245,如图
17、13-6(a)所示;P2口的单向驱动器采用74LS244,如图13-6(b)所示。图13-4 单向驱动器74LS244引脚图和逻辑图,29,30,30,图13-5 74LS245的引脚图和逻辑图,31,31,图13-6 AT89S51单片机应用系统中的总线驱动扩展电路图,32,P0口双向驱动器74LS245的 接地,保证芯片一直处于工作状态,而输入/输出的方向控制由单片机的数据存储器的“读”控制引脚()和程序存储器的取指控制引脚()通过与门控制DIR引脚实现。无论是“读”数据存储器中数据(有效)还是从程序存储器中取指令(有效),都能保证对P0口的输入驱动;除此以外的时间(及 均无效),保证对P
18、0口的输出驱动。对于P2口,因为只用作单向的地址输出,故74LS244的驱动门控制端1、2 接地。,32,33,13.2.4 AT89S51单片机的最小应用系统AT89S51内部有4KB闪速存储器,本身就是一个数字量输入/输出的最小应用系统。在构建AT89S51单片机最小应用系统时,AT89S51单片机需要外接时钟电路和复位电路即可,如图13-7所示。注意,本最小应用系统只能作为小型的数字量的测控单元。,33,34,图13-7 AT89S51单片机构成的最小应用系统,35,13.2.5 应用设计举例水温测控系统的硬件设计水温测控是经常遇到的测控对象之一。下面介绍AT89S51为核心的水温测控系
19、统的设计。采用3位LED显示器显示水温度,温度控制采用改进的PID数字控制算法。该系统具有如下基本功能:(1)温度控制的范围为2550,最小分辨率为0.1;(2)偏差0.6,静态误差0.4;(3)实时显示当前的温度值;(4)命令按键4个:复位键、功能转换键、加1键和减1键。,35,36,1硬件电路设计从功能模块上来划分有:主机电路;数据采集电路;键盘、显示电路;控制执行电路。(1)硬件功能结构框图。图13-8 硬件功能结构框图硬件功能结构框图如图13-8所示。,36,37,(2)数据采集电路的设计主机采用AT89S51单片机,系统时钟采用12MHz,内部含有4KB的闪烁存储器,无须外扩程序存储
20、器。本系统需实时采集水温数据,然后经过A/D转换为数字信号,存入AT89S51单片机的内部数据存储器,送显示器显示,并与设定值进行比较,经过PID算法得到控制量并由单片机输出去控制电炉加热或开动风扇进行降温。,37,38,数据采集电路主要由温度传感器、信号调理、A/D转换器等组成,具体电路如图13-9。温度传感器采用常见的二端式电流型集成温度传感器AD590。温度每变化1,其输出电流变化1A,在25时,其输出电流为298.2A。AD590具有较高精度和重复性,测温的范围为55+150,重复性优于0.1,通过激光平衡调整,校准精度可达0.5。由于AD590的上述特点,使其在温度测控领域中得到了广
21、泛应用。,38,39,39,图13-9 数据采集电路图,40,A/D转换器采用AD0809。考虑到水温信号为缓变信号,足以满足转换速度的要求,而且还可以根据需要扩展最多测量8路温度信号。如果对A/D转换器的转换精度要求更高,可采用12位的A/D转换器,如AD1674等。放大电路采用低温稳定、高精度的普通运算放大器OP07,它将温度传感器的电压信号放大至A/D转换器,以便A/D转换器进行转换。,40,41,(3)控制执行电路的设计由单片机的输出开关量来控制风扇或电炉。采用光电耦合器进行强电和弱电的隔离,但还要考虑输出信号要对晶闸管进行触发,以便接通风扇或电炉电路,所以晶闸管选用既有光电隔离又有触
22、发功能的MC3041(有关MC3041的介绍请见13.5节)。电路中使用P1.0控制电炉的开关,使用P1.1控制风扇的开关,如图13-10所示。,41,42,42,图13-10 单片机的控制执行电路,43,此外,在设计中还要考虑当水温超出所能控制的上下限温度时,要有越限报警;当温度低于25时,黄色发光二极管亮,当温度高于50时红色发光二极管亮。(4)键盘与显示器电路的设计键盘共有4个键(包括复位键K1),判断K2K4键是否按下,可采用软件查询和中断的方法,当某个键按下时,低电平有效。4个键K1K4的功能定义见表13-2。,43,44,表13-2K1K4键的定义,44,45,按键K2与(P3.2
23、)相连,采用外部中断方式,且优先级定为高优先级。K3和K4分别与P1.7和P1.6相连,采用软件查询方式,K1为复位键,与RC构成复位电路。显示电路利用串口来实现3位LED的共阳静态显示,显示内容为温度的十位、个位以及小数点后的一位。利用串行口扩展74LS164实现LED的共阳静态显示的工作原理及软件编程,请见10.3.1小节。,45,46,2软件设计采用模块化设计,由主程序模块、功能实现模块和运算控制模块3大模块组成。(1)主程序模块。流程如图13-11所示。先给定PID算法参数,然后循环显示当前温度,以等待中断,并且使键盘外部中断1(P3.2)为高优先级,以使主程序能实时响应K2按下的处理
24、。设定时器T0为5s定时,无键按下时,应每隔5s响应一次,来采集温度传感器并经A/D转换的温度信号。设置定时器T1为嵌套在T0之中的定时中断,初值由PID算法子程序提供,以用来执行对电炉或风扇的控制。,46,47,47,图13-11 主程序流程图,48,(2)功能实现模块主要由A/D转换、中断处理、键盘处理和显示子程序等组成。下面仅介绍几个中断处理子程序。T1中断子程序。该中断是单片机内部5s定时中断,为低优先级,却是最重要的子程序。在该中断响应中,单片机要完成如下工作:A/D转换和数据采集、数字滤波、判断是否超限、标度变换处理、显示当前温度、与设定值进行比较,调用PID算法子程序并输出控制信
25、号等。,48,49,键盘中断子程序。作为高优先级的功能控制键,系统要实时准备响应该中断。在该中断的响应过程中,系统要显示上一次的温度设定值,并且可以通过K3、K4键来实现加1、减1的输入修改。鉴于所控制的温度的上下限,程序实现加1直到上限50,再加1则为下限25;减1到25时,再减1则为上限50。T0中断子程序。T0定时中断嵌套在T1中断之中,为高优先级中断。T0的定时初值由PID算法子程序提供,T0的中断响应时间用于输出对电炉或风扇的控制信号。,49,50,(3)运算控制模块涉及标度变换、PID算法及算法调用的乘法子程序等。标度变换子程序。该子程序的作用是将温度信号(00HFFH)转换为对应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 AT89S51 单片机 应用 设计 调试

链接地址:https://www.31ppt.com/p-4750704.html