单片机典型案例开发(五)
2015-08-06 来源:elecfans
1、引言
在电路测试过程中常常会碰到由于忽略某些小电阻的影响引起实验数据与理论值之间存在较大误差,从而影响测试效果。例如电感器、变压器中往往存在铜电阻,地铁铁轨的电阻;由于其数值较小,一般的指针万用表无法测量出来;通常实验室里会用电桥进行测量,但电桥操作手续较烦,又不能直接读出被测电阻阻值。鉴于此,我们采用了单片机,利用单片机的优势设计了该测量仪。该测量仪可直接从LCD显示屏上读出所测得的电阻值,测量范围为10μΩ~2.9999kΩ,同时可以把测试的数据进行储存,然后经串行口送入上位机,通过上位机的强大功能,可以对所测得的数据进行分析、处理。该测试仪的测量精度高达±0.1%,并采用四端测量法,电阻值不受引线长短及接触电阻的影响。不仅测量简便,读数直观,且测量精度、分辨率也高于一般电桥。可用于实验室、研究所,尤其适用于工作现场。
2、测试原理
如上图本机的基本原理是采用在被测电阻上通过已知的恒定电流,取出被测电阻上的压降,经放大器放大转换为0~3V直流电压,然后送入C8051F005A/D转换的输入端,经单片机处理,最后经过液晶显示器直接显示电阻阻值。
由于要实现对微小电阻的测量,所以要求放大器的分辨率高(高潮达10μV),线性度好,输入阻抗高,并要求漂移低、抑制噪声和抗干扰能力强,为此我们设计了如图2中信号处理电路所示的差动放大器。此放大器由运放A1、A2组成第一级差分式电路,A3组成第二级差分式电路,R3、R4、RW组成反馈网络,引入了深度电压串联负反馈,故有较高的输入阻抗,且A1、A2都选同相端作为输入端,则它们的共模输出电压和漂移电压也都相等,再经过A3组成的差分式电路,可以互相抵消,故它有很强的共模抑制能力和较小的输出漂移电压;A4是电压反向跟随器,其作用是使前后级隔离。分析此电路可得下列方程。
当R5= R7、R6= R8时,上述方程化简可得:
从(3)式知输出电压U4与被测电阻RX成正比。放大器的倍数由R3、R4、RW而定,由于A/D转换器的输入电压为0~3V,本仪器设置放大器的放大倍数为10倍,在U4端得到0~3V的直流电压。为了保证放大器的分辨率和稳定性,除上述电路本身优点外,集成运放A1、A2、A3选用了高精度、低噪声、低漂移的max495,反馈支路的电阻均选用高精度、低温度系数的精密电阻,此外还采取了一些屏蔽措施有效地抑制了噪声和干扰。测试时被测电阻与测试仪器间采用四端接线法,恒流源电流经IN1输入从IN2输出,测量时用四根专用导线与被测电阻Rx连接,当被测电阻较小时,为了避免导线电阻和接触电阻的影响,四根连接导线要做到特性一致、阻抗相同,这样就可以消除导线电阻和接触电阻的影响。
3、小电阻测试仪的硬件设计
该仪器的核心部分是能够实现各种功能的电路板,它采用了CYGNAL公司的C8051Fxxx型单片机C8051F005。该系统主要包括电源电路、信号采集电路、信号放大电路、液晶驱动及显示电路、串行通讯电路、系统复位电路和C8051F005单片机系统电路(包括模数转换电路)。系统各部分的详细电路如图2所示。
3.1、C8051F005单片机系统电路
本系统使用的是C8051F005,它具有如下特点:
片内有多达60KB的Flash ROM和2KB RAM,用户无需再外扩存储器;
一个12位的A/D转换器ADC12,自带采样保持功能;
两通道串行通讯接口,可用于异步或同步模式;
一个模拟比较器,可实现电压比较或基准电压的输出。
ADC12是12位精度的A/D转换模块,带有采样保持功能,具有高速、通用的特点。它有8个外部信号采样通道和4个内部通道。由差动放大器输出的信号由通道0输入单片机,A/D转换的时钟、转换模式和参考电压源都可以由用户用软件设置。
由于该单片机内部集成了众多的外围模块,不但使电路的设计变得简单,还可以大大缩小电路板的尺寸。另外,在电路板上预留一个JTAG接口,再配以一个普通的PC机,就可以很方便地实现系统软件的调试。
图2、系统详细电路图
3.2、串行通讯电路
C8051F005单片机内部集成了两个通用串行同步/异步模块USART0和USART1,均支持两种不同的串行协议,即;通用异步协议(UART协议)和同步协议(SPI协议)。本电路采用UART协议,再通过一个RS232接口芯片MAX3221E与PC机通讯。
MAX3221E是工作电压为+3.0~+5.5V、仅需1μA的供给电流且具有自动关闭功能的单路RS-232收发器。C8051F005单片机的一大特点就是低功耗,它有多种功耗状态可以编程控制。MAX3221E也是具有低功耗特点的接口器件,通过EN、FORCEON、FORCEOFF引脚可以控制驱动器、接收器的工作状态,启动或禁止自动降低功耗功能,从而使其工作在不同的能耗状态,达到降低功耗的目的。
3.3、电源电路
本系统采用电池供电,这样既可以保持系统运行的稳定可靠又可便于在实验室以外的环境下使用。
3.3、LCD驱动及显示电路
LCD显示选用型号为SMS0501C段码显示驱动器。该液晶显示器的接口方式为二线式串行接口,显示方式为反射式正显示,工作电压为2.7V~5.5V。
3.4、其他电路
除了以上几个主要的电路外,系统还有电源欠压检测电路和系统复位电路等。电源欠压检测电路采用的是C8051F005单片机内部集成的模拟比较器来实现。系统复位电路采用按钮复位形式,利用电容的充放电对单片机进行正确复位。当按钮被按下时,C8051F005单片机的RST引脚即为低电平,只要这个低电平保持2个机器周期以上,单片机即可正确复位。
4、软件设计
本系统的软件设计采用模块化设计的方法,整个程序包括主程序、数据采集程序、数据处理程序、串行通讯程序、定时器中断程序、LCD显示程序。所有的程序均采用C语言编写,可以很方便地调试和下载程序代码。限于篇幅,本文只给出主程序的流程图,如图3所示。
系统的主程序主要完成C8051F005单片机系统的初始化、设置系统时钟和中断字,调用键盘处理程序,根据不同的按键转入相应的服务程序,完成不同的功能,如数据的采集与处理、串行通信以及历史记录的查询。其中串行通讯子程序不仅可以将单片机存储的数据传送到PC机进行处理分析,用户也可以根据情况从PC机上设置待测数据多少以及测试时间的长短等。
5、结束语
测试准确,该仪器在对10μΩ~10Ω的微小电阻测试时读数稳定性也较好,且测量精度高。
根据如上所述的电路原理,开发出了样机,经实验证明该仪器的功耗低,这样就大大增加了电池的使用寿命;体积小,重量轻,便于携带,很适合在野外及工作现场使用。
二、用89C2051单片机制作的电话回拨器
该电话回拨器采用单片机控制,具有电路简单、接触可靠、使用方便等优点。
一、工作原理
电路见附图所示,系统由摘机,挂机电路、单片机拨号控制电路、DTMF号码产生及放大电路、电源电路等四部分组成,下面分别予以介绍
1.摘机/挂机电路
图中,J1为电话线进线插座,J2为该装置所并联的电话机插座,Rl为保险电阻;DI—D4为极性保护电路,用于将线路上极性不确定的电压转换成极性固定的电压,保证无论电话线的正负极如何连接,都能使进入开关管VI发射极的一端始终是正电压;V1是电子开关,该开关的通、断受单片机P3.7口控制,当P3.7为高电平时.V2、VI相继导通,电话线路上的48V电压通过VI加到R5两端,电话线上有电流通过,此时处于摘机状态;当P3.7为低电平时.V2、VI截止。电话线上没有电流通过,此时处于挂机状态。在摘机状态,由电话机房送出的48V供电电压大部分由电话线的线路电阻衰减.R5两端产生的电压降大约在5V~15V之问。
2.单片机拨号控制电路
89C2051完成对拨号芯片的控制,R8、c5为复位元件,完成上电复位,JTI为6MHz晶振。
用Pl口的8根线完成对拨号芯片的控制。
3.DTMF号码产生及放大电路
使用MK5087型DTMF拨号专用芯片。该芯片原本是行列式按键输入芯片,即4条行线及4条列线组成16个按键,实践证明,该芯片不但具有行列式键盘输入,而且与51系列单片机具有良好的接口性能。下面对该芯片各引脚的功能予以介绍。
第(1)脚:电源正极,工作电压范围为3.5V—10V。(2)脚:状态输出端,当芯片发出DTMF信号时。该脚呈低电平,否则呈高电平。(3)、(4)、(5)、(9)脚:键盘列线输入端,内接下拉电阻,高电平有效,当该脚与任一行线连接,或者一条行线与一条列线同时有效时,此时芯片发出DTMF信号。
(6)脚:电源负极。(7)、(8)脚:振荡输入、输出端,接3.58MHz晶体。(10)脚:该脚与第(2)脚正好相反,当芯片发出DTMF信号时,该脚呈高电平,否则呈低电平。(11)、(12)、(13)、(14)脚:键盘行线输入端,内接上拉电阻,低电平有效,当该脚与任一列线连接,或者一条行线与一条列线同时有效时,芯片发出DTMF信号。(15)脚:单音是否有效控制端,内接上拉电阻,当该脚接地时,芯片只能发
出双音频,而不能发出单音频:当该脚接高电平或悬空时,芯片既允许发出单音,又允许发出双音,只有在行线和列线不同时有效的情况下,芯片才能发出单音频信号。(16)脚:DTMF信号输出端:(16)脚发出的DTMF信号经V3放大后,从V3集电极送入到线路中。
该芯片行列键盘与DTMF号码为对应关系,当某一按键按下时,相当于该按键的行线R为低电平、列线C为高电平;同样,当某一行线R为低电平、列线C为高电平时,等效于该行线与该列线交叉的按键被按下。
4.电源电路
电源电路中,220V交流电压经变压器B变为9V.然后经D5~D8整流,CI、C2滤波,再经ICl(7805)稳压.C3、C4滤波后输出稳定的Sv电压,供单片机及号码产生电路使用。
采用外加交流电源供电的优点是:当电话线路过长(比如大干20km甚至更多)。如果电话线上的电压因为线路过长衰耗太大,以致于到了终端,电压降不能维持终端设备工作甚至为零的情况下,该系统仍然能够正常工作。
二、制作安装
所有元件安装在50mmx80mm的板上。板上有8个螺丝孔,两个用于将变压器固定在线路板上,一个用于固定7805,其余5个用于将线路板和机壳固定。电话进线插座和出线插座安装在机壳上,并通过连线与板上的JI和J2杆|连。指示灯LED在线路板上设计有安装位置,也可根据外观的设计需要将指示灯引出。J3为220V电雎输入端.J4用于和机壳上的开关K连接。为便于改写程序,单片机IC2不直接焊接在板上,而是通过IC插座插入,这样改写程序时,可直接将单片机从板子上拿下来。需要指出的是,由于R5产生的功耗较大,一定要用功率为IW或2W的水泥电阻.Rl要用不大干51Ω的保险电阻。变压器用2W的即可,其他元件没有特殊要求。
三、程序流程(见下图)
四、源程序清单
下面是以拨手机号码18797130900为例的源程序代码:
MOVPl,A;拨号MOV30H.#2;延时时间常数
以上程序若改为其他号码时,只需更改TABF面一行的数据表即可。
五、使用
平时,该装置的电源开关应处于关闭状态,与该装置并联在一起的电话机可以正常使用。当用户需要使用回拨服务时,只需将开关K打开即可,系统加电后指示灯立即点亮,随即开始按照程序自动摘机和拨号,拨号时,随着一个个数字号码的发出,指示灯同时闪烁,每发出一个号码,指示灯熄灭一次,号码拨完后,指示灯仍处于点亮状态,延时大约2s后指示灯熄灭,系统挂机,等待回拨。该装置使用完毕以后,应将电源关掉,因为虽然线路已处于挂机状态,但是电源仍在工作,会白白消耗电能。
三、单片机实现多气体检测系统
气体传感器是一种能将气体种类及其与浓度有关的信息转换成电气信号的装置。根据这些电气信号的强弱就可以获得与待测气体在环境中存在情况有关的信息,从而可以进行检测、监控、报警。
本设计采用酒精传感器、甲烷传感器、一氧化碳传感器等多种气体传感器组成传感器阵列,通过传感器阵列能把气体中的特定成分检测出来,并将其转化为电信号,然后采用ADC0809 将传感器输出的模拟信号转换为数字信号,运用AT89C51 进行数据处理和计算,并通过LED 显示气体种类和浓度信息,实现了对多种气体的识别和检测。
1 硬件电路设计
本设计硬件电路由数据采集、数据转换、数据处理、结果显示和报警等部分组成,涉及的芯片有AD0809 模数转换芯片、AT89C51单片机、SUN7474频率发生器以及一些气体传感器、驱动电路、复位电路和LED 显示模块。系统的功能框图如图1 所示。
图1 系统功能框图
1.1 气体传感器阵列
气体传感器阵列是电子嗅觉系统的关键组成单元,相当于初级嗅觉神经元,由具有广谱响应特性、交叉灵敏度较大、对不同气味/气体有不同灵敏度的气敏元件组成。
气体传感器是组成气体传感器阵列的核心器件。气体传感器是一种把气体中的特定成分检测出来,并将其转化为电信号的器件。通常,气体传感器阵列可以采用数个单独的气体传感器组合而成,并采用集成工艺制作,体积小,功耗低,便于信号的集中采集与处理。单个气体传感器与传敏阵列在特性上有质的区别,单个气体传感器对气味/ 气体的响应可用强度来表示,而气敏传感器阵列除了各个传感器的响应外,在全部传感器组成的多维空间中形成响应模式,在环境条件一定的情况下,阵列上的响应模式与其激励是一一对应的,而这正是该系统能对多种气味和气体进行辨识的关键所在。
本设计要求实现对酒精、甲烷、一氧化碳气体的定性和定量分析,首先最重要的工作是选择合适的传感器,通过对性能、可实现性、价格等的对比,针对酒精气体,选择的是MQ-303A酒精传感器,针对甲烷气体,采用的是MQ-4 半导体气体传感器,针对一氧化碳气体,选择的是V-40 一氧化碳传感器,由这三种传感器组成传感器阵列。
该设计通过气体传感器阵列采集气体信息,并将采集到的信息转化为电信号,然后送到ADC0809 进行模数转换。
1.2 数据采集和数据处理系统
由气体传感器阵列输出的微弱电信号,经各自信号放大电路对信号进行预处理,使其转换为O ~5V 范围内变化的直流信号,送到A/D 转换电路变换为数字信号,对其进行数据采集处理。
为了方便与89C51 单片机的连接,本系统选用ADC0809芯片对采集到的气体信息进行模数转换。其分辨率为8 位,不必进行零点和满度调整,且具有高阻抗斩波稳定比较器,8个通道的多路开关可直接存取8 个单端模拟信号中的一个。利用单片机写启动A / D 转换器,转换结束后再由ADC0809 向89C51 发出中断请求信号,CPU 响应中断请求。通过对译码器的读操作,读取转换结果并送到被测量的相应存储区。再重新选择被测量,并再次启动A/D转换后中断返回。ADC0809与单片机89C51 连线线路如图2 所示。
图2 ADC0809 与89C51 的连线线路
微处理器采用的是AT89C51 芯片。
89C51 单片机是ATMEL、PHILIPS和SST等公司生产的与80C51 兼容的低功耗、高性能8 位单片机,具有比8031 更丰富的硬件资源,特别是其内部增加的闪速可电改写的存储器Flash ROM给单片机的开发及应用带来了很大的方便,且芯片价格非常便宜。在该系统中89C51 主要对采集数据进行处理,按各种气体浓度的数学模型计算出其浓度,由数码管显示其相应的气体种类及浓度值,当浓度超标时,进行报警。
该系统还采用了分频器SUN7474.分频器对脉冲信号进行2的n次方分之一的分频,例如把32768HZ 的脉冲信号变成1HZ的秒信号。通常利用T触发器实现,每来一个脉冲后触发器状态改变一次,经过n个T触发器处理后就可以得到2的n次方分之一的分频信号。89C51接12MHZ晶振,经ALE端后输出到分频器为2MHZ,分频器进行分频后为ADC0809 提供所需的工作时钟。
1.3 显示电路
在该设计中,LED 显示器的显示方法采用动态显示。LED 动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,在选通相应LED后,即在显示字段上得到显示字形码。这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。本设计中处理结果采用4位LED显示,首位显示气体类别,后3 位显示气体浓度。逐位轮流点亮各个LED,每一位保持1ms,在10~20ms 之内再一次点亮,重复不止。这样利用人的视觉停留,好像4 位LED 同时点亮一样。
综上可得,基于单片机的多气体检测系统的数据采集、数据处理及结果显示电路如图3。
图3 多气体检测系统电路
2 软件设计
本设计由数据采集、数据转换、数据处理、显示和报警几个模块组成。
主程序流程图为图4。
图4 主程序流程图
AD0809 部分程序流程图为图5。
图5 AD0809 部分程序流程图
显示子程序流程图如图6。
图6 显示子程序流程图
结语
在本设计中采用多传感器组成传感器阵列,可针对多种不同气体进行信息采集、信息转换和数据处理,最后显示气体种类和浓度信息,为多种气体的检测提供了一种切实可行的解决方案。
四、单片机实现空气质量流量显示装置
空气质量流量显示装置可以直观的反映进入发动机的空气流量,有助于为发动机提供最佳的空燃比。本文以罗蒙斯特质量流量计为例,基于STC89C52单片机设计一种空气质量流量显示装置,以简单易控制的STC89C52单片机为控制核心,经过AD模块的转换,完成对空气质量流量计的显示装置,通过对数据显示结果的分析找出模拟量与数字量之间的线性对应关系,从而为发动机提供最佳空燃比设立参照途径。
1 罗蒙斯特质量流量计的工作原理
罗蒙斯特质量流量计的计量系统包括一台传感器和一台用于信号处理的变送器。传感器由外壳、微振动测量管、振动驱动器和信号检测器及温度补偿元件等主要部件组成。当气体通过振动测量管时,在气体推动及外加于测量管的振动力作用下,测量管将获得附加的科里奥力,其大小与气体的质量流量成正比,科里奥力引起测量管的微小扭曲导致振动时的相位差转换为线性的电信号输出,变送器就将此电信号转换为1~5V的电压信号,通过AD模块显示在显示装置上。
2 硬件电路设计
电信号的转换是单通道,在此选择容易掌握的ADC0804芯片,其模数转换功能已足够满足需求。显示装置采用4段8位数码管,精确度到个位。其模块图如图1所示。
输入模块是经过变送器转换的电压信号,其幅值在1~5V之间变化;AD模块就是AD芯片,ADC0804是COMS依次逼近型的AD转换器,三态锁定输出,分辨率为8位,存取时间135us,转换时间100us,从功能与成本角度考虑,ADC0804是比较合适的;控制模块选用STC89C52单片机,其性能高,成本低的优点在小型控制器的使用上得到普遍的应用。显示模块在此选取的是4段8位数码管,由经验常识可知5V电压值对应的数字量为255,所以在精度要求不是太高的情况下4段8位数码管可以满足其显示准确性的要求。
2.1 PROTEL电路原理图
PROTEL是PROTEL公司推出的一款用于电子设计的EDA软件,因其模块功能的多样化和人性化得到众多电子设计者的青睐。在设计空气质量流量显示装置电路板时,首先需要在PROTEL环境下对原理图进行构思绘制。经过对电路中所需各模块的分析绘制出如下的电路原理图,如图2所示。
2.2 Proteus仿真电路
为了保证电路的搭建正确性和各模块功能自检的完善,还需要在Proteus仿真软件中对搭建的电路原理图进行仿真测试,如图3所示是在Proteus仿真环境中对搭建的电路原理图进行的仿真。
从图中可以看出,电路包括最基本的功能模块:单片机的复位功能模块,AD模块和数码管的显示模块。外接的电压是5V电压值,为了可以实时模拟变送器输出的电压信号,在此添加一个电位器器件,通过调节电位器的阻值变化来模拟输出电压信号的变化;从数码管的数字显示值上看,本次搭建电路和仿真是正确的;调节电位器的阻值发现数码管的数字量随阻值大小的变化实时变化,表明此电路图可以模拟变送器器输出的电压信号。在完成基本功能需求的基础上,本电路图在搭建时考虑到了为寻找后续电压数字值和模拟量之间的对应关系,添加了一直流电压表,用来显示对应数字值所代表的电压值。
3 单片机软件设计
利用Kiel51C语言对各模块进行编程,程序部分主要由主程序,AD采样、转换程序,数码管显示程序等组成。软件程序的流程图如图4所示。
图4 软件程序的流程图
4 结果分析
在做好的显示装置上采集一系列的电压值与数字值。分析电压值和数字值之间的对应关系,找出之间的比例关系,并对相关的数据结果整理分析计算出显示装置的误差率。采集的相关数据如表1所示:
将所采集的电压值与数码管显示的数字值分析整理可得出他们之间的线性关系,如图5所示。
图5 数字值和电压值之间的关系
从图中选取几组数字值和电压值计算出数字值和电压值之间满足线性关系的斜率为50.33,即以Y表示数字值,X为电压值,则Y=50.33X.
由表1中的数据可以计算出显示装置的相对显示误差。
产生误差的原因是受限于显示设备的精度和程序的设计,数码管以精确到个位为精准度,在显示中个位的数字会因外界的干扰发生变动;程序设计中因受限于显示设备是4位的数码管,所以在程序的编写过程中没有附加考虑小数点后的精度。但从数值与电压值之间的线性关系函数角度考虑,显示装置的目的已经做到了。通过电压值与数字值之间的函数关系,在显示装置上显示出实时变化的数字量,通过线性函数关系找到对应的电压值,通过变送器的逆向转换可以得到科里奥力的大小,进而计算出空气质量流量的大小。
5 结束语
结果的分析表明显示装置的优劣在对空气质量流量计的设计环节中起着至关重要的作用。
上一篇:51单片机数字钟温度计的编程实例
下一篇:单片机典型案例开发(一)