1、重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。数字电压表的诞生打破了传统电子测量仪器的模式和格局。它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0809。
2、系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。简易数字电压测量电路由A/D转换、数据处理、显示控制等组成。模拟式电压表具有电路简单、成本低、测量方便等特点,但测量精度较差,特别是受表头精度的限制,即使采用0.5级的高灵敏度表头,读测时的分辨力也只能达到半格。再者,模拟式电压表的输入阻抗不高,测高内阻源时精度明显下降。数字电压表作为数字技术的成功应用,发展相当快。数字电压表(Digital VoIt Me-ter,DVM),以其功能齐全、精度高、灵敏度高、显示直观等突出优点深受用户欢迎。特别是以A/D转换器为代表的集成电路为支柱,使DVM向着
3、多功能化、小型化、智能化方向发展。DVM应用单片机控制,组成智能仪表;与计算机接口,组成自动测试系统。目前,DVM多组成多功能式的,因此又称数字多用表(Digital Multi Meter,DMM)。DVM是将模拟电压变换为数字显示的测量仪器,这就要求将模拟量变成数字量。这实质上是个量化过程,即将连续的无穷多个模拟量用有限个数字表示的过程,完成这种变换的核心部件是A/D转换器,最后用电子计数器计数显示,因此DVM的基本组成是A/D转换器和电子计数器。DVM最基本功能是测直流电压,考虑到仪器的多功能化,可将其他物理量,如电阻、电容、交流电压、电流等,都变成直流电压,因此,还应有一个测量功能选择
4、变换器,它包含在输入电路中。DVM对直流电压直接测量时的测量精度最高,其他物理量在变换成直流电压时,受功能选择变换器精度的限制,测量精度有所下降。 2、工作原理 系统采用12M晶振产生脉冲做8031的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。利用中断设置单片机的P2.4口取反产生脉冲做8031的时钟信号。通过键盘选择八路通道中的一路,将该路电压送入ADC0809相应通道,单片机软件设置ADC0809开始A/D转换,转换结束ADC0809的EOC端口产生高电平,同时将ADC0809的EO端口置为高电平,单片机将转换后结果存到片内RAM。系统调出显示子程序,将保存结果转化为0.
5、00-5.00V分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。3、系统结构框图4、8031的结构及其功能 在本次课题设计中我们选择了8031芯片。8031和8051是最常见的mcs51系列单片机,是inter公司早期的成熟的单片机产品,应用范围涉及到各行各业,下面介绍一下它的引脚图等资料。4.1 8031内部结构及其功能概述 8031引脚功能(1)主电源引脚Vss和Vcc Vss接地 Vcc正常操作时为+5伏电源(2)外接晶振引脚XTAL1和XTAL2 XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当
6、采用外部振荡器时,此引脚接地。 XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。(3)控制或与其它电源复用引脚RST/VPD,ALE/ , 和 /Vpp RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。 ALE/ 正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的 )周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但
7、要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE 端可以驱动(吸收或输出电流)八个LSTTL电路。 对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲( 功能) 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间, 在每个机器周期内两次有效。 同样可以驱动八LSTTL输入。 /Vpp 、 /Vpp为内部程序存储器和外部程序存储器选择端。当 /Vpp为高电平时,访问内部程序存储器,当 /Vpp 为低电平时,则访问外部程序存储器。对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。8031引脚功能:Vcc:+5V
8、电源电压。Vss:电路接地端。P0.0P0.7:通道0,它是8位漏极开路的双向I/O通道,当扩展外部存贮器时,这也是低八位地址和数据总线,在编程校验期间,它输入和输出字节代码,通道0吸收/发出二个TTL负载。 P1.0P1.7:通道1是8位拟双向I/O通道,在编程和校验时,它发出低8位地址。 通道1吸收/发出一个TTL负载。 P2.0P2.7:通道2是8位拟双向I/O通道,当访问外部存贮器时,用作高8位地址总线。通道2能吸收/发出一个TTL负载。 P3.0P3.7:通道3准双向I/O通道。通道3能吸收/发出一个TTL负载,P3通道的每一根线还有 另一种功能: P3.0:RXD,串行输入口。 P
9、3.1:TXD,串行输出口。 P3.2:INT0,外部中断0输入口。 P3.3:INT1,外部中断1输入口。 P3.4:T0,定时器/计数器0外部事件脉冲输入端。 P3.5:T1,定时器/计数器1外部事件脉冲输入端 P3.6:WR,外部数据存贮器写脉冲。 P3.7:RD,外部数据存贮器读脉冲。 RST/VpD:引脚9,复位输入信号,振荡器工作时,该引脚上2个机器周期的高电平可以实现复位操作,在掉电情况下(Vcc降到操作允许限度以下), 后备电源加到此引脚,将只给片内 RAM供电。 ALE/PROG:引脚30,地址锁存有效信号,其主要作用是提供一个适当的定时信号,在它的下降沿用于外部程序存储器或
10、外部数据存贮器的低8位地址锁存,使总线P0输出/输入口分时用作地址总线(低8位)和数据总线,此信号每个机器出现2次,只是在访问外部数据存储器期间才不输出ALE。所以,在任何不使用外部数据存贮器的系统中,ALE以1/6振荡频率的固定速率 输出,因而它能用作外部时钟或定时,8751内的EPROM编程时,此端输编程脉冲信号。 PSEN:引脚29,程序选通有效信号,当从外部程序存贮器读取指令时产生,低电平时,指令寄存器的内容读到数据总线上。 EA/VPP:引脚31,当保持TTL高电平时,如果指令计数器小于4096,8051执行内部ROM的指令,8751执行内部EPROM的指令,当使TTL为低电平时,
11、从外部程序存贮器取出所有指令,在8751内的EPROM编程时,此端为21V编程电源输入端。 XTAL1:引脚18,内部振荡器外接晶振的一个输入端,HMOS芯片使用外部振荡源时,此端必须 接地。 XTAL2:引脚19,内部振荡器外接晶振的另一个输入端,HMOS芯片使用外部振荡器时,此端用于输入外部振荡信号。5、显示器本次设计中有显示模块,常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。 数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。小电流下可以驱动每光,发光响应时间极短,体积小,重
12、量轻,抗冲击性能好,寿命长。但数码管只能是显示09的数据。不能够显示字符。这也是数码管的不足之处。经过性能的比较和根据本设计的要求以及价格的考虑,选择数码管显示器。单位数码管如图4.4所示。6、模数(A/D)芯片ADC0809A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。此次设计的是利用逐次逼近式ADC0809进行模数转换。 ADC0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。些A/D
13、转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。综合上述,逐次逼近型A/D转换既兼顾了转换速度,又具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。图4.6 ADC0809内部结构 图4.7 ADC0809引脚图7、8279接口芯片8279的功能及工作原理8279是Intel公司生产的通用可编程键盘和显示器IO接口部件。利用8279,可实现对键盘显示器的自动扫描,并识别键盘上闭合键的键号,不仅可以大大节省CPU对键盘显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现误动作,由于这些优点,8279芯片日益被设计
14、者所采用。8279的引脚及内部结构 (1) IO控制和数据缓冲器 双向的三态数据缓冲器将内部总线和外部总线DBo DB7,用于传送CPU和8279之间的命令,数据和状态。为片选信号。当为低电平时,CPU才选中8279读写。 A。用以区分信息的特性。当A。为1时,CPU写入8279的信息为命令,CPU从 8279读出的信息为8279的状态。为0时,IO信息都为数据。图1 8279的引脚图 (2) 控制逻辑 控制与定时寄存器用以寄存键盘及显示器的工作方式,锁存操作命令,通过译码产生相应的控制信号,使8279的各个部件完成一定的控制功能。 定时控制含有一些计数器,其中有一个可编程的5位计数器,对外部
15、输入时钟信号进行分频,产生100kHz的内部定时信号。外部时钟输入信号的周期不小于500ns。 (3) 扫描计数器 扫描计数器有两种输出方式。一种为外部译码方式(也称编码方式),计数器以二进制方式计数,4位计数状态从扫描线SL。SL3输出,经外部译码器译码出16位扫描线,另一种为内部译码方式(也称译码方式),即扫描计数器的低二位经片内译码器译码后从SL。一SL3输出。 (4) 键输入控制 这个部件完成对键盘的自动扫描,锁存RL。RL7的键输入信息,搜索闭合键,去除键的抖动,并将键输入数据写入内部先进先出(FIFO)的存储器RAM。(5)FIFO RAM和显示缓冲器RAM 8279具有8个先进先
16、出(FIFO)的键输入缓冲器,并提供16个字节的显示缓冲器RAM。 8279将段码写入显示缓冲器RAM,8279自动对显示器扫描,将其内部显示缓冲器RAM中的数据在显示器上显示出来。 IRQ为中断请求输出线,高电平有效。当FIFO RAM缓冲器中存有键盘上闭合键的编码时,IRQ线升高,向CPU请求中断,当CPU将缓冲器中的输入键的数据全部读取时,中断请求线下降为低电平; SHIFT、CNTLSTB为控制键输入线,由内部拉高电阻拉成高电平,也可由外部控制按键拉成低电平。 RL。RL7为反馈输入线,作为键输入线,由内部拉高电阻(或称为上拉电阻)拉成高电平,也可由键盘上按键拉成低电平。 SL。SL3
17、为扫描输出线,用于对键盘显示器扫描。 OUT B。-3、OUTA。-3为显示段数据输出线,可分别作为两个半字节输出,也可作为8位段数据输出口,此时OUTB。为最低位,OUTA3为最高位。 BD为消隐输出线,低电平有效,当显示器切换时或使用显示消隐命令时,将显示消隐。 RESET为复位输入线,高电平有效。当RESET输入端出现高电平时,8279被初始复位。8、硬件原理图9、c语言程序编写#include absacc.h#include#define A_DPORT XBYTE0x8100 /0809通道0地址#define DAT XBYTE0xFF80 /8279 数据口地址#define
18、COM XBYTE0xFF82 /8279 状态/命令口地址#define uchar unsigned char#define uint unsigned int bit bdata bz=0;/定义标志long int val;uchar idata diss4=0,0,0,0;/显示缓冲区uchar code ledseg=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/LED显示常数表void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;yy-);/-8279初始化子程序-voi
19、d init8279() COM=0x00; /置8279工作方式 COM=0x2f; /置键盘扫描速率 COM=0xc1; /清除 LED 显示 delay(200); /等待清除结束 /-显示函数-void disled(d) uchar idata *d; uchar i; COM=0x80; for(i=0;i4;i+) COM=i+0x80; DAT=ledseg*d; d+; if(i=3) DAT=ledseg*d|0x80; /-显示缓冲区内容显示-void disp(void) disled(diss);/-显示处理-void display(long second) dis
20、s0=second%10; /低位先存 diss1=second/10%10; diss2=second/100%10; diss4=second/1000; disp();main() IT0=1; EX0=1; EA=1; delay(100); /延时 init8279(); while(1) A_DPORT=val; /启动 A_D while(bz=0); /等待 A_D 转换结束 display(val); delay(10); bz=0; /清读数标志void int_0(void) interrupt 0 val=A_DPORT; /读 A_D 数据 val=val*5000/256; bz=1; /置读数标志
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1