《ADC0809数字电压表报告》由会员分享,可在线阅读,更多相关《ADC0809数字电压表报告(8页珍藏版)》请在金锄头文库上搜索。
1、摘要数字电压表的基本工作原理是利用 A/D 转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。A/D 转换主要由芯片 ADC0809 来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片 STC89C52 来完成,其负责把 ADC0809 传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外它还控制着ADC0809 芯片工作。此数字电压表可以测量 0-5V 的 1 路模拟直流输入电压值,并通过一个四位一体的 7
2、 段数码管显示出来。关键字:STC89C52、ADC0809、数字电压表、A/D 转换一、设计任务与要求1.1 设计任务基于单片机制作一个简易数字电压表,利用 ADC0809 芯片将电位器 102 的电阻值转换为电压值显示在数码管上。1.2 设计要求(1)以 STC89C52 系列单片机为核心器件组成一个简单的直流数字电压表;(2)采用 1 路模拟量输入,能够测量 0-5V 之间的直流电压;(3)电压显示用 4 位一体的共阴级 LED 数码管显示,至少能够显示两位小数;(4)A/D 转换采用 ADC0809 实现,与单片机的接口为 P1 口和 P3 口部分引脚。LED 数码管的段码输入由并行端
3、口 P0 产生,位码输入用并行端口 P2 高四位产生。二、方案设计2.1 硬件设计2.1.1 单片机模块设计单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处理,主要由单片机、时钟电路、复位电路组成。STC89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器,其引脚如下图所示:- 1 -STC89C52 引脚图2.1.2 P0 口上拉电阻一般作单键触发使用时,如果 IC 本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在 IC 外部另接一电阻。数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不
4、希望出现高阻状态,可以通过上拉电阻或下拉电阻排阻消除高阻状态。上拉电阻的实际功能就是从电源高电平引出的电阻接到输出端。如果电平用 OC(集电极开路,TTL)或 OD(漏极开路,CMOS)输出,那么不用上拉电阻是不能工作的, 这个很容易理解,管子没有电源就不能输出高电平了。如果输出电流比较大,输出的电平就会降低(电路中已经有了一个上拉电阻,但是电阻太大,压降太高) ,就可以用上拉电阻提供电流分量, 把电平“拉高” 。 (就是并一个电阻在 IC 内部的上拉电阻上,这时总电阻减小,总电流增大) 。当然管子按需要工作在线性范围的上拉电阻不能太小。当然也会用这个方式来实现门电路电平的匹配。九排上拉电阻本
5、次设计中使用的上拉电阻是一个九位排阻(如图所示) 。顾名思义,排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。所以如果一个排阻是由 n 个电阻构成的,那么它就有 n+1 只引脚,一般来说,最左边的那个是公共引脚,它在排阻上一般用一个色点标出来。由于排阻引脚众多,所以排阻比若干只固定电阻更为方便。本次设计中九位排阻在依次连接单片机 P0 口各引脚的同时并依序连接数码管各引脚(上拉电阻 VCC 端接单片机 VCC 端)。上拉电阻既能为单片机提供部分电压能力,同时也能起到预防线路中电流过大的作用。2.1.3 电位器 102电位器是具有三个引出端、阻值可按某
6、种变化规律调节的电阻元件。电位器通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。电位器既可作三端元件使用也可作二端元件使用。后者可视作一可变电阻器。可变电阻器,顾名思义,就是可以调整电阻的大小。电路接在该电阻的中间时,电阻只有原来的一半,接到最边缘时,则是该电阻的原来大小。看需要来选择接的地方,就是可变电阻。电位器(可变电阻)为电阻值可以调整改变的电阻。在类比电路中,为符合所谓设计值规格的调整作业非常麻烦。但为考虑精确度,必须对各定数的偏差作局部限制,而在这调整作业中就必须用到可变电阻。电位器是可变电阻器的一种。通常是由电阻体与转动或滑动系
7、统组成,即靠一个动触点在电阻体上移动,获得部分电压输出。电位器的作用即是调节电压(含直流电压与信号电压和电流的大小)。- 2 -电位器 102本次设计用到的是电位器 102(如图) ,其阻值为 1K。通过改变电位器阻值,ADC0809将采集到的阻值模拟量转换为相应的数字量在传送到数据处理模块,最终以数字的形式显示在 LED 数码管上。2.1.4 四位共阴数码管4-LED 显示器引脚如图所示,是一个共阴极接法的 4 位 LED 数码显示管,其中a,b,c,e,f,g 为 4 位 LED 各段的公共输出端,1、2、3、4 分别是每一位的位数选端,dp 是小数点引出端,4 位一体 LED 数码显示管
8、的内部结构是由 4 个单独的 LED 组成,每个LED 的段输出引脚在内部都并联后,引出到器件的外部。4 位 LED 引脚对于这种结构的 LED 显示器,它的体积和结构都符合设计要求,由于 4 位 LED 阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个 I/O 接口控制)显示。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接
9、收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 端口,而且功耗更低。本设计使用的驱动方式是动态驱动,四 位 共 阴 数
10、码管的段码输入依次由并行端口 P0产生,位码输入用并行端口 P2 高四位产生。其中,数码管上的“1,2,3,4”连接口分别与 STC89C52 上的 P2.4,P2.5,P2.6,P2.7 引脚连接。2.1.5 ADC0809ADC0809是美国国家半导体公司生产的 CMOS 工艺8通道,8位逐次逼近式 A/D 模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟- 3 -输入信号中的一个进行 A/D 转换。该芯片具有以下特性:1)8路输入通道,8位 A/D 转换器,即分辨率为8位;2)具有转换起停控制端;3)转换时间为100s(时钟为640kHz 时),1
11、30s(时钟为500kHz 时) ;4)单个+5V 电源供电;5)模拟输入电压范围0+5V,不需零点和满刻度校准;6)工作温度范围为-40+85摄氏度;7)低功耗,约15mW。ADC0809引脚图ADC0809芯片有28条引脚,采用双列直插式封装,其芯片引脚图如图11所示。下面说明各引脚功能。(1)IN0IN7:8路模拟量输入端。(2)D0D8:8位数字量输出端。D0D7均为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高位。(3)A、B、C:3位地址输入线,A 为低地址,C 为高地址,用于选通8路模拟输入中的一路。具体通道选择如表1所示。本次设计使用的通道是 IN0,
12、故 A、B、C 均需接地。(4)ALE:地址锁存允许信号,输入高电平有效。对应 ALE 上跳沿,A、B、C 地址状态送入地址锁存器中。(5)START:A/D 转换启动脉冲输入端,输入一个正脉冲(至少100ns 宽)使其启动(脉冲上升沿使0809复位,下降沿启动 A/D 转换) 。(6)EOC:A/D 转换结束信号输出,当 A/D 转换结束时,此端输出一个高电平(转换期间一直为低电平) 。(7)OE:数据输出允许信号,输入高电平有效。当 A/D 转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。(8)CLK:时钟脉冲输入端,要求时钟频率不高于640KHZ。ADC0809的内部没有
13、时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。(9)VREF(+) 、VREF(-):基准电压。用来与输入的模拟信号进行比较,作为逐次逼近的基准。(10)VCC:电源,单一+5V。(11)GND:接地。表1 通道选择表- 4 -A/D 转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认 A/D 转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种 A/D 转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz 的 MCS-51单片机共64个机器周期。可据此设计一个延时子
14、程序,A/D 转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D 转换芯片由表明转换完成的状态信号,例如 ADC0809的 EOC 端。因此可以用查询方式,测试 EOC 的状态,即可却只转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以点击浏览下一页信号有效时,OE 信号即有效,把转换数据送上数据总线,供单片机接受。2.2软件设计2.2.1 软件设计总方案主程序框图如下图所示:程序主
15、框图2.2.2 系统子程序设计系统子程序流程图如图所示。子程序流程图(1)初始化程序所谓初始化,是对将要用到的 STC89C52 单片机内部部件或扩展芯片进行初始工作状态- 5 -设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。(2)A/D 转换子程序A/D 转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元。(3)显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得 LED 显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ 左右时,能够产生比较好的显示效果,一
16、般可以采用间隔 10ms 对 LED 进行动态扫描一次,每一位 LED 的显示时间为 1ms。三、系统仿真与调试3.1 仿真平台仿真平台为 Proteus 软件。Proteus 软件是世界上著名的 EDA 工具,能完成原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具。3.2 仿真调试开 始 仿 真 前 , 将 电 位 器 102调 到 阻 值 为 1K(最 大 阻 值 ) , 按 下 仿 真 按 键 , 数 码 管 显 示 数 字 电 压 表电 压 为 0V。 仿 真 现 象 如 图 所 示 。仿 真 图 1改 变 电 位 器 阻 值 , 当 阻 值 调 为 0.5K时 , 数 码 管 显 示 数 字 电 压 表 电 压 约 为2.49V。 仿 真 现 象 如 图所 示 。- 6 -仿真图2仿真中,使用的单片机型号为 AT89C51,模数转换使用的是 ADC0808,与事物