




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第9章单片机应用系统开发技术总体要求:●了解单片机的开发系统及开发工具●掌握单片机应用系统软、硬件设计的基本方法●了解单片机应用系统抗干扰设计的基本方法●理解单片机应用系统调试的基本方法●了解应用实例软、硬件设计过程.1第9章单片机应用系统开发技术总体要求:.12学习重点:●单片机应用系统的设计原则与过程目前,MCS-51系列单片机以其独特优越的性能和低廉的价格,在工业实时控制、智能化仪表、数据采集、计算机通信等各个领域得到了极为广泛的应用。本章将结合单片机的特点,从应用角度出发,对单片机应用系统的设计、开发工具和应用实例作进一步的分析和讨论。.2学习重点:.29.1单片机的开发系统及开发工具9.2单片机应用系统的设计原则与过程9.3单片机应用系统的抗干扰设计9.4单片机应用系统实例3.9.1单片机的开发系统及开发工具3.349.1单片机的开发系统及开发工具9.1.1单片机的开发系统
1.概述单片机应用系统建立以后,电路正确与否,程序是否有误,怎样将程序装入机器等,这都必须借助单片机开发系统装置来完成。单片机开发系统是单片机编程调试的必需工具。单片机开发系统和一般通用计算机系统相比,在硬件上增加了目标系统的在线仿真器、编程器等部件,所提供的软件除有类似一般计算机系统的简单的操作系统之外,还增加了目标系统的汇编和调试程序等。.49.1单片机的开发系统及开发工具.45
⑴在线仿真功能在线仿真器简称ICE(InCircuitEmulator),是由一系列硬件组成的单片机开发装置。①仿真功能在线仿真时,开发系统应能将在线仿真器中的单片机完整地出借给目标系统,不占用目标系统单片机的任何资源。②模拟功能在开发目标系统的过程中,单片机的开发系统允许用户使用它内部的RAM存储器和I/O来替代目标系统中的ROM程序存储器、RAM数据存储器和I/O,使用户在目标系统样机还未完全配置好以前,便可以借用开发系统提供的资源进行软件的开发。
2.单片机开发系统的功能.5.56⑵调试功能开发系统的调试功能应包含以下几个方面:①运行控制功能开发系统应能使用户有效地控制目标程序的运行,以便检查程序运行的结果,对存在的硬件故障和软件错误进行修改。至少应具有下列运行模式:
a)单步运行:从任意的程序地址开始执行一条指令后停止运行。
b)断点运行:允许用户任意设置断点,从规定地址开始运行后,遇到符合条件的断点后停止运行。
c)连续运行:从指定地址开始,连续地、全速地运行目标程序。
d)起停控制:允许用户根据需要启动或停止运行目标程序。.6⑵调试功能.67②对目标系统状态的读出、修改功能当CPU停止执行目标系统的程序后,允许用户方便地读出或修改目标系统所有资源的状态,以便检查程序运行的结果。可供用户读出、修改的目标系统资源应包括:
a)程序存储器(开发系统中的仿真ROM或目标机中的ROM);
b)单片机片内资源(工作寄存器、特殊功能寄存器、I/O
口、RAM及位存储单元);
c)系统中扩展的RAM和I/O口。③跟踪功能.7②对目标系统状态的读出、修改功能当CPU停止78⑶辅助设计功能单片机开发系统的辅助设计功能体现在以下几个方面:①程序编辑②程序设计语言③其他软件功能⑷程序固化功能当单片机应用系统程序调试完成后,需要把目标程序写入目标机的ROM中,这个过程称为程序固化。固化时需要有适当的编程电压和硬软件条件,开发系统应具有这种功能。.8⑶辅助设计功能.89
3.开发系统的分类目前国内用于MCS-51系列单片机的开发系统很多,大致可分为以下四种:(1)通用型单片机开发系统(2)实用型开发系统(3)通用机开发系统(4)模拟开发系统
.93.开发系统的分类.9109.1.2单片机应用系统的开发工具
1.开发工具概述一个单片机应用系统经过预研,总体设计、硬件设计、软件设计、制版、元器件安装后,在系统程序存储器中写入编制好的应用程序,系统即可运行。但一次性成功几乎是不可能的,多少会出现一些硬件或软件上的错误,需通过调试来发现和改正错误。然而单片机应用系统本身并无自开发能力,仅靠万用表、示波器等常规工具显然是不够的,通常要借助于一个特殊的计算机系统来完成,这个特殊的计算机系统称为单片机开发系统或单片机开发机(仿真器)。.109.1.2单片机应用系统的开发工具.1011
2.开发工具的主要作用单片机开发系统与一般的通用计算机系统相比,在硬件上增加了目标系统在线仿真器、编程器,所提供的软件除计算机系统一般的操作系统外,还增加了汇编、反汇编和调试程序等。其主要作用是:①对系统硬件电路诊断、检查;②应用程序的输入和修改;③程序调试、单步运行、设置断点运行,各寄存器状态查询;④将程序固化到ROM中去。.112.开发工具的主要作用.11129.2单片机应用系统的设计原则与过程9.2.1单片机应用系统的设计原则通常我们要求单片机系统应具有可靠性高、性价比高、操作维护方便和设计周期短等特点,下面我们将对这几点作详细讨论。.129.2单片机应用系统的设计原则与过程.1213
1.高可靠性①使用可靠性高的元器件,以防止器件的损坏影响系统的可靠运行。②对供电电源采用抗干扰措施。③采用双机系统。④设计电路板时布线和接地要合理,严格安装硬件设备及电路。⑤输入输出通道抗干扰措施。⑥进行软硬件滤波。⑦采用必要的冗余设计或增加系统自诊断功能。.131.高可靠性.13142.高性能价格比
单片机除体积小、功耗低等特点外,最大的优势在于高性能价格比。一个单片机应用系统能否被广泛使用,性价比是其中一个关键因素。因此,在设计时,除了保持高性能外,简化外围硬件电路,在系统性能和速度许可的范围内,尽可能用软件程序取代硬件功能电路,以降低系统的制造成本。
3.操作维护方便
操作方便表现在操作简单、直观形象和便于操作,应从普通人的角度考虑操作和维护方便,尽量减少对操作人员专用知识的要求,以利用系统的推广。.142.高性能价格比.14154.设计周期短系统设计周期是衡量一个产品有无效益的一个主要依据,只有缩短设计周期,才能有效地降低设计成本,充分发挥新系统的技术优势,及早地占领市场并具有一定的竞争力。9.2.2单片机应用系统的设计过程
1.系统总体设计
系统总体设计是单片机系统设计的前提,合理的总体设计是系统成败的关键。总体设计关键在于对系统功能和性能的认识和合理分析,系统单片机及关键芯片的选型,系统基本结构的确立和软、硬件功能的划分。.154.设计周期短.1516图9-1单片机系统研制过程框图.16图9-1单片机系统研制过程框图.16172.硬件设计硬件和软件是单片机控制系统的两个重要方面,硬件是基础,软件是关键,但两者又是可以相互转化的。硬件设计时,应考虑留有充分余量,电路设计力求正确无误,因为在系统调试中不易修改硬件结构。⑴设计硬件原理图⑵程序存储器⑶数据存储器和I/O接口数据存储器的设计原则是:在存储容量满足的前提下,尽可能减少存储芯片的数量。建议使用大容量的RAM芯片,以减少存储器芯片数目,使译码电路简单,但应避免盲目地扩大存储容量。.172.硬件设计.1718⑷地址译码电路⑸总线驱动能力⑹系统速度匹配⑺抗干扰措施另外,可以采用隔离放大器、光电耦合器件抗除输入/输出设备与系统之间的地线干扰;采用差分放大器抗除共模干扰;采用平滑滤波器抗除噪声干扰;采用屏蔽手段抗除辐射干扰等。最后,应注意在系统硬件设计时,要尽可能充分地利用单片机的片内资源,使自己设计的电路向标准化、模块化方向靠拢。.18⑷地址译码电路.18193.软件设计软件是单片机应用系统中的一个重要组成部,图9-2给出了软件设计的流程图。单片机应用系统的软件设计是研制过程中任务最繁重的一项工作,难度也比较大。对于某些较复杂的应用系统,不仅要使用汇编语言来编程,有时还要使用高级语言。⑴软件方案设计⑵建立数学模型⑶软件程序流程图设计⑷编制程序⑸软件检查.193.软件设计.1920图9-2软件设计流程图.20图9-2软件设计流程图.20214.系统调试单片机应用系统的总体调试是系统开发的重要环节。当完成了单片机应用系统的硬件、软件设计和硬件组装后,便可进入单片机应用系统调试阶段。系统调试的目的是要查出用户系统中硬件设计与软件设计中存在的错误及可能出现的不协调问题,以便修改设计,最终使用户系统能正确可靠地工作。系统调试包括硬件调试、软件调试和软、硬件联调。根据调试环境不同,系统调试又分为模拟调试与现场调试。系统调试的一般过程如图9-3。各种调试所起的作用是不同的,它们所处的时间段也不一样,不过它们的目的都是为了查出用户系统中存在的错误或缺陷。在调试过程中要不断调整、修改系统的硬件和软件,直到其正确为止。.214.系统调试.2122图9-3系统调试的一般过程.22图9-3系统调试的一般过程.2223⑴单片机应用系统调试工具在单片机应用系统的调试过程中,常用的调试工具有以下几种。①单片机开发系统②万用表③逻辑笔④逻辑脉冲发生器与模拟信号发生器⑤示波器⑥逻辑分析仪⑵单片机应用系统的一般调试方法单片机应用系统的一般调试方法有。①硬件调试:a)静态调试
b)动态调试.23⑴单片机应用系统调试工具.2324②软件调试:a)先独立后联机b)先分块后组合
c)先单步后连续③系统联调:a)软、硬件能否按预定要求配合工作
b)系统运行中是否有潜在的设计时难以预料的错误
c)系统的动态性能指标(包括精度、速度参数)是否满足设计要求。④现场调试现场调试对用户系统的调试来说是最后必需的一个过程,只有经过现场调试的用户系统才能保证其可靠地工作。现场调试仍需利用开发系统来完成,其调试方法与前述类似。.24②软件调试:a)先独立后联机.24259.3单片机应用系统的抗干扰设计9.3.1硬件抗干扰设计由于各应用系统所处的环境不同,面临的干扰源也不同,相应采取的抗干扰措施也不尽相同。在单片机应用系统的设计中,硬件抗干扰措施主要从下面几个方面考虑。
.259.3单片机应用系统的抗干扰设计.25261.电源的干扰及抗干扰措施对于单片机应用系统来说,最严重的干扰来源于电源。由于任何电源及辅电线都存在内阻、分布电容和电感等,正是这些因素引发了电源的噪声干扰。一般解决的方法是:
(1)采用交流稳压电源保证供电的稳定性,防止电源的过电压和欠电压。
(2)利用低通滤波器滤除高次谐波,改善电源波形。
(3)采用隔离变压器,并使其一次侧、二次侧之间均采用屏蔽层隔离,以减少其分布电容,提高抗共模干扰能力。
(4)采用分散独立功能块供电,以减少公共阻抗的相互耦合以及公共电源的相互耦合。.261.电源的干扰及抗干扰措施.26272.输入输出通道干扰及抗干扰措施
(1)输入输出通道是单片机与外设、被控对象进行信息交换的渠道。由输入输出通道引起的干扰主要由公共地线引发,其次是受到静电噪声和电磁波干扰。常用的方法有:
(2)摸拟电路通过隔离放大器隔离,数字电路通过光电耦合器隔离。模拟接地和数字接地严格分开,隔离器输入回路和输出回路的电源分别供电。
(3)用双绞线作长线传输线能有效地抑制共模噪声及电磁场干扰,并应对传输线进行阻抗匹配,以免产生反射,使信号失真。
(4)传感器后级的变送器应尽量采用电流型传输方式,因电流型比电压型抗干扰能力要高。.272.输入输出通道干扰及抗干扰措施.27283.电磁场干扰及抗干扰措施
(1)对干扰源进行电磁屏蔽(如变压器、继电器等)。
(2)对整个系统进行电磁屏蔽,传输线采用屏蔽线。
4.印制电路板及电路的抗干扰措施
(1)将强、弱电路严格分开,尽量不要把它们设计在一块印制电路扳上。
(2)电源线的走向应尽量与数据传输方向一致。
(3)电源的地线应尽量加粗。
(4)在大规模集成电路芯片的供电端都应加高频滤波电容,在各个供电接点上还应加足够容量的退耦电容。.283.电磁场干扰及抗干扰措施.28299.3.2软件抗干扰设计软件抗干扰设计是单片机应用系统的一个重要组成部分。干扰对单片机系统可能造成下列后果:数据采集误差增大,程序“飞走”失控或陷入死循环。尽管在硬件方面采取种种抗干扰措施,但仍不能完全消除这些干扰,必须同时从软件方面采取适当的措施,才能取得良好的抗干扰效果。如能正确地采用软件抗干扰措施,与硬件抗干扰措施构成双重抑制,将大大地提高系统的可靠性。而且采用软件抗干扰设计,通常成本低、见效快,能起到事半功倍的效果。软件方面抗干扰措施通常有以下几种方法:.299.3.2软件抗干扰设计.29301.数据采集误差对于实时数据采集系统来说,为了消除传感器通道中的干扰信号,在早期常采用硬件电路措施,如有源或无源滤波网络、过程模拟滤波器对信号实现滤波。同样,随着计算机运算速度的提高,可以利用软件技术对信号实现数字滤波。下面介绍几种常用的方法。
(1)算术平均值法
(2)比较舍取法
(3)中位值法
(4)一阶递推数字滤波法.301.数据采集误差.30312.开关量的抗干扰措施
(1)对于开关量输入,为了确保信息的正确性,可以采取多次读入进行比较,取多数情况的状态。
(2)对于开关量输出,通常是用来控制电感性的执行机构,如控制电磁阀。为了防止电磁阀因干扰产生误动作,可以在应用程序中每隔一段时间(比如几个毫秒)发出一次命令,不断地关闭阀门或打开阀门。这样就可以较好地消除由于扰动而引起的误动作。
(3)对于输入开关量的机械抖动干扰,软件程序可以通过延时来进行消除。.312.开关量的抗干扰措施.31323.程序“飞走”失控或进入死循环系统受到干扰导致PC值改变后,PC值不是指向指令的首字节地址而可能指向指令中的中间字节单元即操作数,将操作数作为指令码执行;或使PC值超出程序区,将非程序区的随机数作为指令码运行,从而使程序失控“飞走”,或由于偶然巧合进入死循环。这里所说的死循环并非程序编制中出现的死循环错误,而是指正常运行时程序正确,只是因为干扰而产生的死循环。解决方法有:
(1)设置软件陷阱
(2)设置“看门狗”.323.程序“飞走”失控或进入死循环.32(1)设置软件陷阱即在非程序区安排指令强迫复位。如用LJMP0000H的机器码填满非程序区。这样不论PC失控后飞到非程序区的哪个字节,都能复位。也可在程序区每隔一段(如几十条指令)连续安排三条NOP指令。因为8051指令字节最长为三字节。当程序失控时,只要不跳转,指令连续执行,就会运行NOP指令,就能使程序恢复正常。(2)设置“看门狗”设置软件陷阱能解决一部分程序失控问题,但当程序失控“飞走”进入某种死循环时,软件陷阱可能不起作用。使程序从死循环中恢复到正常状态的有效方法是设置时间监视器,时间监视器又称“看门狗”。33.(1)设置软件陷阱即在非程序区安排指令强迫复位33时间监视器有两种:一种是硬时钟,一种是软时钟。硬时钟是在CPU芯片外用硬件构成一个定时器,软时钟是利用片内定时/计数器,定时时间比正常执行一次程序循环所需时间要大。正常运行未受干扰时,CPU每隔一段时间“喂狗”一次,即对硬时钟输出复位脉冲使其复位;对软时钟重置时间常数复位。“喂狗”时间应比设定的定时时间要短,即在狗“未饿未叫”时“喂狗”(复位),使其始终不“叫”(不中断、不溢出)。当受到干扰,程序不能正常运行,陷入死循环时,因不能及时“喂狗”,硬时钟或软时钟运行至既定的定时时间,硬时钟输出一个复位脉冲至CPU的RESET端使单片机复位。软时钟可产生中断,在中断服务子程序中修正或复位。上述硬、软时钟只需设置其中一种,各有利弊。软时钟不需增加硬件电路但要占用一个宝贵的定时/计数器资源;硬时钟不占资源,但要增加硬件电路和材料成本。34.时间监视器有两种:一种是硬时钟,一种是软时钟。硬时钟是在CP34359.4单片机应用系统实例9.4.1数码管时钟电路的设计
1.系统设计引言
AT89C2051是一个低电压,高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读Flash程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。
AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。其引脚如图9-4所示。.359.4单片机应用系统实例.3536图9-4AT89C2051引脚图.36图9-4AT89C2051引脚图.36372.系统设计原理
以AT89C2051单片机来实现时钟计时显示有如下几个要点:⑴计算计数初值
时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MCS-51的定时器/计数器进行定时,即使按工作方式1,其最大定时时间也只能达到131ms,离1s还差很远。为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125ms,这样计数溢出8次就可得到1s,而8次计数可用软件方法实现。为得到125ms定时,我们可使用定时器/计数器0,以工作方式1进行,假定单片机为6MHz晶振,设计数初值为X,则有如下等式:(216-X)×2=125000计算得计数初值X=3036,二进制表示为110011011100B,十六进制表示为0CDCH。
.372.系统设计原理.37⑵设定定时器定时方式定时器采用中断定时方式完成,以便于通过中断服务程序进行溢出次数(每次125ms)的累计,计满8次即得到秒计时。
⑶实现方法
通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时。38.⑵设定定时器定时方式38.3839⑷设置时钟显示及显示缓冲区
假定时钟时间在6位LED数码管上进行显示(时、分、秒各占两位)。为此,要在内部RAM中设置显示缓冲区,共6个单元,与数码管对应关系见表9-1。显示缓冲区从左向右依次存放时、分、秒的数值。表9-1LED显示器的缓冲单位LED5LED4LED3LED2LED1LED07EH7DH7CH7BH7AH79H.39⑷设置时钟显示及显示缓冲区表9-1LED39403.系统硬件设计
数码管时钟电路如图9-5所示,其采用AT89C2051单片机最小化应用设计,LED显示用动态扫描方式实现,P1口输出段码数据,P3.0~P3.5口作扫描输出,P3.7接按钮开关。为了提供LED数码管的驱动电流,用三极管9012作电源驱动输出。为了提高秒计时的精确中。本设计中的计时采用定时器T0中断完成,其余状态循环调用显示子程序,当P3.7端口开关按下时,转入调时功能程序。.403.系统硬件设计.4041图9-5采用AT89C2051的六位时钟电路.41图9-5采用AT89C2051的六位时钟电路.41424.系统软件设计⑴主程序(MAIN)主程序的主要功能是进行定时器/计数器的初始化编程,然后通过反复调用显示子程序的方法,等待125ms定时中断的到来。系统主程序流程图如图9-6所示。
图9-6系统主程序流程图.424.系统软件设计图9-6系统主.4243⑵加1子程序(DAAD1)加1子程序用于完成对秒、分和时的加1操作,中断服务程序中在秒、分、时加1时共有三处调用此子程序。加1子程序流程图如图9-7所示。图9-7加1子程序流程
.43⑵加1子程序(DAAD1)图9-7加1子4344⑶中断服务程序(PITO)中断服务程序的主要功能是进行计时操作。程序开始先判断计数溢出是否满了8次,不满8次表明还没达到最小计时单位秒,中断返回;如满8次则表明已达到最小计时单位秒,程序继续向下执行,进行计时操作。中断服务程序流程如图9-8所示。.44⑶中断服务程序(PITO).4445图9-8中断服务程序流程图.45图9-8中断服务程序流程图.4546⑸显示子程序数码管显示的数据存放在内存单元79H~7EH中,其中79H~7AH存放秒数据,7BH~7CH存放分数据,7DH~7EH存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出79H~7EH某一地址中的数据,然后查得对应的显示用段码从P1口输出。P3口将对应的数码管选中,就能显示该地址单元的数据值。.46⑸显示子程序.4647
9.4.2汽车倒车测距仪应用实例汽车倒车测距仪能测量并显示车辆后部障碍物离车辆的距离,同时用间歇嘟嘟声发出警报,嘟嘟声间隙随障碍物距离缩短而缩短,驾驶员不但可以直接观察显示的障碍物距离,还可以凭听觉判断车后障碍物离车辆距离的远近。1.工作原理超声波在空气中的传播速度与声速相当,约340m/s。从发射信号到遇障碍物反射接收,有几毫秒到几十毫秒的时间间隔,根据这个时间可以计算出障碍物距离。随着电子技术和单片机应用技术的发展,能比较精确测量车后障碍物距离的汽车倒车测距仪终于问世了。.47
9.4.2汽车倒车测距仪应用实例.47482.主要技术指标:①最大探测距离:不小于5m。②测距相对误差:<±5%。③工作环境:-l0~+55℃。雨、雪、雾、黑夜均不受影响。3.硬件电路图9-9为汽车倒车测距仪电气原理图。.482.主要技术指标:.4849
图9-9汽车倒车测距仪电原理图.49图9-9汽车倒车测距仪电原理图.4950
图9-10为40kHz超声波发射电路。
401l两个与非门E、F组成多谐振荡器,调节RP1,可调节谐振频率。P3.4控制多谐振荡器的振荡。输出高电平时,电路振荡,发射40kHz超声波;输出低电平时,停发射。
图9-1040kHz超声波发射电路.50图9-10为40kHz超声波发射电路。
图9-5051
图9-11为嘟声音响电路。
4011另两个与非门G、H组成多谐振荡器,谐振频率约800Hz左右,作为嘟声音频率,P3.控制多谐振荡器振荡,高电平时发嘟声,低电平时无声。CPU可根据距离远近控制P3.5输出方波的频率,即控制嘟声间隙时间。LM386作为功率放大,驱动扬声器发声。图9-11嘟声音响电路.51图9-11为嘟声音响电路。图9-11嘟声音响5152
图9-12为超声波遇障碍物反射信号接收电路。前三个LM324运算放大器A、B、C组成三级回波信号放大电路。其中L1和C9组成选频电路,滤除40kHz之外的干扰信号。VD2、C12组成信号半波整流滤波电路,将接收到的40kHz反射波交流信号转化成直流电压信号。第四个LM324运算放大器D作为电压比较器,将信号直流电压与设定的基准电压比较,信号电压大于基准电压,比较器输出正脉冲,VT5导通,P3.3接收负脉冲信号,CPU中断,记录发射信号与接收信号之间的时间,并转换为距离。.52图9-12为超声波遇障碍物反射信号接收电路。.5253图9-12超声波遇障碍物反射信号接收电路.53图9-12超声波遇障碍物反射信号接收电路.5354
报警指示见图9-9。P3.6控制报警指示灯。当障碍物距离小于某一数值(例50cm)时,输出高电平,VT4导通,发光二极管VD1导通。此输出端也可作为安全距离自动制动的控制端。
4.软件程序⑴主程序和中断程序图9-13为主程序流程框图。发射40kHz超声波1ms,并立即启动定时/计数器T0,CPU接收到回波信号后,立即中断,T0停。定时/计数器T0专用于记录CPU发射脉冲信号的前沿至回波脉冲信号前沿之间的时间,这个时间就作为换算障碍物距离和控制嘟声间隙的数据。为简化计算,取超声波传播速度为340m/s,考虑到信号来回,速度为170m/s,即17cm/ms。因此障碍物距离d=T0×17cm/ms,相对误差可达±2%以内.54报警指示见图9-9。P3.6控制报警指示灯。当障5455图9-13主程序流程框图.55图9-13主程序流程框图.5556⑵显示与延时子程序⑶信号处理程序WORK图9-14信号处理程序WORK流程图.56⑵显示与延时子程序图9-14信号处理5657本章小结单片机开发包括两个部分:硬件和软件,只有当单片机和其他电子器件及设备组成一个硬件系统,并配置适当的工作程序后,才能构成一个单片机应用系统。单片机应用系统的软、硬件调试,需要专门的开发工具(通常为一个特殊的计算机系统),称为单片机开发系统或称仿真机。常常采用的开发方法是把开发系统中的CPU和RAM暂时出借给用户系统,利用开发系统对用户系统的软硬件进行调试(又称仿真),然后把调好的程序固化到EPROM中,恢复用户系统中的CPU和RAM,对独立的用户系统进行试运行,若满足设计要求,则开发工作完成。.57本章小结.5758
单片机开发系统一般应该具有以下四个方面的基本功能:⑴系统硬件电路的诊断与检查;⑵用户程序的输入修改;⑶程序的运行调试;⑷程序固化。对于较完善的开发系统,还配备了程序的汇编、反汇编、程序文本打印及转存储,具有全速跟踪调试运行的能力。返回首页.58单片机开发系统一般应该具有以下四个方面的基本功能5859谢谢大家一学期的积极配合祝大家考试取得理想成绩谢谢!本章结束.59谢谢大家一学期的积极配合本章结束.5960第9章单片机应用系统开发技术总体要求:●了解单片机的开发系统及开发工具●掌握单片机应用系统软、硬件设计的基本方法●了解单片机应用系统抗干扰设计的基本方法●理解单片机应用系统调试的基本方法●了解应用实例软、硬件设计过程.1第9章单片机应用系统开发技术总体要求:.6061学习重点:●单片机应用系统的设计原则与过程目前,MCS-51系列单片机以其独特优越的性能和低廉的价格,在工业实时控制、智能化仪表、数据采集、计算机通信等各个领域得到了极为广泛的应用。本章将结合单片机的特点,从应用角度出发,对单片机应用系统的设计、开发工具和应用实例作进一步的分析和讨论。.2学习重点:.619.1单片机的开发系统及开发工具9.2单片机应用系统的设计原则与过程9.3单片机应用系统的抗干扰设计9.4单片机应用系统实例62.9.1单片机的开发系统及开发工具3.62639.1单片机的开发系统及开发工具9.1.1单片机的开发系统
1.概述单片机应用系统建立以后,电路正确与否,程序是否有误,怎样将程序装入机器等,这都必须借助单片机开发系统装置来完成。单片机开发系统是单片机编程调试的必需工具。单片机开发系统和一般通用计算机系统相比,在硬件上增加了目标系统的在线仿真器、编程器等部件,所提供的软件除有类似一般计算机系统的简单的操作系统之外,还增加了目标系统的汇编和调试程序等。.49.1单片机的开发系统及开发工具.6364
⑴在线仿真功能在线仿真器简称ICE(InCircuitEmulator),是由一系列硬件组成的单片机开发装置。①仿真功能在线仿真时,开发系统应能将在线仿真器中的单片机完整地出借给目标系统,不占用目标系统单片机的任何资源。②模拟功能在开发目标系统的过程中,单片机的开发系统允许用户使用它内部的RAM存储器和I/O来替代目标系统中的ROM程序存储器、RAM数据存储器和I/O,使用户在目标系统样机还未完全配置好以前,便可以借用开发系统提供的资源进行软件的开发。
2.单片机开发系统的功能.5.6465⑵调试功能开发系统的调试功能应包含以下几个方面:①运行控制功能开发系统应能使用户有效地控制目标程序的运行,以便检查程序运行的结果,对存在的硬件故障和软件错误进行修改。至少应具有下列运行模式:
a)单步运行:从任意的程序地址开始执行一条指令后停止运行。
b)断点运行:允许用户任意设置断点,从规定地址开始运行后,遇到符合条件的断点后停止运行。
c)连续运行:从指定地址开始,连续地、全速地运行目标程序。
d)起停控制:允许用户根据需要启动或停止运行目标程序。.6⑵调试功能.6566②对目标系统状态的读出、修改功能当CPU停止执行目标系统的程序后,允许用户方便地读出或修改目标系统所有资源的状态,以便检查程序运行的结果。可供用户读出、修改的目标系统资源应包括:
a)程序存储器(开发系统中的仿真ROM或目标机中的ROM);
b)单片机片内资源(工作寄存器、特殊功能寄存器、I/O
口、RAM及位存储单元);
c)系统中扩展的RAM和I/O口。③跟踪功能.7②对目标系统状态的读出、修改功能当CPU停止6667⑶辅助设计功能单片机开发系统的辅助设计功能体现在以下几个方面:①程序编辑②程序设计语言③其他软件功能⑷程序固化功能当单片机应用系统程序调试完成后,需要把目标程序写入目标机的ROM中,这个过程称为程序固化。固化时需要有适当的编程电压和硬软件条件,开发系统应具有这种功能。.8⑶辅助设计功能.6768
3.开发系统的分类目前国内用于MCS-51系列单片机的开发系统很多,大致可分为以下四种:(1)通用型单片机开发系统(2)实用型开发系统(3)通用机开发系统(4)模拟开发系统
.93.开发系统的分类.68699.1.2单片机应用系统的开发工具
1.开发工具概述一个单片机应用系统经过预研,总体设计、硬件设计、软件设计、制版、元器件安装后,在系统程序存储器中写入编制好的应用程序,系统即可运行。但一次性成功几乎是不可能的,多少会出现一些硬件或软件上的错误,需通过调试来发现和改正错误。然而单片机应用系统本身并无自开发能力,仅靠万用表、示波器等常规工具显然是不够的,通常要借助于一个特殊的计算机系统来完成,这个特殊的计算机系统称为单片机开发系统或单片机开发机(仿真器)。.109.1.2单片机应用系统的开发工具.6970
2.开发工具的主要作用单片机开发系统与一般的通用计算机系统相比,在硬件上增加了目标系统在线仿真器、编程器,所提供的软件除计算机系统一般的操作系统外,还增加了汇编、反汇编和调试程序等。其主要作用是:①对系统硬件电路诊断、检查;②应用程序的输入和修改;③程序调试、单步运行、设置断点运行,各寄存器状态查询;④将程序固化到ROM中去。.112.开发工具的主要作用.70719.2单片机应用系统的设计原则与过程9.2.1单片机应用系统的设计原则通常我们要求单片机系统应具有可靠性高、性价比高、操作维护方便和设计周期短等特点,下面我们将对这几点作详细讨论。.129.2单片机应用系统的设计原则与过程.7172
1.高可靠性①使用可靠性高的元器件,以防止器件的损坏影响系统的可靠运行。②对供电电源采用抗干扰措施。③采用双机系统。④设计电路板时布线和接地要合理,严格安装硬件设备及电路。⑤输入输出通道抗干扰措施。⑥进行软硬件滤波。⑦采用必要的冗余设计或增加系统自诊断功能。.131.高可靠性.72732.高性能价格比
单片机除体积小、功耗低等特点外,最大的优势在于高性能价格比。一个单片机应用系统能否被广泛使用,性价比是其中一个关键因素。因此,在设计时,除了保持高性能外,简化外围硬件电路,在系统性能和速度许可的范围内,尽可能用软件程序取代硬件功能电路,以降低系统的制造成本。
3.操作维护方便
操作方便表现在操作简单、直观形象和便于操作,应从普通人的角度考虑操作和维护方便,尽量减少对操作人员专用知识的要求,以利用系统的推广。.142.高性能价格比.73744.设计周期短系统设计周期是衡量一个产品有无效益的一个主要依据,只有缩短设计周期,才能有效地降低设计成本,充分发挥新系统的技术优势,及早地占领市场并具有一定的竞争力。9.2.2单片机应用系统的设计过程
1.系统总体设计
系统总体设计是单片机系统设计的前提,合理的总体设计是系统成败的关键。总体设计关键在于对系统功能和性能的认识和合理分析,系统单片机及关键芯片的选型,系统基本结构的确立和软、硬件功能的划分。.154.设计周期短.7475图9-1单片机系统研制过程框图.16图9-1单片机系统研制过程框图.75762.硬件设计硬件和软件是单片机控制系统的两个重要方面,硬件是基础,软件是关键,但两者又是可以相互转化的。硬件设计时,应考虑留有充分余量,电路设计力求正确无误,因为在系统调试中不易修改硬件结构。⑴设计硬件原理图⑵程序存储器⑶数据存储器和I/O接口数据存储器的设计原则是:在存储容量满足的前提下,尽可能减少存储芯片的数量。建议使用大容量的RAM芯片,以减少存储器芯片数目,使译码电路简单,但应避免盲目地扩大存储容量。.172.硬件设计.7677⑷地址译码电路⑸总线驱动能力⑹系统速度匹配⑺抗干扰措施另外,可以采用隔离放大器、光电耦合器件抗除输入/输出设备与系统之间的地线干扰;采用差分放大器抗除共模干扰;采用平滑滤波器抗除噪声干扰;采用屏蔽手段抗除辐射干扰等。最后,应注意在系统硬件设计时,要尽可能充分地利用单片机的片内资源,使自己设计的电路向标准化、模块化方向靠拢。.18⑷地址译码电路.77783.软件设计软件是单片机应用系统中的一个重要组成部,图9-2给出了软件设计的流程图。单片机应用系统的软件设计是研制过程中任务最繁重的一项工作,难度也比较大。对于某些较复杂的应用系统,不仅要使用汇编语言来编程,有时还要使用高级语言。⑴软件方案设计⑵建立数学模型⑶软件程序流程图设计⑷编制程序⑸软件检查.193.软件设计.7879图9-2软件设计流程图.20图9-2软件设计流程图.79804.系统调试单片机应用系统的总体调试是系统开发的重要环节。当完成了单片机应用系统的硬件、软件设计和硬件组装后,便可进入单片机应用系统调试阶段。系统调试的目的是要查出用户系统中硬件设计与软件设计中存在的错误及可能出现的不协调问题,以便修改设计,最终使用户系统能正确可靠地工作。系统调试包括硬件调试、软件调试和软、硬件联调。根据调试环境不同,系统调试又分为模拟调试与现场调试。系统调试的一般过程如图9-3。各种调试所起的作用是不同的,它们所处的时间段也不一样,不过它们的目的都是为了查出用户系统中存在的错误或缺陷。在调试过程中要不断调整、修改系统的硬件和软件,直到其正确为止。.214.系统调试.8081图9-3系统调试的一般过程.22图9-3系统调试的一般过程.8182⑴单片机应用系统调试工具在单片机应用系统的调试过程中,常用的调试工具有以下几种。①单片机开发系统②万用表③逻辑笔④逻辑脉冲发生器与模拟信号发生器⑤示波器⑥逻辑分析仪⑵单片机应用系统的一般调试方法单片机应用系统的一般调试方法有。①硬件调试:a)静态调试
b)动态调试.23⑴单片机应用系统调试工具.8283②软件调试:a)先独立后联机b)先分块后组合
c)先单步后连续③系统联调:a)软、硬件能否按预定要求配合工作
b)系统运行中是否有潜在的设计时难以预料的错误
c)系统的动态性能指标(包括精度、速度参数)是否满足设计要求。④现场调试现场调试对用户系统的调试来说是最后必需的一个过程,只有经过现场调试的用户系统才能保证其可靠地工作。现场调试仍需利用开发系统来完成,其调试方法与前述类似。.24②软件调试:a)先独立后联机.83849.3单片机应用系统的抗干扰设计9.3.1硬件抗干扰设计由于各应用系统所处的环境不同,面临的干扰源也不同,相应采取的抗干扰措施也不尽相同。在单片机应用系统的设计中,硬件抗干扰措施主要从下面几个方面考虑。
.259.3单片机应用系统的抗干扰设计.84851.电源的干扰及抗干扰措施对于单片机应用系统来说,最严重的干扰来源于电源。由于任何电源及辅电线都存在内阻、分布电容和电感等,正是这些因素引发了电源的噪声干扰。一般解决的方法是:
(1)采用交流稳压电源保证供电的稳定性,防止电源的过电压和欠电压。
(2)利用低通滤波器滤除高次谐波,改善电源波形。
(3)采用隔离变压器,并使其一次侧、二次侧之间均采用屏蔽层隔离,以减少其分布电容,提高抗共模干扰能力。
(4)采用分散独立功能块供电,以减少公共阻抗的相互耦合以及公共电源的相互耦合。.261.电源的干扰及抗干扰措施.85862.输入输出通道干扰及抗干扰措施
(1)输入输出通道是单片机与外设、被控对象进行信息交换的渠道。由输入输出通道引起的干扰主要由公共地线引发,其次是受到静电噪声和电磁波干扰。常用的方法有:
(2)摸拟电路通过隔离放大器隔离,数字电路通过光电耦合器隔离。模拟接地和数字接地严格分开,隔离器输入回路和输出回路的电源分别供电。
(3)用双绞线作长线传输线能有效地抑制共模噪声及电磁场干扰,并应对传输线进行阻抗匹配,以免产生反射,使信号失真。
(4)传感器后级的变送器应尽量采用电流型传输方式,因电流型比电压型抗干扰能力要高。.272.输入输出通道干扰及抗干扰措施.86873.电磁场干扰及抗干扰措施
(1)对干扰源进行电磁屏蔽(如变压器、继电器等)。
(2)对整个系统进行电磁屏蔽,传输线采用屏蔽线。
4.印制电路板及电路的抗干扰措施
(1)将强、弱电路严格分开,尽量不要把它们设计在一块印制电路扳上。
(2)电源线的走向应尽量与数据传输方向一致。
(3)电源的地线应尽量加粗。
(4)在大规模集成电路芯片的供电端都应加高频滤波电容,在各个供电接点上还应加足够容量的退耦电容。.283.电磁场干扰及抗干扰措施.87889.3.2软件抗干扰设计软件抗干扰设计是单片机应用系统的一个重要组成部分。干扰对单片机系统可能造成下列后果:数据采集误差增大,程序“飞走”失控或陷入死循环。尽管在硬件方面采取种种抗干扰措施,但仍不能完全消除这些干扰,必须同时从软件方面采取适当的措施,才能取得良好的抗干扰效果。如能正确地采用软件抗干扰措施,与硬件抗干扰措施构成双重抑制,将大大地提高系统的可靠性。而且采用软件抗干扰设计,通常成本低、见效快,能起到事半功倍的效果。软件方面抗干扰措施通常有以下几种方法:.299.3.2软件抗干扰设计.88891.数据采集误差对于实时数据采集系统来说,为了消除传感器通道中的干扰信号,在早期常采用硬件电路措施,如有源或无源滤波网络、过程模拟滤波器对信号实现滤波。同样,随着计算机运算速度的提高,可以利用软件技术对信号实现数字滤波。下面介绍几种常用的方法。
(1)算术平均值法
(2)比较舍取法
(3)中位值法
(4)一阶递推数字滤波法.301.数据采集误差.89902.开关量的抗干扰措施
(1)对于开关量输入,为了确保信息的正确性,可以采取多次读入进行比较,取多数情况的状态。
(2)对于开关量输出,通常是用来控制电感性的执行机构,如控制电磁阀。为了防止电磁阀因干扰产生误动作,可以在应用程序中每隔一段时间(比如几个毫秒)发出一次命令,不断地关闭阀门或打开阀门。这样就可以较好地消除由于扰动而引起的误动作。
(3)对于输入开关量的机械抖动干扰,软件程序可以通过延时来进行消除。.312.开关量的抗干扰措施.90913.程序“飞走”失控或进入死循环系统受到干扰导致PC值改变后,PC值不是指向指令的首字节地址而可能指向指令中的中间字节单元即操作数,将操作数作为指令码执行;或使PC值超出程序区,将非程序区的随机数作为指令码运行,从而使程序失控“飞走”,或由于偶然巧合进入死循环。这里所说的死循环并非程序编制中出现的死循环错误,而是指正常运行时程序正确,只是因为干扰而产生的死循环。解决方法有:
(1)设置软件陷阱
(2)设置“看门狗”.323.程序“飞走”失控或进入死循环.91(1)设置软件陷阱即在非程序区安排指令强迫复位。如用LJMP0000H的机器码填满非程序区。这样不论PC失控后飞到非程序区的哪个字节,都能复位。也可在程序区每隔一段(如几十条指令)连续安排三条NOP指令。因为8051指令字节最长为三字节。当程序失控时,只要不跳转,指令连续执行,就会运行NOP指令,就能使程序恢复正常。(2)设置“看门狗”设置软件陷阱能解决一部分程序失控问题,但当程序失控“飞走”进入某种死循环时,软件陷阱可能不起作用。使程序从死循环中恢复到正常状态的有效方法是设置时间监视器,时间监视器又称“看门狗”。92.(1)设置软件陷阱即在非程序区安排指令强迫复位92时间监视器有两种:一种是硬时钟,一种是软时钟。硬时钟是在CPU芯片外用硬件构成一个定时器,软时钟是利用片内定时/计数器,定时时间比正常执行一次程序循环所需时间要大。正常运行未受干扰时,CPU每隔一段时间“喂狗”一次,即对硬时钟输出复位脉冲使其复位;对软时钟重置时间常数复位。“喂狗”时间应比设定的定时时间要短,即在狗“未饿未叫”时“喂狗”(复位),使其始终不“叫”(不中断、不溢出)。当受到干扰,程序不能正常运行,陷入死循环时,因不能及时“喂狗”,硬时钟或软时钟运行至既定的定时时间,硬时钟输出一个复位脉冲至CPU的RESET端使单片机复位。软时钟可产生中断,在中断服务子程序中修正或复位。上述硬、软时钟只需设置其中一种,各有利弊。软时钟不需增加硬件电路但要占用一个宝贵的定时/计数器资源;硬时钟不占资源,但要增加硬件电路和材料成本。93.时间监视器有两种:一种是硬时钟,一种是软时钟。硬时钟是在CP93949.4单片机应用系统实例9.4.1数码管时钟电路的设计
1.系统设计引言
AT89C2051是一个低电压,高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读Flash程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。
AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。其引脚如图9-4所示。.359.4单片机应用系统实例.9495图9-4AT89C2051引脚图.36图9-4AT89C2051引脚图.95962.系统设计原理
以AT89C2051单片机来实现时钟计时显示有如下几个要点:⑴计算计数初值
时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MCS-51的定时器/计数器进行定时,即使按工作方式1,其最大定时时间也只能达到131ms,离1s还差很远。为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125ms,这样计数溢出8次就可得到1s,而8次计数可用软件方法实现。为得到125ms定时,我们可使用定时器/计数器0,以工作方式1进行,假定单片机为6MHz晶振,设计数初值为X,则有如下等式:(216-X)×2=125000计算得计数初值X=3036,二进制表示为110011011100B,十六进制表示为0CDCH。
.372.系统设计原理.96⑵设定定时器定时方式定时器采用中断定时方式完成,以便于通过中断服务程序进行溢出次数(每次125ms)的累计,计满8次即得到秒计时。
⑶实现方法
通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时。97.⑵设定定时器定时方式38.9798⑷设置时钟显示及显示缓冲区
假定时钟时间在6位LED数码管上进行显示(时、分、秒各占两位)。为此,要在内部RAM中设置显示缓冲区,共6个单元,与数码管对应关系见表9-1。显示缓冲区从左向右依次存放时、分、秒的数值。表9-1LED显示器的缓冲单位LED5LED4LED3LED2LED1LED07EH7DH7CH7BH7AH79H.39⑷设置时钟显示及显示缓冲区表9-1LED98993.系统硬件设计
数码管时钟电路如图9-5所示,其采用AT89C2051单片机最小化应用设计,LED显示用动态扫描方式实现,P1口输出段码数据,P3.0~P3.5口作扫描输出,P3.7接按钮开关。为了提供LED数码管的驱动电流,用三极管9012作电源驱动输出。为了提高秒计时的精确中。本设计中的计时采用定时器T0中断完成,其余状态循环调用显示子程序,当P3.7端口开关按下时,转入调时功能程序。.403.系统硬件设计.99100图9-5采用AT89C2051的六位时钟电路.41图9-5采用AT89C2051的六位时钟电路.1001014.系统软件设计⑴主程序(MAIN)主程序的主要功能是进行定时器/计数器的初始化编程,然后通过反复调用显示子程序的方法,等待125ms定时中断的到来。系统主程序流程图如图9-6所示。
图9-6系统主程序流程图.424.系统软件设计图9-6系统主.101102⑵加1子程序(DAAD1)加1子程序用于完成对秒、分和时的加1操作,中断服务程序中在秒、分、时加1时共有三处调用此子程序。加1子程序流程图如图9-7所示。图9-7加1子程序流程
.43⑵加1子程序(DAAD1)图9-7加1子102103⑶中断服务程序(PITO)中断服务程序的主要功能是进行计时操作。程序开始先判断计数溢出是否满了8次,不满8次表明还没达到最小计时单位秒,中断返回;如满8次则表明已达到最小计时单位秒,程序继续向下执行,进行计时操作。中断服务程序流程如图9-8所示。.44⑶中断服务程序(PITO).103104图9-8中断服务程序流程图.45图9-8中断服务程序流程图.104105⑸显示子程序数码管显示的数据存放在内存单元79H~7EH中,其中79H~7AH存放秒数据,7BH~7CH存放分数据,7DH~7EH存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆保管寄售协议书
- 人工费外包合同协议书
- 驾校投资加盟协议书
- 采样作业安全协议书
- 解除期权股权协议书
- 代家长陪读合同协议书
- 让老公签忠诚协议书
- 农场看护房转让协议书
- 车祸报废赔偿协议书
- 解除增资扩股协议书
- 超星尔雅学习通《美学原理(北京大学)》2025章节测试附答案
- (高清版)DB11∕T2256-2024城市轨道交通钢轨踏面维修技术规范
- DB11∕T2279-2024社会单位消防安全评估规范
- 病历质量培训课件
- 机房施工安全培训
- 中国卒中学会急性缺血性卒中再灌注治疗指南+2024解读
- 装饰报价单完整版本
- 设计单位现场施工期间配合及技术经验服务措施
- 【MOOC期末】《英美文学里的生态》(北京林业大学)期末中国大学慕课MOOC答案
- 能源管理系统投标技术文件
- 大学生个人职业生涯规划课件模板
评论
0/150
提交评论