




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南 阳 理 工 学 院 本科生毕业设计(论文)学院(系): 电子与电气工程系 专 业: 电子信息工程 学 生: 指导教师: 完成日期 2010 年 5 月南阳理工学院本科生毕业设计(论文)智能多通道峰值检测系统软件设计Software Design of Intelligent Multi-channel Peak Detection System总 计:毕业设计(论文)31页表 格:2个插 图:22幅智能多通道峰值检测系统软件设计南 阳 理 工 学 院 本 科 毕 业 设 计(论文)智能多通道峰值检测系统软件设计Software Design of Intelligent Multi-channel Peak Detection System学 院(系): 电子与电气工程系 专 业: 电子信息工程 学 生 姓 名: 李 杰 学 号: 094408015 指 导 教 师(职称):牛军(副教授) 评 阅 教 师: 完 成 日 期: 南阳理工学院 Nanyang Institute of Technology智能多通道峰值检测系统软件设计智能多通道峰值检测系统软件设计电子信息工程 李杰摘 要基于单片机的智能多通道峰值检测系统,是以AT89C51单片机为核心,完成多路模拟信号的输入、峰值检测、模数转换以及数据显示等功能。本文主要进行系统软件部分的设计工作。在系统硬件电路设计的基础上,按照系统工作原理,采用模块化编程思想,主要完成了多通道选择模块、采样/保持模块、A/D转换模块、显示模块、键盘模块等部分的软件编写任务。并利用Proteus软件对A/D转换模块进行了仿真调试。在系统软件设计中加入了数字滤波、指令冗余及软件陷阱等抗干扰措施,保证了系统工作的稳定性和可靠性。关键词 单片机;峰值检测;A/D转换;LED显示 Software Design of Intelligent Multi-channel Peak Detection SystemElectronic Information Engineering Specialty LI JieAbstract:MCU-based intelligent multi-channel peak detection system is based on AT89C51 microcontroller as the core, to complete multi-channel analog signal input, peak detection, analog-digital conversion and data display. In this paper, the system software part of the design work. Hardware circuit in the system, based on the principle according to the system, modular programming ideas, mainly to complete the multi-channel selection module, sample / hold module, A / D converter module, display module, keyboard module part of the software development tasks. Proteus software using the A / D conversion module section simulation debug. Software design in the system by adding a digital filter, instructions and software traps redundant anti-interference measures, to ensure the system stability and reliability of the work.Key words: Single-chip; peak detection; A / D conversion; LED display目 录1 引言11.1 课题背景11.2 峰值检测电路11.3 峰值检测的应用概况12 系统总体设计22.1 系统框图及工作原理22.2 系统主程序设计33 系统各模块子程序设计33.1 多通道选择模块设计33.1.1 多路模拟开关CD405133.1.2 多通道选择模块程序设计53.2 采样/保持模块程序设计53.2.1 LF398 反馈型采样/保持器(SHA)53.2.2 采样/保持模块程序设计73.3 A/D转换模块设计73.3.1 TLC549简介73.3.2 A/D转换模块程序设计93.4 键盘模块程序设计103.4.1 键盘的设计103.4.2 键盘模块程序设计113.5 LED 显示模块设计143.5.1 显示电路设计143.5.2 LED显示模块程序设计164系统软件抗干扰设计174.1 单片机系统的软件抗干扰174.2 系统软件抗干扰措施174.2.1 指令冗余184.2.2 平均值滤波184.2.3 软件陷阱205 系统仿真20结束语22参考文献23附录24致谢31331 引言1.1 课题背景在科学实验、集成电路、工业检测等领域中经常需要对信号的峰值进行检测,如机械的最大冲击力,振动过程中的最大幅值,测试工业过程中的最高温度、最大电流、最大压力等。另外,人们在选择和使用电气设备及电子器件时,也要考虑峰值的影响,因为瞬时峰值往往远大于正常值,它是造成机械事故或电路故障的主要原因,准确的了解峰值,采取必要的措施,可避免故障的出现,因此峰值测量在实际应用中占了十分重要的位置。峰值是在所考虑的时间间隔内,变化的电流、电压或功率的最大瞬间值。在交流电路中,电源的输出电压或电路中某两点之间的电压是在不断变化的,在直流电路中,电压也可能出现波动的情况。那么,电压变化到最高时的数值就称为电压峰值。准确测量峰值对有关课题的研究是有重要意义的。在实际生产过程中,如机械加工工艺过程中,有时候必须对两个不同地方相同类型工艺过程参数峰值进行比较,有时候甚至必须用不同工艺过程参数峰值关系决定工艺流程。如比较两个工件峰值压力的大小,观察工件某处或某几处峰值应力应变关系等,此时单通道峰值检测系统已经难以满足要求,于是多通道峰值检测系统应运而生。1.2 峰值检测电路峰值检测电路(PKD,Peak Detector)的作用是对输入信号的峰值进行提取,产生输出Vo = Vpeak,为了实现这样的目标,电路输出值会一直保持,直到一个新的更大的峰值出现或电路复位1。峰值检测系统的关键任务是检测出峰值并使之保持稳定,且用数字显示峰值。可采用放大器、采样/保持电路,通过A/D转换后,再由单片机把峰值的数字量显示出来。一般由放大器、采样/保持、采样/保持控制电路、A/D(模数转换)、单片机、数码显示及键盘电路等组成。1.3 峰值检测的应用概况随着数字技术,特别是计算机技术的飞速发展与普及,在现代控制、通信及检测领域中,为提高系统的性能指标,对信号的处理无不广泛地采用了数字计算机技术。由于系统实际处理中往往都是一些模拟量,要使计算机或数字仪表能够识别、处理这些信号,必须将这些模拟信号转换成数字信号,即用A/D芯片实现信号由模拟到数字的转换。单片机在工业自动化、智能化仪表中有着非常广泛的应用。在大型的检测和自动控制系统中,单片机系统作为前沿控制正在发挥愈来愈大的作用。基于单片机的峰值测量系统,以其编程灵活,参数修改方便,外围电路简单的明显优势,渐渐的代替了传统的固定电路的峰值检波器。它的特点是充分利用单片计算机技术实现准确的峰值定位检波,不仅能保证检波的效率,而且还能保证A/D变换的可靠性。在实际生产、科研领域中经常会碰到峰值检测问题,诸如测试工件碰撞过程中最大压力,检测矿井钢丝绳允许的最大拉力,检测桁架的最大承受力等。因此,设计一种新型的智能多通道峰值检测系统具有重要的实际意义。2 系统总体设计2.1 系统框图及工作原理(1)系统结构框图本设计中的峰值检测系统,在多路信号经前置放大电路放大后,通过键盘控制通道选择开关进行通道选择,然后把采样/保持后的数据经A/D转换后送至单片机,单片机处理后把测量到的峰值显示出来。采样/保持电路通过比较器的输出与单片机的P1.3口的输出组合进行控制。图1是智能多通道峰值检测系统的结构框图。图1 系统结构框图由图1可以看出,该系统是由AT89C51单片机、放大器、多路开关、采样/保持、采样/保持控制电路、A/D转换电路、显示电路及键盘电路等组成。其中的AT89C51单片机是系统的核心,完成整个输入通道信号的选择、采样、保持、转换、显示等处理。它能方便地选择输入信号的通道,读取采样/保持得到的数据,并控制A/D转换电路和显示电路工作,同时还可以将采样/保持的数据存入EEROM进行永久保存并送到显示器,大大提高了该检测系统的智能化的功能。(2)工作原理单片机的P1.0、P1.1、P1.2三个IO口作为控制信号,对8个通道进行选择。8路输入信号分别经过8个放大器进行放大,放大后送入多路开关。然后,单片机系统检测是否有按键按下,根据按下的按键,给出相应的控制信号,控制多路开关选择所要输入的通道。单片机的P1.3口和比较器的输出经过一个与非门后控制采样/保持电路的工作。采样到峰值以后,单片机启动A/D转换,A/D转换结束后将数据送至单片机,单片机处理后将其送至显示器,从而显示出峰值。2.2 系统主程序设计按照系统设计要求,在保证实现基本功能的基础上,应尽可能降低系统成本。总体方案围绕上述思想,可将整个系统从功能上划分为键盘模块、多通道选择模块、采样/保持模块、A/D转换模块、显示模块。根据系统框图,设计出主程序流程图如图2所示。图2 主程序流程图由图2可以看出,系统工作过程如下。首先对键盘进行扫描,当检测到有按键按下时,则执行相应的键服务子程序,即通道选择模块在单片机的控制下,选择输入哪一个通道的信号。然后对其进行采样,当采样到峰值时,将数据送至A/D转换,转换结束后送至显示缓冲区。最后,单片机控制显示模块显示出输入信号的峰值。3 系统各模块子程序设计3.1 多通道选择模块设计3.1.1 多路模拟开关CD4051 在巡回检测或多路自动测量系统中,需要设置多路转换器来切换各路模拟信号输入。多路模拟信号转换器在智能仪表中应用很广泛。理想多路模拟开关的开路电阻为无穷大,导通电阻为零2。在选用多路模拟开关时,总是希望其切换速度足够快、工作可靠以及功耗小。CD4051是单8 通道数字控制模拟开关, A、B、C 为二进制的控制输入端,INH 为禁止输入端,低电平有效。具有低导通阻抗和很低的截止漏电流。当INH为高电平时,不论C、B、A 为何值,8个通道均不通。实际应用中,常将INH输入端接地。片内有二进制译码器,控制输入CBA 经过译码后,用于选择8路通道中的一路。CD4051与AT89C51的连接如图3所示。图3 CD4051与89C51的连接CD4051相当于一个单刀八掷开关,开关接通哪一通道,由输入的3位地址码ABC来决定,其真值表见表1。表1 CD4051真值表输入状态接通通道XINHC B A0000“0”0001“1”0010“2”0011“3”0100“4”0101“5”0110“6”0111“7”1均不通3.1.2 多通道选择模块程序设计CD4051的A、B、C分别与AT89C51的P1.0、P1.1、P1.2口相连接。由表1可知,输入引脚A、B、C即AT89C51的P1.0、P1.1、P1.2三个IO口的值决定选通哪一个通道。多通道选择模块程序流程图如图4所示。图4 多通道选择程序流程图多通道选择模块主要完成从多个输入通道中选择出一个通道的功能。首先进行按键检测,当检测到有按键按下后,确定是哪一个按键被按下。当0号键被按下时,令P1.0=0、P1.1=0、P1.2=0,选通0通道。当1号键被按下时,令P1.0=1、P1.1=0、P1.2=0,选通1通道。当2号键被按下时,令P1.0=0、P1.1=1、P1.2=0,选通2通道。当3号键被按下时,令P1.0=1、P1.1=1、P1.2=0,选通3通道。当4号键被按下时,令P1.0=0、P1.1=0、P1.2=1,选通4通道。当5号键被按下时,令P1.0=1、P1.1=0、P1.2=1,选通5通道。当6号键被按下时,令P1.0=0、P1.1=1、P1.2=1,选通6通道。当7号键被按下时,令P1.0=1、P1.1=1、P1.2=1,选通7通道。当8号键被按下时,该键为通道巡回检测键。按一次8号键,即顺序启动07通道的巡回检测。3.2 采样/保持模块程序设计3.2.1 LF398 反馈型采样/保持器(SHA)(1)LF398工作原理LF398是一种反馈型采样/保持放大器,也是目前较为流行的通用型采样/保持放大器。与LF398结构相同的还有LF198、LF298等,都是由场效应管构成。具有采样速率高、保持电压下降慢和精度高等特点。LF398由输入缓冲级、输出驱动级和控制电路三部分组成。LF398的功能图如图5所示。控制电路中A2主要起到比较器的作用。其中引脚7为参考电压,当输入控制逻辑电平高于参考端电压时,输出一个低电平信号驱动开关S闭合,此时输入信号经A1后跟随输出到A2,再由A2的输出端跟随输出。同时向保持电容(接引脚6端)充电,而当控制逻辑电平低于参考端电压时,输出一个高电平信号使开关S断开,以达到非采样时间内保持器仍保持原来输入的目的。因此,A1、A2是跟随器,其作用主要是对保持电容输入和输出端进行阻抗变换以提高采样/保持放大器的性能。图5 LF398的功能图 A1为高输入阻抗的场效应管组成的放大器,A2为输出缓冲器,开关S为工作方式控制开关。当开关S闭合时,输入信号VIN经过放大器A1向电容器C充电,此时采样保持器工作在采样方式下;当开关S断开时,采样保持器工作在保持方式下,由于运放的输入阻抗很大,因而在理想情况下,电容器C能保持充电的最终值。保持电容C应选用3001000PF的高性能低漏电云母电容器。控制逻辑在高电平时为采样,在低电平时为保持。采样保持器的作用是在A/D 转换期间保持ADC 输入信号不发生改变。采样保持器有两种工作方式,即采样方式和保持方式。在采样方式下,采样保持器的输出必须跟踪模拟输入电压。在保持方式下,采样保持器的输出将保持采样命令发出时刻的电压输入值,直到保持命令撤销为止3。(2)LF398应用电路由LF398构成的峰值检测电路如图6所示。当信号处于上升阶段,V1V2,比较器输出为高电平;当信号达到峰值后,V1V2,比较器电平反转,成为低电平,启动A/D即可获得此时的峰值电平4。如果给采样/保持放大器一个恒定保持信号,将保持住峰值电平。从图中可以看出,峰值采集精度与送入采样/保持放大器的信号频率有关,一般该脉冲频率宜大于输入信号几倍。图6 峰值检测电路3.2.2 采样/保持模块程序设计采样/保持模块的核心器件是LF398采样/保持芯片,它可对模拟信号进行采样和存储。LF398的8脚是采样/保持的逻辑控制脚,当该脚输入高电平时,LF398进行采样。该管脚输入低电平时,LF398进行保持,保持时,回程阻抗很大,保持能力很强;采样时,输入信号使采样/保持电路C1迅速充电到U2。为了实现多通道峰值数据的采集,又要保证各通道之间数据互不影响,采用了软硬件相结合的控制方案,电路如图7所示。置P1.3为“1”,比较器的输出信号可控制采样/保持器,实现峰值数据的实时采集。图7 采样/保持及控制电路由采样/保持模块程序流程图图8可知,当P1.3口置1时,LF398开始采样。当P1.7口置1时,说明采样到峰值,此时启动A/D转换。若P1.7口为0,则继续采样。图8 采样/保持模块程序流程图3.3 A/D转换模块设计3.3.1 TLC549简介在进行多通道峰值检测的时候,往往需要同时采样多个参数,然后将模拟量转换成数字量,一般情况下,采用多个参数共用一个A/D转换器,计算机对各参数分时进行采样。此时,常常需要有一个多路开关,轮流把各放大器采集的数据送到A/D。此外,在微型机采样系统中,由于A/D转换器的转换过程需要一定的时间,因此,必须保证在A/D转换器转化过程中被测参数保持不变,否则将影响转换精度,特别是当参数的变化速度比较快时更是如此。另一方面,在模拟量输出系统中,也是分时工作的,对于每个单个的系统,也需要保持输出不变,而用来完成这一工作的电路叫做采样/保持器(S/H),多路开关和采样/保持器是数据采集和输出系统中必不可少的一个组成部分5。目前来说,A/D转换器的型号很多,较为常见的是双积分型与逐次逼近型,逐次逼近型A/D转换器,在精度、速度和价格上都适中,外围元件较少,是最常用的A/D转换器件。双积分A/D转换器具有精度高,抗干扰性好,价格低廉等优点,但转换周期一般为几十ms,速率低,不适合系统频率响应要求6。另外,由于本系统的IO口外接的有键盘和显示电路等,而串行按口引脚少、占有PCB面积少、接口简单、能节省宝贵的IO口线。因此,设计中宜采用串行逐次逼近式A/D转换器。在本系统中,采用的是8位串行A/D转换器TLC549,TLC549是以8位开关电容逐次逼近A/D转换器为基础而构造的CMOS A/D转换器。它能通过三态数据输出和模拟输入与微处理器或外围设备串行接口。TLC549仅用输入/输出时钟(CLK)和芯片选择(CS)输入作为数据控制,其最高CLK输入频率为1.1MHZ。TLC549均有片内系统时钟,该时钟与I/O CLOCK是独立工作的,无须特殊的速度或相位匹配。其工作时序如图9所示。图9 TLC的工作时序当CS为高时,数据输出(DATA OUT)端处于高阻状态,此时I/O CLOCK不起作用。这种CS控制作用允许在同时使用多片TLC549时,共用I/O CLOCK,以减少多路A/D并用时的I/O控制端口。通常的控制时序分为以下四步:(1)将CS置低。内部电路在测得CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATA OUT端上;(2)前四个I/O CLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/O CLOCK下降沿开始采样模拟输入;(3)接下来的3个I/O CLOCK周期的下降沿移出第6、7、8(D2、D1、D0)个转换位;(4)最后,片上采样保持电路在第8个I/O CLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位7。保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。第8个I/O CLOCK后,CS必须为高,或I/O CLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。如果CS为低时I/O CLOCK上出现一个有效干扰脉冲,则微处理器将与器件的I/O时序失去同步;若CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。在36个内部系统时钟周期结束之前,实施步骤(1)(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止。本次操作器件读出的是前次转换结果,本次转换的有效结果将在下次操作时读出,读完后同时又启动了新一轮的转换。若要在特定的时刻采样模拟信号,应使第8个I/O CLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/O CLOCK时钟下降沿开始采样,却在第8个I/O CLOCK的下降沿开始保存。3.3.2 A/D转换模块程序设计TLC549可方便地与具有串行外围接口(SPI)的单片机或微处理器配合使用,也可与51系列通用单片机连接使用。TLC549与AT89C51的接口如图10所示。 图10 TLC549与AT89C51的连接A/D转换流程图如图11所示。首先进行初始化,即将CS置为高电平,I/O CLOCK置为低电平,移位计数置为0。然后,将CS置为低电平,选中TLC549,等待1.4s后,将I/O CLOCK置为高电平,读取DATA OUT的数值。检测移位计数是否为0,若为0则说明是第8位,将CS置为高电平。图11 A/D 转换流程图3.4 键盘模块程序设计3.4.1 键盘的设计为了减少键盘与单片机接口时所占用的I/O口线的数目,在键数较多时,通常都将排列成行列矩阵形式。每一水平线(行线)与 垂直线(列线)的交叉处不相通,而是通过一个按键来连通。利用这种行列矩阵结构只需N条行线和M条列线,即可组成具有N*M个按键的键盘8。本设计中按键的作用是对8个通道的输入信号进行选择,需要12个按键。如果采用独立连接式非编码键盘,则需要12个IO口,为了减少对IO口的占用,采用矩阵式非编码键盘。矩阵式键盘与单片机P2口的连接如图12所示,其中P2.0P2.3与行线连接,另一端经电阻与+5V电源相连。P2.4、P2.5、P2.6与列线连接。当P2.0P2.3全为0状态时,若无键闭合,则列线全为1,若有键闭合时,则至少有一个列线变为低电平,再确定是哪一个键被按下。图12 单片机与键盘的连接3.4.2 键盘模块程序设计(1)键盘扫描子程序设计键盘的扫描方式有中断方式和查询方式。在矩阵式键盘中,对键的识别常用逐行扫描查询法。在行列矩阵式非编码键盘的单片机系统中,键盘处理程序首先执行有无键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下9。在设计中,键盘采用查询扫描方式,对键的识别采用逐行扫描查询法。行扫描法识别哪一个按键被按下的工作原理如下。首先判别键盘中有无键按下,由单片机I/O口向键盘送全扫描字,然后读入列线状态来判断。方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根列线电平被拉至低电平,从而使列输入不全为1。判断键盘中哪一个键被按下是通过将行线逐行置低电平后,检查列输入状态实现的。方法是:依次给行线送低电平,然后查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个键。从键盘扫描流程图13可见,程序流程图的前一部分为判别是否有键按下,后一部分为有按键按下时行扫描读取键的位置码。程序在行扫描时,先将行计数器、列计数器设置为0,然后再设置行扫描初值FEH。程序流程图中的FEH的低4位EH是行扫描码,高4位FH是将P2.4P2.7置1为输入方式,在输出扫描字后,立即读出列值,检测是否有列值为低电平。若无键按下,则将行计数器加1,并将行扫描字左移一位,变为FDH。这样使第一行为低电平,其它行为高电平;然后依次逐行扫描,直到行计数器的值大于或等于3时,表明一次行扫描结束。在此过程中若检测到某一列为低电平,则将列值保存;然后再进行列值判别,得到列的位置,存入列计数器转入键位置码的译码程序。明确了键号之后,就转入相应的键服务子程序。图13 键盘行扫描流程图(2)键值处理子程序设计以0号键为例,其键值服务子程序流程图如图14所示。当检测到0号键按下时,单片机的P1.0、P1.1、P1.2口都置为0,这样就选择了0通道。图14 0号键的键值服务子程序流程图8号键为0到7通道的循环检测按键,其键值服务子程序流程图如图15所示。当检测到8号键被按下时,将0号键到7号键的键值服务子程序顺序执行一遍,从而实现07通道的智能多通道顺序检测。图15 8号键的键值服务子程序流程图(3)键盘的去抖动设计键盘实质上是一组按键开关的集合,均利用机械触点的合、断作用。一个电压信号通过机械触点的断开、闭合过程如图16所示。图16 按键抖动信号波形按键在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为510ms。为了确保CPU对一次按键动作只确认一次,必须消除抖动的影响。如果按键较多,常用软件方法去抖动,即检测出键闭合后执行一个延时程序,产生510ms的延时;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确定为真正有键按下。当检测到按键释放后,也要给510ms的延时,待后沿抖动消失后,才能转入该键的处理程序10。软件消除抖动法,不需要增加电子元件,只要编写一段延时程序,就可以达到消除抖动的目的,在软件消除抖动方法中,若CPU检测到有键按下时,先执行一段延时程序后再检测此按键,若仍为按下状态,则CPU认为该键确实按下。同样,当键从按下到再次松开时,CPU检测到有键松开,并在延时一段时间后仍检测到键在松开状态,则认为键确实松开,这样就消除了抖动的影响,实现了软件消除抖动的目的图17所示为软件去抖动判别程序的流程图。图17 软件消除抖动流程图3.5 LED 显示模块设计3.5.1 显示电路设计 单片机应用系统中的显示器通常有LED显示器、LCD显示器及CRT显示器三种类型。LED价廉,配置灵活,与单片机接口方便;LCD可进行图形显示,但接口较复杂,成本也较高。在本系统中显示的数据是AD转换后的峰值,用4个数码管构成4位共阴极LED动态显示,共有4根位选线和32根段选线。发光二极管显示器,简称LED(Light Emitting Diode),LED显示器是由发光二极管构成的,俗称数码管。LED显示器由七个发光二极管组成,称七段LED显示器。此外,显示器中还有一个圆点发光二极管(dp),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字(09),字母(af、AF)及其它符号11。另外,在使用数码管时必须增加限流电阻,以保护数码管。依据位选线连接方式的不同,LED显示器有静态显示和动态显示两种方式。采用静态显示时,位选线同时选通,每位的段选线分别与一个8位锁存器输出相连,各位相互独立。各位显示一经输出,则相应显示将维持不变,直至显示下一字符为止。静态显示方式有较高的亮度和简单的软件编程,缺点是占用口线资源太多。因此选用动态显示方式,即将所有位的相应段选线并在一起,位线则分时轮流选通,利用人眼视觉的暂留现象可以获得稳定的视觉效果。 由于只有8个段发光二极管,所以字型码为一个字节。一般由N片LED显示块可拼接成N位LED显示器。根据显示方式不同,位选线和段选线的连接方法也各不相同。段选线控制显示字符的字型,而位选线则控制显示位的亮、暗12。表2为8段LED显示字型编码表,8段在最高位多小数点段。括号内数字为小数点点亮的段选码。7段不带小数点的字型码,共阴极相当于括号外数字,共阳极相当于括号内数字。表2 8段LED显示字型编码表显示字符共阴极字型码共阳极字型码显示字符共阴极字型码共阳极字型码03FH(BFH)C0H(40H)87FH(FFH)80H(00H)106H(36H)F9H(79H)96FH(EFH)90H(10H)25BH(DBH)A4H(24H)A77H(F7H)88H(08H)34FH(CFH)B0H(30H)B7CH(FCH)83H(03H)466H(F6H)99H(19H)C39H(B9H)C6H(46H)56DH(FDH)92H(12H)d5EH(DEH)A1H(21H)67DH(FDH)82H(02H)E79H(F9H)86H(06H)707H(87H)F8H(78H)F71H(F1H)8EH(0EH)在多位LED显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个(7段LED)4位IO口控制,形成段选线的多路复用。而各位的共阴极分别由相应的IO口线控制,实现各位的分时选通。动态显示电路如图18所示。图18 动态显示电路3.5.2 LED显示模块程序设计4位动态显示原理如下,4位7段LED动态显示电路中段选线占用一个8位IO口,而位选线占用一个4位IO口,由于各位的段选线并联,段选码的输出对各位都是相同的。因此同一时刻,如果各位位选线都处于选通状态的话,4位LED将显示相同字符。若要各位LED能显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其它各位的位选线都处于关闭状态。同时在段选线上输出相应位要显示字符的字型码,这样同一时刻4位LED中只有选通的那一位显示出字符,其它三位则是熄灭的。同样在下一时刻,只让下一位的位选线处于选通状态,而其它各位的位选线处于关闭状态。同时,在段选线上输出相应位将要显示字符的字型码,则同一时刻只有选通位显示出相应的字符,而其它各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而在同一时刻,只要一位显示,其它各位熄灭,但由于人眼有视觉暂留现象,只要每位显示时间足够短,则可造成多位同时亮的假象,达到显示的目的13。图19为LED动态显示程序流程图。图19 LED动态显示的流程图首先,将R0指向显示缓冲区末地址,送位控字为#01H,把位控字送至P3,执行查表指令后,把字型代码送至P0口,在位控字控制下先点亮最右边的LED,并调用延时子程序。再将显示缓冲区末地址减1,指向下一个显示缓冲区单元。将位控字送至累加器A 中,检测累加器A 的第3位,若不为1,则把位控字左移一位后送至P3,执行查表指令把字型代码送至P0口,点亮相应的LED。若A的第3位为1,则子程序结束。在动态扫描过程中,调用延时子程序D1MS,其延迟时间大约1MS。这是为了使扫描到的那位显示器稳定地点亮一段时间,犹如扫描过程中在每一位显示器上都有一段驻留时间,以保证其显示亮度。对显示数据以查表方法得到其字形代码,为此在程序中有字形代码表TAB。从0开始依次写入十六进制数的字形代码。为了进行查表操作,使用查表指令MOVC A,A+DPTR,由DPTR提供16位基址,由A提供变址。4系统软件抗干扰设计4.1 单片机系统的软件抗干扰在微机测控系统中,对软件有以下几个方面的基本要求:(1)可维护性:要求尽可能地采用模块化设计,程序流程清晰明了,最大限度地控制使用和调用嵌套次数;(2)可理解性:软件源代码应注意加注提示内容,一般应该不少于整个代码行数的60,使其易于理解和阅读,便于修改和补充;(3)实时性:随着集合度和运算速度的提高,实时性已经成为测试系统对软件的普遍要求,在工程应用软件设计中,采用汇编语言要比采用高级语言更具有实时性;(4)准确性:系统要求在进行大量运算时,要选取合适的算法,以便控制最后结果的精度; (5)可靠性:可靠性是测控软件最重要的指标之一,它要求两方面的内容:一方面是运行参数环境发生变化时(如电压在规定范围内出现较大波动),软件都能可靠运行并得出正确的结果,也就是软件的自适应性;另一方面是在工作环境恶劣,干扰环境复杂严重的情况下,软件必须保证可靠运行,这对测控软件尤为重要。为了保证以上两方面的要求,就必须使用多种抗干扰技术。 软件抗干扰技术是当系统受干扰后,使系统恢复正常运行或输入信号受干扰后去伪存真的一种辅助方法。此技术属于一种被动抗干扰措施,但是由于软件抗干扰设计灵活,节省硬件资源,操作起来方便简单,所以软件抗干扰技术越来越受到人们的重视。 4.2 系统软件抗干扰措施本系统在软件的抗干扰设计中,主要采用了指令冗余、平均值滤波、软件陷阱等措施。4.2.1 指令冗余CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞” 到了三字节指令,出错机率更大。在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨14。此外,对系统流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。4.2.2 平均值滤波为了克服干扰对A/D转换结果的影响,可根据情况采取相应的数字滤波技术。数字滤波的方法很多,如中值滤波法、平均值滤波法等,经过对不同滤波法的实际使用和试验验证,认为采用防脉冲干扰平均值滤波法,抗干扰效果比较明显。普通的平均值滤波,在干扰十分严重的场合,所得到的平均值中干扰的成分仍比较大,不易消除由于脉冲干扰而引起的误差。而防脉冲干扰平均值滤波是在采集的N个数据中,去掉数据中的最大值和最小值,然后计算N-2个数据的算术平均值。在实际应用中,此法主要是用在AD值的检测上,由于外部设备中AD采集值判定,直接影响此设备能否投入使用,所以对所采集AD值的可靠性要求高,采用此滤波法后,通过仿真可以清楚看出,在某些特定的情况下,AD采集值波动较大,但此法可以有效地避免了CPU对采集值的误判,使软件得以可靠运行15。算术平均滤波不能将明显的脉冲干扰消除,只能将其影响削弱。因为明显干扰使采样值远离真实值,因此,可以比较容易地将其剔除,不参加平均值计算,从而使平均滤波的输出值更接近真实值,防脉冲干扰平均值滤波也称为去极值平均滤波法。去极值平均滤波法的思想是:连续采样n次后累加求和,同时找出其中的最大值和最小值,再从累加和中减去最大值和最小值,按n-2个采样值求平均,即可得到有效采样值。具体作法有两种:对于快变参数,先连续采样n次,然后再处理,但要在RAM中开辟出n 个数据的暂存区;对于慢变参数,可一边采样,一边处理,而不必在RAM中开辟出数据暂存区。本设计中采用的是连续采样n次,去掉最大值和最小值,然后求剩下数据的平均值。R2R3存放最大值,R4R5存放最小值,R6R7存放累加和及最后结果。图20为去极值平均滤波程序流程图。连续采样次数为n次,可以改变为任意次,只须改变R0中的数值即可。去极值平均滤波程序工作过程如下,首先把数据采样次数n 送至R0,读采样值,将采样值的低位暂存A中,采样值的高位暂存B中,将R6R7中的数据与BA中的数据累加后存于R6R7中。若输入值大于R2R3中的最大值,则把输入值存为新的最大值。若输入值不大于R2R3中的最大值,则把输入值与R4R5中的最小值进行比较。若输入值小于R4R5中的最小值,则把输入值存为新的最小值。若输入值不小于R4R5中的最小值,则检测是否达到需要采样的次数n ,若已采样了n次,则把R6R7中的累加和减去最大值和最小值后,再除以2求平均值。若没有达到采样次数,则继续读采样值。图20 去极值平均滤波程序流程图4.2.3 软件陷阱 所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱,其次要将陷阱安排在适当的位置16。 (1)软件陷阱的设计当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱:NOP NOP LJMP 0000H其机器码为0000020000。(2)陷阱的安排通常在程序中未使用的EPROM空间填0000020000。最后一条应填入020000,当乱飞程序落到此区,即可自动入轨。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式: NOP NOP RETI返回指令可用RETI,也可用LJMP 0000H。如果故障诊断程序与系统自恢复程序的设计可靠、完善,用“LJMP 0000H”作返回指令可直接进入故障诊断程序,尽早地处理故障并恢复程序的运行。考虑到程序存贮器的容量,软件陷阱一般1K空间有23个就可以进行有效拦截。在工程实践中通常都是几种抗干扰方法并用,互相补充完善,才能取得较好的抗干扰效果。从根本上来说,硬件抗干扰是主动的,而软件是抗干扰是被动的。细致周到地分析干扰源,硬件与软件抗干扰相结合,完善系统监控程序,设计一个稳定可靠的单片机系统是完全可行的。 5 系统仿真本系统主要针对A/D转换模块在Proteus软件中进行了仿真调试,图21所示为AD转换器TLC549与单片机AT89C51的仿真电路图。在Proteus中画好TLC549的仿真电路图后,即完成硬件部分工件。然后,进入Keil Vision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件,编写好程序后,编译并生成以HEX为扩展名的文件。图21 TLC549仿真电路图在Proteus的编辑状态,点击单片机芯片,在出现的单片机属性设置窗口中,选择Program File栏目,选择编译软件对程序编译后产生的“.HEX”结尾的目标文件,就可以将目标文件写入Proteus中的单片机芯片中,点击运行即可实现单片机仿真,软件和硬件的结合,就是一个完整的单片机应用系统,能够运行单片机仿真,观察实践效果17。单击仿真运行开始按钮,我们能清楚地观察到虚拟终端的变化。在仿真运行开始后,如果虚拟终端没有显示,可单击Proteus的调试(debug)菜单,然后单击virtual terminal-VT1。观察图22所示的TLC549仿真波形图,可以看出,A/D转换部分是符合系统要求的。图22 TLC549仿真波形图结束语本课题智能多通道峰值检测系统软件设计是配合硬件设计使用的,通过与另外一个同学的通力合作,最终完成了本毕业设计课题。本课题所完成的功能是通过51单片机控制多通道选择模块对通道进行选择,控制采样/保持模块对输入信号进行采样/保持,控制A/D模块对采样到的数据进行转换后,由单片机中处理后送至显示模块显示出峰值。设计出了一种智能化峰值检测系统,使峰值检测工作迈向自动化。软件设计主要包括多通道选择模块、采样/保持模块、A/D转换模块、键盘模块、显示模块以及软件抗干扰模块。通过和其他伙伴共同讨论与努力,制定了本课题的软件流程的设计,达到设计目的,完成了设计任务。整个过程中,在老师和同学的共同帮助、相互学习的条件下,使我受益匪浅,学习到了许多新的知识,为我以后的工作路途上打下了坚实基础。但是,由于时间问题以及所学知识有限不能达到预期的要求,然而,这给了我一个启示,就是让我懂得以后的学习中应该补充些什么知识。参考文献1 王福瑞 等,单片微机测控系统设计大全 北京:北京航空航天大学出版社
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北衡水2025-2026学年物理高三第一学期期末预测试题
- 江苏扬州市宝应县公车公司招聘笔试题库及一套完整答案详解
- 2025-2026学年湖北省武昌市物理高三第一学期期末检测试题
- 大同市安全培训中心课件
- 湖南省湘西2025-2026学年高三物理第一学期期末质量跟踪监视模拟试题
- 上海市北虹、上理工附中、同二、光明、六十、卢高、东昌等七校2025-2026学年物理高三第一学期期末综合测试试题
- 2023八年级物理下册 第十一章 功和机械能 第1节 功说课稿 (新版)新人教版
- 加油站安全培训制度课件
- 解析卷人教版8年级数学下册《平行四边形》章节训练试卷(含答案详解)
- 大农业课件教学课件
- 心理咨询经典案例分析
- 2025年浙能集团招聘笔试参考题库含答案解析
- 物业公司化粪池清掏服务方案
- 新《公司法》对国有企业的影响
- 电化学储能系统测试操作方法
- 人教版(新教材)七年级上册地理第一章第一节《地球的宇宙环境》教学课件
- 物业楼宇管家岗位培训
- 劳动合同(模版)4篇
- 第10课《往事依依》公开课一等奖创新教学设计-1
- 剪映操作全教程
- 2024年新人教版数学七年级上册全册课件
评论
0/150
提交评论