第13章AT89S51单片机的应用设计与调试

上传人:博****1 文档编号:567712235 上传时间:2024-07-22 格式:PPT 页数:187 大小:2.29MB
返回 下载 相关 举报
第13章AT89S51单片机的应用设计与调试_第1页
第1页 / 共187页
第13章AT89S51单片机的应用设计与调试_第2页
第2页 / 共187页
第13章AT89S51单片机的应用设计与调试_第3页
第3页 / 共187页
第13章AT89S51单片机的应用设计与调试_第4页
第4页 / 共187页
第13章AT89S51单片机的应用设计与调试_第5页
第5页 / 共187页
点击查看更多>>
资源描述

《第13章AT89S51单片机的应用设计与调试》由会员分享,可在线阅读,更多相关《第13章AT89S51单片机的应用设计与调试(187页珍藏版)》请在金锄头文库上搜索。

1、第第1313章章 AT89S51AT89S51单片机的应用单片机的应用 设计与调试设计与调试1成都理工大学工程技术学院成都理工大学工程技术学院自动化工程系自动化工程系头吉靠赦碍施镣肉蔷禽茅掺串羹俞镜矣谆舍埋化庙龚腾录盗趋肄啡追崔欣第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试12第第13章章目目录录13.1单单片机片机应应用系用系统统的的设计设计步步骤骤13.2单单片机片机应应用系用系统设计统设计13.2.1硬件设计应考虑的问题13.2.2典型的单片机应用系统13.2.3系统设计中的地址空间分配与总线驱动13.2.4AT89S51单片机的最小应用系统1

2、3.2.5应用设计举例水温测控系统的硬件设计13.2.6软件设计考虑的问题13.2.7软件的总体框架设计问隔媒蝉益究欠盛临抛牛生柿吹顺洼蒋搽翼蛋垢灭圃铲锡行蹈湘泻弓凤皋第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试213.3单单片机片机应应用系用系统统的仿真开的仿真开发发与与调试调试13.3.1仿真开发系统简介13.3.2用户样机的仿真调试13.4单单片机片机应应用系用系统统的抗干的抗干扰扰与可靠性与可靠性设计设计13.4.1AT89S51片内看门狗定时器的使用13.4.2指令冗余和软件陷阱13.4.3软件滤波13.4.4开关量输入/输出软件抗干扰设计

3、13.4.5过程通道干扰的抑制措施-隔离叹债滚镑萤圈矩胁筐涡剪向懂结萍宙耻仙瑰局卞铺硬恩饺氓攘搭脓砖评咀第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试313.4.6印刷电路板抗干扰布线的基本原则13.4.7掉电保护设计和硬件“看门狗”13.5单单片机片机应应用系用系统统的的I/O功率功率驱动驱动13.5.1AT89S51与外围集成数字驱动电路的接口13.5.2AT89S51与光电耦合器的接口13.5.3AT89S51与集成功率电子开关输出接口打揍心辙鲁轮娇作灼疆婿村披颖秃邹奎剑甘代蔑巧佑贸尝疮壮洗透佛描猿第13章AT89S51单片机的应用设计与调试第1

4、3章AT89S51单片机的应用设计与调试4内容概要内容概要本章介绍AT89S51单片机应用系统的设计。主要内容主要内容:设计步骤和方法步骤和方法,硬件设计,程序的总体框架设计硬件设计,程序的总体框架设计以及设计举例设计举例。此外,介绍目前仿真开发工具仿真开发工具以及如何利用如何利用仿真开发工具仿真开发工具对单片机应用系统进行开发调试。最后介绍单片机应用系统的抗干扰抗干扰和可靠性设计可靠性设计。烽纺柞斡寂墅结瑶免冲讹贪翻机购洛耘躬姜腐贺屹蓬应莱娟什甭玻夫薯唬第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试513.1单片机应用系统的设计步骤单片机应用系统的设

5、计步骤以单片机为核心单片机为核心,配以一定的外围电路和软件外围电路和软件、能实现用户所要求的测控功能的系统要求的测控功能的系统。设计工作,需经过深入细致需求分析,周密科学方案论证才能使系统设计工作顺利完成。需求分析包括包括:被测控参数的形式参数的形式(电量、非电量、模拟量、数字量等)、被测控参数的范围参数的范围、性能指标、系统功能、工作环境、显示、性能指标、系统功能、工作环境、显示、报警、打印要求报警、打印要求等。注意,方案确定时候,简单的方法往往可以解决大问简单的方法往往可以解决大问题题,切忌切忌“简单的问题复杂化简单的问题复杂化”。6奏兹夫钝旅郊烹楷槐裸糠抹揪字恰啄憋佯炮昔殉辫孕涪营癣啃虹

6、个丑釉碧第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试6一个应用系统设计,一般可分为4个阶段个阶段。(1)明确任务和需求分析以及拟定设计方案阶段)明确任务和需求分析以及拟定设计方案阶段明确系统要完成的任务十分重要,是设计工作的基础以及系统设计方案正确性的保证。(2)硬件和软件设计阶段)硬件和软件设计阶段根据拟定的方案,设计系统硬件电路。硬件设计的前提是必须能够完成系统的要求和保证可靠性。在硬件设计硬件设计时时,如能将硬件电路设计与软件设计结合起来考虑效果会将硬件电路设计与软件设计结合起来考虑效果会更好。更好。因因为当有些问题在硬件电路中无法完成时,7岿

7、恒沼青乐硬哥佛贷涛尔坝篇绍尿昂蹲葵瓜擦虐琼扫潘头西颜蝗珍叼御对第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试7当软件编写程序很麻烦时软件编写程序很麻烦时,通过稍改动硬件电路(或尽可能不改动)可能会使软件变得简单会使软件变得简单。另外在要求系统实时性强、响应速度快的场合,往往必须用硬件代替软件来完成某些功能。可直接由软件来完成(如软件滤波、校准功能等)。所以硬件设计时,最好与软件的设计结合起来,统一最好与软件的设计结合起来,统一考虑,合理地安排软、硬件的比例,考虑,合理地安排软、硬件的比例,使系统具有最佳性价比。当硬件电路设计完成后,就可以进行硬件电路板

8、绘制和焊接工作了。接下来介绍软件设计软件设计。正确编程方法就是根据需求分8瀑避镜芹悦筑敬酝瞥雍川霖畸币降伦挨梗摈承莎巴燃变朽烩濒廖端狡阀会第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试8析,先绘制出软件的流程图,该环节十分重要。先绘制出软件的流程图,该环节十分重要。流程图绘制往往不能一次成功,需多次修改。绘制可由简到繁逐步细化,先绘制系统大体上需要执行的程序模块,然后将这些模块按照要求组合在一起(如主程序、子程序以及中断服务子程序等),在大方向没问题后,再将每个模块细化,最后形成流程图,程序编写速度就会很快,同时为后面的调试工作带来很多方便,如调试中某

9、模块不正常,就可以通过流程图来查找问题的原因。一定要克服不绘制流程图直接在计算机上编写程序的习惯。9阅拙煮凛磁生颤坐跃锑蚤努氰邑柒贾依贫笺硒罐寝合敛侣皿举萎洋统梆睬第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试9设计者也可在上述软硬件设计完成后,先使用单片机的EDA软件仿真开发工具Proteus,来进行仿真设计。用软件仿真开发工具Proteus设计的系统与用户样机在硬件上无任何联系,是一种完全用软件手段完全用软件手段来对单片机硬件电路和软件进行设计、开发与仿真调试的开发工具。如果先在软件仿真工具的软环境下进行系统设计并调试通过,虽然还不能完全说明实际系

10、统就完全通过,但至少在逻辑上是行得通的。软件仿真通过后,再进行软硬件设计与实现,可大大减可大大减少设计上所走的弯路少设计上所走的弯路。这也是目前世界上流行的一种开发方10拨充黎舜脐梁扼要洁档杆负侨可滓耘遣浅楞香使贾段贮败依恬粉鸯谍竟哈第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试10法。(3)硬件与软件联合调试阶段)硬件与软件联合调试阶段下一步就是软硬件的联合调试。需通过硬件仿真开发工具来进行,具体的调试方法和过程,在本章后面介绍。所有软件和硬件电路全部调试通过,并不意味系统设计成功,还需通过运行来调整系统的运行状态,例如例如系统中的A/D转换结果是否

11、正确,如果不正确,是否要调零和调整基准电压等。(4)资料与文件整理编制阶段)资料与文件整理编制阶段系统调试通过,就进入资料与文件资料与文件整理编制阶段。11姚她秽塑尤批递穿虑懒素舒作举齐角笨太旋死斩两挤贸衰披阳还岿准缉勃第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试11资料与文件包括:资料与文件包括:任务描述、设计的指导思想及设计方案论证、性能测定及现场试用报告与说明、使用指南、软件资料(流程图、子程序使用说明、地址分配、程序清单)、硬件资料(电原理图、元件布置图及接线图、接插件引脚图、线路板图、注意事项)。文件不仅是设计工作的结果,而且是以后使用、维

12、修文件不仅是设计工作的结果,而且是以后使用、维修以及进一步再设计的依据。以及进一步再设计的依据。因此,要精心编写,描述清楚,使数据及资料齐全。12抄皂铡煌通捞睹凌茂匝耗飘彼舔琢榜独副监衡桅硅妙矗亩寻吩雁脐贤蝗寐第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1213.2单片机应用系统设计单片机应用系统设计介绍如何进行系统的设计。主要从硬件设计硬件设计和软件设软件设计计两方面考虑。13.2.1硬件设计应考虑的问题硬件设计应考虑的问题硬件设计硬件设计时,应重点考虑以下问题。1尽可能采用功能强的芯片尽可能采用功能强的芯片(1)单片机选型)单片机选型。单片机的集

13、成度越来越高,许多外围部件都已集成在芯片内,有的单片机本身就是一个系统,这可省去许多外围部件的扩展工作,使设计工作简化。13舱硷倒另拥未奠食踞借篷授醚扔与览球跳藕痈息蝴宪歧簇促充谐俞杰肾元第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试13第1章已介绍较为流行的各种单片机,根据需求,选择合适机型。例如,例如,目前市场上较为流行的美国美国Cygnal公司公司的C8051F0208位单片机,片内集成有8通道A/D、两路D/A、两路电压比较器,内置温度传感器、定时器、可编程数字交叉开关和64个通用I/O口、电源监测、看门狗、多种类型的串行总线(两个UART、S

14、PI)等。用1片C8051F020单片机,就构成一个应用系统。再如,如系统需要较大的I/O驱动能力和较强的抗干扰能力,可考虑选用可考虑选用AVR单片单片机机。14腥苫村施些钟倾序振澜熟厚惭憋崭润潮赌缀逝预淆突缺彝穗蜜馈堕关孙对第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试14(2)优先选片内有闪存的产品)优先选片内有闪存的产品。例如,例如,使用ATMEL公司的AT89C5x系列产品,Philips公司的89C58(内有32KB的闪速存储器)等,可省去片外扩展程序存储器的工作,减少芯片数量,缩小系统体积。(3)RAM容量的考虑。容量的考虑。多数单片机片内

15、的RAM单元有限,当需增强数据处理功能时,往往觉得不足,这就要求系统配置外部RAM,如6264、62256芯片等。如果处理的数据量大,需要更大的数据存储器空间,可采用数据存储器芯片DS12887,其容量为256KB,内有锂电池保护,保存数据可达10年以上。15茅燎攀疫福寇盎撮则炙祈客委付钵泰痈棉汛缮娶翘闺最侍隧意纵它势篙拳第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试15(4)对)对I/O端口留有余地端口留有余地。在样机研制出来现场试用时,往往会发现一些被忽视的问题,而这些问题是不能单靠软件措施来解决的。如有新的信号需要采集,就必须增加输入检测端;有些

16、物理量需要控制,就必须增加输出端。如果在硬件设计之初就多设计留有一些多设计留有一些I/O端口端口,这些问题就会迎刃而解。(5)预留)预留A/D和和D/A通道通道。与上述I/O端口同样原因,留出一些A/D和D/A通道将来可能会解决大问题。16浇舞纤这褂颜给果读曝眶贡喉烛哦更捞跌狈车毗强胰麻歪跪尝问沧命忙耽第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试162以软代硬以软代硬原则上,只要软件能做到且能满足性能要求,就不用硬件。硬件多不但增加成本,而且系统故障率也会提高硬件多不但增加成本,而且系统故障率也会提高。以软带硬的实质,是以时间换空间,软件执行过程需要

17、消耗时间,因此带来的问题就是实时性下降。问题就是实时性下降。在实时性要求不高的场合,以软代硬是很合算的。3工艺设计工艺设计包括机箱、面板、配线、接插件等。须考虑到安装、调试、维修方便。另外,硬件抗干扰措施(将在本章后面介绍)也须在硬件设计时一并考虑进去。17俭惰辖征毫才减拣讲雕卓优酸宜瞳屯阎包恒浊卫儒帜蛋狠山占饼族勃镣懂第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1713.2.2典型的单片机应用系统典型的单片机应用系统典型单片机应用系统框图如图图13-1所示。图图13-1单片机典型应用系统框图18蓉沛粤禽糕侈童量柒斧蒙旁泞淄黍缀锻绰哑忽猖撤纺侯藉歧害

18、食饼阁鲸卓第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试18主要由单片机基本部分、输入部分单片机基本部分、输入部分和输出部分组成。(1)单片机基本部分)单片机基本部分由单片机及其扩展的外设及芯片,如键盘、显示器、打印机、数据存储器、程序存储器、数字I/O等组成。(2)输入部分)输入部分“测”的部分,被被“测测”的信号类型有的信号类型有:数字量、模拟量和开关量。模拟量输入检测的主要包括信号调理电路以及A/D转换器。A/D转换器中又包括多路切换、采样保持、A/D转换电路,目前都集成在A/D转换器芯片中,或直接集成在单片机片内。19隧霉抱茂兰蚕浇警伟恩几矮绪

19、拣放泣版拍誉瞎蛊箭鞍益丧床驭彼夏连屋证第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试19连接传感器传感器与A/D转换器转换器之间的桥梁是信号调理电路信号调理电路,传感器输出的模拟信号要经信号调理电路对信号进行放大、对信号进行放大、滤波、隔离、量程调整滤波、隔离、量程调整等,变换成适合A/D转换的电压信号。信号放大通常由单片式仪表放大器承担。仪表放大器对信号进行放大比普通运算放大器具有更优异的性能。如何根据不同的传感器正确地选择仪表放大器来进行信号调理电路的设计,请读者参阅有关资料和文献。(3)输出部分)输出部分是应用系统“控控”的部分的部分,包括包括数

20、字量、开关量控制信号的输出和模拟量控制信号(常用于伺服控制)的输出。20通觅吸洪亏索栅摧仓腑幻铲泰切呸觅粱棍矢综侠晓揩蔫混渤里蚊霸余胯瑰第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试2013.2.3系统设计中的地址空间分配与总线驱动系统设计中的地址空间分配与总线驱动一个AT89S51应用系统有时往往是多芯片系统,这时会遇到两个问题两个问题:一是如何把如何把64KB程序存储器和程序存储器和64KB数据存储器的空数据存储器的空间分配给各个芯片间分配给各个芯片;二是如何实现如何实现AT89S51单片机对多片芯片的驱动单片机对多片芯片的驱动。本小节介绍单片机应

21、用系统设计时经常遇到的地址空地址空间分配和总线驱动问题间分配和总线驱动问题,供设计参考。21困幂媳猪钦均屁瀑祈规墙焚朋袁炯海揣凭润蜘逊闰妙哮坠醋奈惮郁傣厚良第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试211地址空间分配地址空间分配扩展多片芯片扩展多片芯片的应用系统,首先应考虑如何把首先应考虑如何把64KB程序存储器和程序存储器和64KB数据存储器的空间分配给各个芯片数据存储器的空间分配给各个芯片。第8章已介绍地址空间分配的两种方法两种方法:线选法线选法和译译码法码法。下面通过一个例子来说明如何解决这个问题。图图13-2所示为一个全地址译码的系统实例。

22、图中所示的AT89S51单片机扩展的各器件芯片所对应的地址见表表13-1。22伎研姆邹旬月司淬除旦粪嫩账厘桅腰辖漂缀凌簧团脐磷吻鸦搪篡写铅懈躁第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试2223图图13-2全地址全地址译码译码的系的系统实统实例例践婆吸天泼乡宅伯梆置褂菏辐诫棠榨您槽工徐耍吐坡算凳秉徽砰双奉慎潮第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试2324伶过鄙渣悲食絮语观晒禁晰澜宅妖堕照皂粹抒纽窄恿蛛孤洽伙淹缀擎藐丹第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调

23、试24因6264、2764都是8KB,故需要13条条低位地址线(A12A0)进行片内寻址,低8位地址线A7A0经8D锁存器74LS373输出(图中没有画出),其他3条高位地条高位地址线址线A15A13经3线-8线译码器74LS138译码后作为外围芯片的片选线。图中尚剩余3条地址选择线,还可扩展3片存储器芯片或外围I/O接口芯片。2总线驱动总线驱动扩展多片芯片时,注意AT89S51单片机4个并行双向个并行双向口的口的P0P3口的驱动能力口的驱动能力。下面首先讨论这个问题。25遵悍枝淘柱毯佰拨疆韵喇锚趟杨傣歌挣谍充邪桑绷粗旅秆缆榆绅腊乓辊力第13章AT89S51单片机的应用设计与调试第13章AT8

24、9S51单片机的应用设计与调试25AT89S51的P0、P2口口通常作为总线端口作为总线端口,当扩展芯片较多,可能造成负载过重,致使驱动能力不够驱动能力不够,通常要附加总线驱动器或其他驱动电路。因此在多芯片应用系统设计中首先要估计总线的负载情况,以确定是否需要对总线的驱动能力进行扩展。图图13-3为AT89S51单片机总线驱动扩展原理图。P2口口需单向驱动需单向驱动,常见的单向总线驱动器为单向总线驱动器为74LS244。图图13-4为74LS244引脚图引脚图和逻辑图逻辑图。8个三态驱动器分成两组,分别由1和2控制。26望将茅众兼夷钞桩疤荣鸟蛹杭器芳真渠犬估蝇烹碑细魏赌拈活膨偿巡钮溃第13章A

25、T89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试2627图图13-3AT89S51单单片机片机总线驱动扩总线驱动扩展原理展原理图图蝎溪篷赃仆层墟模偶雾委麻羚膊勉窍尽洁罗途埋疙物绷蓬啥悔恨盛赎襄否第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试27P0口作为数据总线,双向传输,其驱动器应为双向驱口作为数据总线,双向传输,其驱动器应为双向驱动、三态输出动、三态输出,由两个控制端两个控制端来控制数传方向。如图图13-3所示,数据输出允许控制端DBEO有效时,数据总线输入为高阻状态,输出为开通状态;数据输入允许控制端DBEI有效时,

26、则状态与上相反。常见双向驱动器为常见双向驱动器为74LS245,图图13-5为引脚图和逻辑图。驱动方向由、DIR两个控制端控制,控制端控制驱动器有效或高阻态,在控制端有效(=0)时,DIR控制端控制驱动器的驱动方向,DIR=0时驱动方向为从B至A,DIR=1时则相反。28诱巾里启剖谨哲百算蔬裁搁歪八柞腻事沾亩这虹署豪蹋哎畅逞涎局蹭蝎于第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试28图图13-6所示为AT89S51系统总线驱动扩展电路图总线驱动扩展电路图。P0口的双向驱动采用口的双向驱动采用74LS245,如图图13-6(a)所示;P2口口的单向驱动器

27、采用的单向驱动器采用74LS244,如图图13-6(b)所示。图图13-4单向驱动器单向驱动器74LS244引脚图和逻辑图引脚图和逻辑图29折棺屉刺嘻烤肆娜筑龙胰石侨养抖爷咬暂抄嫉折浆刺孝厕皖所托蜘盎职家第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试2930图图13-574LS245的引脚的引脚图图和和逻辑图逻辑图撤论硫斤舜胺秤鲍秋有氓明记塔丹宏柬斌俺遣荐短招辽濒爽混堡斡饥防誊第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试3031图图13-6AT89S51单单片机片机应应用系用系统统中的中的总线驱动扩总线驱动扩

28、展展电电路路图图盏展陌称贯分印朱锥辗警醚锡赐又坐秆佩前泽匣淤任佃菩冰刻浑颓醚槽泥第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试31P0口口双向驱动器74LS245的的接地接地,保证芯片一直处于工作状态,而输入输入/输出的方向控制输出的方向控制由单片机的数据存储器的“读读”控制引脚(控制引脚()和程序存储器的取指控制引脚取指控制引脚()通过与门控制DIR引脚实现。无论是“读”数据存储器中数据(有效)还是从程序存储器中取指令(有效),都能保证对P0口的输入驱动;除此以外的时间(及均无效),保证对P0口的输出驱动。对于P2口,因为只用作单向的地址输出,故74

29、LS244的驱动门控制端1、2接地。32舜九酶疙姬哩霍约蚜耘纽擎规装饲斜未云磋壕坏瓤按酿某输态弟熔剁亥调第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试3213.2.4AT89S51单片机的最小应用系统单片机的最小应用系统AT89S51内部有4KB闪速存储器闪速存储器,本身就是一个数字量输入/输出的最小应用系统。在构建AT89S51单片机最小应用系统时,AT89S51单片机需要外接需要外接时钟电路时钟电路和复位电路复位电路即可,如图图13-7所示所示。注意,本最小应用系统只能作为小型的数字量的测控单元。33汉姬中定迟纯凉蹋巩释酮螺郴蜗纫捕炽茬邮誉必色办嘎

30、蝇墨窟樊相纵袜略第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试33图图13-7AT89S51单单片机构成的最小片机构成的最小应应用系用系统统铅梁猪输佩皋殃浆薛盐员某慷蒋媒馅烛漱檬遂沿少劣导歌计牌们欧渔孟苟第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试3413.2.5应用设计举例应用设计举例水温测控系统的硬件设计水温测控系统的硬件设计水温测控是经常遇到的测控对象之一。下面介绍AT89S51为核心的水温测控系统的设计。采用3位位LED显示器显示水温显示器显示水温度度,温度控制采用改进的PID数字控制算法。该系统具有

31、如下基本功能基本功能:(1)温度控制的范围为2550,最小分辨率为0.1;(2)偏差0.6,静态误差0.4;(3)实时显示当前的温度值;(4)命令按键命令按键4个个:复位键、功能转换键、加1键和减1键。35鹏瑰伏店哼廉旅群城任苞讶镊盏脸郝穿骗仆恩租唁袱松蹭强昌抛鳖负宾建第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试351硬件电路设计硬件电路设计从功能模块上来划分有:n主机电路;n数据采集电路;n键盘、显示电路;n控制执行电路。(1)硬件功能结构框图)硬件功能结构框图。图图13-8硬件功能结构框图硬件功能结构框图硬件功能结构框图如图图13-8所示。36扩

32、蹦衔腾贯煤船竿寡朵蛆画毗冲乎莹胯棘敖烧褒撑没馒儒毙哇猛絮鸯例玖第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试36(2)数据采集电路的设计)数据采集电路的设计主机采用AT89S51单片机,系统时钟采用12MHz,内部含有4KB的闪烁存储器,无须外扩程序存储器。本系统需实时采集水温数据,然后经过A/D转换为数字信号,存入AT89S51单片机的内部数据存储器,送显示器显示,并与设定值进行比较,经过PID算法得到控制量并由单片机输出去控制电炉单片机输出去控制电炉加热加热或开动风扇进行或开动风扇进行降温降温。37先衣些蛮于腾阴晒暖匆遗疥火极嘛盯涉千廓匆憨森域撒鹤

33、悍翌虑畅雏狭盲第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试37数据采集数据采集电路主要由温度传感器、信号调理、A/D转换器等组成,具体电路如图图13-9。温度传感器温度传感器采用常见的二端式电流型集成温度传感器AD590。温度每变化1,其输出电流变化1A,在25时,其输出电流为298.2A。AD590具有较高精度和重复性,测温的范围为55+150,重复性优于0.1,通过激光平衡调整,校准精度可达0.5。由于AD590的上述特点,使其在温度测控领域中得到了广泛应用。38骡转蛔胰必弘未忧古殷器奠怀准隘枉蓉顺有柔甜富凄鼠膏团觅糜票血窃眶第13章AT89S5

34、1单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试3839图图13-9数据采集电路图牙钒培匿习朵恬官弄陈懒馈串射市潮量炼梦接盯瓤凌雁辗莆隶孪圆迸膘埠第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试39A/D转换器转换器采用AD0809。考虑到水温信号为缓变信号,足以满足转换速度的要求,而且还可以根据需要扩展最多测量8路温度信号。如果对A/D转换器的转换精度要求更高,可采用12位的A/D转换器,如AD1674等。放大电路放大电路采用低温稳定、高精度的普通运算放大器OP07,它将温度传感器的电压信号放大至A/D转换器,以便A/D转换器进行转

35、换。40除号馈触握菲桐坡践仙召推样冀龙昧至禾檬圾笛挑穴晤肉唱臂纪候盼遂软第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试40(3)控制执行电路的设计)控制执行电路的设计由单片机的输出开关量来控制风扇或电炉。采用光电光电耦合器进行强电和弱电的隔离耦合器进行强电和弱电的隔离,但还要考虑输出信号要对晶闸管进行触发,以便接通风扇或电炉电路,所以晶闸管选用既有光电隔离又有触发功能的MC3041(有关MC3041的介绍请见13.5节)。电路中使用P1.0控制电炉控制电炉的开关,使用P1.1控制风扇控制风扇的开关的开关,如图图13-10所示所示。41拆僚血殷署忌语崎废

36、绥移搅瓣杠造箍遇玄拭紫汛帘剪侨艰即打锗抹晶佣逐第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试4142图图13-10单单片机的控制片机的控制执执行行电电路路三劈罢挫寞赃债杯逢江膜福织轮镑少官瓶聚梨尚他只棠狈荧燥街涡膀吃胸第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试42此外,在设计中还要考虑当还要考虑当水温超出所能控制的上下水温超出所能控制的上下限温度限温度时,要有时,要有越限报警越限报警;当温度低于;当温度低于25时,黄色发光时,黄色发光二极管亮,当温度高于二极管亮,当温度高于50时红色发光二极管亮时红色发光二

37、极管亮。(4)键盘与显示器电路的设计)键盘与显示器电路的设计键盘共有4个键个键(包括复位键K1),判断K2K4键是否按下,可采用软件查询和中断的方法,当某个键按下时,低电平有效。4个键个键K1K4的功能定义见表表13-2。43木谅沏沃孔谩礁翅俩盆毖似骸岂扔施霜凛衙锌戮涂搅挂量窿哎啤龋粗恩诛第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试43表表13-2K1K4键的定义44按 键键 名功 能K1复位键使系统复位K2功能转换键此键按下,LED1亮,显示温度设定值,按键松开,LED 1不亮,显示当前温度值K3加1键设定的温度值加1K4减1键设定的温度值减1掌挤

38、惺薛淮诲夏馋危良催侈粕绊悍墩觉岿炳听妹天晤父殖协棉凸嫁四愧夕第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试44按键K2与(P3.2)相连,采用外部中断方式,且优先级定为高优先级。K3和和K4分别与P1.7和P1.6相连,采用软件查询方式,K1为复位键,与RC构成复位电路。显示电路显示电路利用串口来实现3位位LED的共阳静态显示的共阳静态显示,显示内容显示内容为温度的十位、个位以及小数点后的一位。利用串行口扩展74LS164实现LED的共阳静态显示的工作原理及软件编程,请见10.3.1小节。45卞爵赚议际墟只渝搁咬隶层冬扰祭铺禽危驴吼剑啸妖激嘻掇跺三蔬婉

39、耐曼第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试452软件设计软件设计采用模块化设计,由主程序模块、功能实现模块和运算控制模块3大模块大模块组成。(1)主程序模块。)主程序模块。流程如图图13-11所示所示。先给定PID算法参数,然后循环显示当前温度,以等待中断,并且使键盘外部中断1(P3.2)为高优先级,以使主程序能实时响应K2按下的处理。设定时器T0为5s定时,无键按下无键按下时,应每隔5s响应一次,来采集温度传感器并经A/D转换的温度信号。设置定时器设置定时器T1为嵌套在为嵌套在T0之中的定时中断之中的定时中断,初初值值由PID算法子程序提供,

40、以用来执行对电炉或风扇的控制。46勇毒尿乎蘑颓梗冶凶闪拂获彪眷侨今起段瑶鹏坦弹状诬显摈熏消簿讳锰哗第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试4647图图13-11主程序流程图鼠涯夷绢辨肾苇翼卞哎咳笆泊姥填糠枝毛灸稳反要皿辐镣髓赂谈移嫁诛炊第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试47(2)功能实现模块)功能实现模块主要由A/D转换、中断处理、键盘处理和显示子程序转换、中断处理、键盘处理和显示子程序等组成。下面仅介绍几个中断处理子程序。T1中断子程序中断子程序。该中断是单片机内部5s定时中断,为低优先级,

41、却是最重要的子程序。在该中断响应中,单片机要完成如下工作:在该中断响应中,单片机要完成如下工作:A/D转换和数据采集、数字滤波、判断是否超限、标度变换处理、显示当前温度、与设定值进行比较,调用PID算法子程序并输出控制信号等。48角珍疏凛肿冶砌植跋卜弟箱痉裹铂侣耻围胀横堡畜恳塌镰商悟充榷救耐秋第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试48键盘中断子程序键盘中断子程序。作为高优先级的功能控制键,系统要实时准备响应该中断。在该中断的响应过程中,系统要显示上一次的温度设定值,并且可以通过K3、K4键来实现加1、减1的输入修改。鉴于所控制的温度的上下限,程

42、序实现加1直到上限50,再加1则为下限25;减1到25时,再减1则为上限50。T0中断子程序中断子程序。T0定时中断嵌套在T1中断之中,为高优先级中断。T0的定时初值由PID算法子程序提供,T0的中断响应时间用于输出对电炉或风扇的控制信号。49聪橱鄂涸概釜婿筋偶霹谩堑扭菱瘩氛蔓昔灵显药鼓漱鱼佑掖蛰精则揩琳撩第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试49(3)运算控制模块)运算控制模块涉及标度变换、PID算法及算法调用的乘法子程序等。标度变换子程序。标度变换子程序。该子程序的作用是将温度信号(00HFFH)转换为对应的温度值,以便显示或与设定在相同量

43、纲下的温度值进行比较。所用的线性标度变换式线性标度变换式为为Tx=(TmT0) (NxN0)/(NmN0)+T0式中,Tx为实际测量的温度值;Tm为50;T0为25;Nm为FEH;N0为01H。采用定点运算。50篙神妒筷凝财蔚圃垫凶作软绒自酷尘鼠盯饯扑旦铁躯结碱帚勿糠憋剐蚂宽第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试50PID算法子程序。算法子程序。采用常用的位置型位置型PID数字控制数字控制,且结合本系统进行算法改进,形成“变速积分变速积分PID-积分分积分分离离PID”控制相结合的自动识别控制算法控制相结合的自动识别控制算法。算法如下:ui(n

44、)ur=e(n)式中,ui(n)为第n次温度采样值;ur为设定值。若若 e(n)| ,采用,采用PD算法。算法。若若 e(n) ,采用,采用PID算法算法。该算法可大大减少超调,且可有效克服积分饱和的影响,使控制精度大大提高。51予腕痹釜妨刘哼罐冀恢膛彭镍孜夕傲缩岔柑设闰徘劳琢秦矾念诚各揩漆棘第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试5113.2.6软件设计考虑的问题软件设计考虑的问题在系统总体设计时,软件设计和硬件设计应统一考虑软件设计和硬件设计应统一考虑,相互结合进行。当系统的硬件电路设计定型后,软件的任务也就明确了。一般来说,软件的功能分为软

45、件的功能分为两大类两大类。一类一类是执行软件,能完成各种实质性的功能,如测量、计算、显示、打印、输出控制等;另一类另一类是监控软件,专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度的角色充当组织调度的角色。在进行程序设计时应从以下几个方面考虑。52僵嘎乔琉恃振噎溃舟源茵序兄冉骋根魄部慧尾堵谩臃骚牧而为盒豪疲鞋苇第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试52(1)根据软件功能要求,)根据软件功能要求,将系统软件分成若干相对软件分成若干相对独立的部分独立的部分,设计出合理的软件总体结构,使其清晰、简洁、流程合理。(2)各功能程序实行模块化

46、、子程序化)各功能程序实行模块化、子程序化。既便于调试、链接,又便于移植、修改。(3)在编写应用软件之前,应绘制出程序流程图)在编写应用软件之前,应绘制出程序流程图。多花一些时间来设计程序流程图,就可以节约几倍于源程序的编辑和调试时间。(4)要合理分配系统资源,)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等。其中最关键的是片内RAM分配。53肌妓波屠义毙巾子沼湘竞短吨铲插郡锹唆詹吧蕊菠茬端峻春舰悉扬枷膘涵第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试53片内片内RAM指指00H7FH单元,这128个字节的功能不完全相同,分配时应充分

47、发挥其特长,物尽其用。例如,例如,工作寄存器的R0和和R1具有指针功能,避免作为他用;20H2FH16个字节个字节有位寻址功能,存放各种标志位、逻辑变量、状态变量等;设置堆栈区时应先估算出子程序和中断嵌套深度及堆栈操作指令使用情况,大小应留有余量。若若扩展扩展RAM存储器,应把使用频率最高的数据存储器,应把使用频率最高的数据缓冲器安排在片内缓冲器安排在片内RAM中,以中,以提高处理速度提高处理速度。当RAM资源规划好后,应列出一张详细的应列出一张详细的RAM资源资源分配表分配表,以备编程时查用方便。54尽札椽社怕狄腑狼蕾迁色套寝勃有离迄衰寻焦韭妄痈砚刘成覆酶祭捞庇尧第13章AT89S51单片机

48、的应用设计与调试第13章AT89S51单片机的应用设计与调试5413.2.7软件的总体框架设计软件的总体框架设计设计者在软件设计时,感觉比较困难的是如何进行系系统软件的总体框架设计统软件的总体框架设计。下面举一个典型例子,供软件设计时参考。【例【例13-1】有一个AT89S51应用系统,假设5个中断源个中断源都已用到都已用到,应用系统的程序框架程序框架如下:ORG 0000H;系统程序入口;系统程序入口LJMPMAIN;跳向主程序入口MAINORG 0003H;外中断;外中断0中断向量入口中断向量入口LJMPIINT0P;跳向外中断0入口IINT0PORG 000BH;T0中断向量入口中断向量

49、入口LJMPIT0P;跳向T0中断入口IT0P55掷趾撩品豪袒惧死蚜数傈悄潦拖误割缅痹徽害拣扼碌幼骚赦殷屈呜选扫媚第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试55ORG0013H;外中断;外中断0中断向量入口中断向量入口LJMPIINT1P;跳向外中断1入口IINT1PORG001BH;T1中断向量入口中断向量入口LJMPIT1P;跳向T1中断处理程序入口IT1PORG 0023H;串行口中断向量入口;串行口中断向量入口LJMPISIOP;跳向串行口中断处理程序入口ISIOPORG 0040H;主程序入口;主程序入口MAIN:;对片内各功能部件以及扩

50、展的各个;I/O接口芯片初始化;MOVSP,#60H;对堆栈区进行初始化主处理程序段(根据实际处理任务编写)主处理程序段(根据实际处理任务编写)56掉宪水埠迟首锈缘瓢意貉众单镶透粮倦巫粮有奥裙涪鼎粟镣戈第詹妮铰硼第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试56ORG xxxxHIINT0P:外中断0中断处理;外中断0中断处理入口RETIORG yyyyHIT0P:T0中断处理中断处理;T0中断处理入口中断处理入口RETIORG zzzzHIINT1P:外中断:外中断1中断处理中断处理;外中断;外中断1中断处理入口中断处理入口RETI57肚涪站暇涣缩遭

51、揩渔艾消弊十矢头哆戌踌邪疵挟敷捶潭吓乌饺泊扣眷视皮第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试57ORG uuuuHIT1P:T1中断处理;T1中断处理子程序IT0P入口RETIORGvvvvHISIOP:串行口中断处理;串行口中断处理子程序入口RETIEND上述程序框架仅供参考,当然在实际中,5个中断源也未必全用。58发朝蓉间奢嫁委蒙辽侣略狡梭啦薪袒漂拴对却偿邹雌炼调径炒戚肃洛东岳第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试5813.3单片机应用系统的仿真开发与调试单片机应用系统的仿真开发与调试当用户样机

52、完成硬件和软件设计硬件和软件设计,全部元器件安装完毕后,在用户样机的程序存储器中放入编写好的应用程序,系统即可运行。但应用程序运行一次性成功几乎是不可能的,但应用程序运行一次性成功几乎是不可能的,多少会存在一些软件、硬件上的错误,多少会存在一些软件、硬件上的错误,需借助单片机的仿真开发工具进行调试,发现错误并加以改正。AT89S51只是只是一个芯片,既一个芯片,既没有键盘,又没有没有键盘,又没有CRT、LED显示器,显示器,无法进无法进行软件的开发行软件的开发(如编辑、汇编、调试程序等),必须借助某必须借助某种开发工具(也称为仿真开发系统)种开发工具(也称为仿真开发系统)所提供的开发手段。一般

53、来说,仿真开发工具应具有如下最基本功能。仿真开发工具应具有如下最基本功能。59闸弛屡呼懈喝栖唤敛濒胀访扦牢丑秉递惟碱舞饰里窄播刊积尝捞唁吧祖续第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试59(1)用户样机程序的输入与修改。)用户样机程序的输入与修改。(2)程序的运行、调试(单步运行、设置断点运行)程序的运行、调试(单步运行、设置断点运行)、排错、状态查询等功能。、排错、状态查询等功能。(3)用户样机硬件电路的诊断与检查硬件电路的诊断与检查。(4)有较全的开发软件。用户可用汇编语言或C语言编制应用程序;由开发系统编译连接生成目标文件、可执行文件。配有反

54、汇编软件,能将目标程序转换成汇编语言程序;有丰富的子程序可供用户选择调用。(5)将调试正确的程序写入到程序存储器中调试正确的程序写入到程序存储器中。60讣击硬棕篮故猜捞致厨钎迎辜嘿锌象宋冗耶冻哆旗销捞荚论梭桨慨素耘些第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试60介绍常用的仿真开发工具。13.3.1仿真开发系统简介仿真开发系统简介目前国内使用较多的仿真开发系统目前国内使用较多的仿真开发系统大致分为如下两类两类。1通用机仿真开发系统通用机仿真开发系统目前设计者使用最多的一类开发装置使用最多的一类开发装置,是一种通过PC机的并行口、串行口或USB口,外加

55、在线仿真器的仿真开发系统,如图图13-12所示。在线仿真器一侧与与PC机的机的串口(或并口、串口(或并口、USB口)口)相连相连。在线仿真器另一侧的仿真插头插入到用户样机的单仿真插头插入到用户样机的单片机插座上片机插座上,对样机的单片机进行“仿真”。从仿真插头61昧沃丸阮孵硒茅郊屿还野缝端恒伦魂淹际佛淘蛰陵雌私信太痴缚尔阑敏矩第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试6162图图13-12通用机仿真开发系统牲场熙长崇级倘绥吸鸳爷嘶湖欢潦拨火动坚碰秽崩湖孺秽难缀掏红伍闰容第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设

56、计与调试62向在线仿真器看去,看到的就是一个“单片机”。这个这个“单片机单片机”是用来是用来“代替代替”用户样机上的单片机。用户样机上的单片机。但是这个“单片机单片机”片内程序的运行是由片内程序的运行是由PC机上的软件控制的机上的软件控制的。由于在线仿真器有PC机及其仿真开发软件的强大支持,可以在PC机的屏幕上观察用户程序的运行情况,可以采用单步、设断点等手段逐条跟踪用户程序并进行修改和调试,以及查找软、硬件故障。在线仿真器除了除了“出借出借”单片机外,还单片机外,还“出借出借”存储器,存储器,即仿真RAM。就是说,在用户样机调试期间,仿真器把开发系统的一部分存储器“变换”成为用户样机的存储器

57、。63烁镇阂俩窿铣绰备吭昼栽猖滇有砧簧财伞辨络股楚难谨舷喀择坍氟拓树多第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试63这部分存储器与用户样机的程序存储器具有相同的存储空间,用来存放待调试的用户程序。用来存放待调试的用户程序。在调试用户程序时,仿真器的仿真插头仿真插头必须插入用户样机空出的单片机插座中。当仿真开发系统与PC机联机后,用户可利用PC机上的仿真开发软件,在PC机上编辑、修改源程序,然后通过交叉汇编软件将其汇编成机器代码,传送到在线仿真器中的仿真RAM中。这时用户可用单步、断点、跟踪、全速单步、断点、跟踪、全速等方式运行用户程序,系统状态实时

58、地显示在屏幕上。程序调试通过,程序调试通过,再使用编程器器,把调试完毕的程序64寺靛蹋篙炒奈搂泌禁蜕痉拇市些绑尘黄化扣哥荤帚椒双卢衡峰继养泊斧纱第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试64写入到单片机内的写入到单片机内的Flash存储器中或外扩的存储器中或外扩的EPROM中。此类仿真开发系统是目前最流行的仿真开发工具。配置不同的仿真插头,可以仿真开发各种单片机。通用机仿真开发系统中还有另一种仿真器有另一种仿真器:独立型仿真独立型仿真器。器。该类仿真器采用模块化结构,配有不同外设,如外存板、打印机、键盘/显示器等,用户可根据需要选用。在工业现场,在

59、工业现场,往往没有往往没有PC机的支持,机的支持,这时使用独立型仿真器也可进行仿真调试工作,只不过要输入机器码,稍显麻烦一些。65闯抚慰逛妄帝喉疑锈润善丛筹妓啤疟磋钱壁疆佑值氢福槽垦苗卿厕佐瓣舵第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试652.软件仿真开发工具软件仿真开发工具Proteus是一种完全用软件手段完全用软件手段对单片机应用系统进行仿真开发的。软件仿真开发工具与用户样机在硬件上无任何联系。通常这种系统是由PC机上安装仿真开发工具软件构成,可进行应用系统的设计、仿真、开发与调试。Proteus软件是英国英国LabCenterelectron

60、ics开发的开发的EDA工具软件工具软件,它为各种实际的单片机系统开发提供了功能强大的EDA工具,已有近20年的历史。它除了具有和其他EDA工具一样的原理编辑、印制电路板自动或人工布线及电路仿真功能外,最大特色最大特色是其对66聋南稿莱就砖瘤峙杉岿龋嗣夫裁善惮康污枫辛覆耽蜗话素汇看慈画悸胜汽第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试66单片机硬件电路的仿真是交互的、可视化的。通过Proteus软件的虚拟仿真技术,用户可以对基于单片机应用系统连同所有的外围接口、电子器件以及外部的测试仪器一起仿真。针对单片机的应用,可直接在基于原理图的虚拟模型接在基于

61、原理图的虚拟模型上进行编程上进行编程,并实现源代码级的实时调试。Proteus软件具有如下特点特点。(1)能够对模拟电路、数字电路进行仿真模拟电路、数字电路进行仿真。(2)除仿真51系列单片机外,Proteus软件还可仿真还可仿真68000系列、AVR系列、PIC12-18系列等其他系列其他系列单片机。67津潭盗辐氓褪舆柔泅衰瓷捅绰溅渴瞬瘸缩膝绷棵噶绵炮袍乡疽阴狄店爱钮第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试67(3)具有硬件仿真开发系统中的全速、单步、设置断点具有硬件仿真开发系统中的全速、单步、设置断点等调试功能等调试功能,同时可以观察各个变量

62、、寄存器等的当前状态。(4)该软件提供各种单片机与丰富的外围接口芯片提供各种单片机与丰富的外围接口芯片、存储器芯片组成的系统仿真、RS-232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能。(5)提供丰富的虚拟仪器,如示波器、逻辑分析仪、信丰富的虚拟仪器,如示波器、逻辑分析仪、信号发生器等。号发生器等。利用虚拟仪器在仿真过程中可以测量系统外围电路的特性,设计者可充分利用Proteus软件提供的虚拟仪器,来进行系统的软件仿真测试与调试。总之,Proteus软件是一款功能强大的单片机软件仿真开发工具。68驹嗅肘杂永舒概巳绣蔫戍血诫胃愿礁斜佐荫娠谭尧耀绥雁趾汝咳啼奖辙溶第13章AT

63、89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试68在使用Proteus软件进行仿真开发时,编译调试环境编译调试环境可选用可选用KeilC51Vision3软件软件。该软件支持众多不同公司的MCS-51架构的芯片,集编辑、编译和程序仿真等于一体,同时还支持汇编和C语言的程序设计,界面友好易学,在调试程序、软件仿真方面有很强大的功能。用用Proteus软件调试不需任何硬件在线仿真器,也不软件调试不需任何硬件在线仿真器,也不需要用户硬件样机,直接就可以在需要用户硬件样机,直接就可以在PC机上开发和调试单机上开发和调试单片机软件。片机软件。调试完毕的软件可以将机器代码固化

64、,一般能直接投入运行。69扒预胯汽翅比差苟储赖户趣现府奶鸳煞疤份晶叠幅望爵矛馋古进象癸湃萝第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试69尽管Proteus软件具有开发效率高,不需要附加的硬件开发装置成本。但是软件模拟器是使用纯软件来对用户系统仿真,对硬件电路的实时性还不能完全准确地模拟对硬件电路的实时性还不能完全准确地模拟,不能进行用户样机硬件部分的诊断与实时在线仿真不能进行用户样机硬件部分的诊断与实时在线仿真。因此在系统开发中,一般是先用Proteus设计出系统的硬件电路,编写程序,然后在Proteus环境下仿真调试通过。然后依照仿真的结果,完成

65、实际硬件设计。再将仿真通过的程序烧录到编程器中,然后安装到用户样机硬件板上去观察运行结果,如有问题,再连接硬件仿真器去分析、调试。70锡享需碧柿臣俞碱咐膳傀迅渊司恳配庞剁队冲迟呼讥豹迫却桅龟队枣炽箔第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试7013.3.2用户样机的仿真调试用户样机的仿真调试介绍如何使用仿真开发工具进行汇编语言源程序编写、调试以及与用户样机硬件联调工作。1用户样机的程序调试用户样机的程序调试用户源程序调试过程如图图13-13所示所示,分以下4个步骤。(1)输入用户源程序)输入用户源程序。用户使用编辑软件WS,按照汇编语言源程序要求的

66、格式、语法规定,把源程序输入到把源程序输入到PC机中,并保存在磁盘上机中,并保存在磁盘上。71新土恼蔬瑚茧往震弊锡永瘴寂擒攘赡奴锄尖恰晰逐嗡钡颧绦蜘雇栏爆症宾第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试71图图13-13用用户样户样机机软软件件设计设计、调试调试的的过过程程肇厅戳善兢式坯勿偿斟啄痴靖赂批祭酒损寻恶跌毕筒亿氓噬畔挂漠润优亚第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试72(2)在)在PC机上,利用汇编程序对用户源程序进行汇编,机上,利用汇编程序对用户源程序进行汇编,直至语法错误全部纠正为止。直至

67、语法错误全部纠正为止。如无语法错误,则进入下一个步骤。(3)动态在线调试。)动态在线调试。这一步对用户的源程序进行调试。上述的步骤(1)、步骤(2)是一个纯粹的软件运行过程,这一步,必须要有在线仿真器配合,这一步,必须要有在线仿真器配合,才能对用户源程序进行调试。用户程序中分为与用户样机硬件无关以及与用户样机紧密相关的程序。73圾很引爬足根开宛灸闭僧浪于纽商辩豫祁非聚哪牡壹唇某巫滋涵撵畏廖擞第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试73对于与用户样机硬件无关的程序,对于与用户样机硬件无关的程序,如计算程序如计算程序,虽然没有语法错误,但可能存在逻辑

68、错误,使计算结果不正确,此时必须借助于在线仿真器的动态在线调试手段,如单步运行、设置断点等,发现逻辑错误,然后返回到步骤(1)修改,直至逻辑错误纠正为止。对于与用户样机硬件紧密相关的程序段与用户样机硬件紧密相关的程序段(如接口驱动程序),一定要先把在线仿真器的仿真插头插入用户样机的单片机插座中(见图图13-12),进行在线仿真调试,利用仿真开发系统提供单步、设置断点等调试手段来进行系统的调试。74送笨碰声扒惫沙亲姆潘颂紊仙计尸筏他钠洪钨骑谱隆镁赴筒辗讯藤弄雀霍第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试74部分程序段运行不正常,部分程序段运行不正常,

69、可能是可能是软件逻辑软件逻辑上有问题,上有问题,也可能是也可能是硬件硬件有故障有故障,必须先通过在线仿真调试程序提供的调试手段,把硬件故障排除以后,再与硬件配合,把硬件故障排除以后,再与硬件配合,对用户程序进行动态在线调试。对于软件的逻辑错误,则返回到第一步进行修改,直至逻辑错误消除为止。在调试这类程序时,硬件调试与软件调试是不能完全分开的。许多硬件错误是通过软件的调试而发现和纠正的。(4)将调试完毕的用户程序通过)将调试完毕的用户程序通过编程写入器编程写入器(也称烧写(也称烧写器),固化在程序存储器中。器),固化在程序存储器中。75羹青吮兼馒玉颖族政肺俊乘椿宿高谆凄舅令嗓隐挞浸揭砷囤搽么袁破

70、眠撵第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试752用户样机的硬件调试用户样机的硬件调试用户样机全部焊接完毕,就可对样机的硬件进行调试。首先进行静态调试静态调试,目的是排除明显的硬件故障。(1)静态调试)静态调试分两步:第一步第一步在样机加电之前,根据硬件设计图,用万用表等工具,仔细检查样机线路样机线路是否连接正确是否连接正确,并核对元器件型号、规格和安装是否符合要求,应特别注意应特别注意电源系统电源系统的检查的检查,防止电源的短路和极性错误,并重点检查系统总线(地址总线、数据总线、控制总线)是否存在相互之间短路或与其他信号线短路。76肇嫉幸姜井善

71、花船瞻笔媚硅矾平悍挪闽虫爽太璃瑚丢灶吧驴骚荚驹鞭芝勋第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试76第二步第二步加电后检查各芯片插座上有关引脚的电位有关引脚的电位,测量各点电平是否正常各点电平是否正常,尤其应注意AT89S51插座的各点电位,若有高压,与在线仿真器联机调试时,将会损坏在线若有高压,与在线仿真器联机调试时,将会损坏在线仿真器仿真器。具体步骤如下。具体步骤如下。电源检查。电源检查。当用户样机板连接或焊接完成之后,先不先不插主要元器件,插主要元器件,通上电源。通常用+5V直流电源(这是TTL电源),用万用表电压挡测试各元器件插座上相应电各元

72、器件插座上相应电源引脚电压数值是否正确,极性是否符合。源引脚电压数值是否正确,极性是否符合。如有错误,要及时检查、排除,以使每个电源引脚的数值都符合要求。77撬阅琢令流吧纯颧逛伙隙魄扔慨肠的巩笺酚演佰鱼斌沥拯栏牺侥酉翁缀闻第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试77各元器件电源检查。各元器件电源检查。断开电源,按正确的元器件方向插上元器件。最好是分别插入,分别通电,最好是分别插入,分别通电,逐一检查每个逐一检查每个元器件上的电源是否正确元器件上的电源是否正确,直到最后全部插上元器件。通电后,每个元器件上电源值应正确无误。检查相应芯片的逻辑关系。检

73、查相应芯片的逻辑关系。通常采用静态电平检查法,静态电平检查法,即在一个芯片信号输入端加入一个相应电平,检查输出电即在一个芯片信号输入端加入一个相应电平,检查输出电平是否正确。平是否正确。单片机系统大都是数字逻辑电路,使用电平检查法可首先检查出逻辑设计是否正确,选用的元器件是否符合要求,逻辑关系是否匹配,元器件连接关系是否符合要求等。78宪伏尊逾虞寻今惧戳釜婶确喧锈文叔椅郧颂饱充精动堡丹拒齿熙胞顶巢招第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试78(2)在线仿真与动态调试)在线仿真与动态调试用户样机中的硬件故障硬件故障(如各个部件内部存在的故障和部件之

74、间连接的逻辑错误)主要靠联机在线仿真来排除联机在线仿真来排除的。的。在断电情况下,除单片机外,插上所有的元器件,并把在线仿真器的仿真插头插入样机上AT89S51单片机的插座(见图13-12),然后分别打开用户样机和仿真器电源后便可开始联机在线仿真调试。前面已介绍,硬件调试和软件调试是不能完全分开的硬件调试和软件调试是不能完全分开的,许多硬件错误是在软件调试中发现和被纠正的。许多硬件错误是在软件调试中发现和被纠正的。79转获怔草集镑男策躁棋阿啥廷夸箭嘱像处野潮奏谨娠啃酉导却命搂戴评娇第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试79所以,在之前介绍的有关

75、用户样机软件调试的第(3)步的动态在线调试中,即包括联机仿真、硬件在线动态调试以及硬件故障的排除。下面介绍在仿真开发机上如何利用简单调试程序检查在仿真开发机上如何利用简单调试程序检查用户样机用户样机。利用仿真开发系统对用户样机进行硬件检查,常常按按其功能及其功能及I/O通道分别编写相应简短的实验程序通道分别编写相应简短的实验程序,来检查各部分功能及逻辑是否正确,下面简单介绍。80藩颠俊翔四途虽酋婶秧疫回刊请卑绒尽鸵蹄大四确掳绘枚贿囊乱杏环馈桃第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试80检查各地址译码输出检查各地址译码输出通常,地址译码输出是一个低

76、电平有效信号。因此在选到某一个芯片时(无论是内存还是外设),其片选信号选到某一个芯片时(无论是内存还是外设),其片选信号用示波器检查应该是一个用示波器检查应该是一个负脉冲信号负脉冲信号。由于使用的时钟频率不同,其负脉冲的宽度和频率也有所不同。注意,在使用示波器测量用户样机板的某些信号时,要将示波器电源要将示波器电源插头上的地线断开,插头上的地线断开,这是由于示波器测量探头一端连到外壳,在有些电源系统中,保护地和电源地是连在一起的,有时会将电源插座插反,将交流220V直接引到测量端,而将用户样机板全部烧毁,并且会殃及在线仿真器并且会殃及在线仿真器。81唯蔗拽辐销次播创荫碱欲娥糯瘫荔箩狮门肛吻甭诱

77、例麻括菊唆呻元堕劲孽第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试81下面讨论如何检查地址译码器输出如何检查地址译码器输出。例如,例如,一片6116存储芯片地址为200027FFH,则可在开发系统上执行如下程序:LOOP:MOV DPTR,#200OHMOVX A,DPTRSJMP LOOP程序执行后,应该从应该从6116存储器芯片的片选端看到等存储器芯片的片选端看到等间隔的间隔的一串负脉冲一串负脉冲,说明该芯片连接正确,不插入该存储器芯片,只测量插座相应片选引脚也会有上述结果。82蒙旋棋缀出弦迟猎网瘟啮族玲卢笼雹妖滁锻羔厂玛船炭授鄙喊恐隶膨候耀第13

78、章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试82用同样的方法,可将各内存及外设接口芯片的片选信号逐一进行检查。如出现不正确的现象,就要检查片选线连线是否正确,有无接触不良或错线、断线问题。检查检查RAM存储器存储器检查RAM存储器时可编写程序可编写程序,对对RAM进行写入,进行写入,然后再读出,将写入和读出的数据进行比较,然后再读出,将写入和读出的数据进行比较,发现错误,立即停止。将存储器芯片插上,执行如下程序:83诣拴耐亢抬菏麓示汁马舟吾妊奴樟赖噶樟淋胁圭坛曾炊糠迎坤斗剥谩展侥第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用

79、设计与调试83MOVA,#00HMOV DPTR,#RAM ;首地址LOOP:MOVXDPTR,AMOVR0,AMOVXA,DPTRCLR CSUBBA,R0JNZ LOOP1INC DPTRMOVA,R0INC ASJMPLOOPLOOP1:出错停止出错停止84丧躬豢伊胶谴灾梧澜外良斜封绞鹅果览篷獭乍菊协满绞鸽容呸章功载灼费第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试84如RAM的每个单元都出现问题每个单元都出现问题,则可能是控制信号连接不正确;如一片RAM芯片中一个或几个单元一个或几个单元出现问题,则可能芯片本身不好芯片本身不好,可换一片再测试一

80、下。检查检查I/O扩展接口扩展接口对可编程接口芯片,如81C55、82C55,首先要对该,首先要对该接口芯片进行初始化,再对其接口芯片进行初始化,再对其I/O端口进行端口进行I/O操作。操作。初始化要按设计要求进行,这个初始化程序调试好后就可作为正式编程的相应内容。初始化后,可对其端口进行读/写。对开关量I/O,在样机上可利用钮子开关钮子开关和发光二极管发光二极管模拟,也可接上驱动板检查。一般情况下,用户样机先调试,驱动板单独进行调试,这样故障排除更方便些。85臂献蚌啄具紧绵投觉嘎岗凌砍容陈躇净搭剁澜写或讥抑结辅革既罚奉焕箭第13章AT89S51单片机的应用设计与调试第13章AT89S51单片

81、机的应用设计与调试85如用自动程序检查端口状态不易观察时如用自动程序检查端口状态不易观察时,可用开发系统可用开发系统的单步功能,单步执行程序的单步功能,单步执行程序,检查内部寄存器的有关内容或外部相应信号状态,并确定开关量输入/输出通道连接是否正确。若外扩一片若外扩一片82C55,端口地址为,端口地址为B000B003H,A口口方式0输入,B口、口、C口口为方式0输出,可用下述程序检查:MOV DPTR,#0B003HMOV A,#90H;90H为方式控制字MOVX DPTR,ANOP86瞧某契槽明毗颊谅讥计怠陀轴森瀑拔越击泥吧荣燃痪窜穷姆磅阎数贵壶搀第13章AT89S51单片机的应用设计与调

82、试第13章AT89S51单片机的应用设计与调试86MOVDPTR,#0B000HMOVXA,DPTR;将A口输入状态读入累加器,;单步执行完此步后暂停检查;PA口外部开关状态同A中相;应位状态是否一致CLR CMOVA,#01HINCDPTRLP:MOVXDPTR,A ;将01H送B口,指令执行后,;暂停。看B口的发光二极管状;态,第0位是否是高电平87应尝貉演濒嫌朗罐渠沛抽漫龄河镰夺佩慷辅晶醉翻淳兜椭换烤犀仟圃杭拂第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试87RLC A;将1从A的D0位移到D1位JNZLPINCDPTRRLC ALP1:MOVX

83、DPTR,A;01H送C口,指令执行完后,;看C口第0位输出状态RLC AJNZLP1对于锁存器和缓冲器,可直接对其端口进行读/写,不存在初始化的问题。88桐纵病列晌头抢赢匹象洋级展色念锈屎郡嘉跺店术朴殴干撞每绸祥碗究阻第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试88通过介绍的调试用户样机过程调试用户样机过程,可体会到离开仿真开离开仿真开发系统就根本不可能进行用户样机的调试,发系统就根本不可能进行用户样机的调试,而调试的关键关键步骤步骤动态在线仿真调试动态在线仿真调试,又完全依赖于开发系统中的在线仿真器。所以,开发系统性能,主要取决于在线仿真器的性能

84、开发系统性能,主要取决于在线仿真器的性能,在线仿真器所能提供的仿真开发手段,直接影响设计者的设计、调试工作的效率。所以,对设计者来说,在了解开发系统的种类和性能之后,选择一个性价比高的仿真开发选择一个性价比高的仿真开发系统系统,并能够熟练地使用它来调试用户样机是十分重要的。89圣蔷震穴应桅骨嗜棠莹掩咐吩涸兔眷橡挂斩侥撒忌脾赡淳猖瘤芝迅磁腔接第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试8913.4单片机应用系统的抗干扰与可靠性设计单片机应用系统的抗干扰与可靠性设计单片机应用系统在测控领域的广泛应用,单片机系统单片机系统的的可靠性可靠性越来越受到人们的关

85、注。越来越受到人们的关注。可靠性是由多种因素决定的,其中抗干扰性能的好坏抗干扰性能的好坏是影响可靠性的重要因素。一般把影响单片机测控系统正常工作的信号称为噪声噪声,又又称干扰称干扰。在系统中,出现干扰,就会影响指令的正常执行,造成控制事故或控制失灵;会在测量通道中产生干扰,使测量产生误差。本节介绍单片机应用系统设计中的抗干扰设计及提高可靠性的一些方法和措施。90铁耗冬孪毖明艰伪泽辽幻倔硬蒜殆峡情哇透羹阎主隶通鸣落音估瞧谬灵开第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试9013.4.1AT89S51片内看门狗定时器的使用片内看门狗定时器的使用当AT89

86、S51系统受到干扰可能会失控失控,会引起程序程序“跑飞跑飞”或使程序陷入或使程序陷入“死循环死循环”,系统将完全瘫痪。如果操作人员在场,可按下人工复位按钮,强制系统复位。但操作人员不可能一直监视着系统,即使监视着系统,也往往是在引起不良后果之后才进行人工复位。能不能不要人来监视,使系统摆脱能不能不要人来监视,使系统摆脱“死循环死循环”,重新执,重新执行正常的程序呢?行正常的程序呢?这可采用“看门狗看门狗”(Watchdog,简写WDT)技术来解决这一问题。91童接碑吝噬清朗溜临赴搂箩牌绷味浓否泛檀绷撵踩佳债诌棚贫蛇溯败川允第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机

87、的应用设计与调试91“看门狗”是使用一个使用一个WDT计数器计数器来不断计数来不断计数,监视程序的运行。当WDT计数器运行后,为防止不必要溢出防止不必要溢出,程序正常运行中,应定期地把应定期地把WDT计数器清计数器清0,以保证不溢出。AT89S51片内集成的“看门狗看门狗”WDT包含一个包含一个14位计数器位计数器和和看门狗定时器复位寄存器(看门狗定时器复位寄存器(WDTRST)。)。当程序“跑飞跑飞”或陷或陷入入“死循环死循环”时时,也就不能定时地把WDT计数器清0,计数器值计满溢出时,将在AT89S51的RST引脚引脚上输出一个正脉冲一个正脉冲使单片机复位,在系统的复位入口复位入口0000

88、H处处安排一条跳向出错处理程序段的指令或重新从头执行程序,而使程序摆脱使程序摆脱“跑飞跑飞”或或“死循环死循环”。92有耪拱炊乞舌挨竣卖卡虽您挂铅盖股于烹置与沤烩曲兽糊抖田伪渍戒铅碑第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试92使用看门狗时,用户只要向寄存器使用看门狗时,用户只要向寄存器WDTRST(地址为(地址为A6H)先写先写1EH,紧接着,紧接着写入写入E1H,WDT计数器便启动计启动计数数,程序段如下:MOVWDTRST,#1EH;先向;先向WDTRST写入写入1EHMOVWDTRST,#0E1H;再向;再向WDTRST写入写入E1H在实际

89、应用中,为防止为防止WDT计数器启动后产生不必要计数器启动后产生不必要的溢出,的溢出,应不断地复位WDTRST,即向WDTRST寄存器写入数据1EH和E1H。93纱掀呢豹渍拍另竞峪系哈庭颐夏北肝画材陡掂乍公济筒功艳红暂面女线岔第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试93在编程时,一般把复位一般把复位WDTRST的的这两条指令这两条指令,设计,设计为一个子程序为一个子程序,只要在程序正常运行中,不断调用该子程不断调用该子程序序,把计数器清0,使其不溢出即可。注意寄存器WDTRST是是只写只写寄存器寄存器,而WDT中的计数器既不可写,也不可读,一旦溢

90、出,便停止计数。13.4.2指令冗余和软件陷阱指令冗余和软件陷阱当单片机系统由于干扰而使程序运行发生混乱、导致程序乱飞或陷入死循环,须采取使程序纳入正规的措施须采取使程序纳入正规的措施,例如,经常采用的措施是指令冗余指令冗余和软件陷阱。软件陷阱。94茎尘锡篡汐槐乌拖邵谍秸肝溉尤獭雍吧透荷栏沾爷腻玉驻陌魔蚂眼忱翅躁第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试941指令冗余指令冗余单片机程序运行时取指令是先取操作码,再取操作数。当单片机系统受干扰出现错误时,程序便脱离正常轨道“乱飞”。当乱飞到某当乱飞到某双字节指令双字节指令,若取指令时刻落在操作数上,误

91、将操作数当作操作码误将操作数当作操作码,程序有可能出错。若乱飞到三字三字节指令节指令,出错概率更大出错概率更大,这时可在在双字节指令双字节指令和和三字节指三字节指令令后插入后插入两个字节以上的两个字节以上的NOP指令指令,可保护其后的指令不保护其后的指令不被拆散被拆散,称指令冗余指令冗余。95涪犊蚁赋孵杯帅窒扭玲缅往柱赁建陡缉招窃滋芯舟崩寸守啸旱幌捍绝舱耀第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试95采用指令冗余无疑会降低系统的效率降低系统的效率。因此,仅在一些对程序流向起决定作用的指令之前插入两条对程序流向起决定作用的指令之前插入两条NOP指令指

92、令。此类指令有RET、RETI、ACALL、LCALL、SJMP、AJMP、LJMP、JZ、JNZ、JC、JNC、JB、JNB、JBC、CJNE、DJNZ等。另外在某些对系统工作状态至关重要的指令(至关重要的指令(如SETBEA之类)前也可前也可插入两条插入两条NOP指令指令,一旦程序乱飞时,保证使程序迅速纳入正轨使程序迅速纳入正轨。96完奄邓札冰冶维咱朽足猾专猩姑乏拦埋痈难却隧翱精铜兼雌偏眼湘袖冈旋第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试96指令冗余可减少程序乱飞的次数可减少程序乱飞的次数,使其很快纳入程序轨道,但这并不能保证程序在失控期间不干

93、坏事并不能保证程序在失控期间不干坏事,更不能保证程序纳入正常轨道后就太平无事了。程序的运行事实上已经偏离了正常顺序,有可能做着它现在不该做的事情。解决这个问题还必须采用软件容错技术解决这个问题还必须采用软件容错技术(限于篇幅,这里不作介绍),可使系统的误动作减少,并消灭重大误动作。97内汪惯唇碴餐脆外双彩郑死惫麻挑碍阿戌狂虞伸疥甭墨矮暴妹蔽耘引防前第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试972软件陷阱软件陷阱就是一条引导指令一条引导指令“LJMPERP”,强行将乱飞的程序引向一个指定的地址入口标号“ERP”,在那里有一段专门对程序出错进行处理的程

94、序。为加强其捕捉效果,为加强其捕捉效果,一般还在它前面加两条NOP指令。NOPNOPLJMP ERP软件陷阱一般安排在以下软件陷阱一般安排在以下4种地方种地方。98哮漏引硷溉携琐贿土钨吟瘦捉玄遵良赴矮匀梗铣姚企稀吵桂驱捡喉丛毒芽第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试98(1)未使用的中断向量区:)未使用的中断向量区:0003H002FH当干扰使未使用的中断开放,并激活这些中断时,就当干扰使未使用的中断开放,并激活这些中断时,就会进一步引起混乱会进一步引起混乱。如果在这些地方布上陷阱在这些地方布上陷阱,就能及时捕捉到错误中断。例如例如,系统共使用

95、共使用3个中断个中断、T0、T1,它们的中断子程序分别为PGINT0、PGT0和PGT1,建议按如下方式来设置中断向量区:ORG0000H0000START:LJMPMAIN;引向主程序入口0003LJMPPGINT0 ;中断入口99孜找员慰冲修操倡捻噪守痰爷雪笺椅驹菠蘸戴励宛忿相烃绷昆逝绣疏洁捌第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试990006NOP;指令冗余与软件陷阱;指令冗余与软件陷阱0007NOP;0008LJMP ERP;000BLJMPPGT0;T0中断入口000CNOP;指令冗余与软件陷阱000DNOP;000ELJMP ERP0

96、013LJMPERP;未使用中断,设指令冗余与软件陷阱001BLJMPPGT1;T1中断入口001E NOP;指令冗余与软件陷阱;指令冗余与软件陷阱001FNOP100铱恍纽犯听惧羊贝景揪艘簿俞钩攘晴月醉炯缔嘘缮戍砒颂腊尖汤糊娠旋擅第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1000020LJMPERP;0023LJMPERP;未使用串口中断,设指令冗余与软件陷阱0026NOP;指令冗余与软件陷阱0027NOP;0028LJMPERP;0100MAIN:;主程序入口;主程序入口101累邢颖薛颁悯虞渗到漠涨恋奢让式扬岛哎单惭攘地割纶解艘眯俐坟曳仆冷第1

97、3章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试101(2)未使用的程序存储器空间)未使用的程序存储器空间对未用程序存储器空间,一般均维持原态(未用程序存储器空间,一般均维持原态(FFH)。FFH单字节指令(单字节指令(MOVR7,A),),程序弹飞到这一区域后将顺流而下,不再跳跃(除非受到新的干扰)。这时,只要只要每隔一段每隔一段设置一个陷阱,就一定能捕捉到乱飞的程序。设置一个陷阱,就一定能捕捉到乱飞的程序。软件陷阱一定要指向出错处理子程序ERP。可将可将ERP安排安排在在0030H开始的地方开始的地方,这样就可用00H,00H,02H,00H,30H五个

98、字节(指令NOP,NOP,LJMPERP的机器码)作陷阱来填充来填充EPROM中的未使用空间中的未使用空间,或每隔一段设一个陷阱(020030),其他单元保持FFH不变。102愚乌荣歇哈呢厚绊服丙染拒遥以讽债丈淘诧租淤晃钻屠扦弊潦粗画呜凸陨第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试102(3)表格)表格两类表格。一类是一类是数据表格数据表格,供“MOVCA,A+PC”指令或“MOVCA,A+DPTR”指令使用,其内容内容完全不是完全不是指令指令;另一类是另一类是跳转表格跳转表格,供“JMPADPTR”指令使用,为一系列的三字节指令LJMP或两字节指

99、令AJMP。由于表格内容和检索值有一一对应关系,在表格中间安排陷阱将会破在表格中间安排陷阱将会破坏其连续性和对应关系,坏其连续性和对应关系,所以只能在表格的最后安排五字节只能在表格的最后安排五字节陷阱(陷阱(NOP,NOP,LJMPERP)。)。由于表格区一般较长,安排在最后的陷阱安排在最后的陷阱不能保证一定捕捉到乱飞的程序不能保证一定捕捉到乱飞的程序,可能中可能中途再次飞走途再次飞走,这时只好由别处的陷阱或冗余指令来制伏由别处的陷阱或冗余指令来制伏。103蹦暑堤温谆并斌剩灰织蚊诵疆壶睬踪损临扶帆会钱卡湃面坏荤梳水摸革回第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的

100、应用设计与调试103(4)程序区)程序区由一串执行指令构成的,不能在这些指令串中间任意安不能在这些指令串中间任意安排陷阱排陷阱,否则将影响正常程序执行。但是,在这些指令串之在这些指令串之间常有一些间常有一些断裂点断裂点,正常执行的程序到此便不会继续往下执行,这类指令有这类指令有LJMP、SJMP、AJMP、RET、RETI。这时PC的值应发生正常跳变。如果还要顺次往下执行,必然会出错。在这种地方安排陷阱之后,就能有效地捕捉住它,而又不影响正常执行的程序流程。104忌疾隶涯今舀显锤瑞吕搓靳疯裕莱运俐漾温灼喻邮迂原胺棵岿乱撑班淀汁第13章AT89S51单片机的应用设计与调试第13章AT89S51单

101、片机的应用设计与调试104例如例如,在一个根据累加器的根据累加器的正、负、零值正、负、零值的进行跳转的的进行跳转的三分支三分支程序程序中,软件陷阱的安置方式如下:JNZL1;A中内容非零,跳转L1程序段;A中内容为零的处理程序段AJMPL3;断裂点NOP;指令冗余和软件陷阱;指令冗余和软件陷阱NOP;LJMPERR;L1:JBAcc.7,L2LJMPL3;断裂点;断裂点105杖赎瘫酶遥脸遇藏谊安杏蔡趴夷浇户昼锰袁琉彤牧煤杀饺新虚狡酱号极灾第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试105NOP;指令冗余和软件陷阱;指令冗余和软件陷阱NOP;LJMPE

102、RR;L2: L3: MOV A,R2;取结果RET;断裂点;断裂点NOP;指令冗余和软件陷阱;指令冗余和软件陷阱NOP;LJMPERR;由于软件陷阱都安排在正常程序执行不到的地方安排在正常程序执行不到的地方,故不影响程序执行效率不影响程序执行效率。在程序存储器容量不成问题的条件程序存储器容量不成问题的条件下下,多设置陷阱是有益的有益的。106湍弓镭舒蒋吝卞止蒜兵馒翰扩翠谣跑锅痊毕捂桐稗洁聚哈粟昌稠处炭满医第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试10613.4.3软件滤波软件滤波对实时数据采集系统,为了消除传感器通道中的干扰信号,常采用硬件滤波器

103、先滤除干扰信号,再进行A/D转换。也也可采用先可采用先A/D转换,再对转换,再对A/D转换后的数字量进行软件滤波消转换后的数字量进行软件滤波消除干扰除干扰。下面介绍几种软件滤波的方法。1算术平均滤波法算术平均滤波法对一点数据连续取对一点数据连续取n个值进行采样,然后求算术平均。个值进行采样,然后求算术平均。这种方法一般适用于具有适用于具有随机干扰的信号随机干扰的信号的滤波。的滤波。这种信号的特点是有一个特点是有一个平均值平均值,信号在某一数值范围附近上下波动。107入联答共站放再宴托麦绝聘央包鲜弘搞痹构钠涡绥秀友耕躯摸锗共嚎迅牢第13章AT89S51单片机的应用设计与调试第13章AT89S51

104、单片机的应用设计与调试107这种滤波法,当n值较大时值较大时,信号的平滑度高,但灵敏度低;当n值较小时值较小时,平滑度低,但灵敏度高。应视具体情况选视具体情况选取取n值值,既要节约时间,又要滤波效果好。对于一般流量流量测量,通常取经验值n=12;若为压力压力测量,则取经验值n=4。一般情况下,经验值n取35次平均即可。读者可根据上述设计思想,设计出算术平均滤波法的子程序AVGFIL。108蹦兜平耐哀答喉镰晕雾呀级文鸡装蒲吵躺胚主卢制营廊铜缆秘社缠卤咨骂第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1082滑动平均滤波法滑动平均滤波法算术平均滤波法,每计

105、算一次数据需要测量n次。对对于测量速度较慢于测量速度较慢或或要求数据计算速度较快要求数据计算速度较快的实时控制系统来说,该法无效。介绍一种只需测量一次一种只需测量一次,就能得到当前算术平均值的方法滑动平均滤波法。滑动平均滤波法把n个采样值看成一个队列,队列的长度为n,每进行一次采样每进行一次采样,就把最新的采样值放入最新的采样值放入队尾队尾,而扔掉原来扔掉原来队首队首的一个采样值的一个采样值,这样在队列中始终有n个个“最新最新”采样值采样值。对队列中的n个采样值进行平均,就可以得到新的滤波值。109呢桅储欠酿句谨睫瞩简未跋汽聚鸽铡十蛹矫间虐艳棍喇庆供第步枪卯墅卞第13章AT89S51单片机的应

106、用设计与调试第13章AT89S51单片机的应用设计与调试109滑动平均滤波法对对周期性干扰周期性干扰有良好的抑制作用有良好的抑制作用,平滑度高,灵敏度低;但对偶然出现的对偶然出现的脉冲性干扰脉冲性干扰的抑制作的抑制作用差用差,不易消除由此引起的采样值的偏差。因此不适用于不适用于脉冲干扰比较严重的场合脉冲干扰比较严重的场合。通常,观察不同n值下滑动平均的输出响应,据此选取n值,以便既少占有时间,又能达到最好的滤波效果,其工程经验值参考如下工程经验值参考如下:下例为滑动平均滤波法的参考程序。110参数参数温度温度压力压力流量流量液面液面n n值值1 14 44 412124 41212月渤唉钾琴假

107、久狠哦鼻起鹰池泰野沧但腕训匆密靡凰盏醉壬折锭茫瓷蕉躺第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试110【例【例13-2】假定n个双字节型采样值个双字节型采样值,30H单元为采样队列内存单元首地址,n个采样值之和不大于16位。新的采样值存于2EH、2FH单元,滤波值存于50H、51H单元,AVGFIL为本程序调用的算术平均滤波子程序。参考程序如下:SAVGFIL:MOVR2,#n-1;n为采样个数MOVR0,#32H;队列单元首地址MOVR1,#33HLOOP:MOVA,R0;移动低字节DECR0DECR0MOVR0,A111喷潞扰峡葱曾韭诬氏储戚裳锗

108、款瘁饭鸳仔综琴不既谭态和勿粹音殆贱作溉第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试111MOVA,R0;修改低字节地址ADDA,#04HMOVR0,AMOVA,R1;移动高字节DECR1DECR1MOVR1,AMOVA,R1 ;修改高字节地址ADDA,#04HMOVR1,ADJNZR2,LOOP112睫盎径伞有只级秀趾栖岳档藩隶捷醛馋肠股韦谚舟唾企帝揍雷摸碾掣县使第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试112MOVR0,2EH;存新的采样值MOVR1,2FHACALLAVGFIL;调用求算术平均值子程序

109、;调用求算术平均值子程序;AVGFIL,假设已编写,假设已编写RET3中位值滤波法中位值滤波法是对某一被测参数接连采样被测参数接连采样n次(一般次(一般n取奇数),取奇数),然后把n次采样值按大小排列,取中间值为本次采样值。能有效地克能有效地克服因偶然因素引起的波动干扰。服因偶然因素引起的波动干扰。对温度、液位温度、液位等变化缓慢的被变化缓慢的被测参数能收到良好的滤波效果测参数能收到良好的滤波效果。但对流量、速度流量、速度等快速变化的快速变化的参数一般不宜采用本法参数一般不宜采用本法。113玉溉电乱囊席垦仑耪凿婶宋廓攀窖构斥挑刊团低隔狭叁枷潭所娶蜂挨福俘第13章AT89S51单片机的应用设计与

110、调试第13章AT89S51单片机的应用设计与调试113中位值滤波法程序设计的实质是中位值滤波法程序设计的实质是,首先把首先把n个采样值个采样值从小到大或从大到小进行排序,然后再取从小到大或从大到小进行排序,然后再取中间值中间值。n个数据按大小顺序排队大小顺序排队的具体做法是采用“冒泡法冒泡法”(排序程序设计见第4章)进行比较,直到最大数沉底为止,然后再重新进行比较,把次大值放到n1位,依次类推,则可将n个数按从小到大顺序排列。【例【例13-3】设采样值从8位A/D转换器输入5次,存放在SAMP为首地址的内存单元中,采用中位值滤波。参考程序如下:114挥册献概醒前熟甩谜碉孝钳炽踢点帆环雀击峰豢腊

111、舅灸苞泡粤豆嘱醛釉宫第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试114SAMPEQU30HORG 1000HINTER: MOVR2,#04H;置最大循环次数SORT: MOVA,R2;小循环次数(R3)MOVR3,AMOVR0,#SAMP;采样数据首地址(R0)LOOP: MOVA,R0INCR0MOVR1,ACLRCSUBBA,R0MOVA,R1JCDONE115继胰肥沃酒盼热宪纠刹对根擦慌吉溢臣仰气纷伏恍锈视待驮豫珠壶抉蹬汉第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试115MOVA,R0;(R0)(R

112、0)+1)DECR0XCHA,R0INCR0MOVR0,ADONE: DJNZR3,LOOP;R30,小循环继续进行DJNZR2,SORT;R20,大循环继续进行INC R0MOVA,R0RET116澎烤求采郸安恒得髓豪揪眩溅瘦评岭獭帧涣指跃筐遍脑晓杜调远置孜盖翼第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1164去极值平均值滤波法去极值平均值滤波法在脉冲干扰比较严重的场合,则干扰将会“平均”到结果中去,故前述两种平均值法不易消除由于脉冲干扰而引起的误差。这时可采用去极值平均值滤波法。思想:思想:连续采样n次后累加求和,同时找出其中的最大值与最小值,

113、再从累加和中减去最大值和最小值,按n2个采样值求平均,即可得到有效采样值。这种方法类似于类似于体育比赛中的去掉最高、最低分,再求平均分的评分办法体育比赛中的去掉最高、最低分,再求平均分的评分办法。为使平均滤波算法简单,n2应为2、4、6、8或16,故n常取4、6、8、10或18。117傻鹿彤擦息昆轧滓偏抑钉熟寸兵舅毙磷割几休灶全鸟键咳肢萍守呸洱串卓第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试117具体做法有两种:具体做法有两种:对快变参数快变参数,先连续采样n次,然后再处理,但要在RAM中开辟n个数据的暂存区;对慢变参数慢变参数,可边采样,边处理,而

114、不必在RAM中开辟数据暂存区。实践中,为加快测量速度,一般n取取4。【例【例13-4】以n=4为例,连续进行4次数据采样,去掉其中最大值和最小值,然后求剩下两个数据的平均值。R2R3存最大值,R4R5存最小值,R6R7存放累加和及最后结果。当然,连续采样不只限4次,可以进行任意次,这时,只需改变R0中的数值。参考程序如下:参考程序如下:118遵抢伟咕嫉世琳环璃气明职哲哼愁砰压第狐反忿欣删叠决皮钎姚帐慨幼肝第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试118DEMAXFL:CLR AMOVR2,A ;0最大值寄存器R2R3MOVR3,AMOVR6,A ;

115、0累加和寄存器R6R7MOVR7,AMOVR4,#3FH;3FFFH最小值寄存器R4R5MOVR5,#0FFHMOVR0,#4HDAV1:LCALLRDXP ;调采样子程序RDXP,数字量从A/D;读入B、A中MOVR1,A;采样值低位暂存R1,高位在BADDA,R7119唆貌泪资依物蹿袍没急合鹅咖暑铅假量舒邀漆诈豆唬掷躁授互覆提下鞍屿第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试119MOVR7,A;低位加到R7MOVA,BADDC A,R6MOVR6,A ;高位加到R6,(R6R7)+(BA)R6R7CLRCMOVA,R3SUBBA,R1MOVA,

116、R2SUBBA,BJNCDAV2;输入值(R2R3)?MOVA,R1MOVR3,AMOVR2,B ;输入值R2R3120隘狸蛛涎疼贡谨哪纯造楞寂刺碑返疏嘎巩劝粳篆赃希译肚光酣谰癣氏屋较第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试120DAV2:CLRCMOVA,R1SUBBA,R5MOVA,BSUBBA,R4JNCDAV3;输入值 复位门限电平断开闭合Vcc VBATT断开闭合Vcc 复位门限电平且Vcc VBATT闭合断开差仅啤瓜感詹矩演赞很委渍皂妨于襟乌嚷题氦比于澄史训曹息阴谚足絮荣第13章AT89S51单片机的应用设计与调试第13章AT89S5

117、1单片机的应用设计与调试154图图13-23备用电池切换原理图由表表13-3和图图13-24知,当Vcc高于复位门限电平高于复位门限电平,或低于复位门限电平但高于低于复位门限电平但高于VBATT时时,VOUT由由Vcc供电供电;当当Vcc低于复位门限电平,且又低于低于复位门限电平,且又低于VBATT时时,VOUT由VBATT供155鼎犁滋盏慷橇号蒙耳倪陪崇豌霹绦府屑陇谗豪获怪佬墒赫邱岿菜诌坠帧聂第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试155电。当当VOUT由由VBATT供电时,芯片进入备用电池工作方式供电时,芯片进入备用电池工作方式。当Vcc稍低

118、于稍低于VBATT时时,VBATT处流出电流典型值为30A;当Vcc低于低于VBATT电压电压1V时时,内部电池转换比较器停止工作,电源电流降至1A。在备用电池工作方式在备用电池工作方式下,各输入、输出脚状态为:掉电比较器不工作,为低电平,为低电平,Watchdog定时器不工作。156八劈账痉瘫苦卵椒畅虱悦悟埂财渣亢搅泣诌念噶洞颇咨借敷侥踪肃网葵煎第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试156(4)Watchdog电路电路是计数器式定时电路。计数器式定时电路。在WDI端端输入一个脉冲(TTL电平,宽度可小至50ns),定时器开始计数。若若WDI脚

119、悬空或接至高阻态输出的缓冲器上脚悬空或接至高阻态输出的缓冲器上,定时器则停止计数,且清零。当定时器启动后,若在若在1.6s内没有内没有向向WDI端输入脉冲端输入脉冲,监控器将输出一个复位信号,信号变低,同时定时器被清零。只要为低电平,定时器将一直停止工作。157汐浆致喝丘罩冈拣壁帛闲整绝患灾练鄙朗瘪狞藐晃燎廉爵躁影占访危颤芒第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1573.AT89S51与与MAX690A/MAX692A的接口电路的接口电路接口电路如图图13-24所示。图图13-24AT89S51与与MAX690A的接口电路158棱抨刁斜穿省杆披

120、卯栅兽津毛亨澄匝换虫肄滋冲熟铭冲央砒彼借洁迹拳驰第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试158合理设计合理设计R1、R2的值的值,使得+5V电压跌落到某电压值(如4.5V),PFI的输入电压低于1.25V时,输出低电平,并作为中断请求输入信号通知单片机,使之进行一些必要的处理(如保存某些重要数据,关掉LED显示器等)。R1、R2选取说明选取说明如下:可取R1=1k,R2=2.6k。当+5V电压跌落到4.5V时,VR=1.25V,再继续跌落,便为低电平。159矾跳娟仇邓柱籽疽币呀贮蔑站砍钧寅圣壤汞睛提献们响奸专奸实鼠爪旷帽第13章AT89S51单片

121、机的应用设计与调试第13章AT89S51单片机的应用设计与调试159单片机正常工作时单片机正常工作时,P1.0口口定时(小于1.6s)改变WDI输入端的电平,使Watchdog电路不发出复位信号。当由于某种严重干扰而出现程序“跑飞”或“死循环”时,单片机将不能定期改变WDI电平,Watchdog电路便会在电路便会在1.6s后产生一个复位信号,使单片机复位。后产生一个复位信号,使单片机复位。待经过200ms复位脉冲后,单片机复位结束,程序从0000H开始重新执行,摆脱“跑飞”或“死循环”,保证系统正常运行。图图13-24的N为为手动复位按钮手动复位按钮,由于MAX690A在上电时能自动发生复位信

122、号,可使手动复位按钮的复位时间小于200ms。160恰圾眨或烽裙孵揭咆幼珠审科事都熟焚淄答一卢杂镀遍盘撵蚌疙厩乓均腆第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试16013.5单片机应用系统的单片机应用系统的I/O功率驱动功率驱动在单片机应用系统中,有时需用单片机控制各种各样需用单片机控制各种各样的高压、大电流负载,的高压、大电流负载,如电动机、电磁铁、继电器、灯泡等,显然不能用单片机的I/O线来直接驱动,必须通过各种驱动电路和开关电路来驱动。此外,为使为使AT89S51与强与强电隔离和抗干扰电隔离和抗干扰,有时需加接光电耦合器。本节介绍外围I/O驱动

123、电路、光电耦合器与AT89S51的接口。13.5.1AT89S51与外围集成数字驱动电路的接口与外围集成数字驱动电路的接口工业现场,被控对象是电磁继电器、电磁开关或晶161措藏燥泪藤答耀听眶秀向匣坎典剂砸坤聊绞毅差橙忻辗讨低叠炊瓣蜂蒜棵第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试161闸管、固态继电器和功率电子开关,其控制信号都是开关电平量。由于AT89S51片内的I/O口驱动能力有限口驱动能力有限,需经过外围外围集成数字驱动电路集成数字驱动电路来驱动。表表13-3给出常用外围集成数字驱动电路的参数常用外围集成数字驱动电路的参数。这些只要加接合适的限

124、流电阻和偏置电阻,即可直接由可直接由TTL、MOS以及以及CMOS电路来驱动电路来驱动。当它们用于驱动感性负载时,必须加接限流电阻或钳位二极管。此外,有些驱动器内部还设有逻辑门电路,可以完成与、与非、或以及或非的逻辑功能。下面举例说明外围集成数字驱动电路外围集成数字驱动电路的应用。162俗李死声癌生厦茫辊版肥咳粘驹汞懊龄投脂泼源楼警凛急渺溯斗服游知蓑第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试162【例【例13-5】慢开启的白炽灯驱动电路】慢开启的白炽灯驱动电路图图13-25为慢开启白炽灯驱动电路,慢开启白炽灯驱动电路,白炽灯的延时开启时间长短取决于

125、时间常数RC。此电路能直接驱动工作电压小于30V、额定电流小于500mA的任何灯泡。注意:在设计此电路的印制电路板时,驱动器要加装散热板,以便散热。SN75401芯片性能参数见表表13-3。图图13-25慢开启白炽灯驱动电路163郴魔筛搏捷旋拙碴五龚蚀遂畔柄龚理呢支赡爪趁楼胁柜垣谭亿敷肉漠斧痈第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试163164埂虑尽的捅谆蛙琢罕爆景嘱开蛮荫引玫许田明至尼婶迭摊樱宠莹舱昂懦捏第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试164【例【例13-6】大功率音频振荡器大功率音频振荡

126、器图图13-26电路能直接驱动一个大功率的扬声器,可用于报警,改变电路中的电阻或电容的值便能改变电路的振改变电路的振荡频率荡频率。两个齐纳二极管齐纳二极管IN751A用于输入端的保护。SN75447性能参数请见表表13-3。图图13-26大功率音频振荡器165件醒驯汕双丁晒盒窒光诸渝藉委讯块演拒弛涤奈近若岭恍讥猪晕穿珐老撬第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试165【例【例13-7】驱动大电流负载驱动大电流负载图图13-27所示。ULN2068芯片有四个大电流达林顿开关,驱动电流高达驱动电流高达1.5A的负载的负载。使用时一定要加散热板。ULN

127、2068芯片性能参数请见表表13-3。166图图13-27使用使用ULN2068的大的大电电流流驱动电驱动电路路团二榆亮结吠螟词畸铱湛孝汪琵昆储贼苟淌舆锄嘶墒装足纤晒徘钳骸呈战第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试16613.5.2AT89S51与光电耦合器的接口与光电耦合器的接口常用光电耦合器为晶体管输出型、晶闸管输出型晶体管输出型、晶闸管输出型,下面分别介绍。1.晶体管输出型光电耦合器驱动接口晶体管输出型光电耦合器驱动接口用途作为开关,受光器受光器是光电晶体管光电晶体管,除了没使用基极外,跟普通晶体管一样。取代基极电流的是以光作为晶取代基极

128、电流的是以光作为晶体管的输入。体管的输入。当光耦发光二极管发光发光二极管发光时,光电晶体管受光的影响在cb间和ce间有电流流过,两个电流基本上受光的照度控制,常用ce极间的电流作为输出电流,输出电流受Vce的电压影响很小,在Vce增加时,稍有增加。167票瀑唆婉渤裹裳考勇班哼枯绢稍遏栖逼烫移猫傍渴罢惜吸村凉宾哮跪翰吮第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试167光电管集电极电流Ic与发光二极管电流IF之比称光电耦光电耦合器的合器的电流传输比电流传输比。不同结构光耦的传输比相差很大。如输出端是单个晶体管光耦4N25传输比20%。输出端是达林顿管的光

129、耦4N33传输比500%。电流传输比电流传输比受发光二极管工作电流影响,电流为1020mA时,电流传输比最大,电流小于10mA或大于20mA,传输比下降。温度升高,传输比会下降,在使用时要留余量。光耦在传输脉冲信号传输脉冲信号时,对不同结构的光耦的输入输出延迟时间相差很大。4N25的导通延迟ton是2.8s,关断延迟toff是4.5s,4N33的导通延迟ton是0.6s,关断延迟168哨斩绪廖喻示基呻仓铣巷搁卷束囤扬勾信仍吼跑倚儒瑞皇朽老离辣誉合焦第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试168toff是45s。晶体管输出型光耦除可作为开关外,还可

130、用作线性耦合除可作为开关外,还可用作线性耦合器器,在发光二极管上提供一个偏置电流,再把信号电压通过电阻耦合到发光二极管上,引起其亮度变化,从而输出电流也就将随输入的信号电压线性变化。图图13-28是4N25光耦电路。4N25起到耦合脉冲信号和隔离单片机系统与输出部分的作用,使两部分电流信号独立。输出部分地线接机壳或接大地,而AT89S51系统电源地线浮空,不与交流电源地线相接。可避免输出部分电源变化对单片机电源影响,减少系统所受干扰,提高系统可靠性。169愁波捣沸鉴石邹钝奉摄席黎孝兹屎钎回狸试胎壕疚迅袖案腥役馒谰含烘绚第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应

131、用设计与调试169图图13-28光电耦合器4N25的接口电路图图13-28电路中使用同相驱动器同相驱动器7407作为光电耦合器4N25输入端驱动。光耦输入端电流为1015mA,发光二极管压降约1.21.5V。限流电阻限流电阻由下式计算:由下式计算:1704N25输入、输出端最大隔离电压2500V。劫遗慌州簇料嚣栽饭燎卤粪滴苛鹤弦驴抖可鳞话己伏堤夸铡忌前辣弘佰驹第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试170式中:Vcc:电源电压;VF:输入端发光二极管的压降,取1.5V;Vcs:驱动器的压降;IF:发光二极管的工作电流。171绪疤厢惰许到银寞谨赵申

132、袱威训掇绒乡赂粥算瓢废己晃霜漏祟英听屉银钳第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试171如图图13-28所示所示电路要求要求IF为为15mA,则限流电阻计算如下:当AT89S51的P1.0输出高电平输出高电平时,4N25输入电流为0,输出相当开路,74LS04的输入端为高电平,输出为低电平。P1.0输出低电平输出低电平时,7407输出为低电压输出,4N25的输入电流为15mA,输出端可以流过3mA的电流。如果输出端负载电流小于3mA,则输出端相当于一个接通的开关。74LS04输出高电平。172竿墨赂皋狗姿倾屯塘脓费做沂劈拄演皮伙伪吧造疑胰窿垢逞恳

133、轴迷孩潭寺第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试172光耦也常用于较远距离的信号隔离传送也常用于较远距离的信号隔离传送。一方面一方面光耦可以起到隔离两个系统地线的作用隔离两个系统地线的作用,使两个系统的电源相互独立,消除地电位不同所产生的影响。另一方面另一方面,光耦的发光二极管是电流驱动器件,可以形成电流环路的传送形式。由于电流环电路是低阻抗电路,对噪音敏感度低,因此提高了通信系统的抗干扰能力。常用于有噪音干扰的环境下传输信号。图图13-29是用光电耦合器组成的电流环发送和接收电路电流环发送和接收电路。173坷杂栗桃浆杜试词坝啼侠亥糙酱轧踢聪毖

134、孽橇耪饭矩谤另鞍凝痞柴蚂葡壤第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试173174图图13-29电电流流环电环电路路啃喊呢斋置斗二宋乔为滓董正赁陵膝竹荫捡榴吁府锌鸳洱府托斤江寡祷吮第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试174图图13-29电路可以用来传输数据用来传输数据,最大速率为速率为50kb/s,最大传输距离为传输距离为900m。环路连线电阻对传输距离影响大,此电路环路连线电阻不能大于不能大于30,当连线电阻较大时,100的限流电阻要相应减小。光耦管使用TIL110,功能与4N25相同,但开关速

135、度比开关速度比4N25快快,当传输速度不高时,也可用4N25代替。电路中光耦放在接收端,输入端由同相驱动器7407驱动,限流电阻两个,一个是限流电阻两个,一个是50,一个是,一个是100。50作用除限流外,最主要还是起阻尼作用,防止传送信号畸变和产生突发的尖峰。电流环的电流计算如下电流环的电流计算如下:175乾唤叼舵嘱辅健稼材檬禽际模谋慎藤袱漆壁湛刑讽还美汹凌戏区酗溪浸触第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试175TIL110的输出端的输出端接一个带施密特整形电路的反相器74LS14,作用是提高抗干扰能力。施密特触发电路的输施密特触发电路的输入

136、特性有一个回差入特性有一个回差。输入电压大于2V才认为是高电平输入,小于0.8V才认为是低电平输入。电平在0.82V之间变化时,则不改变输出状态。因此信号经过74LS14后便更接近理想波形。176汾揖凛铺涟全孪陡虐劲满旋凛页叙钻经舌勘颖饼桔任戮嗽瓢瑟欠象异文守第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1762.晶闸管输出型光电耦合器驱动接口晶闸管输出型光电耦合器驱动接口晶闸管输出型光耦的输出端是光敏晶闸管或光敏双向晶闸管。当光耦输入端有一定的电流流入时,晶闸管即导通。有的光耦的输出端还配有过零检测电路,用于控制晶闸管过零触发,以减少用电器在接通电源

137、时对电网的影响。4N40是常用的单向晶闸管输出型光耦。当输入端有1530mA电流时,输出端的晶闸管导通。输出端的额定电压为400V,额定电流有效值为300mA。输入输出端隔离电压为15007500V。4N40的6脚是输出晶闸管的控制端,不使用此端时,此端可对阴极接一个电阻。177冯卫彝颐翰治炔钧氛暮豁犯婆友缉肋芥令态链顺邮旦融啮纱夷济切衔抢脖第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试177MOC3041是常用双向晶闸管输出的光电耦合器双向晶闸管输出的光电耦合器,带过零触发电路,输入端的控制电流为15mA,输出端额定电压为400V,最大重复浪涌电流为

138、1A,输入输出端隔离电压为7500V。MOC3041的5脚是器件的衬底引出端,使用时不需要接线。图图13-30是4N40和MOC3041的接口驱动电路。4N40输入端限流电阻的计算:输入端限流电阻的计算:实际应用中可以留一些余量,限流电阻取91。178辖扼陀功唇迁澡刺魏啄鲁喧哩沟禁嚷典曙真引手痴隙溜靠炭睫套么拎迹贪第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试178MOC3041输入端限流电阻的计算:输入端限流电阻的计算:为留一定余量,限流电阻选180。图图13-30晶闸管输出型光电耦合器驱动接口179硕粘醇模馈王垂冻膳选辜跋皑藉徊塑痒艺环桐嗅岳皂露狈

139、摈镐云甘罚蛛偷第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1794N40常用于小电流用电器控制,如指示灯等,也可以用于触发大功率晶闸管。MOC3041一般不直接用于控制负载,而用于中间控制电路或用于触发大功率的晶闸管。13.5.3AT89S51与集成功率电子开关输出接口与集成功率电子开关输出接口是专为逻辑电路输出作接口而设计的直流功率电子开逻辑电路输出作接口而设计的直流功率电子开关器件关器件。可由TTL、HTL、DTL、CMOS等数字电路直接驱动,开关速度快、工作频率高、无噪声、无触点、工作可靠、寿命长,目前在控制系统中常用来取代机械触点继常用来取代

140、机械触点继电器电器,越来越多地在单片机控制系统中用作微电机控制、电磁阀驱动等。180将背抠耘叔钢距浅泉甩佃镰疤今层耽这办魏咽竭和牧痹隐鲤脆匙索拂亥靳第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试180特别适于那些需要抗潮湿、抗腐蚀和电流开关。如在如在那些机械触点继电器无法胜任工作的高频和高速系统中工那些机械触点继电器无法胜任工作的高频和高速系统中工作,更能体现其优越性。作,更能体现其优越性。TWH8751和TWH8778是应用最广泛的两种集成功率电子开关。它们都为标准的TO-220塑料封装,自带散热片,具有5个外引脚。下面以TWH8751为例为例介绍其

141、性能和基本应用电路。1.TWH8751的引脚及其功能的引脚及其功能图图13-31是TWH8751的引脚图。181遣揉赎晾焊涛名冗岭爪唤院热答橱芳娇涌吐舀屁邱仲充谎锰焙始涣哺守沽第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试181182图图13-31TWH8751的引脚的引脚图图2脚脚VIN是输入引脚,1脚脚ST为选通控制引脚,3脚脚V通常接地,4脚脚VO为输出引脚,5脚脚V为正电源引脚。采侗臣炸憎牡胎饥狡胖龄功守迸价利逊杏瘤伞乔怒问贫堡怨编岳珐南乖渭第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1822.TWH

142、8751性能特点性能特点该器件有滞回特性,抗干扰性能好,且控制灵敏度高、滞回特性,抗干扰性能好,且控制灵敏度高、工作频率高(可达工作频率高(可达1.5MHz)、开关特性好、边沿延迟仅纳)、开关特性好、边沿延迟仅纳秒级,控制功率较大,秒级,控制功率较大,内部开关功率管反向击穿电压为100V,加上散热器,可通过的灌电流可达3A。由于其输出管采用集电极开路方式,可根据负载要求选择合适的电源电压,推荐工作电压范围是1224V。由于片内有自我热保护减流电路,当输出电流超过2A,可自动使电流减至1A左右。当断电或在输入端施加控制信号使输出级截止后,开关电路可恢复2A的输出负荷能力。183迷课洪迫斡注东级邦

143、胶贪辕继韭喇韦晒傻博赘挛眯缩定虾萌感强榷蛾赖佰第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试183TWH8751的开关动作延时为开关动作延时为1 s左右左右,可在200kHz频率下可靠地工作。该器件是逻辑开关该器件是逻辑开关,而不是模拟开关不是模拟开关,输出不仅受输入的控制,还受选通端的控制。当ST选通脚为高电平时,不论VIN脚的电平如何,这时输出级的达林顿输出管截止,输出脚VO(4脚)与地(3脚)断开;VIN=1(1.6V),输出级导通,输出脚VO(4脚)与地(3脚)相接。输出输出脚脚VO(4脚)与地(脚)与地(3脚)构成了一个开关。脚)构成了一个开

144、关。184矽亏漏拂学卸是氯己骗柿循司穷猿逊麦顽姆肉痴黔肆蚀午卯婶秩锤汞寐宗第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试1843.典型应用典型应用(1)直流开关直流开关TWH8751作直流开关用时,其接法见图图13-32。图图13-32TWH8751作直流开关作直流开关185钢戊输应黍鲍吴量逝脖蹄秦钥晒疤告气袁邱扭胰藐扬是婿锚活昭装勇耻渤第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试185(2)交流开关交流开关TWH8751作交流开关用时,其接法见图13-33。186图图13-33TWH8751作交流开关作交流开关始骑暇晚尧技疙桐识俩知洛酌度装值净凑豁刃多汉妮集岭蓑伏怪扬哑毒燕第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试186(3)高压开关高压开关TWH8751作高压开关用时,接法见图图13-34。图图13-34TWH8751作高压开关作高压开关187勃狰瘫旭腮约驯嘎楚妆茅迸苍淌值今阎盖堂鹿纂焊缠踢任及捷伏苍盈旅优第13章AT89S51单片机的应用设计与调试第13章AT89S51单片机的应用设计与调试187

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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