版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章MCS-51单片机应用系统设计主要内容:
从总体设计、硬件设计、软件设计、可靠性设计、系统调试与测试等几个方面介绍了单片机应用系统设计的方法及基本过程,并给出了典型设计实例,同时还简单介绍了C51编程方法和KeilC51开发系统。重点在于单片机应用系统开发的方法与实际应用,难点在于将单片机应用系统开发的方法应用于实际工程中,设计出最优的单片机应用系统。7.1概述
由于单片机具有体积小、功耗低、功能强、可靠性高、实时性强、简单易学、使用方便灵巧、易于维护和操作、性能价格比高、易于推广应用、可实现网络通信等技术特点。因此,单片机在自动化装置、智能仪表、家用电器,乃至数据采集、工业控制、计算机通信、汽车电子、机器人等领域得到了日益广泛的应用。单片机应用系统设计应当考虑其主要技术性能(速度精度功耗可靠性驱动能力等),还应当考虑功能需求,应用需求,开发条件,市场情况,可靠性需求,成本需求,尽量以软件代替硬件等。下页图描述了单片机应用系统设计的一般过程。(2)外围器件的选择
外围器件应符合系统的精度、速度和可靠性、功耗、抗干扰等方面的要求。应考虑功耗、电压、温度、价格、封装形式等其他方面的指标,应尽可能选择标准化、模块化、功能强、集成度高的典型电路。3.总体设计
总体设计就是根据设计任务、指标要求和给定条件,设计出符合现场条件的软、硬件方案。并进行方案优化。应划分硬件、软件任务,画出系统结构框图。要合理分配系统内部的硬件、软件资源。包括以下几个方面:
(1)从系统功能需求出发设计功能模块。包括显示器、键盘、数据采集、检测、通信、控制、驱动、供电方式等(2)从系统应用需求分配元器件资源。包括定时器/计数器、中断系统、串行口、I/O接口、A/D、D/A、信号调理、时钟发生器等。(3)从开发条件与市场情况出发选择元器件。包括仿真器、编程器、元器件、语言、程序设计的简易等。(4)从系统可靠性需求确定系统设计工艺。包括去耦、光隔、屏蔽、印制板、低功耗、散热、传输距离/速度、节电方式、掉电保护、软件措施等。7.2.2硬件设计
由总体设计所给出的硬件框图所规定的硬件功能,在确定单片机类型的基础上进行硬件设计、实验。进行必要的工艺结构设计,制作出印刷电路板,组装后即完成了硬件设计。一个单片机应用系统的硬件设计包含系统扩展和系统的配置(按照系统功能要求配置外围设备)两部分。1.硬件电路设计的一般原则(1)采用新技术,注意通用性,选择典型电路。(2)向片上系统(SOC)方向发展。扩展接口尽可能采用PSD等器件。(3)注重标准化、模块化。(4)满足应用系统的功能要求,并留有适当余地,以便进行二次开发。(5)工艺设计时要考虑安装、调试、维修的方便。2.硬件电路各模块设计的原则
单片机应用系统的一般结构如下图所示。各模块电路设计时应考虑以下几个方面:(1)存储器扩展:类型、容量、速度和接口,尽量减少芯片的数量。(2)I/O接口的扩展:体积、价格、负载能力、功能,合适的地址译码方法。
(8)负载容限:总线驱动。(9)信号逻辑电平兼容性:电平兼容和转换。(10)电源系统的配置:电源的组数、输出功率、抗干扰。(11)抗干扰的实施:芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。7.2.3软件设计
软件设计流程图如右图所示。可分为以下几个方面。1.总体规划
结合硬件结构,明确软件任务,确定具体实施的方法,合理分配资源。定义输入/输出、确定信息交换的方式(数据速率、数据格式、校验方法、状态信号等)、时间要求,检查与纠正错误。2.程序设计技术
软件结构实现结构化,各功能程序实行模块化、子程序化。一般有以下两种设计方法:(1)模块程序设计:优点是单个功能明确的程序模块的设计和调试比较方便,容易完成,一个模块可以为多个程序所共享。其缺点是各个模块的连接有时有一定难度。(2)自顶向下的程序设计:优点是比较符合于人们的日常思维,设计、调试和连接同时按一个线索进行,程序错误可以较早的发现。缺点是上一级的程序错误将对整个程序产生影响,一处修改可能引起对整个程序的全面修改。3.程序设计
(1)建立数学模型:描述出各输入变量和各输出变量之间的数学关系。(2)绘制程序流程图:以简明直观的方式对任务进行描述。(3)程序的编制:选择语数据结构、控制算法、存储空间分配,系统硬件资源的合理分配与使用,子程序的入/出口参数的设置与传递。4.软件装配
各程序模块编辑之后,需进行汇编或编译、调试,当满足设计要求后,将各程序模块按照软件结构设计的要求连接起来,即为软件装配。在软件装配时,应注意软件接口。1.供电系统干扰与抑制干扰源:电源及输电线路的内阻、分布电容和电感等。抗干扰措施:采用交流稳压器、电源低通滤波器、带屏蔽层的隔离变压器、独立的(或专业的)直流稳压模块,交流引线应尽量短,主要集成芯片的电源采用去耦电路,增大输入/输出滤波电容等措施。2.过程通道的干扰与抑制干扰源:长线传输。单片机应用系统中,从现场信号输出的开关信号或从传感器输出的微弱模拟信号,经传输线送入单片机,信号在传输线上传输时,会产生延时、畸变、衰减及通道干扰。抗干扰措施:(1)采用隔离技术:光电隔离、变压器隔离、继电器隔离和布线隔离等。典型的信号隔离是光电隔离。其优点是能有效地抑制尖峰脉冲及各种噪声干扰,从而使过程通道上的信噪比大大提高。(2)采用屏蔽措施:金属盒罩、金属网状屏蔽线。但金属屏蔽本身必须接真正的地(保护地)。
(3)采用双绞线传输:双绞线能使各个小环路的电磁感应干抗相互抵消。其特点是波阻抗高、抗共模噪声能力强,但频带较差。(4)采用长线传输的阻抗匹配:有四种形式,如下图所示。
①
终端并联阻抗匹配:如上页图(a)所示,RP=R1//R2,其特点是终端阻值低,降低了高电平的抗干扰能力。②始端串联匹配:如上页图(b)所示,匹配电阻R的取值为RP与A门输出低电平的输出阻抗ROUT(约20)之差值,其特点是终端的低电平抬高,降低了低电平的抗干扰能力。③终端并联隔直流匹配:如图上页(c)所示,R=Rp,其特点是增加了对高电平的抗干扰能力。④终端接钳位二极管匹配:如图上页(d)所示,利用二极管D把B门输入端低电平钳位在0.3V以下。其特点是减少波的反射和振荡,提高动态抗干扰能力。注意:长线传输时,用电流传输代替电压传输,可获得较好的抗干扰能力。(3)机械触点,接触器、可控硅的噪声抑制
①开关、按钮、继电器触点等在操作时应采取去抖处理。②在输入/输出通道中使用接触器、继电器时,应在线圈两端并接噪声抑制器,继电器线圈处要加装放电二极管。③可控硅两端并接RC抑制电路,可减小可控硅产生的噪声。(4)印刷电路板(PCB)设计中的抗干扰问题
合理选择PCB板的层数,大小要适中,布局、分区应合理,把相互有关的元件尽量放得靠近一些。印刷导线的布设应尽量短而宽,尽量减少回路环的面积,以降低感应噪声。导线的布局应当是均匀的、分开的平行直线,以得到一条具有均匀波阻抗的传输通路。应尽可能地减少过孔的数量。在PCB板的各个关键部位应配置去耦电容。要将强、弱电路严格分开,尽量不要把它们设计在一块印刷电路板上。电源线的走向应尽量与数据传递方向一致,电源线、地线应尽量加粗,以减小阻抗。(5)地线设计
地线结构大致有保护地、系统地、机壳地(屏蔽地)、数字地、模拟地等。在设计时,数字地和模拟地要分开,分别与电源端地线相连;屏蔽线根据工作频率可采用单点接地或多点接地;保护地的接地是指接大地。不能把接地线与动力线的零线混淆。此外,应提高元器件的可靠性,注意各电路之间的电平匹配,总线驱动能力要符合要求,单片机的空闲端要接地或接电源,或者定义成输出。室外使用的单片机系统或从室外架空引入室内的电源线、信号线,要防止雷击,常用的防雷击器件有:气体放电管,TVS(瞬态电压抑制器)等。4.软件的抗干扰设计
常用的软件抗干扰技术有软件陷阱、时间冗余、指令冗余、空间冗余、容错技术、设置特征标志和软件数字滤波等(1)实时数据采集系统的软件抗干扰
采用软件数字滤波。常用的方法有以下几种:①
算术平均值法:对一点数据连续采样多次(可取3~5次),以平均值作为该点的采样结果。这种方法可以减少系统的随机干扰对采集结果的影响。②比较舍取法:对每个采样点连续采样几次,根据所采样数据的变化规律,确定取舍办法来剔除偏差数据。例如,“采三取二”,即对每个采样点连续采样三次,取两次相同数据作为采样结果。③中值法:对一个采样点连续采集多个信号,并对这些采样值进行比较,取中值作为该点的采样结果。
5.程序运行失常的软件对策程序运行失常:当系统受到干扰侵害,致使程序计数器PC值改变,造成程序的无序运行,甚至进入死循环。程序运行失常的软件对策:发现失常状态后,及时引导系统恢复原始状态。可采用以下方法:(1)程序监视定时器(Watchdag,WDT)技术
程序监视定时器(也称为“看门狗”)的作用:通过不断监视程序每周期的运行事件是否超过正常状态下所需要的时间,从而判断程序是否进入了“死循环”,并对进入“死循环”的程序作出系统复位处理。“看门狗”技术:可由硬件、软件或软硬结合实现。①硬件“看门狗”可以很好地解决主程序陷入死循环的故障,但是,严重的干扰有时会出现中断关闭故障使系统无法定时“喂狗”,无法探测到这种故障,硬件“看门狗”电路失效。
表2-5工作寄存器组选择控制表
②软件“看门狗”可以保证对中断关闭故障的发现和处理,但若单片机的死循环发生在某个高优先级的中断服务程序中,软件“看门狗”也无法完成其作用。③利用软硬结合的“看门狗”组合可以克服单一“看门狗”功能的缺陷,从而实现对故障的全方位监控。(2)设置软件陷阱软件陷阱:指将捕获的“跑飞”程序引向复位入口地址0000H的指令。
设置方法:
①在EPROM中,非程序区设置软件陷阱,软件陷阱一般1KB空间有2~3个就可以进行有效拦截。指令如下:
NOPNOPLJMP0000H
②在未使用的中断服务程序中设置软件陷阱,能及时捕获错误的中断。指令如下:
NOPNOPRETI(3)指令冗余技术指令冗余:在程序的关键地方人为插入一些单字节指令,或将有效单字节指令重写,称为指令冗余。作用:可将“跑飞”程序纳入正轨。
设置方法:通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使程序“跑飞”到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当做操作数执行,程序自动纳入正轨。此外,对系统流向起重要作用的指令(如RET,RETI,LCALL,LJMP,JC等指令)之前也可插入两条NOP指令,确保这些重要指令的执行。2.软件调试
程序模块编写完成后,通过汇编或编译后,在开发系统上进行调试。调试时应先分别调试各模块子程序,调试通过后,再调试中断服务子程序,最后调试主程序,并将各部分进行联调。3.系统调试
当硬件和软件调试完成之后,就可以进行全系统软、硬件调试,对于有电气控制负载的系统,应先试验空载,空载正常后再试验负载情况。系统调试的任务是排除软、硬件中的残留错误,使整个系统能够完成预定的工作任务,达到要求的性能指标。4.程序固化
系统调试成功之后,就可以将程序通过专用程序固化器固化到ROM中。5.脱机运行调试
将固化好程序的ROM插回到应用系统电路板的相应位置,即可脱机运行。系统试运行要连续运行相当长的时间(也称为考机),以考验其稳定性。并要进一步进行修改和完善处理。6.测试单片机系统的可靠性单片机系统设计完成时,一般需进行单片机软件功能的测试,上电、掉电测试,老化测试,静电放电(ElectroStaticDischarge,ESD)抗扰度和电快进瞬变脉冲群(ElectricalFastTransient,EFT)抗扰度等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性,还可以模拟人为使用中可能发生的破坏情况。经过调试、测试后,若系统完全正常工作,功能完全符合系统性能指标要求,则一个单片机应用系统的研制过程全部结束。
⑤C51提供了复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;提供auto,extern,static,const等存储类型和专门针对MCS-51单片机的data,bdata,idata,pdata,xdata,code等存储类型,自动为变量合理地分配地址;提供small,compact,large等编译模式,以适应片上存储器的大小;完整的编译控制指令为程序调试提供必要的符号信息。⑥头文件中允许定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发。⑦可方便地接受多种实用程序的服务,有专门的实用程序自动生成;有实时多任务操作系统,可调度多道任务,简化用户编程,提高运行的安全性等。2.单片机C51语言与C语言的异同
单片机的C51是继承了标准C的绝大部分的特性,基本语法相同,但其本身在特定的硬件结构上又有所扩展(如专门针对MCS-51单片机的存储类型等),需要在C51的实际编程应用过程中逐步体会。7.3.2C51的基本语法
1.C51的程序结构
与一般C语言的结构相同,以main()函数为程序入口,程序体中包含若干语句,还可以包含若干函数。2.C51的数据类型
常用的数据类型有:位型(bit,1位)、字符型(char,1字节)、整型(int,2字节)、长整型(longint,4字节)、浮点型(float,4字节)、数组型、指针型等。3.C51数据的存储类型
C51数据的存储类型如下表所示。
4.C51包含的头文件
C51包含的头文件通常有reg51.h,math.h,ctype.h,stdio.h,stdlib.h,absacc.h。其中,常用的有reg51.h(定义特殊功能寄存器和位寄存器)和math.h(定义常用数学运算)。
5.C51的运算符
C51的运算符与C语言基本相同:+(加)、-(减)、*(乘)、/(除)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、=(等于)、!=(不等于)、&&(逻辑与)、||(逻辑或)、!(逻辑非)、>>(位右移)、<<(位左移)、&(按位与)、|(按位或)、^(按位异或)、~(按位取反)。6.C51的基本语句
C51的基本语句与标准C语言基本相同:if(选择语句)、switch/case(多分支选择语句)、while(循环语句)、for(循环语句)、do-while(循环语句)等。7.3.3C51编译器
FranklinC51交叉编译器是专为80C51系列单片机设计的一种高效的C语言编译器,使用它可以缩短开发周期,降低开发成本,而且开发出的系统易于维护,可靠性高,可移植性好,代码的使用效率高。1.C51语言程序设计的基本技巧
(1)采用结构化程序设计(2)采用模块化程序设计,分别指定个功能模块相应的入口参数和出口参数,而经常使用的一些程序最好编成函数。(3)充分利用C51语言的预处理命令。(4)采用宏定义“#define”(或集中起来)将一些常用的常数、各种特殊功能寄存器或程序中一些重要的、依据外界条件可变的常量放在一个头文件中进行定义,然后采用文件包含命令“#include”将其加入到程序中去,便于修改,有利于文件的维护和更新。2.C51语言与汇编语言程序的混合编程
有时为了编程直观或某些特殊地址的处理,C51程序中还须采用一些汇编语言编程。而在另一些场合,出于某种目的,汇编语言也可调用C语言。在这种混合编程中,关键是参数的传递和函数的返回值。它们必须有完整的约定,否则数据的交换就可能出错。3.C51中断处理过程
C51编译器支持在C源程序中直接开发中断,中断服务函数的完整语法如下:void函数名(void)[模式][再入]interruptn[usingr]
其中:n(0~31)----代表中断号;r(0~3)----代表第r组寄存器;[再入]----说明中断处理函数有无“再入”能力。。7.3.4KeilC51开发系统简介1.系统概述KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。其特点是提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面;生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2.KeilC51单片机软件开发系统的功能KeilC51单片机软件开发系统可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用集成开发环境IDE本身或其他编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由L51创建生成库文件,也可以与库文件一起,经L51连接定位,生成绝对目标文件(.ABS)。
KeilC51工具包各部分功能如下:(1)C51是C语言编译器,其使用方法为:C51sourcefile[编译控制指令]
或者
C51@commandfile其中:source源文件(.C)。大量的编译控制指令完成C51编译器的全部功能。包括C51输出文件C.LST,.OBJ,.I和.SRC文件及源文件(.C)的控制等。Command一个连接控制文件,其内容包括:.C源文件及各编译控制指令,它没有固定的名字,开发人员可根据自己的习惯指定,它适用于控制指令较多的场合。
(2)A51是汇编语言编译器,使用方法为:A51sourcefile[编译控制指令]
或者A51@commandfile其中:source汇编源文件(.asm或.a51),而编译控制指令的使用与其他汇编(如ASM)语言类似。Command中的Commandfile类似,它使A51的使用和修改比较方便。(3)L51是KeilC51软件包提供的连接器/定位器,其功能是将编译生成的.OBJ文件与库文件连接定位,生成绝对目标文件(.ABS),其使用方法为:L51目标文件列表[库文件列表][tooutputfile][连接控制指令]
或者
L51@Commandfile源程序的多个模块分别经C51与A51编译后生成多个.OBJ文件,连接时,这些文件全列于目标文件列表中,作为输入文件,如果还需与库文件(.LIB)相连接,则库文件也必须列在其后。其中:output输出文件名,默认为第一模块名,后缀为.ABS。连接控制指令提供了连接定位时的所有控制功能。Command连接控制文件,其具体内容包括了目标文件列表、库文件列表及输出文件、连接控制命令。第2种方法简单,在设计时较多见。
(4)BL51也是C51软件包的代码连接器/定位器,除具有L51的所有功能外,它还可以连接定位大于64KB的程序,具有代码域及域切换功能,可用于RTX51操作系统等功能。(5)RTX51是一个实时多任务操作系统,可以不用main()函数,是单片机系统软件向RTOS发展是一种趋势。(6)dScope51是一个源级调试器和模拟器,它可以调试由C51编译器、A51汇编器、PL/M-51编译器及ASM-51汇编器产生的程序。它不需目标板,只能进行软件模拟,但其功能强大,可模拟CPU及其外围器件,能对嵌入式软件功能进行有效测试。(7)Initfile为一个初始化文件,它在启动dScope51后,在debugfile之前装入,装有一些dScope的初始化参数及常用调试函数等。(8)tScope51也为一个初始化文件,与dScope51不同的是,tScope51必须带目标板,目前它可以通过两种方式访问目标板。①通过EMul51在线仿真器,tScope51为该仿真器准备了一个动态连接文件EMUL51.IOT,但该方法必须配合该仿真器。②通过Monitov51监控程序。tScope51为访问Monitor51,专门带有MON51.IOT连接程序,使用时可通过串口及监控程序来调试目标板。(9)Monitor51是一个监控程序,通过PC的串口与目标板进行通信,Monitor操作需要MON51或dScope51forWindows。(10)IshellforDOS是一个DOS环境下的IDE,直接在命令行输入Ishell,则进入该环境。它使用简单方便,其命令行与DOS命令行具有同样的功能。(11)uVisionforWindows是一个标准的Windows应用程序,它是C51的一个集成软件开发平台,具有源代码编辑、Project管理、集成的Make等功能,它的人机界面友好,操作方便,是开发者的首选。3.KeilC51与标准C
对标准C的扩展是学习C51的关键之一。C51直接针对8051系列CPU对标准C的扩展包括8051存储类型及存储区域、存储模式、存储器类型声明、变量类型声明、位变量与位寻址、特殊功能寄存器(SFR)、C51指针、函数属性等8类。(1)KeilC51扩展关键字
C51V4.0的扩展关键字如下(共19个):atidatasfr16alieninterruptsmallbdatalargetaskcodebitpdatausingreentrantxdatacompactsbitdatasfr(2)内存区域(MemoryAreas)
①由code说明可有多达64KB的程序存储器。②内部数据存储器可用以下关键字说明:data:直接寻址区,为内部RAM的低128字节00H~7FH;idata:间接寻址区,包括整个内部RAM区00H~FFH;bdata:可位寻址区,20H~2FH。
③外部RAM视使用情况可由以下关键字标志:xdata:可指定多达64KB的外部直接寻址区,地址范围0000H~0FFFFH;pdata:能访问1页(256字节)的外部RAM,主要用于紧凑模式(CompactModel)。④8051提供128字节的SFR寻址区,可由以下几种关键字说明:sfr:字节寻址,如sfrP0=0x80,指出P0口地址为80H,“=”后为00H~FFH之间的常数。sfr16:字寻址,如sfr16T2=0xCC,指定T2口地址为TL2=0xCCH,TH2=0xCDH。sbit:位寻址,如sbitEA=0xAF,指定第0xAFH位为EA,即中断允许。还可以有如下定义方法:
sbitOV=PSW^2(定义OV为PSW的第2位)sbitOV=0xDo^2(同上)或bitOV=0xDo2(同上)。7.3.5C51应用举例
[例题]
设单片机的fOSC=12MHz,要求用T0的方式1编程,在P1.0引脚输出周期为2ms的方波。解:用C语言编写的中断服务程序如下:
#includesbitP1_0=P1^0;voidtimer0(void)interrupt1using1{/*T0中断服务程序入口*/P1_0=!P1_0;TH0=-(1000/256);/*计数初值重装*/TL0=-(1000%256);}voidmain(void){TMOD=0x01;/*T0工作在定时器方式1*/P1_0=0;TH0=-(1000/256);/*预置计数初值*/TL0=-(1000%256);EA=1;/*CPU开中断*/ET0=1;/*T0开中断*/TR0=1;/*启动T0*/do{}while(1);}
注意:在编写中断服务程序时必须注意不能进行参数传递,不能有返回值。[例题]
拆字程序。将2000H的内容拆开,高位送2001H低位,低位送2002H低位。解:汇编语言程序如下:
ORG1000HSE02: MOVDPTR,#2000H MOVXA,@DPTR MOVB,A ;(2000H)→A→B SWAPA ;交换 ANLA,#0FH ;屏蔽高位 INCDPTR MOVX@DPTR,A ;送2001H INCDPTR MOVA,B ANLA,#0FH ;(2000H)内容屏蔽高位 MOVX@DPTR,A ;送2002H SJMP$ END
C51程序如下:
#include<reg51.h>main(){unsignedcharxdata*p=0x2000;/*指针指向2000H单元*//*2002H单元高4位清零,低4位装2000H单元低4位*/*(p+2)=(*p)&0x0f;/*2001H单元高4位清零,低4位装2000H单元高4位*/*(p+1)=(*p)>>4;}7.4单片机应用系统举例
7.4.1单片机在控制系统中的应用
单片机的一个广泛应用领域就是控制系统。1.设计思想
通过传感电路不断循环检测室内温度、湿度、有害气体(如煤气)浓度等环境参数,然后与由控制键盘预置的参数临界值相比较,从而作出开/关窗、启/停换气扇、升/降温(湿)等判断,再结合窗状态检测电路所检测到的窗状态,发出一系列的控制命令,完成下雨则自动关窗、室内有害气体超标则自动开窗、开/启换气扇、恒温(湿)等自动控制功能。用户还可通过控制键盘,直接控制窗户的开/关、换气扇的启/停、温(湿)度的升/降,选择所显示参数的种类等。2.系统组成和部分电路设计
控制系统主要由控制器、数据检测传感电路、A/D转换器、窗驱动控制接口电路、窗驱动电路等组成。其系统原理图如下页图所示。
控制器采用美国Atmel公司的AT89C51单片机。利用89C51的P0口采集数据,完成控制信息的采集和控制功能。利用P1.0~P1.3作为窗状态检测端口,完成对窗状态(即窗是否移到边框)的检测。数据检测传感电路由温度传感电路、湿度传感电路、有害气体传感电路、红外防盗传感器四个部分组成。在此只以温度传感电路为例进行设计。
根据温度检测的要求,温度的检测选用集成温度传感器AD590(测温范围为—55℃~+150℃)。测量电路如图右所示。
传感器的采集信号经过数据处理电路,必须通过A/D转换器才能与单片机连接,本系统中有4路模拟输入,A/D转换器选用了ADC0809,89C51通过中断方式读取A/D转换的数据。通过A/D转换实现的数据采集电路如下图所示。A/D转换器的口地址为7FFFH。
根据驱动信号与所控对象的关系,将系统的驱动电路分解为移窗驱动电路、换窗驱动电路、锁窗驱动电路、温度调节驱动电路、湿度调节驱动电路、换气扇驱动电路和报警驱动电路等,分别用它们去控制1个对象。窗状态检测电路采用4个开关型磁敏器件。在外窗、内窗的左、右边上,与磁敏器件相对应的地方,各贴上一小片磁铁,当小磁铁随窗户的移动而移近相对应的磁敏器件时,该磁敏器件的输出信号从高电平变为低电平,表示窗户已移到相应边上。键盘输入及显示电路采用Intel公司生产的8279通用可编程键盘、显示器接口芯片。可实现对键盘和显示器的自动扫描,并识别键盘上闭合键的键号。对于控制键盘,采用微动开关制作,并安装在窗户的固定边框上。通过控制键盘,用户可设置各环境参数的临界值、随意选择所显示参数的种类、直接控制窗户的开/关、换气扇的启/停、温(湿)度的升/降等。3.软件设计
控制系统的软件主要由一个主程序和两个中断服务程序等组成。主程序的主要作用是在系统复位后对系统进行初始化,设置8279,ADC0809等的工作方式和初始状态,设置各中断的优先级别并开中断,首次启动A/D转换等,然后向8279循环送显示字符,进行显示。程序框图如右上图所示。键中断服务程序的主要作用是在AT89C51响应中断(有键按下,则产生该中断)后,读出键值,并根据键值依序发出相应的控制命令字,完成相应的控制功能。该中断应设为高优先级。程序框图如右下图所示。
循环检测中断服务程序的主要作用是在89C51响应中断后,将A/D转换结果送相应缓冲区,然后判断该转换结果是否在上、下限值之间,并根据判断结果按序发出相应的控制命令字,完成相应的控制、报警功能。然后重新选择被转换量,再次启动A/D转换后,返回主程序。该中断应设为低优先级,并设为电平触发方式。程序流程图如右图所示。7.4.2单片机在家用电器中的应用
单片机在家电行业具有广泛的应用。下面以单片机在电冰箱控制系统中的应用为例加以介绍。1.总体方案设计直冷式电冰箱的控制原理:根据蒸发器的温度控制制冷压缩机的启动、停止,使冰箱内的温度保持在设定温度范围内。采用单片机控制压缩机的启动和停止,可以使控制更准确、更灵活。电冰箱采用单片机控制的性能指标如下:
①设定3个测温点,测量范围在-26℃~+26℃之间,精度为±0.5℃。②利用功能键分别控制温度设定、速冻设定、冷藏室及冷冻室温度设定等。
③利用数码管显示冷冻室、冷藏室温度,压缩机启动、停止和速冻、报警状态。④制冷压缩机停机后,自动延时3分钟才能再启动。⑤电冰箱具有自动除霜功能,当霜的厚度达3cm时自动除霜。⑥开门延时超过2分钟发出声音报警。⑦连续速冻时间设定范围为1~8小时。⑧工作电压在180~240V之间,当欠压或过压时,禁止启动压缩机,并用指示灯显示。根据上面所列出的控制系统要求,可估算出所需要的程序存储器的容量不会超过4KB,因此可以采用Philips公司生产的80C51单片机(片内有4KB的ROM,128字节的RAM),不用进行外部扩展存储器,可以大大简化系统的硬件电路。此外,80C51单片机在市场上的货源充足,技术比较成熟,同时也具有较好的开发环境。2.硬件设计(1)主电路设计
主电路采用80C51单片机,扩展一片A/D转换芯片ADC0809,构成基本的系统。由于本系统无通信要求,可以通过串行口扩展四片74LS164作为四位LED显示器接口和一片74LS164来实现键盘功能。本系统还有一些附加的电路,如除霜电路、电压检测电路和开关报警电路等。电冰箱控制系统的电路原理图如下页图所示。(2)A/D转换电路
A/D转换电路采用ADC0809。ADC0809共有8路模拟输入通道(本系统只用到其中的4路IN0~IN3)。其中,IN0作为冷冻室温度检测通道,IN1作为冷藏室温度检测通道,IN2作为除霜检测通道,IN3作为电源电压检测通道。ADC0809与单片机接口电路见电路原理图如下页图所示。
上页图中,ADC0809的A,B,C三个引脚直接和80C51单片机的P0.0~P0.2三个引脚相连,用于选择不同的模拟通道信号。P1.6与读写控制信号端和经过或非门连接到ADC0809的START,ALE,OE端,分别控制ADC0809的启动、地址锁存、读操作和写操作。ADC0809的EOC端悬空,A/D转换后利用软件延时一段时间来读取转换后的数据。(3)功能键和显示电路
功能键和显示电路如上页图所示。采用6个功能键控制冷冻室、冷藏室及速冻温度设定,4位LED显示器用于显示冷冻、冷藏室温度,以及压缩机启动、停止和报警等状态。LED显示及功能键都是通过80C51的串行口扩展的。显示输出通道和键盘输入通道的选择由端口线P3.2和与门完成。当P3.2为“1”时,数据输出到显示器。当P3.2为“0”时,80C51王诚对键盘的扫描。(4)除霜电路
选用MF53-1型热敏电阻作为温度传感器(Rt),它具有负温度系数,灵敏度较高。把热敏电阻安装在距蒸发器3mm的某个合适的位置上,当霜厚大于3mm时,热敏电阻Rt接触到霜从而感受到较低的温度,其电阻值变大,A点温度降低,运算放大器输出信号有变化,经A/D转换后送入CPU,经单片机分析、判断,给出除霜命令。除霜电路如下图所示。热敏电阻Rt的阻值和温度的关系为:(k)A点电压与温度的关系为:(5)制冷压缩机和除霜电热丝启动、停止控制电路
其电路如下页图所示,加热丝和压缩机的工作原理如下:80C51单片机控制信号经P1.3和P1.4端口输出,并通过P1.7的控制,将信号锁存在74LS273中,74LS273的输出经过达林顿驱动器DS2003后,驱动固态继电器RELAY1和RELAY2。当DS2003的16脚有高电平输出时,RELAY1的3,4脚接通,使加热丝接通电源,开始除霜。当DS2003的15脚输出高电平时,RELAY2的3,4脚接通,使压缩机绕组接通电源而启动,开始制冷。74LS273的锁存控制信号,一方面增加输出功率,另一方面也防止单片机复位时引起控制的误动作。
电冰箱控制程序主要分为三大部分:主程序、定时器T0中断服务程序和定时器T1中断服务程序。(1)主程序
主程序是整个电冰箱的总控制程序,主要实现控制各单元初始化、控制中断、定时、显示、键盘程序的启动与重复等功能。主程序的程序流程图如右图所示。。3.软件设计
T0中断服务程序主要完成电源欠压、过压处理,开门状态检查,以及处理等功能。其程序流程图如右图所示。(2)T0中断服务程序(3)Tl中断服务程序
Tl工作于计数方式,用于制冷压缩机停机后自动延时3分钟才能再启动的时间延时。Tl的中断服务程序主要完成3分钟定时,以及温度、除霜、速冻等各种检测,根据检测结果,比较、分析得出执行元器件工作的状态,并控制对应的元器件工作。Tl中断服务程序流程图如右图所示。7.4.3单片机在里程、速度计量中的应用设计要求:利用单片机实现的自行车里程/速度计能自动显示自行车行驶的总里程数及自行车行驶速度,具有超速信号提醒功能,里程数据自动记忆。也可应用于电动自行车、摩托车、汽车等机动车仪表上。1.总体设计
控制器采用AT89C52单片机,速度及里程传感器采用霍尔元件,显示器通过AT89C52的P0口和P2口扩展。外部存储器采用E2PROM存储器AT24C01,用于存储里程和速度等数据。并用控制器来控制里程/速度指示灯,里程指示灯亮时,显示里程;速度指示灯亮时,显示速度。超速报警采用扬声器,用一个发光二极管来配合扬声器,扬声器响时,二极管亮,表明超速。
2.硬件电路设计
电路原理图如下页图所示。P0口和P2口用于七段LED显示器的段码及扫描输出。在显示里程时,第三位小数点用P3.7口()控制点亮。P1.0口和P1.1口分别用于显示里程状态和速度状态。P1.2,P1.3,P1.6和P1.7口分别用于设置轮圈的大小。P3.0口的开关用于确定显示的方式。当开关闭合时,显示速度;断开时,显示里程。外中断用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。外中断用于控制定时器T1的启停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数脉冲经二分频后形成,这样,每次定时器T1的开启时间正好为轮子转一圈的时间,根据轮子的周长就可以计算出自动车的速度。P1.4口和P1.5口用于E2PROM存储器24C01的存取控制。11脚(TXD)输出用于速度超速时的报警。3.软件设计软件主要包括:主程序、初始化程序、里程计数子程序、数据处理子程序、计数器中断服务程序、E2PROM存取程序、显示子程序。(1)主程序
根据P0口的开关状态切换显示状态,即选择里程显示和速度显示。其流程图如右图所示。程序如下:
ORG 0000H LJMPSTART ;跳至主程序 ORG0003H ;外中断0中断程序入口 LJMPINTEX0 ;跳至INTEX0中断服务程序 ORG000BH ;定时器T0中断程序入口 RETT1 ;中断返回 ORG 0013H ;外中断1中断入口 LJMPINTEX1 ;跳至INTEX1中断服务程序 ORG001BH ;定时器T1中断程序入口 LJMPINTT1 ;跳至INTT1中断服务程序 ORG0023H ;串口中断入口地址 RET1 ;中断返回 ORG002BH ;定时器T2中断入口地址 RET1 ;中断返回 ORG 0050H START:LCALLCLEARMEN ;上电初始化START1:JBP0.4,DISPLAYS ;P0.4=1,则显示里程 LCALLDISPLAYV ;P0.4=0,显示速度START2:SJMPSTART ;转START循环(2)初始化程序
初始化程序主要功能是将T1设为外部控制定时器方式,外中断及设为边沿触发方式,将部分内存单元清0,设置车轮周长值,开中断、启动定时器,将AT24C01中的数据调入内存中,设置车轮圈出错处理程序。
程序如下:CLEARMEN: MOV TMOD,#90 ;T1为16位外部控制定时器 MOV SP,#75H ;堆栈在75H开始 SETB PX0 ;外中断0优先级为1 SETB IT0 ;外中断0用边沿触发 SETB IT1 ;外中断1用边沿触发 MOV A,#00H ;清A MOV 20H,A ;清内存中特定单元 MOV 6CH,A MOV 6DH,A MOV 70H,A MOV 71H,A MOV 72H,A MOV 73H,A MOV 60H,A
MOV 61H,A MOV 62H,A MOV 63H,A ;清内存中特定单元 DEC A ;A为#0FFH MOV 68H,A ;内存置数据#0FFH MOV 69H,A ;内存置数据#0FFH MOV 6AH,A ;内存置数据#0FFH MOV 6BH,A ;内存置数据#0FFH MOV P1,A ;P1口置1CLEAR1: JB P1.2,KEY1 ;根据P1.2,P1.3,P1.6,P1.7设置状态在21H地址单元设置自行车周长值 MOV 21H,#0FH ;22英寸自行车周长系数 LJMP CLEAR2 ;转CLEAR2KEY1: JB P1.3,KEY2 MOV 21H,#12H ;24英寸自行车周长系数 LJMP CLEAR2 ;转CLEAR2KEY2: JB P1.6,KEY3 MOV 21H,#14H ;26英寸自行车周长系数 LJMP CLEAR2 ;转CLEAR2KEY3: JB P1.7,ERR MOV 21H,#19H ;28英寸自行车周长系数CLEAR2: SETB TR1 ;开定时器开关T1 SETB EA ;开中断允许
SETB EX0 ;开外中断 SETB ET1 ;开定时中断T1 SETB P3.1 ;关报警器 LCALL VIICREAD;将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024电子商务平台技术转让合同:技术成果的买卖与许可使用3篇
- 农村集体水井承包合同范本 2篇
- 2024年度工程建设用水供电合同2篇
- 2024年度文化旅游景区开发分包合同2篇
- 二零二四年度版权购买合同涉及图书出版权2篇
- 停车场租赁合同书
- 水电安装工程承包合同(二零二四年度)
- 2024年幼儿教师个人工作计划范文(2篇)
- 技术专家聘用合同 完整版3篇
- 路灯安装维护合同
- 第一章 安培力与洛伦兹力 教学设计 -2023-2024学年高二下学期物理人教版(2019)选择性必修第二册
- 中小学生研学旅行投标方案(技术方案)
- 2025届高考语文复习:古诗文默写分类练习(含答案)
- 2024-2030年中国功能材料行业市场发展现状及发展趋势与投资前景预测研究报告
- 老年糖尿病诊疗指南(2024版)培训试题及答案
- 浙西南民间音乐智慧树知到答案2024年丽水学院
- HG∕T 3704-2003 氟塑料衬里阀门通 用技术条件
- 08SS704 混凝土模块式化粪池
- DL∕T 1845-2018 电力设备高合金钢里氏硬度试验方法
- 医院消除三病母婴传播工作总结汇报
- 部编版九年级上册语文期末复习资料
评论
0/150
提交评论