ADC的数字电压表设计

合集下载

【毕业设计】基于ADC0809液晶显示的数字电压表设计

【毕业设计】基于ADC0809液晶显示的数字电压表设计

基于ADC0809液晶显示的数字电压表设计目录摘要 (I)前言............................................................... I I 1主要元器件的介绍和本系统的选择 (1)1.1常用单片机的特点比较及本设计单片机的选择 (1)1.5 LCD1602使用说明 (4)1.6 常用的A/D芯片简介 (7)1.7 ADC0809引脚结构功能说明 (7)2 总体设计及硬件电路模块功能简介 (8)2.1 技术要求: (8)2.2 设计方案: (8)2.3 系统硬件电路的设计 (8)2.4 单片机系统 (9)2.5 数模转换系统 (9)2.6 时钟电路 (9)2.7 复位电路 (9)2..8 显示电路设计 (9)3电压表系统电路的制做 (10)3.1 绘制电路板 (10)3.2 铜板的转印、腐蚀、钻孔、焊接 (10)3.3 焊接好后的电压表系统 (11)3.4 动手制作心得 (12)4 系统的调试 (13)4.1 硬件调试 (13)4.2 软件件调试 (13)4.3 软硬联调 (14)5 数据结果分析 (14)5.1 系统调试和校准 (14)5.2 测试数据 (14)总结 (15)致谢 (16)参考文献 (17)附件一(系统电路原理图) (18)附件二(电压表系统程序) (19)基于ADC0809液晶显示的数字电压表设计谭小品摘要单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(的微处理器(CPU)。

随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。

单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。

单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。

现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。

基于adc0809的数字电压表课程设计

基于adc0809的数字电压表课程设计

基于ADC0809的数字电压表课程设计1. 概述数字电压表是一种用于测量电路中电压的仪器,它将电压值转换为数字信号以便显示和记录。

本课程设计将以ADC0809集成电路为基础,设计一种数字电压表,并通过实验验证其功能和性能。

2. ADC0809介绍ADC0809是一种8位的模数转换器,能够将模拟输入信号转换为对应的8位二进制数字输出。

它具有较高的精度和稳定性,被广泛应用于模拟-数字转换电路中。

3. 课程设计目标本课程设计旨在帮助学生了解数字电压表的工作原理和设计过程,培养学生的电路设计和实验能力。

具体目标包括:- 了解ADC0809的基本特性和工作原理- 设计数字电压表电路- 调试和验证数字电压表电路- 进行实际测量和性能评估4. 课程设计内容4.1 ADC0809特性分析学生将学习ADC0809的特性和工作原理,包括输入范围、精度、时序要求等。

通过理论学习和实验验证,学生将掌握ADC0809的基本参数和限制条件。

4.2 数字电压表电路设计在掌握了ADC0809的基本特性后,学生将开始设计数字电压表的电路。

设计过程将包括模拟输入和参考电压的设定、时钟信号的生成、数字显示和控制逻辑的设计等。

4.3 电路调试和验证设计完成后,学生将进行电路的调试和验证工作。

他们需要确保电路能够正常工作,并对其性能进行评估。

如果有必要,他们还可以进行一些改进和优化。

4.4 实际测量和性能评估学生将使用数字电压表进行实际测量,并对其测量精度、稳定性和速度进行评估。

他们还可以与市售数字电压表进行对比,验证自己设计的数字电压表的性能和特点。

5. 实验设备和材料为了完成这个课程设计,学生将需要以下设备和材料:- ADC0809芯片及支持器件- 电压源和参考电压源- 模拟输入信号源- 时钟脉冲发生器- 数字显示器和控制电路- 示波器和信号发生器等测试设备6. 实验步骤和过程学生将按照以下步骤完成课程设计实验:6.1 学习ADC0809的特性和工作原理6.2 进行数字电压表电路设计6.3 搭建电路并进行调试6.4 进行性能评估和实际测量7. 结果分析和总结学生将对实验结果进行分析,总结数字电压表的性能和特点,并讨论可能的改进方向和应用场景。

ADC0832的数字电压表设计说明

ADC0832的数字电压表设计说明

目录1.引言 (1)2.方案设计 (1)2.1设计要求 (1)2.2设计方案 (1)3.硬件设计 (2)3.1单片机最小系统 (2)3.2显示驱动部分 (2)3.3转换电路 (3)3.4单片机驱动部分 (3)4.软件设计 (4)4.1软件流程 (4)4.2子程序模板 (5)5实验结果与讨论 (5)5.1实验仿真 (5)5.2结果讨论 (5)6心得体会 (6)7参考文献 (13)8附录8.1程序 (7)8.2 原理图 (7)1.引言随着片机技术的飞速发展,,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发肢和社会信息化程度的提商,人们为了寻求最好的科技,为了方便人类在使用科技产品的快速性,准确性。

例如数字电压表能够准确的,快速的量出电压。

利用ADC0832和AT89C52的结合再通过LCD来显示出来。

ADC0832是一个8位D/A转换器。

单电源供电,从+5V~+15V均可正常工作。

基准电压的围为±10V;电流建立时间为1μS;CMOS工艺,低功耗20mW。

ADC0832转换器芯片为20引脚,双列直插式封装。

该转换器由输入寄存器和DAC寄存器构成两级数据输入锁存。

使用时数据输入可以采用两级锁存(双锁存)形式,或单级锁存(一级锁存,一级直通)形式,或直接输入(两级直通)形式。

2.方案设计2.1设计要求按系统要实现功能,设计必须达到以下的几个步骤的要求(1)主电路系统是由ADC0832,单片机AT89C52和LCD显示屏组成。

(2)ADC0832是模拟数字转换芯片,是将外侧电压信号转换成数字信号再通过AT89C52处理,再通过LCD显示出来(3)能测量0-5V的数字电压(4)测量误差不大于0.1V2.2设计方案2.1.1单片机的选择本设计选用单片机AT89C52它是一种带8K字节闪烁可编程可擦除只读存储器的低电压,足够本设计之用,高性能CMOS8位微处理器该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令系统及8052产品引脚兼容,功能强大、使用方便的AT80C52单片机适用于许多较为复杂的应用场合。

简易数字电压表设计内容

简易数字电压表设计内容

简易数字电压表设计一、设计要求1、利用ADC0809设计一简易数字电压表,要求可以测量0—5V之间8路输入电压值、电压值由四位LED数码管显示,并在数码管上轮流显示或单路选择显示;2、测量最小分辨率为0.019V,测量误差为±0.02V。

二、设计作用与目的利用AT89S51与ADC0809设计制作一个数字表,能够测量直流电压值。

三、所用设备及软件单片机AT89S51、ADC0809芯片、PC设计台四、系统设计方案本设计采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,原理框图如图1所示。

该电路通过ADC0809芯片采样输入口IN0输入的0~5 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给AT89S51芯片的P0口。

AT89S51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口经三极管驱动,再传送给数码管。

同时它还通过其三位I/O口P3.0、P3.1、P3.2产生位选信号,控制数码管的亮灭。

另外,AT89S51还控制着ADC0809的工作。

其ALE管脚为ADC0809提供了1MHz工作的时钟脉冲;P2.3控制ADC0809的地址锁存端(ALE);P2.4控制ADC0809的启动端(START);P2.5控制ADC0809的输出允许端(OE);P3.7控制ADC0809的转换结束信号(EOC)。

图1 系统原理框图本设计与其它方法实现主要区别在于元器件上例如:AT89C51与AT89C51、AT89S51在AT89C51的基础上,又增加了许多功能,性能有了较大提升。

1.ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。

是一个强大易用的功能。

2.工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。

使用ADC制作数字电压表

使用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可以直接接高。

基于AT89S51和ADC0809的数字电压表设计

基于AT89S51和ADC0809的数字电压表设计

基于AT89S51和ADC0809的数字电压表设计本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,使用的元器件数目较少。

外界电压模拟量输入到A/D转换部分的输入端,通过A/D转换变为数字信号,输送给单片机。

然后由单片机给数码管数字信号,控制其发光,从而显示数字。

注:因为ADC0809的通道选择端口是使用插针,做出电路板后再用导线连起来的,在程序里也少了通道选择的语句,请注意一下。

一.原理图二.仿真图三.存储空间定义(1)70H用于存放A/D转换结果,71H、72H、73H、74H分别存储显示用的三位数据如表所示。

(2)地址30H~39H存放显示在数码管上0~9的数。

如表所示。

四.程序程序可分为数据采集系统、数据转换系统、显示系统,这三部分先独立测试,然后整体调试。

①数据采集系统:因为ADC0809本身并没有内部时钟,需要外部时钟来提供工作的时钟频率。

如果利用单片机ALE端脚提供的频率为6MHZ,而ADC0809工作的频率在10KHZ-1MHZ。

因此,需要增加含触发器功能的器件,从面增加了系统的复杂程度。

后来,最终用软件编程来提供ADC0809工作的时钟频率,从而解决了这个问题。

②显示系统的调试:要显示的数据存放在71H、72H、73H、74H单元中,先在30H~39H分单元中存放0~9的数,运行显示程序,进行查表指令,察看显示的结果是否与存放值一样。

在测试的过程中发现小数点没有显示,通过下面几条指令,把小数点显示出来。

MOVC A,@A+DPTRCJNE R2,#0FEH,NOT_ONE ;不是左边第一个数码管,则转移ORL A,#80H ;左边第一个数码管显示小数点NOT_ONE: MOV P0,A ;数码管段选(1) 汇编语言程序清单QIAN EQU 71HBAI EQU 72HSHI EQU 73HGEWEI EQU 74H ;71H-74H存放显示数据,依次为个位、十位、百位、千位SHUJU EQU 70H ;地址70H存放采集数据ST BIT P3.0 ;START和ALE共用一个端口OE BIT P3.6EOC BIT P3.7CLK BIT P3.3ORG 0000HLJMP STARTORG 0030HTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHSTART:MAIN: LCALL TEST ;数据采集函数LCALL TURNDATA ;数据处理函数LCALL DISPLAY ;显示函数LJMP MAINDELAY: MOV R7,#06H ;约延时1.5msLOOP1: MOV R6,#0FFHLOOP2: DJNZ R6,LOOP2DJNZ R7,LOOP1RETTEST: CLR STCLR OESETB STCLR ST ;ST端口下降沿,开始转换LOOPCLK: SETB CLK ;由软件来提供ADC0809工作的时钟频率CLR CLKJNB EOC,LOOPCLK ;EOC=1时,退出循环SETB OE ;转换后数据的传送MOV P1,#0FFH ;P1端口读数据,需先给高电平MOV A,P1CLR OEMOV SHUJU,A ;存储数据到地址70HRETTURNDA TA:MOV A,SHUJUMOV B,#51DIV AB ;余数在B,相除以后C=0MOV QIAN,A ;储存千位CLR F0MOV A,BSUBB A,#1AH ;A减去26,测试上面AB相除时,余数与26相比较MOV F0,C ;余数<26,则C=1,不用加5调整MOV A,#10MUL ABMOV B,#51DIV ABJB F0,LP1ADD A,#5 ;若AB相除后B>=26,百位加五LP1: MOV BAI,A ;储存百位CLR F0MOV A,BSUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LP2 ;F0=1时,转移ADD A,#5 ;若AB相除后B>=26,十位加五LP2: MOV SHI,A ;储存十位CLR F0MOV A,BSUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LP3 ;F0=1时,转移ADD A,#5 ;若AB相除后B>=26,个位加五LP3: MOV GEWEI,A ;储存个位RETDISPLAY:MOV R1,#4 ;循环四次MOV R2,#0FEHMOV R0,#71H ;存放显示初始地址XIANSHI:MOV DPTR,#TABMOV A,@R0MOVC A,@A+DPTRCJNE R2,#0FEH,NOT_ONE ;不是左边第一个数码管,则转移ORL A,#80H ;左边第一个数码管显示小数点NOT_ONE: MOV P0,A ;数码管段选MOV P2,R2 ;数码管位选LCALL DELAY ;延时MOV A,R2RL A ;循环左移MOV R2,AINC R0 ;选取下一个地址DJNZ R1,XIANSHIRETEND(2) C语言程序清单#include<reg51.h>sbit CLK=P3^3;sbit OE=P3^6;sbit ST=P3^0;sbit EOC=P3^7;unsigned int dianya;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(unsigned int z){while(z--);}void ADC_0809(){unsigned char temp=2;ST=0;OE=0;ST=1;ST=0;CLK=1;CLK=0;CLK=1;CLK=0;while(!EOC){CLK=1;CLK=0;}OE=1;P1=0xff; //读取P1端口数据temp=P1;dianya=(unsigned int)temp*19.53;OE=0;}void Vpp_Show(){unsigned char qian,bai,shi,ge;qian=dianya/1000;bai=dianya00/100;shi=dianya0/10;ge=dianya;P2=0xfe;P0=table[qian]|0x80; //显示小数点delay(50);P2=0xfd;P0=table[bai];delay(50);P2=0xfb;P0=table[shi];delay(50);P2=0xf7;P0=table[ge];}void main(){while(1){ADC_0809();Vpp_Show();}}。

课程设计---基于ADC0809的数字电压表设计

课程设计---基于ADC0809的数字电压表设计

课程设计---基于ADC0809的数字电压表设计课程设计报告课题名称:基于ADC0809的数字电压表设计姓名: 黄光凤班级: 测量10301班学号: 10015339院系: 电子信息工程学院指导老师: 李军、李琼、胡广夏、阮燕、杨少春老师日期: 2012年5月31日基于ADC0809的数字电压表设计摘要本电路以ADC0809和AT89S51为核心,该系统有四个模块:数据采集模块、控制模块、显示模块、A/D转换模块,设计中采用ADC0809进行摸数转换,利用MCS-51单片机进行数据的处理,显示模块采用LCD1602液晶显示器显示,采用独立式按键选择单路显示或者8路轮流显示。

能够测量0,5V之间的直流电压值。

读数据准确,测量方便。

误差范围在-0.02~+0.02之间最小分辨率位0.019。

硬件设计应用电子设计自动化工具,软件设计采用模块化编程方法。

关键词:简易数字电压表; AT89S51;ADC0809;LCD1602;数据处理。

目录第1章系统方案的选择与论证 (1)1.1 设计任务及要求 ...................................................1 1.1.1 任务 (1)1.2 简易数字电压表基本方案 (1)1.2.1 模块方案选择与论证 (1)1.2.2 单片机方案选择和论证 (1)1.2.3 A/D模数转换方案的选取 (1)1.2.4 显示方案 ............................................................3 1.2.5 输入方案 (3)1.2.6 电源提供方案 .....................................................3 1.2.7 系统组成 ............................................................4 第2章系统硬件设计与实现 . (5)2.1 简易数字电压表基本组成部分 (5)2.2.1 电源电路 .............................................................5 2.2.2 复位电路 . (5)2.2.3 时钟电路 .............................................................6 2.2.4 按键控制 . (6)2.2.5LCD1602 (8)2.2 电路原理图 ............................................................10 第3章软件的设计 ......................................................11 3.1 程序流程图 (11)3.1.1主总流程图 ..........................................................11 3.1.2 主要子程序程序流程图 .. (12)第4章仿真及调试 ........................................................18 4(1KEILC51简介 (18)4.2PROTEUS ISIS简介 (18)4.3测试结果分析 ..........................................................21 第5章总结 (22)致谢 ..................................................................... ..........23 参考文献 ..................................................................... ...24 附录 ..................................................................... ........25 附录1 实物图 ............................................................25 附录2 元件清单 (26)附录3 主要程序 (27)第1章系统方案的选择与论证1.1 设计任务及要求, 查阅相关的资料~了解电压表的的原理与应用,研究一个比较合理的设计方案~并对其进行理论分析及方案论证。

基于ADC0832数字电压表

基于ADC0832数字电压表

阿坝师范高等专科学校电子信息工程系课程设计基于ADC0832数字电压表学生姓名任银鹏专业名称电子信息工程技术班级电信班学号20113026基于ADC0832数字电压表一、设计要求设计一个在单片机AT89S52作用下基于ADC0832数字电压表.二、系统设计方案1. 模块图2. 模块作用该电压表由单片A/D转换器构成,在很大的电压情况下,电压表去测量时会对其并联很大的电阻分掉高压,然后再进行测量,这本来很大的电压,到后来测出来的电压就会很小,这就是A/D转换实现低压电压表测量高压三、硬件原理1.LCD1602图3.1 LCD1602外观如图3.1 LCD1602外观,从LCD1602参数手册知道芯片工作电压为4.5~5.5V,工作电流20mA。

模块最佳工作电压为5V。

引脚作用说明如下表3.1:表3.1引脚作用说明从参数手册知道LCD1602与单片机8051系列连接方式如图3.2所示,LCD1602引用电路如图3.3:图3.2 LCD1602与单片机8051系列连接方式图3.3 LCD1602引用电路如图3.3 LCD1602引用电路,单片机P2口与LCD1602的7-14脚连接,单片机14脚与LCD1602的6脚连接,单片机15脚与LCD1602的4脚连接。

2. ADC0832ADC0832具有8位分辨率;双通道A/D转换;输入输出电平与TTL/CMOS相兼容;5V电源供电时输入电压在0-5V之间,工作频率为250KHz,转换时间为32us;一般功耗仅为15Mw的特点。

ADC0832芯片引脚说明如图3.4:图3.4ADC0832芯片引脚说明:cs:片选使能,低电平芯片使能;cho:模拟输入通道0,或作为IN+/-使用;ch1:模拟输入通道:1,或作为IN+/-使用;GND:芯片参考0电位;DI:数据信号输入,悬着通道控制;DO:数据信号输出,转换数据输出;CLK:芯片时钟输入;Vcc/REF:电源输入及参考电压输入。

简易数字电压表的设计(ADC0809)

简易数字电压表的设计(ADC0809)

简易数字电压表的设计(4人)一、设计目的进一步加深理解模拟电子技术、数字电子技术、单片机原理与应用等课程的基础知识,掌握一些小型电子系统的设计方法和制作过程的能力;培养学生们的科学性、系统性、及全面性的设计素质;开拓学生的设计思路,增强他们把理论知识与实践相结合的能力;为毕业后从事电子设备控制电路设计、调试、维修奠定基础。

二、设计要求1.功能要求设计并制作一个简易数字电压表,可以测量0~5V范围内的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示,其中1位为显示通道号。

其测量最小分辨率为0.02V。

2.设计内容(1)根据设计功能要求,确定CPU的选型与硬件接口配置。

(2)进行硬件设计,主要是整个系统电路原理图的绘制和对应的PCB板的布线设计。

(3)进行软件设计,根据控制要求编写控制系统的控制程序。

(4)控制系统调试。

(5)源程序。

三、主要元器件ADC0809、数码管、三极管、发光二极管、总线驱动器、电位器、按键、电阻、电容、导线、万能板等四、设计报告要求1、方案论证及方框图。

2、单元电路设计细则。

3、调试及性能分析。

4、系统的电原理图。

5、电子元器件清单。

6、源程序清单。

7、参考资料。

8、收获。

五、教材及参考书[1] 潘永雄. 新编单片机原理与应用(第二版). 西安:西安电子科技大学出版社,2007年[2] 余永权.单片机应用系统的功率接口技术. 北京:北京航空航天大学出版社,1992[3] 孙涵芳.MCS-51/96系列单片机原理与应用. 北京:北京航空航天大学出版社,1996[4] 丘关源编.电路分析基础.高等教育出版社. 1999年[5] 童诗白编.模拟电子技术基础.高等教育出版社.1999年[6]阎石编.数字电子技术基础.高等教育出版社.1997年[7] [8]刘文涛编.MCS-51单片机培训教程 C51版.电子工业出版社.2006年六、课程设计进度安排注:设计说明书使用课程设计报告本书写,每人一份,独立完成。

利用51单片机与ADC0809和数码管设计数字电压表

利用51单片机与ADC0809和数码管设计数字电压表

利用51单片机与ADC0809和数码管设计数字电压表一、课题功能描述:利用单片机AT89C51 芯片与ADC0809 芯片设计一个数字电压表,能够测量0―5V 之间的直流电压,三位数码显示。

二、程序设计本实验采用AT89C51 单片机芯片配合 ADC0809 模/数转换芯片构成一个简易的数字电压表,原理电路如图1-1 所示。

该电路通过 ADC0809 芯片采样输入口AI0 输入的0~5V 的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7 传送给 AT89C51 芯片的F0口。

AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过P1 口传送给数码管。

同时它还通过其三位 I/O 口 P3.0、P3.1、P3.2 产生位片选信号,控制数码管的亮灭。

另外,AT89C51 还控制着 ADC0809 的工作。

其ALE管脚为 ADC0809提供了 1MHZ 工作的时钟脉冲;P2.3 控制 ADC0809 的地址锁存端(ALE); P2.4 控制 ADC0809 的启动端(START); P2.5 控制 ADC0809 的输出允许端(OE); P3.7 控制 ADC0809 的转换结束信号(EOC)。

电路原理图如下:三、器件清单:1 . AT89S51 芯片 1块2 . ADC0809 芯片 1块3 . 74HC245 芯片 1块4 . 数码管 1个5 . 6MHZ 晶振 1个6 . 30pF 电容 2个7 . 10uF 电解电容 1个8 . 复位电容 1个9 . 510Ω电阻 8个10. 10KΩ电阻 1个11. 导线若干四、程序设计1、主程序设计由于ADC0809 在进行A/D转换时需要有CKL 信号,而此时的 ADC0809 的CLK 是连接在 AT89C51 单片机的30管脚,也就是要求从30管脚输出CLK 信号供图1-2主程序流程图ADC0809 使用。

ADC的数字电压表设计

ADC的数字电压表设计

目录1.引言 (1)2.方案设计 (1)2.1设计要求 (1)2.2设计方案 (1)3.硬件设计 (2)3.1单片机最小系统 (2)3.2显示驱动部分 (2)3.3转换电路 (3)3.4单片机驱动部分 (3)4.软件设计 (4)4.1软件流程 (4)4.2子程序模板 (5)5实验结果与讨论 (5)5.1实验仿真 (5)5.2结果讨论 (5)6心得体会 (6)7参考文献 (13)8附录8.1程序 (7)8.2 原理图 (7)1.引言随着片机技术的飞速发展,,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发肢和社会信息化程度的提商,人们为了寻求最好的科技,为了方便人类在使用科技产品的快速性,准确性。

例如数字电压表能够准确的,快速的量出电压。

利用ADC0832和AT89C52的结合再通过LCD来显示出来。

ADC0832是一个8位D/A转换器。

单电源供电,从+5V~+15V均可正常工作。

基准电压的范围为±10V;电流建立时间为1μS;CMOS工艺,低功耗20mW。

ADC0832转换器芯片为20引脚,双列直插式封装。

该转换器由输入寄存器和DAC寄存器构成两级数据输入锁存。

使用时数据输入可以采用两级锁存(双锁存)形式,或单级锁存(一级锁存,一级直通)形式,或直接输入(两级直通)形式。

2.方案设计2.1设计要求按系统要实现功能,设计必须达到以下的几个步骤的要求(1)主电路系统是由ADC0832,单片机AT89C52和LCD显示屏组成。

(2)ADC0832是模拟数字转换芯片,是将外侧电压信号转换成数字信号再通过AT89C52处理,再通过LCD显示出来(3)能测量0-5V的数字电压(4)测量误差不大于0.1V2.2设计方案2.1.1单片机的选择本设计选用单片机AT89C52它是一种带8K字节闪烁可编程可擦除只读存储器的低电压,足够本设计之用,高性能CMOS8位微处理器该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令系统及8052产品引脚兼容,功能强大、使用方便的AT80C52单片机适用于许多较为复杂的应用场合。

ADC0809数字电压表的设计

ADC0809数字电压表的设计

单片机原理及应用课程设计报告书题目:简易数字电压表的设计姓名:学号:专业:电气工程及其自动化指导老师:设计时间:2012年11月目录1.引言……………………...………………………………………………1.1. 设计意义…………………………………………………………1.2. 系统功能要求……………………………………………………1.3. 本组成员所做的工作……………………………………………2.方案论证及方框图………………………………………………….......3.单元电路设计细则……………………………………………………...3.1.控制电路的设计……………………………………………….....3.2.输入采样及转换电路………………………………………….....3.3.数码管显示电路…………………………………………….......3.4.单路/循环及通道选择电路…………………………………......3.5.系统程序的设计…………………………………...............4.调试及性能分析………………………………………………………...4.1.调试步骤…………………………………………………...........4.2.结果测试…………………………………………………...........4.3.性能分析…………………………………………………...........5.系统的电路原理图……………………………………………………..6.电子元器件清单………………………………………………………...7.附录A: 源程序清单……………………………………………………8.附录B: 实物照片………………………………………………………8.参考资料………………………………………………………………...9.收获……………………………………………………………………...1.引言1.1. 设计意义数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

基于ADC0808电路设计的数字电压表

基于ADC0808电路设计的数字电压表

基于ADC0808/0809数字电压表的设计(下节试验制作万年历)作成:宗茂伟先看先成品电路:摘要:本文主要介绍基于单片机8051和ADC0808数模转换电路的制作目的:深入的学习软件的编写,初步的学习ADC电路在实际电路中的应用,加强动手能力。

从实际的电路学习联想到实际车载平台的应用。

一、设计思路:⑴根据设计要求,选择AT89C51单片机为核心控制器件。

⑵A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。

⑶电压显示采用4位一体的LED数码管。

⑷LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。

二:硬件平台:三、硬件介绍:STC8052就不用说了,下面主要说说ADC0808现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。

双积分式A/D 转换器具有抗干扰能力强、转换精度高、价格便宜等优点。

与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。

一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用[1]。

逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。

它利用内部的寄存器从高位到低位一次开始逐位试探比较。

转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量[5]。

基于ADC0832的数字电压表设计报告

基于ADC0832的数字电压表设计报告

基于ADC0832的数字电压表设计报告设计题目:基于ADC0832数字一路电压表电路设计专业班级:电气工程及其自动化1024 学号:22 、32 、21姓名:杨青涛、康爱丽、孟广琴指导教师:瓮嘉民目录基于ADC0832的一路数字电压表设计 (3)1、电压表设计原理图 (3)2、PROTEUS仿真图 (4)3、原理图 (5)4、PCB图 (6)5、实物图 (7)6、报告 (8)1、设计方案 (8)2、电路特色 (9)3、功能介绍 (10)4、流程图、 (11)5、1感受(康爱丽) (13)5、2感受(孟广琴) (14)5、3感受(杨青涛) (15)6 参考资料 (16)基于ADC0832的一路数字电压表设计1、电压表设计原理图2、proteus仿真图5、实物图第二组:杨青涛孟广琴基于ADC0832的一路数字电压表设计康爱丽6、报告1、设计方案通过一个A/D(ADC0832模拟数字转换)芯片采集后将外测电压信号转换为数字信号,再由单片机(AT89S52)处理信号,输出信号,由LCD1602显示各路电压。

89S52引脚图2、电路特色设计以单片机at89s52芯片为核心的简单电压测量电路,它由5V直流电源供电。

在硬件方面,通过可变电阻调节输入电压的变化来反映检测到的电压变化。

通过A/D转换后数字量在单片机at89s52处理在转换成相应的实际电压,通过LCD1602显示器进行显示。

LCD 显示电压实现零辐射、低功耗、散热小、体积小、图像还原精确、字符显示锐利等。

3、功能介绍该电压表由单片A/D转换器构成,在很大的电压情况下,电压表去测量时会对其并联很大的电阻分掉高压,然后再进行测量,这时本来很大的电压,到后来测出来的电压就会很小,这就是A|D转换实现低压电压表测量高压液晶与89S52的接口4、流程图、(1)主程序(2)液晶模块电压显示流程图(3 ) 电压显示5、1感受(康爱丽)问1:while(1){}部分的流程图咋画?答1:这段语句说明结构体是一个死循环,这样就该明白咋画了问2:画循环时需要在横线上添加Y和N该咋添加?答2:经百度查询后我明白了一般只有封闭图形才可以直接添加文字的,比如矩形,这个问题还得用文本框解决,具体方法是设置文本框属性线条颜色和填充颜色都设置为无;这样就可以实现了。

AD转换应用数字电压表的设计

AD转换应用数字电压表的设计
#define adda P2_4
#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;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1.引言 (1)2.方案设计 (1)2.1设计要求 (1)2.2设计方案 (1)3.硬件设计 (2)3.1单片机最小系统 (2)3.2显示驱动部分 (2)3.3转换电路 (3)3.4单片机驱动部分 (3)4.软件设计 (4)4.1软件流程 (4)4.2子程序模板 (5)5实验结果与讨论 (5)5.1实验仿真 (5)5.2结果讨论 (5)6心得体会 (6)7参考文献 (13)8附录8.1程序 (7)8.2 原理图 (7)1.引言随着片机技术的飞速发展,,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发肢和社会信息化程度的提商,人们为了寻求最好的科技,为了方便人类在使用科技产品的快速性,准确性。

例如数字电压表能够准确的,快速的量出电压。

利用ADC0832和AT89C52的结合再通过LCD来显示出来。

ADC0832是一个8位D/A转换器。

单电源供电,从+5V~+15V均可正常工作。

基准电压的范围为±10V;电流建立时间为1μS;CMOS工艺,低功耗20mW。

ADC0832转换器芯片为20引脚,双列直插式封装。

该转换器由输入寄存器和DAC寄存器构成两级数据输入锁存。

使用时数据输入可以采用两级锁存(双锁存)形式,或单级锁存(一级锁存,一级直通)形式,或直接输入(两级直通)形式。

2.方案设计2.1设计要求按系统要实现功能,设计必须达到以下的几个步骤的要求(1)主电路系统是由ADC0832,单片机AT89C52和LCD显示屏组成。

(2)ADC0832是模拟数字转换芯片,是将外侧电压信号转换成数字信号再通过AT89C52处理,再通过LCD显示出来(3)能测量0-5V的数字电压(4)测量误差不大于0.1V2.2设计方案2.1.1单片机的选择本设计选用单片机AT89C52它是一种带8K字节闪烁可编程可擦除只读存储器的低电压,足够本设计之用,高性能CMOS8位微处理器该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令系统及8052产品引脚兼容,功能强大、使用方便的AT80C52单片机适用于许多较为复杂的应用场合。

2.1.2总体设计及系统原理数字电压表的整体设计比较简单,包括单片机,ADC0832的芯片和LCD的显示电路组成。

先通过ADC0832芯片将外侧电压信号转换成数字信号,再通过由AT89C52组成的电路处理转换成相应的实际电压,再通过LCD显示电路显示出来。

3.1.单片机最小系统单片机最小系统选用AT89C52,自动复位和手动复位电路可对单片机进行复位操作。

3.2.显示驱动部分本设计是选用LCD1602显示器进行显示,用来显示电压的数值。

LCD1602显示器成本低,配置灵活与单片机接口简单,在单片机应用系统中广泛应用 本设计采用LCD1602,它是一种专门用来显示字母,数字和符号等的点阵型的液晶模块。

它由若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔。

LCD1602显示器与AT89C52相连。

1602液晶模块内部的控制器控制指令时 钟 电 路 A/D 转 换 部 分复 位 电 路AT89C52LCD 显 示 部3.3转换电路本设计是采用ADC0832芯片,ADC0832为8位分辨率A/D 转换芯片,,其最高分辨率可达256级,可以适应一般的模拟量的转换要求。

其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V 之间,芯片转换时间仅为32μs 具有双数据输出可作为数据检控,以减少数据误差。

转换速度快且稳定性强。

独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。

通过DI 数据输入端,可以轻易的实现通道功能的选择。

CS 1CH02CH13GND 4VCC 8CLK 7DI 5DO6U2ADC083251%RV11kC310uF3.4单片机驱动部分在本实验中选用ADC0832芯片,ADC0832芯片是美国国家半导体公司生产的一种8位分辨率,双通道A/D 转换芯片。

由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎。

ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。

其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。

芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。

独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。

通过DI 数据输入端,可以轻易的实现通道功能的选择。

表:ADC0832配置位4,软件设计4.1软件流程在本设计实验里面单片机是对ADC0832的控制,在正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS,CLK,DO.DI。

但由于DO端与DI端在通信时并未同事有效并与单片机的接口是双向的,,所以电路设计将DO和DI端并联在一根数据线上使用。

当ADC0832未工作时器CS输入端为高电平,此时芯片禁用CLK和DI/DO的电平可任意。

当进行A/D转换时,必须将CS使能端置于低电平并且保持低电平直到转换完全结束。

此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟冲,DO/DI端则使用DI端输入通道功能选择的数据信号。

在第1个时钟脉冲的下沉之前DI端必须是高压平,表示启始信号。

在第2、3个脉冲下沉之前DI端输入2用于选择通道功能。

当此2位数据位“1”“0”时,只对CHO进行单通道转换。

当2位数据为“1”、“”时,只对CH1进行单通道转换。

当2位数据位“0”、“0”时,将CHO作为正输入端IN+,CH1作为负输入端IN—进行输入。

当2位数据位“0”、“1”时,将CHO作为负输入端IN-,CH1作为正输入端IN+进行输入。

到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。

从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。

直到第11个脉冲时发出最低位数据DATAO。

一个字节的数据输出完成。

也正是从此位开始输出一个相反字节的数据,即从第11个字节的下沉输出DATAO。

随后输出8位数据,到第19个脉冲时输出完成。

也标志着一次A/D转换的结束。

最后将CS置高平禁用芯片,直接将转换后的数据进行处理就可以了4.2子程序模块开始初始化产生时钟信输入通道控制读取1字节数据将值送入指定的寄存器结束主要控制子程序说明如下:(1)delay:延时子程序;void delay(uint z)(2)void LCD_init(),是LCD1602的功能设定。

例如; LCD_write_cmd(0x38);delay(1);//功能设置,数据长度为8位,双行显示,5×7点阵字体。

(3)void LCD_display(uchar add,uchar s[])是lcd的显示程序。

5实验结果与讨论5.1实验仿真依据各功能模块的功能要求和工作过程画出程序的流程图,然后根据流程图和系统的硬件连接写出详细的程序,接着对各个子程序进行编译,调试,运行,看看是否能达到其功能,然后再将整个程序糅合在一起进行整体软件调试。

在整体调试中,需注意寄存器组不能重复,在进入中断时,哪些寄存器内容和参数需入栈保护,以及调用子程序时各参数必须统一,在编译通过时,最好能把整个程序再单步执行一遍。

单步执行时看看每步执行完后数据各个特殊功能寄存器中数据的变化,这样才能确保整个程序按照系统的工作过程和功能要求执行。

仿真结果。

5.2讨论结果本设计以AT89C52单片机为系统的控制核心,采用proteus仿真软件进行测试。

Proteus是一款比较常用的单片机仿真软件,用proteus和keil配合进行仿真提高系统运行效率与稳定性。

6.心得体会通过这次设计,使我深入了解了AT89S52单片机和ADC0832(A\D转换器)的结构和特点及数字电压表的工作原理,加深了对课本理论知识的理解,锻炼了实践动手能力,理论知识与实践设计相结合,培养了创新开发的思维。

在此次课程设计中,收获知识的同时,我还收获了阅历。

此次单片机课程设计需要运用到许多之前所学过的知识,令我认识到自己以前学习的一些不足之处,例如对以前所学知识的理解不够深刻,掌握得不够牢固,运用不够灵活。

这让我懂得了认真学习的重要性,以及要孜孜不倦地钻研所学过的知识,做得融会贯通,不能一览而过,不求甚解。

在边学习边动手的过程中,我对电子时钟的构造以及原理有了进一步的了解,同时也加深和巩固了我对单片机语言的认识。

除此之外,由于是第一次做单片机,因此在此次课程设计的过程中,无论是电路绘制还是汇编语言编写都难免遇到了不少困难和障碍,例如C语言编写出错、电路元件无从入手等。

在面对困难和障碍时,我庆幸自己没有退缩和逃避,而是通过各种方法,迎难而上,以坚持、耐心和努力勇敢无畏地面对困难,克服困难,解决困难。

让我发现问题、分析问题、解决问题以及动手实践的能力都有了很大的提高,并了解到理论知识与实践相结合的重要意义。

7.1参考文献[1] 吴炳胜,80C51单片机原理及应用技术.北京.冶金工业出版社个2008.[2] 林立,张俊亮单片机原理及应用.北京.电子工业出版社 2013[3] 蓝和慧,宁武,闫晓金,单片机应用技能.北京.电子工业出版社 2009[4] 王宜怀.单片机原理及其嵌入式应用教程[M].北京希望电子出版社,2002.[5] 蔡朝洋.单片机控制实习与专题制作.北京.北京航空航天大学出版社 2006[6] 高禹.C语言程序设计.北京.清华大学出版社 20118.附录1:程序1.)文件ADC0832.h#ifndef _ADC0832_H_#define _ADC0832_H_uchar ADC_read_data(uchar ch){uchar i,dat0=0,dat1=0;cs=0;clk=0;dio=1;delay_us();clk=1;delay_us(); //第一次下降沿之前DIO置高,起始信号clk=0;dio=1;delay_us();clk=1; //第二次下降沿输入dio=1delay_us();clk=0;dio=ch; //第三个下降沿,设DIO=0;delay_us();clk=1;delay_us();/*********二,三个下降沿选择通道1************************/ clk=0;dio=1; //第四个下降沿之前,设DIO=1delay_us();for(i=0;i<8;i++)//第4~11共8个下降沿读数据(MSB->LSB){clk=1;delay_us();clk=0;delay_us();dat0=dat0<<1|dio;}for(i=0;i<8;i++) //第11~18共8个下降沿读数据(LSB->MSB){dat1=dat1|((uchar)(dio)<<i);clk=1;delay_us();clk=0;delay_us();}cs=1; //判断dat0与dat1是否相等return (dat0==dat1)?dat0:0;}void ADC_change(uchar ch){dat=ADC_read_data(ch)*500.0/255;//dat变量要全局变量,重要LCD_buffer[ch][8]=dat/100+'0';LCD_buffer[ch][10]=dat/10%10+'0';LCD_buffer[ch][11]=dat%10+'0';}#endif2.)文件LCD1602.h#ifndef _LCD1602_H_#define _LCD1602_H_uchar LCD_check_busy(){uchar state;rs=0;rw=1;delay(2);en=1;state=P0;delay(2);en=0;delay(2);return state;}void LCD_write_cmd(uchar cmd){while((LCD_check_busy()&0x80)==0x80);rs=0;rw=0;delay(2);en=1;P0=cmd;delay(2);en=0;delay(2);}void LCD_write_data(uchar dat){while((LCD_check_busy()&0x80)==0x80); rs=1;rw=0;delay(2);en=1;P0=dat;delay(2);en=0;delay(2);}void LCD_display(uchar add,uchar s[]) {uchar i;LCD_write_cmd(0x80+add);for(i=0;i<16;i++)LCD_write_data(s[i]);}void LCD_init(){LCD_write_cmd(0x38);delay(1);LCD_write_cmd(0x0c);delay(1);LCD_write_cmd(0x06);delay(1);LCD_write_cmd(0x01);delay(1);}#endif3.)文件define.h#ifndef _DEFINE_H_#define _DEFINE_H_#define uchar unsigned char#define uint unsigned intsbit cs=P3^0;sbit clk=P3^1; //控制端口定义sbit dio=P3^2;sbit rs=P2^0;sbit rw=P2^1;sbit en=P2^2;uint j,add,dat;uchar LCD_buffer[][16]={{" CH1 = . V "},{" CH2 = . V "}};#endif4.)文件delay.h#ifndef _DELAY_H_#define _DELAY_H_void delay(uint z){uint x,y;for(y=z;y>0;y--)for(x=10;x>0;x--);}void delay_us(){_nop_();_nop_();}#include<reg52.h>#include<intrins.h>#include"define.h"#include"delay.h"#include"LCD1602.h"#include"ADC0832.h"5.)主函数void main(){LCD_init();while(1){for(j=0;j<2;j++){ if(j==0)add=0x00;elseadd=0x40;ADC_change(j);LCD_buffer[j][8]=dat/100+'0';LCD_buffer[j][10]=dat/10%10+'0';LCD_buffer[j][11]=dat%10+'0';LCD_display(add,LCD_buffer[j]);delay(1);}}}。

相关文档
最新文档