《单片机应用系统的开发.ppt》由会员分享,可在线阅读,更多相关《单片机应用系统的开发.ppt(68页珍藏版)》请在三一办公上搜索。
1、单片机应用系统的开发,10.1 单片机应用系统设计,10.2 单片机开发系统,10.3 单片机应用系统的抗干扰技术,10.4 应用系统设计实例,教学要点,本章是在掌握单片机软硬件原理的基础上学习系统的设计与开发难点:单片机系统的开发与设计重点:单片机系统开发步骤及方法了解:单片机系统软件抗干扰 硬件抗干扰技术,10.1 单片机应用系统设计,10.1.1 总体设计,10.1.2 硬件设计,10.1.3 软件设计,10.1 主讲内容,10.1 单片机应用系统设计,单片机应用系统是指以单片机为核心,配以一定的外围电路和软件,能实现某种或几种功能的应用系统。它由硬件部分和软件部分组成。该系统设计包括总
2、体设计、硬件设计、软件设计、制版、元器件安装等。开发步骤:系统需求分析系统总体方案设计系统硬件电路设计系统软件设计系统调试,10.1.1 总体设计,1系统总体需求分析 一方面应该对用户和市场的需求,了解用户对新系统的要求,另一方面还要对国内外同类系统的状况进行详细的分析调查。2系统可行性分析 市场或用户需求 经济效益和社会效益 技术支持与开发环境 系统的目前竞争力和未来生命力 3系统方案设计 4划分硬件、软件任务,画出系统结构框图,10.1.2 硬件设计,单片机系统的硬件设计有从元件级上的设计和利用应用板(单片单板机)构成系统两大类。1、从元件级上的设计:配置必须的存储器、接口电路和外围设备而
3、组成一个系统。要考虑的主要因素有:微处理器选择、存储器配置、输入通道设计、输出通道设计、电源配置和打印、显示、报警、通信、操作、信号等接口电路。2、利用应用板设计:指选用市面上销售的通用单片单板机产品,可以缩短开发周期。,10.1.2 硬件设计,硬件电路设计时应注意的几个问题:程序存储器:尽量避免用小容量的芯片组合扩充成大容量的存储器。数据存储器和IO接口:应尽量减少芯片数量,使译码电路简单。地址译码电路:优先考虑线选法 总线驱动能力:数据总线宜采用双向8路三态缓冲器74LS245作为总线驱动器;地址和控制总线可采用单向8路三态缓冲器74LS244作为单向总线驱动器。系统速度匹配,10.1.3
4、 软件设计,按照先粗后细的办法,把整个系统软件划分成多个功能独立、大小适当的模块,应有以下特点:结构清晰、简捷、流程合理 各功能块程序化、子程序化 程序存储区、数据存储区规划合理 各功能程序的运行状态、运行结果以及运行要求尽量设置状态标志 做好抗干扰设计 设置自诊断程序,开始,系统需求和可行性分析,确定系统总体方案设计划分软硬件功能,硬件设计,绘制硬件框图设计硬件电路绘制印刷电路板图制作电路板硬件电路调试,软件设计,软件资源划分软件结构模块划分程序设计程序调试,系统综合调试,排除故障,修正软硬件,程序固化,应用系统独立运行,完成研制,图10-1 单片机系统开发流程图,10.2 单片机开发系统,
5、10.2.1 单片机应用的开发,10.2.2 开发工具的组成和功能,10.2.3 具体开发系统简介,10.2 主讲内容,10.2.4 单片机应用系统的调试,10.2.1 单片机应用的开发,1开发的意义 单片机应用的开发,其本质意义就是软件的开发,即满足要求的应用程序的开发。,10.2.1 单片机应用的开发,1开发的意义 2开发需要解决的问题 编程:根据开发工具的性能,可以有机器语言、汇编语言和高级语言三种不同级别的编程方式。排错:主要是指对单片机应用系统的硬件、软件进行综合调试。仿真:仿真实际上也是一种软件和硬件综合在一起的排错调试手段,它能加速目标应用系统的开发。,10.2.1 单片机应用的
6、开发,1开发的意义 2开发需要解决的问题,3开发的手段 通用机模拟开发 此类开发由通用计算机加模拟开发软件构成。模拟开发系统的工作原理是利用模拟开发软件在计算机上实现对单片机的硬件模拟、指令模拟,不需要任何在线仿真器和目标机。,10.2.1 单片机应用的开发,1开发的意义 2开发需要解决的问题,3开发的手段 通用机模拟开发 在线仿真开发 在线仿真就是把开发的目标系统连接到仿真器上,在仿真软、硬件环境支持下的在线开发。开发工具也有不同类型。主要有以下三种:通用型单片机仿真器开发系统 实用型开发系统 通用机开发系统,10.2.2 开发工具的组成和功能,1开发工具的组成 主机 EPROM编程器 在线
7、仿真器 仿真软件,10.2.2 开发工具的组成和功能,1开发工具的组成 2实时在线仿真功能 实时在线仿真器的功能可以分为调试功能和辅助设计功能。调试功能 运行控制功能:应能以单步、断点(多种断点条件)、连续三种方式运行程序 状态的读出和修改功能:用户可以读出修改目标系统所有资源的状态,以便检查运行的结果。跟踪功能:具有逻辑分析仪的功能。,10.2.2 开发工具的组成和功能,1开发工具的组成 2实时在线仿真功能 实时在线仿真器的功能可以分为调试功能和辅助设计功能。调试功能 辅助设计功能 程序设计语言:MCS-5l系列单片机常用的高级语言有:PLM51、C-51、MBASIC-5l等。程序编辑 其
8、它软件功能:如反汇编程序和实用子程序库。,10.2.3 具体开发系统简介,以性价比相对较高的伟福公司的E6000系列仿真器为例予以介绍:伟福的调试环境一般在硬件调试或软硬件统调时才需要仿真器;在调试许多数据处理的子程序的算法模块时,只需要软件环境。1E6000通用仿真器概述 具有仿真主机+POD(仿真头)组合,通过更换POD可支持多类CPU的仿真。伟福的软件调试环境,集成了编辑器、编译器、调试器等多个功能,使用户的任务可以在一个环境下完成。如下页图,说明三个主要特点,可在线直接修改、编译、调试源程序,如果源程序有错,可直接定位错误所在行,有多语言多模块混合调试,支持ASM(汇编)、PLM、C语
9、言多模块混合源程序调试,主菜单包括文件、编辑、搜索、项目、执行、窗口、外设、仿真器以及帮助等,10.2.3 具体开发系统简介,E6000仿真器系列有3种型号,分别为E6000L/E6000T/E6000S型,它们的外形示意图如图10-2所示,图10-2 伟福E6000系列仿真器外形图,10.2.4 单片机应用系统的调试,单片机应用系统调试包括硬件调试和软件调试两项内容。1.硬件调试 硬件调试的任务是排除应用系统的硬件电路故障,包括设计性错误、工艺性故障和样机故障:脱机测试 检查线路 核对元器件 检查电源系统 外围电路调试,10.2.4 单片机应用系统的调试,单片机应用系统调试包括硬件调试和软件
10、调试两项内容。1.硬件调试 硬件调试的任务是排除应用系统的硬件电路故障,包括设计性错误、工艺性故障和样机故障:脱机测试 联机调试 测试扩展RAM 测试I/O接口和设备 试验晶振和复位电路 测试A/D和D/A转换电路 其它外设的测试,10.2.4 单片机应用系统的调试,单片机应用系统调试包括硬件调试和软件调试两项内容。1.硬件调试 2.软件调试 单步运行 断点运行 连续运行 检查和修改存储器单元的内容 检查和修改寄存器的内容 符号化调试,10.2.4 单片机应用系统的调试,单片机应用系统调试包括硬件调试和软件调试两项内容。1.硬件调试 2.软件调试 3.软硬件综合调试 在系统综合调试时,应将全部
11、硬件(包括外设)连接好,应用程序也都组合好。进行完整系统的软硬件调试,不断地调整修改应用系统的软硬件,进一步排除较难发现的软硬件错误,使系统达到预期的技术指标。,10.3 单片机应用系统的抗干扰技术,10.3.1 干扰的种类及干扰源,10.3.2 硬件抗干扰技术,10.3.3 软件抗干扰技术,10.3 主讲内容,10.3.1 干扰的种类及干扰源,1按干扰信号产生的原因分类 放电干扰信号 高频振荡干扰信号 浪涌干扰信号,10.3.1 干扰的种类及干扰源,1按干扰信号产生的原因分类 2按噪声传导模式分类 串模干扰:串模干扰,又称线间感应干扰或常模干扰,指干扰电压与有效信号串联叠加后作用到单片机应用
12、系统上的。共模干扰 共模干扰指输入通道两个输入端上共有的干扰电压。这种干扰可以是直流电压,也可以是交流电源 按信号波形不同,还可将干扰信号分为持续正弦波和各种偶发脉冲电压波形脉冲列等形式。,10.3.2 硬件抗干扰技术,1接地技术 单点接地,图10-6 单点接地,主要适用于低频和直流电路,又分并联型单点接地和并-串联型单点接地。,10.3.2 硬件抗干扰技术,1接地技术 单点接地 多点接地,图10-7 多点接地,主要适用于高频电路,要尽量避免形成环路。,10.3.2 硬件抗干扰技术,1接地技术 单点接地 多点接地 混合接地 混合接地是一种将单点和多点方式综合应用的接地法,它主要适用于复杂的应用
13、系统中。,10.3.2 硬件抗干扰技术,1接地技术 2屏蔽技术 以金属板、金属网或金属盒构成的屏蔽体能有效的对付电磁波的干扰。屏蔽体以反射方式和吸收方式来削弱电磁波,从而形成对电磁波的屏蔽作用。对付低频电磁波干扰最有效的方法是选用高导磁材料做成的屏蔽体;屏蔽电场或辐射场时,选铜、铝、钢等导电率高的材料作屏蔽体;当屏蔽低频磁场时,选择磁钢、坡莫合金、铁等导磁率高的材料;而屏蔽高频磁场因选择铜、铝等导电率高的材料。屏蔽体应按“一点接地”的原则接地。,10.3.2 硬件抗干扰技术,1接地技术 2屏蔽技术 3隔离技术 隔离的实质是把引进的干扰通道切断,达到隔离现场干扰的目的。隔离技术包括物理隔离和光电
14、隔离两种。物理隔离 光电隔离,10.3.2 硬件抗干扰技术,1接地技术 2屏蔽技术 3隔离技术 4滤波技术 滤波是为了抑制噪声干扰。利用电容、电感等储能元件可以抑制因负载变化而产生的噪声。为了进行滤波或去耦,通常可在主要集成电路的电源与地之间并联一个0.010.1F电容器,可在电源线的入端分别并连50F的电解电容器和0.01f电容器,这在印刷电路板上是经常看到的。,10.3.2 硬件抗干扰技术,1接地技术 2屏蔽技术 3隔离技术 4滤波技术 5去耦技术 去耦技术是在电路中适当配置去耦电容。最常用的采用办法是在印制电路板的各个集成电路上配置去耦电容。去耦电容一方面提供和吸收该集成电路开门关门瞬间
15、的充放电能量,另一方面旁路掉该器件的高频噪声。去耦电容一般按C=1/f选用,其中f为电路频率,即10MHz取0.1F。单片机应用系统中,C的值取0.10.01F之间均可以。,10.3.3 软件抗干扰技术,1数字滤波技术 算术平均法 对一点数据连续多次采样,计算其算术平均值,以其平均值作为该点采样结果。一般K为次即可。可减少系统的随机干扰对采集结果的影响。,10.3.3 软件抗干扰技术,1数字滤波技术 算术平均法 比较舍取法 当控制系统测量结果的个别数据存在偏差时,为了剔除个别错误数据,可采用比较舍取法,即对每个采样点连续采样数次,根据所采数据的变化情况确定舍取办法,剔除偏差数据。,10.3.3
16、 软件抗干扰技术,1数字滤波技术 算术平均法 比较舍取法 加权平均法,Xn为采样值,Yn为加权输出。,10.3.3 软件抗干扰技术,1数字滤波技术 算术平均法 比较舍取法 加权平均法 一阶递推数字滤波法 利用软件完成RC低通滤波器的算法,代替硬件RC滤波器。,Q 数字滤波系数;Xn第n次采样时的滤波器输入;Yn第n次采样时的滤波器输出;Yn-1第(n-1)次采样时的滤波器输出。,10.3.3 软件抗干扰技术,1数字滤波技术 2指令冗余 在软件设计时,应多采用单字节指令,并在程序中一些关键地方插入NOP空操作指令。如在一些对程序流向起决定作用的指令(如RET、RETI、ACALL、AJMP、JZ
17、、CJNE、DJNZ等等)之前插入两条NOP指令。,10.3.3 软件抗干扰技术,1数字滤波技术 2指令冗余 3采用软件陷阱 软件陷阱由3条指令构成,常安排在未使用的中断区,未使用的大片ROM空间,数据表格区的尾部。NOP NOP LJMP 0000H,10.3.3 软件抗干扰技术,1数字滤波技术 2指令冗余 3采用软件陷阱 4“看门狗”技术“看门狗”技术就是不断监视程序循环运行时间,即在程序中定期的对看门狗定时器不断清零,一旦发现时间超过已知的循环设定时间,则认为系统陷入了“死循环”,然后强迫程序返回到0000H入口,在0000H处安排一段出错处理程序,使系统运行纳入正轨。设计“看门狗”时可
18、利用片内定时器,更可靠的是设计专门看门狗电路。,10.4 应用系统设计实例,10.4.1 系统分析和总体设计,10.4.2 系统的硬件电路设计,10.4.3 系统的软件设计,10.4 主讲内容,10.4 应用系统设计实例,现要求设计一个单片机温度控制系统,自动控制一个温室的温度,实现如下功能:要求温室温度为三档:第一档为室温,第二档40,第三档为50。温度控制误差2。升温由3台1000W的电炉实现。若3台电炉同时工作时,可保证温室温度在3min内超过60。要求实时显示温室温度,显示位数为3位,即.(如38.7)。当不能保证所要求温度范围时,发出声光报警信号。对升温和降温过程时间不作要求。,实例
19、,系统总体分析系统硬件设计系统软件设计,10.4.1 系统分析和总体设计,1.对温度控制系统的分析 温度测量 模拟信号到数字信号的转换(A/D)温度控制 电炉的通电或断电实现实现温度控制,需要开关量输出通道。温度给定 要有相应的给定输入装置,如键盘。温度显示 按要求实时显示温室的温度值。报警 声光报警信号。,10.4.1 系统分析和总体设计,1.对温度控制系统的分析 2.控制方案的确定 对温度控制精度要求不高,可选用继电器控制方式 第一档 给定温度为室温,切除所有电炉。第二档 给定温度为40,一般情况为1台电炉工作。第三档 给定温度为50,一般情况为2台电炉工作。检测温室 取A/D采样周期为3
20、0s。,10.4.1 系统分析和总体设计,1.对温度控制系统的分析 2.控制方案的确定 3.硬件和软件功能划分 硬件系统包括:温度测量电路,即传感器、放大器、A/D转换及接口;温度控制电路,即开关量输出和电炉驱动;温度显示电路和输出报警电路等。,10.4.1 系统分析和总体设计,1.对温度控制系统的分析 2.控制方案的确定 3.硬件和软件功能划分 硬件系统 软件功能包括:温度检测(定时采样、软件滤波)功能;利用定时器实现30s定时,以满足采样周期的要求;温度控制的实现,三台电炉的通电与断电;实现定时器30s定时,满足采样周期的要求;显示温度和输出报警。,10.4.1 系统分析和总体设计,1.对
21、温度控制系统的分析 2.控制方案的确定 3.硬件和软件功能划分 4.系统结构框图,10.4.2 系统的硬件电路设计,1.单片机的选择 本例对控制精度要求不高,控制功能一般,此外采集和处理的数据不多且不需要保留,故选择常用的MCS-51系列单片机中的8051作为CPU即可。注:选择单片机时,要根据题目的要求结合单片机的内部资源来确定单片机的型号。,10.4.2 系统的硬件电路设计,1.单片机的选择 2.输入通道设计 包括温度传感器、放大器和A/D转换器三部分。温度检测采用温度传感器AD590,运算放大器OP07作为信号放大器,A/D转换器采用ADC0809。,点击演示输入信号流向,为了便于标度变
22、换,电阻R1、R2和电位器RP1、RP2的选择原则是:当温度为0,使运放输出电压为0;当温度为60时,调节RP2使运放输出电压为4.69V。,10.4.2 系统的硬件电路设计,1.单片机的选择 2.输入通道设计 3.输出通道设计 输出通道有3条,光电耦合双向晶闸管驱动电路,分别控制3台电炉通电和断电。,10.4.2 系统的硬件电路设计,1.单片机的选择 2.输入通道设计 3.输出通道设计 4.人机接口设计 温度设定电路 本例采用BCD码拨盘,利用P1口的高4位作为数值输入,这样P1口就具有输入和输出双重功能。,图10-11 拨盘输入电路,10.4.2 系统的硬件电路设计,1.单片机的选择 2.
23、输入通道设计 3.输出通道设计 4.人机接口设计 温度设定电路 温度显示电路 温度值采用LED显示。可以利用串行口的移位寄存器功能,扩展为三位静态显示LED接口电路,如图10-12所示。图中P1.3作为输出控制。,10.4.2 系统的硬件电路设计,1.单片机的选择 2.输入通道设计 3.输出通道设计 4.人机接口设计 温度设定电路 温度显示电路 报警电路 报警电路仅需要一位开关量输出控制,采用8031的I/O口线即可,如图10-13所示。,图10-13 报警电路,10.4.3 系统的软件设计,1.软件总体设计 根据题目要求及硬件设计,软件设计需满足以下要求:温度检测 定时启动A/D转换,采取四
24、点平均值滤波法抑制信号的干扰。温度控制 比较温度检测值和给定值,控制P1.0、P1.1、P1.2状态,控制电路的通断。定时采样 利用8031的片内定时器T0或T1,进行30s定时,以满足采样周期的要求。温度显示 在每次检测温度后,将新的温度检测值经过标度变换后由串行口输出给LED显示器。蜂鸣报警 将每次温度检测值与设定值作比较,如果其差值超出允许范围进,从P0.0输出报警信号,并将程序转入事故处理程序。,软件抗干扰,10.4.3 系统的软件设计,程序结构设计 应用程序结构采用中断方式,由定时器发出定时中断申请。主程序进行系统初始化,包括定时器、I/O口和中断系统的初始化,等待定时中断。在中断服
25、务程序中,先判断是否到30s。若不到30s,返回;若到30s,进行以下操作:拨盘设定值检测、温度检测、标度变换、温度显示和温度控制,并根据温度检测值决定是否报警。据此可设计出应用程序总体结构如图10-14所示。程序模块划分 在应用程序总体结构中,将以下6个功能程序作为模块程序:温度设定输入、温度检测、温度值标度变换、温度显示、温度控制和报警程序模块。,10.4.3 系统的软件设计,温度检测程序模块 温度检测程序的功能是连续进行4次A/D转换,求取转换结果的平均值,存入内部50H单元。A/D转换采用查询方式。,10.4.3 系统的软件设计,TADC:MOV 50H,#00H;清结果单元 MOV
26、B,#00H;清寄存器B MOV R6,#04H;送转换次数 MOV DPTR,#7FFFH;送ADC地址TT0:MOVX DPTR,A;启动ADC NOP NOP JB INT0,$;等待转换结束 MOVX A,DPTR;读A/D结果 ADD A,50H;累加转换结果 MOV 50H,A JNC TT1 INC B;保存累加进位,10.4.3 系统的软件设计,TT1:DJNA R6,TT0 CLR C;(BA)除以4 XCH A,B RRC A XCH A,B RRC A CLR C XCH A,B RRC A XCH A,B RRC A MOV 50H,A;4次检测平均值送50H RET,
27、软件抗干扰,10.4.3 系统的软件设计,温度控制程序模块 温度控制程序的功能是将温度实测值(存于50H单元)与设定值(存于51H单元)作比较,如测值高于设定值1(注意,此值小于要求误差2,对应的数字量为04H),则关闭一台电炉;如实测值低于设定值,则接通一台电炉;否则不予调节。三台电炉的接通顺序是3#、2#、1#,关闭顺序是1#、2#、3#。,图10-16 温度控制程序流程图,10.4.3 系统的软件设计,CONT:MOV A,50H;温度检测值送ACLR CSUBB A,51H;检测值与设定值比较JC LLT0;若检测值设定值,转LLT0SUBB A,#04HJNC LT1;若(检测值-设
28、定值)1,转LT1RET;若差值1,返回LT1:JNB P1.0,LT2;若1#电炉已关断,转LT2CLR P1.0;否则关1#电炉RETLT2:JNB P1.0,LT3;若2#电炉已关断,转LT3CLR P1.1;否则关2#电炉RETLT3:CLR P1.2;关3#电炉RET,10.4.3 系统的软件设计,LLT0:CPL A;检测值设定值时的处理INC A;(A)=设定值-检测值CJNE A,#04H,LLT1RETLLT1:JNC LLT2;若差值1,转LLT2RET;否则返回LLT2:JB P1.2,LLT3;若3#炉已通电,转LLT3SETB P1.2;否则接通3#炉RETLLT3:
29、JB P1.1,LLT4;若2#炉已通电,转LLT4SETB P1.1;否则接通2#炉RETLLT4:SETB P1.0;接通1#炉RET,主程序和中断服务程序设计 ORG 0000HAJMP MAINORG 000BHAJMP T0INT;转定时中断服务程序ORG 0030HMAIN:MOV SP,#60H;设堆栈指针MOV P1,#0F0H;置P1.4P1.7为输入,;清零P1.0P1.3,关电 炉、关显示MOV TMOD,#01H;定时器0初始化MOV TH0,#02HMOV TL0,#18HSETB ET0;允许T0中断SETB EA;CPU开中断SETB TR0;启动T0 MOV R
30、7,#0E7H;置软件记数器初值LM0:AJMP LM0;等待T0中断,10.4.3 系统的软件设计,;中断服务程序T0INT:MOV TH0,#02H;恢复T0时间常数MOV TL0,#18HDJNZ R7,T0R;判断到30s否,不到则返回MOV R7,#0E7H;否则恢复R7初值ACALL TREF;调温度设定值检测程序ACALL TADC;调温度设检测程序ACALL XSCL;调标度变换程序ACALL DISP;调显示程序ACALL CONT;调控制程序ACALL ALARM;调报警程序T0R:RETI,10.4.3 系统的软件设计,应用程序主要功能 当拨码盘设定值为1时,控制温度为室
31、温;设定值为2时,控制温度为402;设定值为3时,控制温度为502。如果设定值不是1、2或3,则显示出错误信息,提醒用户重新进行温度设定。温度显示形式为3位十进制数:2位整数和1位小数,即“.”。如果实际温度与设定温度的差值大于5,发出警报信号。差值小于5后,报警信号自动撤除。,10.4.3 系统的软件设计,温度控制方式 温度控制采用继电控制方式,用通断电炉的方法调节温度,采样周期为30s。应用程序占用资源情况 50H温度检测值存放单元;51H温度设定值存放单元;5DH5FH显示缓冲区;60H7FH堆栈;A、B、R0、R6、DPTR工作寄存器;R7软件计数器。使用内部定时器/计数器0作采样周期定时器,中断方式。,10.4.3 系统的软件设计,本章内容结束!,