AD转换的数字电压表
AD0809实现的数字电压表
AD0809实现的数字电压表利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V 之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。
1、AD0809 的逻辑结构ADC0809 是 8 位逐次逼近型 A/D 转换器。
它由一个 8 路模拟开关、一个地址锁存译码器、一个 A/D 转换器和一个三态输出锁存器组成(见图 1)。
多路开关可选通 8 个模拟通道,允许 8 路模拟量分时输入,共用 A/D 转换器进行转换。
三态输出锁器用于锁存 A/D 转换完的数字量,当 OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。
2、AD0809 的工作原理IN0-IN7:8 条模拟量输入通道。
ADC0809 对输入模拟量要求:信号单极性,电压范围是 0-5V ,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,IN7IN0ADDA ADDB ADDC ALEVREF+ VREF- OEADC0809功能方框图则需在输入前增加采样保持电路。
地址输入和控制线:4 条ALE 为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B 和C 为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择ST:为转换启动信号。
当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST 应保持低电平。
EOC:为转换结束信号。
当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。
OE:为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0:数字量输出线。
CLK 为时钟输入信号线。
因ADC0809 的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,V REF(+),V REF(-)为参考电压输入。
AD转换器原理
逐次比较式A/D转换器 逐次比较式A/D转换器
• 结构框图
D/A转换器 最高位 最低位 基准电压源
比较器 Ux
比较寄存器 最高位 最低位
Байду номын сангаас
时钟脉冲 发生器
并行数字输出
逐次比较式A/D转换器 逐次比较式A/D转换器
假设基准电压ER =16V,被测电压Ux=5.5V, 转换过程如下:
Q3 Q2 Q1 Q0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 U0 ER/2 ER/4 ER/4 +ER/8 ER/4 +ER/16 U0与Ux比较 U0 >Ux U0 <Ux U0 >Ux U0 <Ux 比较寄存器 0 1 0 1
逐次比较式A/D转换器 逐次比较式A/D转换器
• 特点:
逐次比较式A/D转换器的准确度与基准电压、 D/A转换器和比较器的漂移有关。测量速度 由时钟和转换器的位数决定,与输入电压 的大小无关。
逐次比较式A/D转换器 逐次比较式A/D转换器
• 总结:
从上面的逐次逼近过程可知,从大到小逐 次取出Er的各分项值,按照“大者去,小 者留”的原则,直至得到最后逼近结果。 类似于天平称重的过程。
数字电压表
• A/D转换器是数字电压表的核心 • 根据A/D 转换器的转换原理不同,分 为: (1)比较型数字电压表 比较型数字电压表把被测电压与 基准电压进行比较,以获得被测电压 的量值,是一种直接转换方式。
数字电压表
(2)积分型数字电压表 积分型数字电压表是利用积分原 理首先把被测电压转换为与之成正比 的中间量—时间或频率,再利用计数 器测量该中间量,它是一种间接转换 方式。
逐次比较式A/D转换器 逐次比较式A/D转换器
使用ADC制作数字电压表
{
if(line>1||pos>16)
return0;
if(line==0)//显示在第一行
LCD1602_WrCom(0x80+pos);//显示地址设为80H+起始位置
else
LCD1602_WrCom(0x80+0x40+pos);//显示地址设为80H+起始位置
LCD1602_Delay(5);
另外也外接了一个频率计来测量输入的时钟信号。可以查看一下0809的工作最低时钟频率要求。
51仿真时未输出ALE时钟信号,同时由于实验板的ALE引脚未引出,但0809的CLK引脚已和HC74HC的输出作在一起,故只能单独用一个引脚来产生时钟信号。这里使用定时器模式2,产生。
单片机外围解法如下:
串联的74HC74解法如下:
return1;
pos+=0x80;
if(line)//显示在第2行
pos+=0x40;
LCD1602_WrCom(pos);//显示地址设为80H+起始位置
for(i=0;i<5;i++)
{
if(num/tenPower||zero||i==4)
{
LCD1602_WrData('0'+num/tenPower);
0808可以接最多8路模拟输入,但是我们只需要一路即可,因此对于选通信号线ABC都可以直接接低电平,这样永远只选通第一路输入信号。使用滑动变阻器接5V电压来模拟外界电压,模拟输入的范围是0-5V。
由于我们这里只需测量0-5V而且是直流即可,因此参考电压可以选定VCC。同事OE可以直接接高。
基于TLC549串行AD转换器的简易数字电压表的设计
重庆三峡学院单片机课程设计报告书学院(系):应用技术学院年级专业: 10级电信(职教)学号: 201015254102学生姓名:李依樯指导教师:谢辉教师职称:副教授实验成绩:日2122012制作日期:年月简易数字电压表设计基于TLC549串行A/D转换器的简易数字电压表的设计重庆三峡学院应用技术学院李依樯摘要本文介绍了一种基于TLC549串行A/D转换器的简易数字电压表的设计。
该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。
A/D转换主要由芯片TLC549来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。
数据处理则由芯片AT89C51来完成,其负责把TLC549传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着TLC549芯片工作。
该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。
此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。
关键词单片机;数字电压表;A/D转换;AT89C51;TLC549II简易数字电压表设计目录第一章引言 (1)第二章设计总体方案 (2)2.1设计要求 (2)2.2 设计思路 (2)2.3 设计方案 (2)第三章硬件电路设计 (3)3.1 A/D转换模块 (3)3.2 单片机系统 (5)3.3 复位电路和时钟电路 (7)3.4 LED显示系统设计 (8)3.5 总体电路设计 (11)第四章程序设计 (13)4.1 程序设计总方案 (13)4.2 系统子程序设计 (13)第五章仿真 (15)5.1 软件调试 (15)5.2显示结果及误差分析 (15)结论 (18)参考文献 (19)附录 (20)致谢 (27)III简易数字电压表设计第一章引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
实验六 并行AD实验(数字电压表实验)
实验六并行AD实验(数字电压表实验)一、实验目的与要求1、了解几种类型AD转换的原理;掌握使用ADC0809进行模数转换2、认真预习实验内容,做好准备工作,完成实验报告。
二、实验设备STAR系列实验仪一套、PC机一台、万用表一个。
三、实验内容1、ADC0809(G4区)(1) 模数转换器,8位精度,8路转换通道,1路并行输出(2) 转换时间100us,转换电压范围0~5V2、编写程序:制作一个电压表,测量0~5V,结果显示于数码管上。
四、实验原理图五、实验步骤2、调节0~5V电位器(D2区)输出电压,显示在LED(最右边2位)上的电压数字量会随之改变。
用万用表验证AD转换的结果。
六、演示程序.MODEL TINYADDR_0809 EQU 0F000HEXTRN Display8:NEAR.STACK 100.DATABUFFER DB 8 DUP(?)LastAD DB 0 ;上一次AD转换值.CODESTART: MOV AX,@DATAMOV DS,AXNOPXOR AL,ALJMP START6START1: MOV CX,50 ;采样五十次MOV BX,0 ;累计五十次的采样值START2: CALL AD0809XOR AH,AHADD BX,AXLOOP START2MOV AX,50XCHG AX,BXDIV BL ;五十次的平均值CMP AL,LastADJZ START3START6: MOV LastAD,ALCALL Display_DataLEA SI,BUFFERCALL Display8START3: CALL DLTimeJMP START1AD0809 PROC NEARPUSH CXMOV AL,0MOV DX,ADDR_0809OUT DX,ALMOV CX,200LOOP $ ;延时,等待AD转换完成MOV DX,ADDR_0809IN AL,DXPOP CXRETAD0809 ENDPDISPLAY_DATA PROC NEARMOV AH,ALAND AL,0FHMOV BUFFER + 4,ALMOV AL,AHAND AL,0F0HROR AL,4MOV BUFFER + 5,ALMOV AL,AHXOR AH,AHMOV BL,51 ;255/51 (16进制的1 = 1/51V)DIV BLOR AL,80H ;加上小数点MOV BUFFER + 2,ALMOV AL,10MUL AHDIV BLMOV BUFFER + 1,AL ;第一位小数MOV AL,10MUL AHDIV BLMOV BUFFER,AL ;第二位小数MOV buffer+3,10HMOV buffer+6,10HMOV buffer+7,10H ;消隐RETDISPLAY_DATA ENDPDLTime PROC NEARMOV CX,30000LOOP $RETDLTime ENDPEND START七、实验扩展及思考如何实现多路模拟量的数据采集、显示?。
积分AD转换器7109及数字电压表的工作原理
积分A/D转换器7109及数字电压表的工作原理直流电压表的设计一、实验目的1. 理解双积分A/D转换器7109及数字电压表的工作原理。
2. 掌握直流电压表的界面设计和软件设计。
3.测量数据的误差分析。
二、实验任务和内容1. 设计一个直流电压表,设计要求为(1)测量量程分为200mV、400mV、800mV、2V、4V、8V;(2)测量分辩率为12bit;(3)测量对象可选择为可调电位器的输出或外部电压2. 设计完成后,用电压表不同量程进行测量,求相对误差。
三、实验器材1. 计算机(具有运行windows2000和图形化控件的能力) 1台2. SJ-8002B电子测量实验箱1台3. Q9连接线1根4. 4 1/2数字万用表1台四、实验原理1、直流电压表原理直流电压表的测量原理是,被测模拟直流电压经输入放大后,经A/D转换器为数字量,通过计算机的EPP接口传到计算机进行数据处理,将测量结果显示在计算机屏幕上。
本实验使用“SJ8002B电子测量实验箱”的双积分A/D转换器7109完成直流电压的数字化转换,采样PC 机的虚拟仪器软件平台(LabVIEW)完成界面设计和软件设计,实现直流电压的数字化测量。
测量原理如图1所示图1 直流电压测量原理框图4.2 A/D7109的接口工作原理本实验双积分A/D转换器ICL7109实验电路图。
图2 双积分式A/D转换器7109测量电压原理图ICL 7109 是双积分式12 位A/D转换器,转换时间由外部时钟周期决定,为10140/58个时钟周期。
其主要引脚定义如下:① B1~B12:12bit的数据输出端②OR:溢出判别,输出高电平表示过量程;反之,数据有效。
③POL:极性判别,输出高电平表示测量值为正值;反之,负值。
④MODE:方式选择,当输入低电平信号时,转换器处于直接输出工作方式。
此时可在片选和字节使能的控制下直接读取数据;当输入高电平时,转换器将在信号信号握手方式的每一转换周期的结尾输出数据(本实验选用直接输出工作方式)。
8路数字电压表测量由AD转换
/***********************************************************************************/
/*使用AT89C52单片机,11.0592MHz晶振,P0口读入A/D值,P2口作A/D控制,用共阳LED数码管,P1口输出段码,P3口扫描,最高位指示通道(0~7)*/
START=1;_nop_();_nop_();START=0; //开始转换命令
_nop_();_nop_();_nop_();_nop_(); //延时4us
while(ECO==0); //等待转换结束
OE=1;ad_data[m]=addata;OE=0;s++;ad_con=s;//取A/D值,地址加1
test(); //测量转换一次
}
}
//
//
/**********结束**********//
我学习单片机还不到一年,之前编的都是很简单的程序,这是第一次参考其他资料写的,PCB板都做好了很久,就是程序出错,恳请各位朋友帮忙解决一下,小弟万分感谢!
基于串行AD转换器数字电压表设计
重庆三峡学院电子信息工程专业实训(串行A/D转换器数字电压表设计)学院:年级专业:学号:学生姓名:指导教师:完成日期2012年11月30日基于TLC549串行A/D转换器的简易电压表的设计重庆三峡学院摘要:本次设计的数字电压表主要由AT89C51单片机、A/D转换器TLC549、显示电路等模块组成。
它是具有电压测量功能的一定精度的数字电压表。
它可以测量0-5V的输入电压值,并在3位LED数码管上显示。
测量最小分辨为0.020V,测量误差约为±0.02V。
以AT89C51单片机为核心,设计一个数字电压表。
用8位A/D转换器TLC549进行电压信号的采集。
由于系统构造简单,抗干扰能力较强,具有一定的实用价值。
关键字:单片机;数字电压表;A/D转换;AT89C51;TLC549目录第一章设计要求 (4)1.1要求 (3)第二章数字电压表 (3)2. 1数字电压表的介绍 (3)2.2 数字电压表的结构 (3)第三章总体方案论证 (3)第四章系统软件的设计 (4)4.1单片机控制部分 (4)4.1.1 单机片AT89C51内部结构概述 (4)4.1.2 AT89C51性能 (4)4.1.3TLC549的内部结构及工作原理 (5)4.1.4单机片AT89C51结构 (6)4.1.5时钟电路 (7)4.1.6复位电路 (7)4.1.7 总线扩展电路和地址锁存电路 (7)4.1.8 单片机部分总体结构 (8)4.1.9 驱动及显示电路 (9)第五章程序设计 (10)5.1 程序设计总方案 (10)5.2 系统子程序设计 (11)5.2.1 初始化程序 (11)5.2.2 A/D转换子程序 (11)5.2.3 显示子程序 (13)第六章仿真 (13)6.1 软件调试 (13)6.2显示结果及误差分析 (14)6.2.1 显示结果 (14)6.2.2 误差分析 (16)第七章系统软件的设计 (17)7.1 主程序 (16)7.2拆字子程序 (17)7.3扫描子程序 (17)7.4读取字节子程序,读出的值在ACC (18)7.5标度变换子程序 (19)7.6原理图 (20)7.8最后结果 (21)第八章实训心得 (21)参考文献 (22)附录 (22)致谢 (26)第一章设计要求1.1要求:1) 以TLC549串行A/D转换器和AT89C51单片机设计一个5V的数字电压表,电压值由电位器模拟。
基于AD转换原理的电压表设计
设计课题题目:基于AD转换原理的电压表一、设计任务与要求1.用STC12C5404AD做一个电压表;2.电压表量程为0—5V3. 电压表的分辨率为0.02V;二、硬件原理及单元电路分析1. 芯片STC12C5405ADSTC12C5410AD 系列及STC12C2052AD 系列单片机是宏晶科技生产的单时钟/ 机器周期(1T)的单片机,是高速/ 低功耗/ 超强抗干扰的新一代8051 单片机,指令代码完全兼容传统8051,但速度快8-12 倍,内部集成MAX810 专用复位电路。
4 路PWM,8 路高速10 位A/D 转换,针对电机控制,强干扰场合。
STC12C2052AD 系列只有2 路PWM,8 路高速8 位A/D 转换(1). 增强型 8051 CPU,1T,单时钟/ 机器周期,指令代码完全兼容传统8051(2). 工作电压: 5.5V - 3.8V(5V 单片机)/3.8V - 2.4V(3V 单片机)(3). 工作频率范围:0 - 35 MHz,相当于普通8051 的 0~420MHz.实际工作频率可达48MHz(4). 用户应用程序空间12K / 10K / 8K / 6K / 4K / 2K / 1K 字节(5). 片上集成 512 字节 RAM(STC12C5410AD 系列), STC12C2052AD 系列单片机为256 字节RAM(6). 通用I/O 口(27/23/15 个),复位后为:准双向口/ 弱上拉(普通8051 传统I/O 口)可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏,每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过55mA(7). ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片(8). EEPROM 功能(9). 看门狗(10).内部集成MAX810 专用复位电路(外部晶体20M 以下时,可省外部复位电路)(11). 时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟常温下内部R/C 振荡器频率为:5.2MHz ~ 6.8MHz精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,应认为是4MHz ~ 8MHz(12). 共2 个16 位定时器/ 计数器,但可用PCA 模块再产生4 个定时器(2052 系列只有两路PCA)(13). 外部中断2 路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断唤醒(14). PWM(4 路)/PCA(可编程计数器阵列,4 路),5410 系列是4 路,2052 系列只有两路--- 也可用来当4 路D/A 使用--- 也可用来再实现4 个定时器--- 也可用来再实现 4 个外部中断(上升沿中断/ 下降沿中断均可分别或同时支持)(15). A/D 转换, 10 位精度ADC,共8 路。
第16讲 单片机AD转换技术(数字电压表)
பைடு நூலகம்第16讲
在单片机监测和控制系统中,许多被测量、 在单片机监测和控制系统中,许多被测量、控 制量往往是模拟量,必须先经过A/D转换变成 制量往往是模拟量,必须先经过 转换变成 数字量后,才能在单片机中处理。 数字量后,才能在单片机中处理。
1
9-1 单片机与 单片机与ADC0809的接口技术 的接口技术 (参考教材P164 第9.1节) 参考教材 节
B 0 0 1 1
A 0 1 0 1 IN0 IN1 IN2 IN7 2
ADC0809
0 …… 1
ADC0809的引脚功能 的引脚功能
ST(START)为转换启动信号。当ST上跳沿时,所有 内部寄存器清零;下跳沿时,开始进行A/D转换;在转 换期间,ST应保持低电平。 EOC(End of Conv.)为转换结束信号。当EOC为高 电平时,表明转换结束;否则,表明正在进行A/D转换。 OE(Output Enable)为输出允许信号,用于控制三条 输出锁存器向单片机输出转换得到的数据。OE=1,输 出转换得到的数据;OE=0,输出数据线呈高阻状态。 D7-D0为数字量输出线。 CLK(Clock)为时钟输入信号线。因ADC0809的内部 没有时钟电路,所需时钟信号必须由外界提供,通常使 用频率为500KHZ, VREF(+),VREF(-)为参考电压输入。
4
案例设计: 案例设计:数字电压表
要求: 改变电压值,自动改变显示值
5
Proteus电路设计 电路设计
由于ADC0809在 PROTEUS中没 有仿真器件,改 用ADC0808(引 脚一样) 接线: CLOCK-P2.4 START及ALEP2.5 EOC-P2.6 OE-P2.7
AD转换应用数字电压表的设计
#define addb P2_5
#define addc P2_6
#define oe P2_7
uchar temp;
float temp1;
uint temp2;
void delay(uchar xms)
{
uchar i,j;
for(i=xms;i>0;i--)
P2.1
AD_ST,AD_ALE
P2.3
AD_EOC
P2.4
ADD_A
P2.5ADD_BP2源自6ADD_CP2.7
AD_OE
+5V
+5V
+5V
GND
GND
GND
五、程序设计
六、实验步骤
1.建立实验程序并编译,加载*.hex文件;
2. 硬件验证
a.用ISP下载hex程序到MCU
b.按连接表连接电路
c.检查验证结果
3.实验数据记录(参考电压=V)
(1)调节电位器RV1,使IN0通道输入的电压不同的电压0V、0.5V、1V、1.5V、2V、2.5V、3V、3.5V、4V、4.5V、5V,观察由数码管输出的对应的转换结果。将记入下表.
输入电压值
转换结果
理论计算值
输入电压值
转换结果
理论计算值
0V
3V
0.5V
3.5V
}
main()
{ adda=0;
addb=0;
addc=0;
led=0;
start=0;
start=1;
start=0;
while(1)
{
clock=~clock;
adcdata=0xff;
22.2.2AD转换 - 简易数字电压表的设计
简易数字电压表的设计一、任务设计一个321位数字直流电压表。
电压表应具有正负电压极性显示、超量程、量程自动装换和小数点显示功能,满足以下要求:(1) 测量范围:-2V~+2V ;(2) 测量速度:1/T=(2~5)/s;(3) 分辨率:1 mV ;直流数字电压表是一种通用的测量仪表 ,主要完成对直流电压的测量,其功能是把模拟电压转化成数字量并显示,它的设计要根据电压表的功能和技术指标进行。
二、数字电压表的一般组成及各部分功能根据数字电压表需具备的功能及精度要求,电压表应包括A/D 转换器、译码锁存和驱动显示等部分,具体框图见图一。
各部分的功能如下:(1) 基准电压电路:为A/D 转换器提供稳定的基准电压。
(2) A/D 转换器:是电压表的核心电路,负责把模拟信号转成数字信号,决定着整个电压表的精度、速度。
(3) 译码驱动电路:实现对电压实际值的译码显示功能。
(4) 显示逻辑控制驱动器:实现对数字显示器动态扫描及驱动功能。
三、各部分电路的分析与设计(1) 基准电压电路:它为A/D 转换器提供基准电压,决定了数字电压表的稳定性和精度,必须使用高精度、低温漂的精密电压源,我们选用MC1403。
MC1403具有精度高,温漂小,输入电压宽,电压调节简单等特点。
(2) A/D 芯片的选择:A/D 芯片的种类有很多,按其工作原理分为计数型、并行比较型、逐次逼近型和积分型等,每一种各有特点。
计数型和并行比较型具有较高的速度,但精度较低;逐次比较型速度适中,精度较高;积分型则速度较慢,但精度高且抗干扰能力强,比较适合于数字仪表。
系统选用何种AD 芯片,要根据所设计的精度、分辨率和测量速度等因数综合考虑,我们选用MC14433作为核心AD 芯片。
MC14433为双积分型AD ,具有精度高,抗干扰能力强的特点。
它共有2000个输出状态码,对于2V 量程,最小分辨率为1mV,刚好能满足要求。
选取适当的外围电阻、电容参数,可满足测量速度要求,本电路R1=470K,C1=0.1uF。
数字电压表-AD转换-数码管-毕业设计
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊四位半数字电压表[摘要]四位半数字电压表主要分为四部分:测量部分、显示部分、脉冲部分、供电部分。
该电路采用 ICLl7135高精度,此设备的测量范围为直流0—±2伏。
测量部分是通过4位半双积分式A/D转换器ICL7135芯片实现。
ICL7135对模拟电压进行A/D转换,输出BCD码,并自动输出极性判断信号,同时ICL7135用动态扫描传送数据使数码管亮灭的时间间隔短,保证了测量结果的稳定显示。
74LS47和共阳数码管是显示部分,74LS74译码器接收ICL7135的BCD码译码成控制信号去点亮数码管,从而显示出所测的模拟电压值。
用ICM7556配上合适的电阻电容组成多谐振荡器作为脉冲部分产生标准的137KHz频率提供ICL7135工作时针信号。
外接+5V和74HC04产生的-5V是供电部分给整个电路供电。
[关键词] 数字电压表 A/D转换数码管┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊Four And A Half Digital Voltmeter[Abstract] 4 1/2 digital voltmeter measurement are mainly divided into four parts: part, that part, pulse, power supply. Measurement part is through four half A/D converter ICL7135 chip. ICL7135 to simulate A/D conversion voltage output, and automatic BCD output signal, and ICL7135 polarity judgment with dynamic scanning GuanLiang digital data transmission to destroy the time interval is short, guarantee the stability of measurement results. 74LS47 and Yang digital display 74LS74 part, is receiving the decoder ICL135 BCD decoding into the control signal to light, which showed that the simulation test voltage values. ICM7556 with matching appropriate resistance composed many harmonic oscillator as capacitance have standard 137KHz pulse frequency signal. ICL7135 provide working hour External + 5V and 74HC04 produces - for the part is 5V circuit power supply. [Keywords] The digital voltmeter A/D conversion Digital tube┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录1前言 (1)1.1数字电压表的特点及发展趋势.................. 错误!未定义书签。
AD转换的数字电压表
珞珈学院A/D转换器设计数字电压表专业:通信工程年级:2009级学生:郭吕超设计时间:2011.12.22目录1.实验器件介绍 (3)2.数字电压表仿真图 (4)3.实验设计原理 (5)4.数字电压表C语言程序 (6)一.实验器件介绍1.ADC0804芯片介绍ADC0804是一个8位CMOS型逐次比较式A/D转换器,具有三态锁存输出功能,最短转换时间为100us,其芯片实物图和引脚图如下:CS:片选信号,低电平有效;RD:外部读取转换结果的控制信号,当RD为高电平时,DB0-DB7为高阻态;当RD为低电平时,数据才会通过DB0-DB7输出;WR:A/D转换器启动控制信号,当WR由高电平变为低电平时,转换器被清零,当WR由低电平变为高电平时,A/D转换正式开始;CLK IN和CLK R:时钟输入端,在ADC0804片内有时钟发生器,采用内部时钟时,在CLK IN CLK R 和地线之间连接RC电路即可,ADC0804的工作频率约为100-1460khz,若使RC 电路作为时钟,其振荡频率为1/(1.1RC);INTR:中断请求输出信号,当A/D转换结束时,INTR引脚输出低电平,只有当数据被取走后(单片机发出读数据指令),此引脚才会变为高电平;VIN+和VIN-:差动模拟电压输入端,若输入为单端正电压,VIN-应接地,若差动输入,则输入信号直接加入VIN+和VIN-;AGND.DGND:模拟信号地与数字信号地,若系统对抗干扰要求严格,则这两条地线必须分接地;VREF/2:参考电压值的一半,若在ADC0804组成的电路中需要的参考电压为5V,则此引脚可以悬空。
若电路中需要使用的参考电压小于5V,即参考电压值的一半小于2.5V,这时可将此引脚连接到需要的参考电压值(如4V)的1/2电压值上(如 2V),在ADC0804芯片内部会自动判断参考电压的选择,当VREF/2引脚的电压值低于2.5V时,芯片会自动选择由VREF/2引脚电压放大2倍以后的电压值作为参考电压。
0-5v电压表ad转换
TR0=1;
ST=1;
ST=0;
while(1)
{
if(EOC==1)
{
OE=1;
getdata=P0;
OE=0;
i=getdata*196;
dispbuf[5]=i/10000;
i=i%10000;
dispbuf[6]=i/1000;
i=i%1000;
dispbuf[7]=i/100;
g)把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。
h)把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。
i)把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。
/*原来的:
temp = getdata * 235;
temp=temp/128;
i=5;
dispbuf[0]=10;
dispbuf[1]=10;
dispbuf[2]=10;
dispbuf[3]=10;
dispbuf[4]=10;
dispbuf[5]=0;
dispbuf[6]=0;
dispbuf[7]=0;
第四章实验及实践课题(28)数字电压表
利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。
图1.28.1
a)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
b)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
珞珈学院A/D转换器设计数字电压表专业:通信工程年级:2009级学生:郭吕超设计时间:2011.12.22目录1.实验器件介绍 (3)2.数字电压表仿真图 (4)3.实验设计原理 (5)4.数字电压表C语言程序 (6)一.实验器件介绍1.ADC0804芯片介绍ADC0804是一个8位CMOS型逐次比较式A/D转换器,具有三态锁存输出功能,最短转换时间为100us,其芯片实物图和引脚图如下:CS:片选信号,低电平有效;RD:外部读取转换结果的控制信号,当RD为高电平时,DB0-DB7为高阻态;当RD为低电平时,数据才会通过DB0-DB7输出;WR:A/D转换器启动控制信号,当WR由高电平变为低电平时,转换器被清零,当WR由低电平变为高电平时,A/D转换正式开始;CLK IN和CLK R:时钟输入端,在ADC0804片内有时钟发生器,采用内部时钟时,在CLK IN CLK R 和地线之间连接RC电路即可,ADC0804的工作频率约为100-1460khz,若使RC 电路作为时钟,其振荡频率为1/(1.1RC);INTR:中断请求输出信号,当A/D转换结束时,INTR引脚输出低电平,只有当数据被取走后(单片机发出读数据指令),此引脚才会变为高电平;VIN+和VIN-:差动模拟电压输入端,若输入为单端正电压,VIN-应接地,若差动输入,则输入信号直接加入VIN+和VIN-;AGND.DGND:模拟信号地与数字信号地,若系统对抗干扰要求严格,则这两条地线必须分接地;VREF/2:参考电压值的一半,若在ADC0804组成的电路中需要的参考电压为5V,则此引脚可以悬空。
若电路中需要使用的参考电压小于5V,即参考电压值的一半小于2.5V,这时可将此引脚连接到需要的参考电压值(如4V)的1/2电压值上(如 2V),在ADC0804芯片内部会自动判断参考电压的选择,当VREF/2引脚的电压值低于2.5V时,芯片会自动选择由VREF/2引脚电压放大2倍以后的电压值作为参考电压。
DB0-DB7:8位数字输出端。
2.LCD1602液晶介绍1602字符型LCD有16个引脚,其芯片实物图和引脚图如下:1602字符型LCD具有较丰富的指令集,如下表:下面介绍LCD1602引脚功能:VSS:电源地;VDD:+5V逻辑电源;VEE:液晶驱动电源;RS:寄存器选择(RS=1,数据;RS=0,命令); R/W:读.写操作选择(R/W=1,读;R/W=0,写); E:使能信号;DB0-DB7:数据总线;Black1:背光电源线;Black2:背光电源地线;二.数字电压表仿真图三.实验设计原理1.实验硬件设备:LCD1602液晶显示器一块,ADC0804芯片一片,两个滑动变阻器,一个150pF电容,两个200欧姆的电阻,一个10K欧姆的电阻,STC89C51芯片,电源,地线,按键(复位电路和晶振电路另加),杜邦线诺干。
2.ADC0804在使用时,外围电压的连接比较简单,只需要对参考电压和时钟输入端进行设计即可。
通常情况下,时钟的输入可以选用RC谐振电路,ADC0804可以进行A/D转换的时钟频率为100—1460KHZ,典型值为640KHZ,这里选用R=10K欧姆.C=150PF的谐振电路,利用公式1/(1.1RC)计算后,此时的时钟频率约为606KHZ,与典型值十分接近。
3.模拟电压的计算:这里选用的是8位A/D转换器,数值的变化范围是0—255(00H-FFH),模拟电压的输入范围是0-5V,每个数码的变化,对应的电压值的变化为0.0196V,所以要计算模拟电压值,就可以利用下面的公式进行计算:V=D*0.0196式中,V为计算出的模拟电压值,D为A/D转换器转换后的数字量。
4.克服浮点运算方法:从上式不难看出,在计算过程,需要乘以一个0.0196,这是一个小数,在计算机中称为浮点数。
而对于8位单片机来说,不具有浮点运算能力,如果一定要计算浮点数,将占用单片机中大量的内存单元和CPU时间。
这里采用一种简单的方法:就是将从A/D读取进来的数字量直接乘以196,即进行整数运算,运算结果是真正值的1000倍,这个整数运算的速度是非常快的,不会占用过多的CPU时间。
由于是两个8位的二进制数相乘,得到的结果不会超过16位二进制数。
5.电压值的显示:最常用到的二进制转换成BCD码的方法是用除法。
先用得到的16位二进制数除以10000,得到的商就是模拟电压值的整数部分(模拟电压的输入为0-5V,所以整数部分只有1位),得到的余数是模拟电压值的小数部分;接下来用余数除以1000,商是十分位,余数作为被除数再除以100,商为百分位,余数再除以10,商为千分位。
这样就将16位的二进制数转换成了4位BCD码。
四.数字电压表C语言程序//珞珈09级通信单片机实验《AD转换器设计数字电压表》#include<reg51.h> #define uchar unsigned char#define uint unsigned intsbit lcd_rs=P2^0;sbit lcd_en=P2^1;sbit cs=P2^7; //AD片选sbit rd=P2^6;sbit wr=P2^5;sbit INTR=P3^2;//中断请求信号uint temp,D1,D2,D3,D4;uint shu;uint AD_read();void delay(uint z);void write_com(uchar com);void write_date(uchar date);void lcd_init();void display(uchar qian,uchar bai,uchar shi,uchar ge);void AD_init();void AD_start();void main(){write_com(0x01);//清屏lcd_init();AD_init ();while(1){AD_start();while(INTR==1);//AD转换是否结束,结束为低电平INTR=0;shu=AD_read();shu=shu*196;D1=shu/10000;//整数部分,0.0196v是最小变化量shu=shu%10000;D2=shu/1000;//十分位数shu=shu%1000;D3=shu/100;//百分位数shu=shu%100;D4=shu/10;//千分位数display(D1,D2,D3,D4);//显示LcD1602}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--); }void write_com(uchar com){P0=com;lcd_rs=0;lcd_en=1;lcd_en=0;delay(2);}void write_shu(uchar shu){P0=shu;lcd_rs=1;lcd_en=1;lcd_en=0;delay(5);}void lcd_init(){lcd_en=0;write_com(0x01);//清屏write_com(0x06);//指针加减与移动write_com(0x0c);//光标write_com(0x38);//液晶初始化命令}void display(uchar qian,uchar bai,uchar shi,uchar ge) {write_com(0x80+0x02);write_shu('G');write_com(0x80+0x03);write_shu('u');write_com(0x80+0x04);write_shu('o');write_com(0x80+0x06);write_shu('L');write_com(0x80+0x07);write_shu('v');write_com(0x80+0x09);write_shu('C');write_com(0x80+0x0a);write_shu('h');write_com(0x80+0x0b);write_shu('a');write_com(0x80+0x0c);write_shu('o');write_com(0x80+0x44);write_shu(0x30+qian);//0x30代表数字0write_com(0x80+0x45);write_shu('.');write_com(0x80+0x46);write_shu(0x30+bai);write_com(0x80+0x47);write_shu(0x30+shi);write_com(0x80+0x48);write_shu(0x30+ge);write_com(0x80+0x49);write_shu('V');}void AD_init()//AD初始化函数{cs=1;wr=1;rd=1;}void AD_start()//AD启动{ P1=0xff;cs=0;//开wr=0;wr=1;//写完后关闭cs=1;}uint AD_read(){cs=0;rd=0;delay(1);temp=P1;rd=1;cs=1;return(temp);}人间处处单片机!。