《基于单片机的微电压传感器信号测量仪设计说明.doc》由会员分享,可在线阅读,更多相关《基于单片机的微电压传感器信号测量仪设计说明.doc(18页珍藏版)》请在课桌文档上搜索。
1、基于单片机的微电压传感器信号测量仪设计1、设计目的设计并制作一个测量放大器,用单片机对采集的电压信号进行测量,并在LCD液晶显示,并用Proteus进行仿真实现。在此基础上,认真学习单片机及相关芯片知识,理解设计原理及程序流程,在一定的放大倍数下会计算相关元件参数,实现基于单片机的微电压传感器信号测量仪的硬件设计及软件编程。2、基于单片机的微电压传感器信号测量仪设计VA2.1设计原理R3R1单片机LCD液晶显示A/D转换外围电压采集直流电压放大器R2R4VB图1 系统框图如图1所示,设计并制作一个测量放大器,用单片机对采集的电压信号进行测量,并在LCD液晶显示。本次设计主要以51单片机为核心器
2、件,通过集成运放将mv级的电压放大1200倍,单片机采集此电压信号,并通过软件编程在液晶显示屏上显示,由此实现微电压传感器信号测量仪的设计。本次设计Protel原理图如图2所示。图2 原理图2.2主要芯片介绍本次设计主要设计80C51系列单片机、AD620、PCF8591、LCD1602。2.2.1 80C51系列单片机80C51单片机系列源于MCS-51系列。把所有厂家以8051为基核推出的各种型号80C51兼容型单片机统称为80C51系列。8051是MCS-51系列中最基础的单片机型号,其供应状态有8051、8751、8031。 引脚功能 80C51单片机采用40引脚双列直插封装形式,也有
3、用44引脚的方型封装结构,其中4条的引脚是不连线的,其引脚图如图3所示。图3 80C51单片机引脚图各引脚名称及功能:电源引脚:Vcc和Vss Vcc:接+5V电源;Vss:接地。时钟电路引脚:XTAL1和XTAL2 XTAL1:片反相放大器的输入端。接外部石英晶体和微调电容的一端。若使用外部时钟时,对于HMOS单片机,该引脚必须接地;对于CHMOS单片机,该引脚作为驱动端。XTAL2:片反相放大器的输出端。接外部石英晶体和微调电容的另一端。振荡电路的频率是晶体振荡频率。若使用外部时钟时,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。控制信号引脚: ALE/P
4、ROG、EA/Vpp、PSEN和RST/Vpd ALE:地址锁存允许信号端/EPROM编程输入端。 PSEN:程序存储允许输出端。片外程序存储器的读选通信号,低电平有效。 EA/Vpp:部/外部ROM地址选择信号/固化编程电压输入端。EA:为高电平,CPU访问ROM有两种情况,当PC中的值小于0FFFH时,执行片ROM指令;当PC中的值超过0FFFH时,将自动转向执行片外ROM指令。为低电平时,CPU只执行片外ROM指令。对80C31BH单片机,必须接低电平。Vpp:用于87C51BH编程时输入编程电压。RST/Vpd:复位信号输入端/备用电源正端输入。 RST:高电平有效,其复位信号都是靠外
5、部电路实现。在此输入端保持两个机器周期的高电平后,就可以完成复位操作。I/O引脚:P0、P1、P2、P3 说明:P0P3是4个寄存器,也称为4个端口,是80C51单片机与外界联系的4个8位双向并行I/O口。P0口P0.0P0.7:一个8位的准双向I/O口。在访问片外存储器时,它分时作为8位地址线和8位双向数据线;不作总线使用时,可作普通I/O口;其每位的负载能力为8个LSTTL。P1口:一个带部上拉电阻的8位准双向I/O口。P1的输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路。对端口写1,通过部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为部存在上拉电阻,某个引脚被外部信
6、号拉低时会输出一个电流IIL。P2口:一个带部上拉电阻的8位准双向I/O口。在访问片外存储器时,它作为高8位地址线;不作总线使用时,也可做普通I/O口 。其每位的负载能力为4个LSTTL。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8 位地址的外部数据存储器如执行MOVXRI 指令时,P2 口线上的容也即特殊功能寄存器SFR区中R2寄存器的容,在整个访问期间不改变。 P3口:一个带部上拉电阻的8位准双向I/O口;P3口除了作为一般准双向口使用外,每脚还具有第二功能,其每位的负载能力为4个LSTTL。 定时/计数器51系列单片机部设有两个可编程的16位定时
7、/计数器T0、T1。它们均可用作定时控制、延时以及对外部事件计数。定时/计数器结构与工作原理两个16位定时/计数器:T0和T1。分别由两个8位专用寄存器组成,即T0由TH0和TL0构成,T1由TH1和TL1构成,地址分别为8AH8DH。这些寄存器是用于存放定时或计数初值,它们都是以加1方式计数,每个定时/计数器都可以由软件设置成定时工作方式或计数工作方式。TMOD主要用于选定定时器的工作方式,TCON主要用于控制定时器的启动与停止。其逻辑结构图如图4所示。图4 80C51定时/计数器逻辑结构图定时器 当工作在定时方式时,计数输入信号来自部振荡器信号,在每个机器周期定时器的计数器作一次1运算,所
8、以,可视为计算机器周期的计数器。因一个机器周期等于12个振荡脉冲,所以定时器 的计数频率Fcount=*fosc。如晶振为12MHz,则计数周期为:若定时器的计数器1产生溢出,则标志定时间到。定时/计数器被设定为某种工作方式后,它就会按设定的工作方式独立运行,直到加1计数器计满溢出,才向CPU申请中断。计数器当工作在计数方式时,外部输入信号来自引脚T0或T1。外部输入信号的下降沿将触发计数,计数器在每个机器周期的S5P2期间采样外部输入信号,若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1,故识别一个从1到0的跳变需2个机器周期。对外部输入信号最高的计数速率是*fosc。对外部
9、计数脉冲的要求:外部输入信号的高电平与低电平保持时间均需大于一个机器周期。若计数产生溢出,表明计数终止。 定时/计数器工作方式及控制定时/计数器在其工作之前必须将控制字写入工作方式寄存器和控制寄存器。 工作方式寄存器TMOD功能:用于控制T0和T1的工作方式,格式如表1所示。表1 TMOD格式TMODD7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1MO定时器1定时器0各位含义:M0、M1:工作方式控制位,可构成下表的4种工作方式,见表2。表2 M0、M1工作方式控制位选择M1 M0工作方式功能描述0 0方式013位计数器0 1方式116位计数器1 0方式2自动再装入8位
10、计数器1 1方式3T0:分成两个8位计数;T1:停止计数C/T:功能选择位。C/T=0为定时器方式,C/T =1为计数器方式。 GATE:选通控制位。当GATE=0时,只用软件对TR0置1即可启动定时器开始工作。当GATE=1时,只有在INT0引脚为1,且用软件对TR0置1才能启动定时器工作。TMOD不能位寻址,只能用字节方式设置工作方式。复位时,TMOD所有位均为0。控制寄存器TCON 作用:控制定时器的启动、停止以及标志定时器的溢出和中断情况,TCON的格式如表3所示。表3 TCON格式TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0
11、各位含义:TF1:T1溢出标志,T1溢出时由硬件置1,并申请中断,CPU响应中断后,又由硬件清0。TF1也可由软件清0。TF0:T0溢出标志,功能与TF1相同。TR1:T1运行控制位,可由软件置1或清0来启动或停止。TR0:T0运行控制位,功能与TR1相同。IE1:外部中断1请求标志。IE0:外部中断0请求标志。IT1:外部中断1触发方式选择位。IT0:外部中断0触发方式选择位。复位时,TCON所有位均为0。TCON是可以位寻址的,因此可用位操作指令清溢出或启动定时器工作。中断系统 计算机在执行程序的过程中,由于CPU以外的某种原因,需中止当前程序的执行,而去执行相应的处理程序,待处理结束后,
12、再回来继续执行被中止了的原程序的过程。它是通过硬件来改变CPU程序运行方向的。中断涉及的几个环节:中断源、中断申请、开放中断、保护现场、中断服务、恢复现场、中断返回。中断请求源51系列单片机,提供了5个中断请求源,其有中断优先级及固有的入口地址,具体见表4所示。表4 中断优先级及其入口地址中断源同级自然中断优先级入口地址外部中断0最高级0003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断最低级0023H中断控制IE为中断允许寄存器,通过向IE写入中断控制字,控制CPU对中断源的开放与屏蔽,以及每个中断源是否允许中断,格式如表5所示。表5 IE格式IEAFHA
13、CHABHAAHA9HA8HEAESET1EX1ET0EX0各位含义:EA:CPU中断总允许位。当EA=1时,允许中断,每个中断源是允许还是禁止,分别由各自的允许位确定,当EA=0时,CPU屏蔽所有的中断要求。ES:串行口中断允许位。ES=1,允许串行口中断,ES=0,禁止串行口中断。ET1:T1中断允许位。ET1=1,允许T1中断,ET1=0,禁止T1中断。EX1:外部中断1允许位。EX1=1,允许外部中断1中断,EX1=0,禁止外部中断1中断。ET0:T0中断允许位。ET0=1,允许T0中断,ET0=0,禁止T0中断。EX0:外部中断0允许位。EX0=1,允许外部中断0中断,EX0=0,禁
14、止外部中断0中断。系统复位后,IE中各位均清0,禁止所有中断。IP为中断优先级寄存器,锁存各中断源优先级的控制位,用户可由软件设定,格式如表6所示。表6 IP格式IPBCHBBHBAHB9HB8HPSPT1PX1PT0PX0各位含义: PS:串行口中断优先级控制位。PS=1,高优先级中断,PS=0,低优先级中断。PT1:T1中断优先级控制位。PT1=1,高优先级中断,PT1=0,低优先级中断。PX1:外部中断1中断优先级控制位。PX1=1,高优先级中断,PX1=0,低优先级中断。PT0:T0中断优先级控制位。PT0=1,高优先级中断,PT0=0,低优先级中断。PX0:外部中断0中断优先级控制位
15、。PX0=1,高优先级中断,PX0=0,低优先级中断。系统复位后,IP中各位均清0。各中断源均为低优先级中断。中断响应的过程中断过程包括中断请求、中断响应、中断服务、中断返回四个阶段。中断请求:中断源将相应请求中断的标志位置 1,表示发出请求,并由CPU查询。中断响应:在中断允许条件下响应中断。断点入栈撤除中断标志关闭低同级中断允许中断入口地址送PC。这些工作都是由硬件自动完成的。中断服务:根据入口地址转中断服务程序,包含保护现场、执行中断主体、恢复现场。中断返回:执行中断返回RETI指令断点出栈开放中断允许返回原程序。其流程图如图5所示。关中断现场保护开中断中断处理关中断现场恢复开中断中断返
16、回图5 中断服务程序的流程图2.2.2 AD620AD620是一款低成本、高精度仪表放大器,仅需要一个外部电阻来设置增益,增益围为1至10,000。此外, AD620采用8引脚SOIC和DIP封装,尺寸小于分立式设计,并且功耗较低,因此非常适合电池供电的便携式应用。 AD620具有高精度、低失调电压和低失调漂移特性,是电子秤和传感器接口等精密数据采集系统的理想之选。其输入级采用Supereta处理,因此可以实现最大1.0 nA的低输入偏置电流。AD620在1 kHz时具有低输入电压噪声,在0.1 Hz至10 Hz频带的噪声为0.28V峰峰值,作为前置放大器使用效果很好。同时,AD620的0.0
17、1%建立时间为15s,非常适合多路复用应用;而且成本很低,足以实现每通道一个仪表放大器的设计。AD620简介: 图6仪表放大电路是由三个放大器所共同组成,其中电阻R与RX来调整放大的增益值,其关系式如1所示,唯须注意避免每个放大器的饱和现象放大器最大输出为其工作电压Vdc。 Vo= 图6 仪表放大电路示意图 引脚功能图7所示为AD620仪表放大器的外围引脚图。其中1、8脚需跨接一电阻来调整放大倍率作用同式1中之RX,4、7脚需提供正负相等的工作电压,由2、3脚接输入的放大的电压即可从6脚输出放大后的电压值。5脚则是参考基准,如果接地则第6脚的输为输为与地之间的相对电压。AD620的放大增益关系
18、如式2、式3、所示,由此二式即可推算出各种增益所要使用的电阻值RG了。 图7 AD620引脚示意图 引脚1、8:外接增益调节电阻; 引脚2:反向输入端; 引脚3:同向输入端; 引脚4:负电源; 引脚5:基准电压; 引脚6:共地信号输出; 引脚7:正电源。G=49.4K/RG+1 2RG=49.4 K/ 32.2.3PCF8591PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而
19、无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。功能特性PCF8591的功能包括多路模拟输入、置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由I2C总线的最大速率决定。单独供电;PCF8591的操作电压围2.5V-6V;低待机电流;通过I2C总线串行输入/输出;PCF8591通过3个硬件地址引脚寻址;PCF8591的采样率由I2C总线速率决定;4个模拟输入可编程为单端型或差分输入;自动增量频道选择;PCF8591的模拟电压围从VSS到VDD;PCF8591置跟踪保持电路;8-bit逐次逼近A/
20、D转换器;通过1路模拟输出实现DAC增益。引脚介绍PCF8591引脚图如图8所示。AIN0AIN3:模拟信号输入端;A0A2:引脚地址端;VDD、VSS:电源端2.56V;SDA、SCL:I2C 总线的数据线、时钟线;OSC:外部时钟输入端,部时钟输出端;EXT:部、外部时钟选择线,使用部时钟时 EXT 接地;AGND:模拟信号地;AOUT:D/A 转换输出端。图8 PCF8591引脚2.2.4 LCD1602液晶显示原理点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示
21、RAM区1024字节相对应,每一字节的容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的容决定,当000H=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当3FFH=FFH时,则屏幕的右下角显示一条短亮线;当000H=FFH,001H=00H,002H=00H,00EH=00H,00FH=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。LCD1602主要技术参数显示容量:162个字符;芯片工作电压:4.55.5V;工作电流:2.0mA;模块最佳工作电压:5.0V;字符尺寸:2.954.35mm。引脚功
22、能LCD1602采用标准的14脚无背光或16脚带背光接口,各引脚接口说明如表7所示。表7 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生鬼影,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择
23、数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。控制指令LCD1602液晶模块部的控制器共有11条控制指令,如表8所示。1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。指令1:清显示,指令码01H,光标复位到地址00H位置指令2
24、:光标复位,光标返回到地址00H指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。指令4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示5X7的点阵字符,高电平时显示5X10
25、的显示字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数
26、据容11从CGRAM或DDRAM读数11读出的数据容2.3软件编程2.3.1 A /D转换程序DAC 变换, 转化函数 */*bit DACconversion Start_I2c; /启动总线 SendByte; /发送器件地址 ifreturn; SendByte; /发送控制字节 ifreturn; SendByte; /发送DAC的数值 ifreturn; Stop_I2c; /结束总线 return;*/*ADC发送字节命令数据函数 */bit ISendByte Start_I2c; /启动总线 SendByte; /发送器件地址 ifreturn; SendByte; /发送数据
27、 ifreturn; Stop_I2c; /结束总线 return;/*ADC读字节数据函数 */unsigned char IRcvByte unsigned char c; Start_I2c; /启动总线 SendByte; /发送器件地址 ifreturn; c=RcvByte; /读取数据0 Ack_I2c; /发送非就答位 Stop_I2c; /结束总线 return;2.3.2液晶显示程序#define LCDPORT P0sbit LCDE=P27;sbit LCDRW=P26;sbit LCDRS=P25;/*延时函数 */void Delay uint uiCount; f
28、oruiCount=0;uiCount;void mydelayfor0;t-;/*把一个命令写入LCD */void WriteCMD Delay; /先延时。 LCDE=1; /然后把改为写入命令状态。 LCDRS=0; LCDRW=0; LCDPORT=Command; /再输出命令。 LCDE=0; /最后执行命令。/*把一个数据写入LCD */void WriteData Delay; /先延时。 LCDE=1; /然后把改为写入数据状态。 LCDRS=1; LCDRW=0; LCDPORT=dat; /再输出数据。 LCDE=0; /最后显示数据。/*LCD初始化 */void l
29、cd_init LCDRW=0; LCDE=0; /显示模式,16*2,5*7点阵,8位数据接口 WriteCMD; /光标显示,不闪烁0000 1DCB D:1显示、C:1有光标、B:1闪烁 WriteCMD; / WriteCMD; /显示清屏 WriteCMD; WriteCMD;2.4仿真电路Proteus仿真电路如图9所示。图9 仿真电路3、设计总结这次课程设计对我来说学到的不仅是那些知识,更多的是团队和合作。现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!在团队中,我们互
30、帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感指导老师在我们遇到困难时,给予我们的建议与鼓励。在一个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多! 发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。4、参考文献1夏继强. 单片机实验与实践教程. :航空航天大学, 2001.2伟. 单片机C语言程序设计100例.:电子工业, 2009.3于永. 51单片机C语言常用模块与综合系统设计.:电子工业, 2007.4任康钰.电路设计与仿真M. : 清华大学, 2001,04:10-70.5吴援明,唐军模拟电路分析与设计基础:科学,2006.课程设计评 语课程设计成 绩指导教师签字 年 月 日