数字电压表设计报告
数字电压表设计报告
![数字电压表设计报告](https://img.taocdn.com/s3/m/832af89bdd88d0d233d46ad5.png)
一、课程内容介绍:数字电压表是用来测量信号电压的装置。
它可以测量正弦波、方波、三角波和尖脉冲信号的电压。
在进行模拟、数字电路的设计、安装、调试过程中,经常要用到数字电压表。
本设计是设计一个三位直流数字电压表。
由于其用十进制数显示,测量迅速、精度高、显示直观,一次数字电压表得到广泛的使用。
二、总体设计1、实验目的设计制作一个具有数字显示功能的数字电压表。
该数字电压表能对日常电子线路中的电压进行方便的测量。
2、实验设计要求与内容1) 本设计要求从测试端输入0-51V的电压,经90K和10K电阻分压,送ADC0804输入端,所以实际输入电压是测试端的十分之一。
经89C2051处理,在D3、D2、D1三个七段显示。
2) 本电路ADC0804最大转换值为0FFH(255),对应输入电压是5.1V,对应测试端电压(显示电压)51V。
3) 若测试端输入为4V,实际进入ADC0804为0.4Va) 经A/D转换后为14Hb) 14H经十进制转换后为0020,则令R4=00,R5=20c) 将0020*2=0040,令R4=00,R5=40d) 将数字点设在D2上,D4 D3 D2 D1分别显示为0 0 4 04) 本电路省略D4,只显示D3 D2 D15)总体设计框图:3、实验技术指标1) 被测量信号电压范围:0-51V2) 测量精度:测量显示3为有效数字3) 分辨率:5.1V/2^8注意:在画PCB的时候要注意将晶振,即Y1,C4,C5,一起布置在芯片AT89C2051旁边,还有电容C2,C3也要靠近芯片AT89C2051,这样才能有效显示结果。
4、设计提示1) 本设计要求从测试端输入0-51V的电压,经90K和10K电阻分压,送ADC0804输入端,所以实际输入电压是测试端的十分之一。
经89C2051处理,在D3、D2、D1三个七段显示器显示。
2)本电路ADC0804最大转换值=0FFH(255),对应输入电压是5.1V,对应测试端电压(显示电压)是51V。
数字电压表实验报告
![数字电压表实验报告](https://img.taocdn.com/s3/m/4779425a0a4e767f5acfa1c7aa00b52acfc79cd0.png)
简易数字电压表设计报告姓名:***班级:自动化1202学号:****************:***2014年11月26日一.设计题目采用C8051F360单片机最小系统设计一个简易数字电压表,实现对0~3.3V 直流电压的测量。
二.设计原理模拟输入电压通过实验板PR3电位器产生,A/D转换器将模拟电压转换成数字量,并用十进制的形式在LCD上显示。
用一根杜邦实验线将J8口的0~3.3V输出插针与J7口的P2.0插针相连。
注意A/D转换器模拟输入电压的范围取决于其所选择的参考电压,如果A/D 转换器选择内部参考电压源,其模拟电压的范围0~2.4V,如果选择外部电源作为参考电压,则其模拟输入电压范围为0~3.3V。
原理框图如图1所示。
图1 简易数字电压表实验原理框图三.设计方案1.设计流程图如图2所示。
图2 简易数字电压表设计A/D转换和计时流程图2.实验板连接图如图3所示。
图3 简易数字电压表设计实验板接线图3.设计步骤(1)编写C8051F360和LCD初始化程序。
(2)AD转换方式选用逐次逼近型,A/D转换完成后得到10位数据的高低字节分别存放在寄存器ADCOH和ADC0L中,此处选择右对齐,转换时针为2MH Z。
(3)选择内部参考电压2.4V为基准电压(在实际单片机调试中改为3.311V),正端接P2.0,负端接地。
四、测试结果在0V~3.3V中取10组测试数据,每组间隔约为0.3V左右,实验数据如表1所示:显示电压(V)0.206 0.504 0.805 1.054 1.406实际电压(v)0.210 0.510 0.812 1.061 1.414相对误差(%) 1.905 1.176 0.862 0.659 0.565显示电压(V) 2.050 2.383 2.652 2.935 3.246实际电压(v) 2.061 2.391 2.660 2.943 3.253相对误差(%)0.421 0.334 0.301 0.272 0.215表1 简易数字电压表设计实验数据(注:其中显示电压指LCD显示值,实际电压指高精度电压表测量值)五.设计结论1.LCD显示模块的CPLD部分由FPGA充当,芯片本身自带程序,所以这个部分不用再通过quartus软件进行编程。
数字电压表的设计报告]
![数字电压表的设计报告]](https://img.taocdn.com/s3/m/4aa1084ae45c3b3567ec8bca.png)
数字电压表的设计报告摘要:随着电子科学技术的发展,电子测量对测量精度和功能的要求也越来越高,正因为其方便与精度高,人们对其需求量与要求进一步提高,电压的测量甚为突出,因为电压的测量最为普遍。
本设计主要通过MSP430F2274单片机结合内部A/D转换芯片构建了一个简单的直流数字电压表用分压器进行电压采样,以MSP430F2274为监测和控制核心,并以LCD1602输出显示电压。
实现了0~10V的电压检测和,输出显示。
关键词:直流电压检测 A/D转换 MSP430F2274 LCD16021 方案比较1.1 总体设计方案与比较方案一:对 A/D(模拟数字转换)芯片采集后将外测电压信号转换为数字信号,MSP430F2274 进行数据处理,它有多路调制的BCD码输出端,采用动态扫描显示,便于实现自动控制。
但芯片只能完成A/D转换功能,要实现显示功能还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。
方案二:采用MSP430F2274内部八路输入十位A/D转换器将采样电压进行转换,以MSP430F2274为监测和控制核心,并以LCD1602输出显示检测的直流电压数值。
电路设计简单,电路板布线不复杂,便于焊接、调试。
电源采用稳压电源提供的±5V输出,显示部分采用LCD1602液晶显示。
方案论证:方案一采用外部AD转换0809,电路复杂,而采用方案二,外围电路简单且能实现方案一的所有功能,故选择方案二。
2 系统设计2.1总体设计总体设计框图如图2.2 软件流程图软件流程图如图采样A/D转换MSP数据处理数码显示内部A/D 初始化开始A/D 转换数值计算显示程序3 模块电路3.1 采样电路利用分压器进行分压,用5k的滑动变阻器将被测直流电压1/2送入A/D转换器进行量化和编码,这样的分压可以使电压检测量程扩大1倍,在本电路中可达到10V,A/D的结果送入单片机进行处理。
数字电压表设计实验报告
![数字电压表设计实验报告](https://img.taocdn.com/s3/m/36456f230066f5335a8121ac.png)
基于51单片机数字电压表设计实验报告一、设计要求用51单片机控制AD0808进行数模转换,当调节滑动变阻器RV1时,在数码管上显示当前数值,并用电压表测的此时电压与数码管显示电压对比,计算数字电压表的精度二、方案设计数字电压表设计框图 模拟信号可以通过改变滑动变阻器阻值以改变输入电压;A/D 转换将模拟量转换数字量,再送给单片机处理,处理的结果由数码管显示。
三、硬件设计模拟信号 51单片机 A/D 转换数码管显示proteus硬件仿真电路图四、软件设计(1)设计数码管显示电压2.50v程序设计如下(数码显示2.5)#include<reg51.h>void delayms(int x){int i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}void main(){while(1){P1=0x00;P2=0xfb;P1=0xdb;delayms(10);P1=0x00;P2=0xfd;P1=0x6d;delayms(10);P1=0x00;P2=0xfe;P1=0x3f;delayms(10);}}运行结果如下:(2)设计采集总程序老师参考程序如下:/******************************************************#include <reg51.h>int AD_Result=187;sbit AD_Start=P3^0;sbit AD_EOC=P3^1;sbit AD_OE=P3^2;Unsigned char DisCode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void DelayTime10ms(unsigned int DelayValue){unsigned int x,y;for(x=0;x<DelayValue;x++)for(y=0;y<1827;y++);}void Display(){char one,ten,hundred;AD_Result=AD_Result*5.0/255*100;one=AD_Result%10;ten=AD_Result/10%10;hundred=AD_Result/100;P2=0xfb;P1=DisCode[hundred]|0x80;DelayTime10ms(1);P2=0xfd;P1=DisCode[ten];DelayTime10ms(1);P2=0xfe;P1=DisCode[one];DelayTime10ms(1);}void AD_Test(){if(AD_EOC==1){AD_OE=1;AD_Result=P0;AD_OE=0;AD_Start=0;AD_Start=1;AD_Start=0;}}void main(){AD_OE=0;AD_Start=0;AD_Start=1;AD_Start=0;while(1){Display();AD_Test();}}************************************************************************/ 自己编写程序如下:#include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar A1=5,A2,A3;uchar adval;sbit ST=P3^0; //定义AD的启动start端口;sbit EOC=P3^1; //定义EOC引脚,EOC转换完成sbit OE=P3^2; //定义AD允许数据输出端uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delayms(int x){ int i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}void display(){P2=0xff;P2=0xfb;P1=table[A1];delayms(2);P2=0xff;P2=0xfd;P1=table[A2];delayms(2);P2=0xff;P2=0xfe;P1=table[A3];delayms(2);}void AD_measure(){if(EOC==1){OE=1;adval=P0;OE=0;A1=adval/100;A2=adval%100/10;A3=adval%10;ST=0;ST=1;ST=0;}}void main(){OE=0;ST=0;ST=1;ST=0;while(1){AD_measure();display();}}五、总结在此次实验中遇到以下问题,首先是写显示程序,画原理图时把数码管接口顺序接反了导致显示结果出现乱码;其次在编写A/D转换程序时容易出错A/D0808引脚功能不会用;最后是显示整个量程数据时不容易理解,在这里要特别注意。
数字电压表设计报告
![数字电压表设计报告](https://img.taocdn.com/s3/m/59ff778202d276a200292eca.png)
绪论本文将介绍一种以51单片机为核心的电压测量仪表,它能够测量电压量,并且测量结果能够通过数码管显示。
本文将就这一系统的硬件电路部分和软件程序部分分别作以介绍。
在硬件部分,本文就系统的各个组成模块的原理作了详细的介绍。
另外,在每一模块电路中都对元器件的选择作了简单的介绍。
在软件部分,详细阐述了各个模块电路的软件设计方法和设计中的细节。
本设计要求采用单片机进行控制,由于单片机的有效输入输出信号均为数字信号,而对于整个系统的前向通道有效信号均应为模拟信号,所以在设计过程中必然包括模拟量转换为数字量单元的设计。
另外,前向通道的设计还应包括对模拟信号的采集部分。
本文根据课题要求设计出0-5V的数字电压表。
第一章硬件部分的设计1.1 电路元器件选择数字电压表要求实现测定电压值并显示电压值。
这就要求数字电压表能够将电压这一模拟量转换成数字量输入到单片机,再经单片机控制LED 数码管显示电压值数值。
由于任务要求是实现本数字电压表0-5V电压测量,所以我们采用的A/D转换芯片为ADC0832,可以达到设计要求。
由于我们对AVR单片机还在学习过程中,我们用我们比较熟悉的51单片机来实现LED数码管显示功能。
1.2 ADC0832简介ADC0832是一个8位D/A转换器。
单电源供电,从+5V~+15V均可正常工作。
基准电压的范围为±10V;电流建立时间为1μS;CMOS工艺,低功耗20mW。
ADC0832转换器芯片为20引脚,双列直插式封装,其引脚排列如图1所示。
ADC0832内部结构框图如图所示。
该转换器由输入寄存器和DAC寄存器构成两级数据输入锁存。
使用时数据输入可以采用两级锁存(双锁存)形式,或单级锁存(一级锁存,一级直通)形式,或直接输入(两级直通)形式。
1.3 ADC0832引脚功能图1 ADC0832引脚图1.4 ADC0832内部结构图逐次逼近型A/D转换器ADC0832由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。
简易数字电压表设计报告
![简易数字电压表设计报告](https://img.taocdn.com/s3/m/350202e7e009581b6bd9eb56.png)
摘要--------------------------------------------------------2 1.数字电压表的简介------------------------------------------31.1数字电压表的发展--------------------------------------31.2数字电压表的分类--------------------------------------42.设计的目的------------------------------------------------53.设计的内容及要求------------------------------------------54.数字电压表的基本原理--------------------------------------54.1数字电压表各模块的工作原理----------------------------54.2数字电压表各模块的功能--------------------------------54.3数字电压表的工作过程----------------------------------65.实验器材--------------------------------------------------76.电路设计实施方案------------------------------------------76.1.实验步骤---------------------------------------------76.2各个模块设计------------------------------------------86.2.1 基准电压模块-----------------------------------86.2.2 3 1/2位A/D电路模块---------------------------106.2.3 字形译码驱动电路模块--------------------------126.2.4 显示电路模块----------------------------------136.2.5 字位驱动电路模块------------------------------167.总结-----------------------------------------------------17 参考文件---------------------------------------------------18 附录-------------------------------------------------------19本文介绍了一种简易数字电压表的设计。
实验五 数字电压表设计报告
![实验五 数字电压表设计报告](https://img.taocdn.com/s3/m/7008e0b3c77da26925c5b0d9.png)
实验五数字电压表设计报告一、设计目的通过电子技术的综合设计,熟悉一般电子电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法。
通过设计有助于复习、巩固以往的学习内容,达到灵活应用的目的。
设计完成后在实验室进行自行安装、调试,从而加强学生的动手能力。
在该过程中培养从事设计工作的整体概念。
二、设计要求1、利用所学的知识,通过上网或到图书馆查阅资料,设计三个实现数字万用表的方案;只要求写出实验原理,画出原理功能框图,描述其功能。
2、其中对将要实验方案3 1/2数字电压表,需采用中、小规模集成电路、MC14433 A/D转换器等电路进行设计,写出已确定方案详细工作原理,计算出参数。
3、技术指标:Ⅰ、测量直流电压1999-1V;199.9-0.1V;19.99-0.01V;1.999-0.001V;Ⅱ、测量交流电压1999-199V;Ⅲ、三位半显示;Ⅳ、比较设计方案与总体设计;Ⅴ、根据设计过程写出详细的课程设计报告;三、设计方案及原理数字显示电压表将被测模拟量转换为数字量,并进行实时数字显示。
该系统(如图1 所示)可采用MC14433—三位半A/D 转换器、MC1413七路达林顿驱动器阵列、CD4511 BCD到七段锁存-译码-驱动器、能隙基准电源MC1403和共阴极LED发光数码管组成。
本系统是三位半数字电压表,三位半是指十进制数0000~1999。
所谓3位是指个位、十位、百位,其数字范围均为0~9,而所谓半位是指千位数,它不能从0变化到9,而只能由0变到l,即二值状态,所以称为半位。
各部分的功能如下:三位半A/D转换器(MC14433):将输入的模拟信号转换成数字信号。
基准电源(MC1403):提供精密电压,供A/D 转换器作参考电压。
译码器(MC4511):将二—十进制(BCD)码转换成七段信号。
驱动器(MC1413):驱动显示器的a,b,c,d,e,f,g七个发光段,驱动发光数码管(LED)进行显示。
数字电压表课设报告
![数字电压表课设报告](https://img.taocdn.com/s3/m/307781b1050876323012123a.png)
附录:程序及仿真图1.程序如下:#include <lcd.h>sbit P2_0=P2^0;sbit ST=P3^6; //启动控制端sbit OE=P3^7; //输出允许控制端sbit EOC=P3^3; //转换结束检测code char CgramData0[]={0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02}; //年code char CgramData1[]={0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00}; //月code char CgramData2[]={0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00}; //日code char CgramData3[]={0x00,0x04,0x1f,0x0a,0x04,0x0a,0x11,0x00}; //刘code char CgramData4[]={0x00,0x04,0x14,0x14,0x14,0x04,0x0c,0x00}; // code char CgramData5[]={0x08,0x1e,0x1a,0x16,0x1a,0x16,0x1e,0x00}; //自code char CgramData6[]={0x04,0x04,0x1F,0x0E,0x15,0x1F,0x04,0x00}; //本unsigned char Y[6],getdata1=0,i,j;unsigned int getdata=0;uchar Voltage[]="Voltage=1.541";uchar zifu[]="liuchangyin";uchar zifu1[]="Number:200501167";unsigned int k=0;unsigned long V;unsigned char count=0; //定时用bit biaozhi=0; //动态换屏用void delay10us()//延时,增加显示稳定性{ for(i=0;i<10;i++);}void xianshi() //显示函数{V=getdata*500000/255;for(i=0;i<6;i++)//LCD显示数操作{Y[i]=V%10;V/=10;}//LCD1602显示Voltage[8]=Y[5]+48;Voltage[9]='.';Voltage[10]=Y[4]+48;Voltage[11]=Y[3]+48;Voltage[12]=Y[2]+48;Voltage[13]='\0';display_str(0x40+0x80,Voltage);delay10us();getdata=0;}void main(void){lcd_init();display_str(0x80,zifu); //第一行显示字符串P2_0=0; //P2_0一直为低,便于用P3_6和P3_7控制启动AD和读取数据 OE=1; //不允许读取数据EX1=1; //外部中断1使能IT1=1; //外部中断1为边沿触发TMOD=0x10; //定时器0选用方式1TH1=0x3C; //TL1=0xB0; //50msTR1=1; //启动T1计时ET1=1; //定时器0中断使能EA=1; //开中断P0=0xf8; //选择通道1delay10us();ST=1;ST=0;ST=1; //启动AD转换while(1){}}void t1(void) interrupt 3 using 0 //定时器1中断执行部分{count++;if(count==5){if(biaozhi==0) //显示:"自本10504 0501167"{write_cgram(0x40,CgramData5);display_cgram(0x80,0x00);write_cgram(0x48,CgramData6);display_cgram(0x81,0x01);display_str(0x82,"10504 0501167"); //第一行显示字符串 }if(biaozhi==1) //显示:"2008年07月10日刘"{display_str(0x80,"2008");write_cgram(0x60,CgramData0);display_cgram(0x84,0x04);display_str(0x85,"07");write_cgram(0x78,CgramData1);display_cgram(0x87,0x07);display_str(0x88,"10 ");write_cgram(0x40,CgramData2);display_cgram(0x8A,0x00);write_cgram(0x50,CgramData3);display_cgram(0x8C,0x02);write_cgram(0x58,CgramData4);display_cgram(0x8D,0x03);}biaozhi=~biaozhi;count=0;}TH1=0x3C; //TL1=0xB0; //50msTR1=1; //启动T1计时P1=~P1;}void int1(void) interrupt 2 using 0 //外部中断1执行部分{P0=0xff;OE=0; //传输数据使能getdata1=P0; //得到转换数据OE=1; //不允许传输数据getdata+=getdata1;//10次求和取平均值k++;if(k==10){ EX1=0; //关闭外部中断1getdata=getdata/10; //取平均值xianshi(); //利用LCD显示电压值k=0;EX1=1; //允许外部中断1}P0=0xf8;//选择通道1ST=1;ST=0;ST=1;//重新启动AD转换}//*************************************//lcd头文件//*************************************#include<reg52.h>#include<string.h>#include <absacc.h>#define lcd_data P0 //定义端口#define uchar unsigned char#define uint unsigned intsbit RS=P2^1;sbit RW=P2^2;sbit E=P2^3;sbit BF=P0^7;//***************************************//延时函数//***************************************void delay(uint i){while(i--);}//***************************************//写控制字//***************************************void write_struct(uchar temp){E=0;delay(100);//while(BF==1);RW=0;RS=0;lcd_data=temp;delay(3);E=1;delay(3);E=0;}//**************************************//写数据//**************************************void write_data(uchar temp){delay(100);//while(BF==1);E=0;RS=1;RW=0;lcd_data=temp;E=1;delay(3);E=0;}//***************************************//lcd初始化//***************************************void lcd_init(){write_struct(0x38); //设置接口DB宽度(8位)和LCM显示行数(2行) write_struct(0x08); //write_struct(0x01); //执行清屏操作write_struct(0x06); //设置光标为加1模式write_struct(0x0c); //设置光标为移位模式}//***************************************//向CGRAM写入数据//***************************************void write_cgram(unsigned char adress,unsigned char *p){char i;for(i=0;i<8;i++){ write_struct(adress+i);write_data(p[i]);}}//显示CGRAM数据//***************************************void display_cgram(unsigned char adress,unsigned char p) {write_struct(adress);write_data(p);}//显示字符//***************************************void display(char temp0,char *p){write_struct(temp0);delay(3);write_data(*p);}//****************************************//显示字符串//****************************************void display_str(char temp0,char *p){char i;write_struct(temp0);for(i=0;i<16;i++){if(*p=='\0')break;write_data(*p);p++;}}//****************************************//清屏//****************************************void lcd_clr() {write_struct(0x01); }//*****************************************************end2.仿真图附图1 初始化采集完成显示D 7D 6D 5D 4D 3D 2D 1D 0E R W R S V S S V D D V E E附图2 采集电压显示同时,第一行数据动态显示显示D 7D 6D 5D 4D 3D 2D 1D 0E R W R S V S S V D D V E E附图3 采集电压显示同时,第一行数据动态显示显示D 7D 6D 5D 4D 3D 2D 1D 0E R W R S V S S V D D V E E。
基于单片机的数字电压表设计报告
![基于单片机的数字电压表设计报告](https://img.taocdn.com/s3/m/6e4c08e881eb6294dd88d0d233d4b14e85243ec8.png)
基于单片机的数字电压表设计报告
一、研究意义
数字电压表是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
二、系统硬件设计
模拟电压经过档位切换到不同的分压电路衰减后,经隔离干扰送到A/D转换器进行A/D转换,然后送到单片机中进行数据处理。
处理后的数据送到LCD中显示,同时通过串行通讯与上位机通信。
1)硬件电路框图:
2)硬件电路原理图:
三、系统软件设计1)主程序设计
2)中断子程序设计
四、分析及结论
电压测量通过不同的接口电路可实现温度、湿度、压力等测量,广泛应用于工业领域。
本电路设计别具一格,是一种高精度、低功耗、宽量程、智能化的电压表。
可扩展键盘、EEPROM、报警电路,实现电压异常记录、报警。
数字电压表设计实验报告
![数字电压表设计实验报告](https://img.taocdn.com/s3/m/a070030c866fb84ae45c8d24.png)
MOV DPTR,#CS8279D
MOV R0,#30H
DISPL1:
PUSH DPL
PUSH DPH
MOV A,@R0MOV 源自PTR,#TABMOVC A,@A+DPTR
POP DPH
POP DPL
MOVX @DPTR,A
INC R0
DJNZ R7,DISPL1
DSPEXIT:
SJMP CONB3
CONB2:
MOV R7,#4
SJMP CONB3
CONB1:
MOV R7,#3
CONB3:
MOV R0,#35H
MOV A,#0BH
CONBLP:
MOV @R0,A
DEC R0
DJNZ R7,CONBLP
RET
END ; program end
二、实验结果
通过调节可变电阻VR4的电阻大小,使得输入到ADC0809的第5引脚的电压从0V变到5V,转换相应的结果并通过数码显示器显示出来。实验结果与预测结果一置。
; function: initial 8279 as 8 digtal left in ALE/10
; input parameter : none
; output parameter: none
; others 8279 command port address 0FFE9H;8279 data port address 0FFE8H
ORG 0000H
MAIN:
MOV SP, #60H
ACALL INI8279
MOV ADRESULT, #00H
MOV ADBAK, #0FFH
MAINLP:
数字电压表的综合设计报告
![数字电压表的综合设计报告](https://img.taocdn.com/s3/m/a5f27d2aaaea998fcc220e33.png)
数字电压表的综合设计一、设计任务1、使用状态机实现对模数转换芯片TLC549的采样控制,实现一个简易的电压表。
并将硬件验证结果与测量电压值进行比较。
二、整体设计1、本次设计是利用FPGA控制 TLC549,将 AD转换后的电压值读出,并显示在数码管。
模块一为TLC549主控制模块,模块二为bcd1即一位BCD码加减模块,模块三为lookup即A/D转换BCD码模块,模块四为scan_led数码显示模块。
然后将模块生成为相应器件,按照原理图连接,得出相应波形及数据。
由FPGA构成的ASIC的三部分电路(如结构示意图所示):(1)用有限状态机设计的A/D转换控制电路;(2)将8位数字量DB0-DB7转换成3位BCD码电压值的转换路;(3)3位LED显示器的译码显示电路;结构示意图2、原理框图3、模数转换-TLC549 ADC的介绍(1)TLC549各引脚功能如下:●ANALOG IN,模拟量输入端;●sclk,串行时钟输入端;●cs,芯片选择,低有效;●DATA OUT,数字量输出端;●GND,模拟接地;●REF+,基准电压输入端;●REF-,基准电压负端;●VCC,正电源电压端。
(2)TCL549的工作时序图当片选 CS为低电平时,串行输人数据才能被移入移位寄存器。
当 CS为低电平时,在每一个SCLK时钟的上升沿将DIN的一位数据移入移寄存器。
注意,二进制最高有效位被导前移入。
接着, CS的上升沿才将移位寄存器的数据锁存,供DAC电路进行转换;当片选CS为高电平时,串行输人数据不能被移入移位寄存器。
注意.CS的上升和下降都必须发生在SCLK为低电平期间。
三、模块设计模块一module tcl549c(clk,cs,sdata,clk_ad,reset,dataout);input clk,reset,sdata;output cs,clk_ad;output[7:0]dataout;reg cs,clk_ad_r,clk_r;reg[7:0]dataout,dataout_r;reg[7:0]count;reg[2:0]temp;reg[3:0]cnt;reg mark;reg flag;parameter [2:0]s0=0,s1=1,s2=2;reg[2:0]c_st;always@(posedge clk)begin if(count<119)count<=count+1;else begin clk_r<=~clk_r;count=0;endendalways@(posedge clk)begin clk_ad_r<=~clk_r;endassign clk_ad=clk_ad_r;always@(posedge clk_r or negedge reset)begin if(!reset) c_st<=s0;else case(c_st)s0:begin cs<=1;mark<=0;if(temp==3)begin temp<=0;c_st<=s1;endelse begin temp<=temp+1;c_st<=s0;endends1:begin cs<=0;mark<=1;c_st=s2;ends2:begin cs<=0;mark<=1;if(flag==1)c_st<=s0;else c_st<=s2;enddefault:c_st<=s0;endcaseendalways@(posedge clk_ad_r)beginif(mark==1)if(cnt==8)begin cnt<=0;flag<=1;endelse begin cnt<=cnt+1;flag<=0;endendalways@(posedge clk_ad_r)beginif(mark==1)if(flag==1)dataout<=dataout_r;else dataout_r={dataout_r[6:0],sdata};//串转并endendmodule模块二/*功能:一位BCD码加减法模块输入参数:标准时钟clk,被减数/加数dataa,减数/加数datab,低位来的借位/进位cin输出参数:向高位的借位/进位cout,差/和result*/module bcd1(dataa, datab,cin, cout, result);input [3:0] dataa;input [3:0] datab;input cin;output reg cout;output [3:0]result;reg [4:0]result_r;assign result=result_r;always @(*)beginresult_r = dataa + datab + cin; // 二进制加法if((result_r > 4'd9 )) //||((result_r == 4'd0)&&(dataa != 0))||((result == 4'd1)&&(dataa != 0)&&(result_ab == 4'd0))/*当结果大于9时,补6,当结果由不同时为0的加数相加得0时,补6*/ beginresult_r = result_r + 4'd6;cout = 1;endelsebeginresult_r = result_r;cout =0;endendendmodule模块三module lookup(V,q);input [7:0]V;output [11:0]q;reg [11:0]q;reg [11:0]HB,LB;wire d1,d2,d3;always@(V)begin case(V[7:4]) //--A/D值的高4位转换成3位BCD码4'b1111: HB<=12'b001001000000; //--2.404'b1110: HB<=12'b001000100100; //--2.244'b1101: HB<=12'b001000001000; //--2.084'b1100: HB<=12'b000110010010; //--1.924'b1011: HB<=12'b000101110110; //--1.764'b1010: HB<=12'b000101100000; //--1.604'b1001: HB<=12'b000101000100; //--1.444'b1000: HB<=12'b000100101000; //--1.284'b0111: HB<=12'b000100010010; //--1.124'b0110: HB<=12'b000010010110; // --0.964'b0101: HB<=12'b000010000000; // --0.804'b0100: HB<=12'b000001100100; //--0.644'b0011: HB<=12'b000001001000; //--0.484'b0010: HB<=12'b000000110010; //--0.324'b0001: HB<=12'b000000010110; //--0.164'b0000: HB<=12'b000000000000; // --0.00default: HB<=12'b111111111111;endcasecase(V[3:0]) //--A/D值低4位变为3位BCD码4'b1111: LB<=12'b000000010101; // --0.154'b1110: LB<=12'b000000010100; // --0.144'b1101: LB<=12'b000000010011; // --0.134'b1100: LB<=12'b000000010010; // --0.124'b1011: LB<=12'b000000010001; // --0.114'b1010: LB<=12'b000000010000; // --0.104'b1001: LB<=12'b000000001001; // --0.094'b1000: LB<=12'b000000001000; // --0.084'b0111: LB<=12'b000000000111; // --0.074'b0110: LB<=12'b000000000110; // --0.064'b0101: LB<=12'b000000000101; // --0.054'b0100: LB<=12'b000000000100; // --0.044'b0011: LB<=12'b000000000011; // --0.034'b0010: LB<=12'b000000000010; // --0.024'b0001: LB<=12'b000000000001; // --0.014'b0000: LB<=12'b000000000000; // --0.00default: LB<=12'b111111111111;endcaseendbcd1u1(.dataa(LB[3:0]),.datab(HB[3:0]),.result(q[3:0]),.cin(1'b0),.cout(d 1));bcd1u2(.dataa(LB[7:4]),.datab(HB[7:4]),.result(q[7:4]),.cin(d1),.cout(d2) );bcd1u3(.dataa(LB[11:8]),.datab(HB[11:8]),.result(q[11:8]),.cin(d2),.cout( d3));endmodule模块四module scan_led(clk_1k,d,dig,seg); //模块名scan_ledinput clk_1k; //输入时钟input[11:0] d; //输入要显示的数据output[7:0] dig; //数码管选择输出引脚output[7:0] seg; //数码管段输出引脚reg[7:0] seg_r; //定义数码管输出寄存器reg[7:0] dig_r; //定义数码管选择输出寄存器reg[3:0] disp_dat; //定义显示数据寄存器reg[2:0]count; //定义计数寄存器assign dig = dig_r; //输出数码管选择assign seg = seg_r; //输出数码管译码结果always @(posedge clk_1k) //定义上升沿触发进程beginif(count<2)count <= count + 1'b1;else count<=0;endalways @(posedge clk_1k)begincase(count) //选择扫描显示数据3'd0:disp_dat = d[11:8]; //第一个数码管3'd1:disp_dat = d[7:4]; //第二个数码管3'd2:disp_dat = d[3:0]; //第三个数码管endcasecase(count) //选择数码管显示位3'd0:dig_r = 8'b01111111; //选择第一个数码管显示3'd1:dig_r = 8'b10111111; //选择第二个数码管显示3'd2:dig_r = 8'b11011111; //选择第三个数码管显示endcasecase(count)3'd0:seg_r[7]=0;3'd1:seg_r[7]=1;3'd2:seg_r[7]=1;endcaseendalways @(disp_dat)begincase(disp_dat) //七段译码4'h0:seg_r[6:0] = 7'b1000000; //显示04'h1:seg_r[6:0] = 7'b1111001; //显示14'h2:seg_r[6:0] = 7'b0100100; //显示24'h3:seg_r[6:0] = 7'b0110000; //显示34'h4:seg_r[6:0] = 7'b0011001; //显示44'h5:seg_r[6:0] = 7'b0010010; //显示54'h6:seg_r[6:0] = 7'b0000010; //显示64'h7:seg_r[6:0] = 7'b1111000; //显示74'h8:seg_r[6:0] = 7'b0000000; //显示84'h9:seg_r[6:0] = 7'b0010000; //显示9 default:seg_r[6:0] = 7'b1111111;endcaseendendmodule仿真波形如下:四、结论调节SPOC实验平台上的相应按钮,使显示管出现不同的电压数值,同时使用万用表测出对应的电压数值。
单片机数字电压表课程设计报告
![单片机数字电压表课程设计报告](https://img.taocdn.com/s3/m/da8abb4b26284b73f242336c1eb91a37f111328b.png)
单片机数字电压表课程设计报告单片机数字电压表课程设计报告摘要:本次课程设计采用单片机来实现数字电压表的设计,通过对市场上常见单片机的选型和开发工具的使用,实现了数字电压表的硬件和软件设计。
该数字电压表具有分辨率高、测量精度高、响应速度快等特点,可广泛应用于测量高压、低压、直流电压等领域。
关键词:单片机、数字电压表、驱动电路、计数器一、课程设计目的本次课程设计旨在让学生了解数字电压表的设计方法和原理,通过使用单片机来实现数字电压表的设计,提高学生的实践能力和创新能力。
同时,通过本次课程设计,还可以让学生了解单片机的使用方法和开发工具的使用,加深对单片机应用的理解。
二、课程设计内容本次课程设计采用单片机来实现数字电压表的设计,具体包括以下内容:1. 对市场上常见单片机的选型和开发工具的使用。
2. 设计数字电压表的硬件电路,包括驱动电路、计数器、计数器清零电路等。
3. 设计数字电压表的软件电路,包括计数器清零程序、计数器累加程序、显示程序等。
4. 将数字电压表与单片机连接,进行测试和调试。
三、课程设计原理数字电压表的设计原理是利用单片机的计数器来实现对电压值的计数和显示。
单片机通过外部时钟信号来控制计数器的计数频率,将计数器的计数值累加到显示寄存器中,从而实现对电压值的显示。
同时,通过对电压值的测量和计算,可以实现对高压、低压、直流电压的测量和显示。
四、课程设计步骤1. 对市场上常见单片机的选型和开发工具的使用。
2. 设计数字电压表的硬件电路,包括驱动电路、计数器、计数器清零电路等。
3. 设计数字电压表的软件电路,包括计数器清零程序、计数器累加程序、显示程序等。
4. 将数字电压表与单片机连接,进行测试和调试。
五、课程设计成果通过本次课程设计,学生可以独立完成数字电压表的硬件和软件设计,掌握单片机的应用和开发技巧,提高实践能力和创新能力。
同时,学生还可以根据实际应用需求,对数字电压表进行改进和创新,提高其实用性和市场竞争力。
数字电压表设计报告
![数字电压表设计报告](https://img.taocdn.com/s3/m/9c7d5685d4d8d15abe234e81.png)
数字电压表设计(设计者:陈)一、设计任务和要求1.1、任务描述:1、以单片机为核心,设计一个数字电压表,能够对至少两路0~5V 的模拟电压进行采集,采集数据送LED 显示。
2、设计显示模式切换按钮,可单独显示某一路电压信号,也能对所有电压信号进行循环显示。
3、超过界限指示灯闪烁。
4、创新功能 1.2、任务要求:1、理解任务书要求,明确分工,查找相关资料,制定系统方案;2、论证系统设计方案,运用Proteus 等软件绘制电路原理图;3、根据硬件电路,确定算法,设计程序框图,编写程序代码;4、误差分析与改进,完成设计报告。
二、方案论证2.1、由ADC0808构成模数转换,其原理图如下所示:ADA ADB ADC OUT121ADD B 24ADD A25ADD C 23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START 6OUT58EOC 7OE9CLOCK 10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE 22U2ADC0808Volts+1.30Volts+4.2526%RV11k85%RV21k2.2、由ATC89C51控制程序模块,由IO 口分别对显示,输入等模块进行控制。
2.3、由四位一体数码管对测量值进行显示,如下图所示:E G 1E G 2E G 3E G 4R24702.3、由按钮控制循环/单路切换,如下图所示:KEY1循环/单路KEY2通道选择2.4、LED 灯报警,当电压超过一定值时会闪烁。
D1LED-BLUE三、电路基本单元电路设计下面是数字电压表的原理图:S E G 1S E G 2S E G 3SEG1SEG2SEG3ADA ADA ADB ADCADB ADC SEG4S E G 4XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC130pFC230FR110kC310uFOUT121ADD B 24ADD A25ADD C 23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START 6OUT58EOC 7OE9CLOCK 10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE 22U2ADC0808R2470R3470R4470R5470R6470R7470R8470R9470+88.8Volts+88.8Volts26%RV11k85%RV21kKEY1循环/单路KEY2通道选择D1LED-BLUE3.1、主控模块该设计的核心控制电路是 AT89C52单片机。
数字电压表的设计与制作报告
![数字电压表的设计与制作报告](https://img.taocdn.com/s3/m/b3f1820d6c85ec3a87c2c5c4.png)
1课题名称数字电压表的设计与制作2设计指标及要求3位的数字电压表电路,技术指标要求是:设计并制作一个通用液晶显示211)直流电压测量范围(0-200V):共分5档200mV、2V、20V、200V;2)基本量程:200mV,测量速率(2-5)次任选;3)分辨率0.1mV;γ4)测量误差:%1.0±≤5)具有正、负电压极性显示,小数点显示和超量程显示。
3方案论证方案一:采用AT89S52单片机为核心、以AD0809数模转换芯片采样、以1602液晶屏显示制作具有电压测量功能的具有一定精度的数字电压表。
AT89S52是一个低功耗,高性能CMOS 8位单片机;8位AD转换器ADC0809,编程简单方便,价格便宜;采用液晶1602做为显示电路,功能强大,适合做各类扩展。
但该方案涉及的编程复杂,同时硬件电路也颇复杂。
方案二:采用ICL7106A/D转换器,液晶显示器EDS801A配以外围电路进行设计。
ICL7106是美国Intersil公司专为数字仪表生产的数字仪,满幅输入电压一般取200mV或2V。
该芯片集成度高,转换精度高,抗干扰能力强,输出可直接驱动LCD液晶数码管,只需要很少的外部元件,就可以构成数字仪表模块,硬件电路简单,而且精度高,完全可以实现要求。
综合分析,同时结合到软硬件实际,选择方案二,原理简单,仅涉及硬件电路。
4系统框图4.1 系统框图5单元电路设计及参数计算5.1AD转换器及外围电路设计电路图如下图5.1所示。
图5.1 AD转换器及外围电路图其中液晶显示采用EDS801,将其各数码的字段及公共端与ICL7106相应端联接。
OSC1、OSC2和OSC3是内部时钟的外接电阻和电容引脚;TEST是数字逻辑地端;VRH和VRL是参考电压的输入端,参考电压决定着AD转换器的灵敏度,它是由U DD分压而来,调节P R分压比可调节灵敏度(调满);两个CR脚是基准电容的外接引脚;COM端是模拟信号公共端;AZ、BUF和INT分别是自动调零端、缓冲控制端和积分器输出端;U+和U-为电源端;IN+和IN-为待测信号输入端。
数字电压表的设计实验报告
![数字电压表的设计实验报告](https://img.taocdn.com/s3/m/41dfe9b9192e45361166f591.png)
.课程设计——基于51数字电压表设计物理与电子信息学院电子信息工程1、课程设计要求使用单片机AT89C52和ADC0832设计一个数字电压表,能够测量0-5V之间的直流电压值,两位数码显示。
在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为5V;能用两位LED进行轮流显示或单路选择显示,显示精度0.1伏。
2、硬件单元电路设计AT89S52单片机简介AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS -51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
ADC0832模数转换器简介ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。
图1芯片接口说明:·CS_ 片选使能,低电平芯片使能。
·CH0 模拟输入通道0,或作为IN+/-使用。
·CH1 模拟输入通道1,或作为IN+/-使用。
·GND 芯片参考0 电位(地)。
数字电压表设计报告
![数字电压表设计报告](https://img.taocdn.com/s3/m/c50e6d4f10661ed9ad51f39f.png)
31/2数字电压表一.设计目的课程设计的主要目的是通过某一模拟、数字电路的综合设计,熟悉一般模拟、数字电路综合设计过程,设计要求,应完成的工作内容和具体的设计方法。
通过设计也有助于复习、巩固以往的学习内容,达到灵活应用的目的。
在设计完成后还要将设计的电路安装,调试以加强动手能力,在此过程中培养从事设计工作的整体观念。
课程设计以培养能力为主,在独立完成设计任务的同时注重多方面能力的培养与提高,主要包括一下几方面:1.独立工作能力和创造力;2.综合运用专业以及基础知识,解决实际工程技术问题的能力;3.查阅图书资料、产品手册和各种工具书的能力;4.工程绘图能力;5.写技术报告和编制技术资料的能力。
二.设计指标1.能测量0-1.999V、0-19.99V、0-199.9V值;2.三位半数码显示;3.测量交直流电压;4.使用元器件越少越好。
三.设计方案及选择讨论数字电压表的主要内容可归纳为电压测量的数字化方法。
其关键是如何把连续的随时间变化的模拟量转化为数字量。
5.电路总体框图如图1-3所示图1-3 电路总体框图此方案所用器材:⒈数字逻辑试验箱万用表、直流电压源、双踪示波器、配线安装工具⒊集成电路及元器件的名称、型号及数量。
见表1-1:序号名称 型号 数量 1 双积分单片ADC MC14433 1块 2 BCD 七段译码器驱动器 CD4511 1块 3 达林顿反相驱动器 MC1413 1块 4 LED 七段显示数码管LG5011AH4只 5电阻、电容若干四、 单元电路设计⒈ 桥式整流电路:整流电路的任务是将交流点变换成直流电,完成这一任务主要是靠二极管单向导电作用,故二极管是构成整流电路的关键元件。
电路如图4-1-1:⒉ 量程控制电路:采用多量程选择的分压电阻网络,可按整机输入电阻为100M Ω标准经计算得4个分压电阻分别为9M Ω、900K Ω、90K Ω、10K Ω,可用四个双刀双掷开关进行控制切换,实现多量程扩展电压测量功能。
数字电压表设计实验报告
![数字电压表设计实验报告](https://img.taocdn.com/s3/m/6b4945c1a1c7aa00b52acb41.png)
《数字电路》课程设计报告课题:数字电压表专业:电子信息工程班级:姓名:学号:指导老师:日期:2013年12月10日目录一、摘要 (2)二、设计任务及要求 (2)三、设计总体方案 (2)四、单元电路的设计 (3)五、调试过程及结果分析 (6)六、心得感悟 (7)七、参考文献 (7)八、附录(整机逻辑电路图、实物图、PCB板图) (8)一、摘要本文主要介绍的是基于ICL7107数字电压表的设计的设计,ICL7107是目前广泛应用于数字测量系统是一种集三位半转换器段驱动器位驱动器于一体的大规模集成电路,ICL7107是目前广泛应用于数字测量系统的一种3位半A/D转换器,能够直接驱动共阳极数字显示器,够成数字电压表,此电路简洁完整,稍加改造就可以够成其他电路,如数字电子秤、数字温度计的等专门传感器的测量工具。
ICL7107是目前广泛应用于数字测量系统是一种集三位半转换器段驱动器、位驱动器于一体的大规模集成电路,官地方官方主要用于对不同电压的测量和许多工程上的应用,调频接口电路,它采用的是双积分原理完成A/D转换,全部转换电路用CMOS大规模集成电路设计。
应用了ICL7107芯片数码管显示器等,芯片第一脚是供电,正确电压时DC5V,连接好电源把所需要测量的物品连接在表的两个端口,从而可以在显示器上看到所需要的结果。
在软件设计上,主要编写了实现计数频率的调节和单片机功能的相关程序,,最后把软件设计和硬件设计结合到一起,然后进行调试。
二、设计任务及要求1. 设计一个数字电压表电路,能够实验电压测量;2.测量范围:通过小数点驱动电路,直流电压0V到1.999V,0V到19.99V,0V 到199.9V,0V到1999V.3.画出数字电压表电路原理图,并作出PCB图;4.利用芯片ICL7107来实现电路功能;5.选择合适的电阻、电容、液晶显示器等器件;6.完成全电路理论设计、制作、调试,制板锡焊;7.上交制作产品一件。
数字电压表课程设计报告
![数字电压表课程设计报告](https://img.taocdn.com/s3/m/c6a743682bf90242a8956bec0975f46527d3a7be.png)
数字电压表课程设计报告一、实验目的本实验旨在使学生掌握数字电压表的基本原理、构成和使用方法,通过实践锻炼学生的动手操作能力和实际问题解决能力。
二、实验器材数字电压表、直流稳压电源、电阻箱、待测电路板等。
三、实验内容1.数字电压表的基本原理、构成和使用方法的介绍;2.根据实验要求搭建待测电路;3.调节直流稳压电源输出电压为所需值;4.连接数字电压表到待测电路上并测量电压值;5.对测得的电压值进行分析、处理和讨论。
四、实验流程及步骤1.实验器材准备:数字电压表、直流稳压电源、电阻箱、待测电路板等器材;2.理解数字电压表的基本原理与构成,并熟练掌握使用方法;3.根据实验所需,找到相应的电路板,搭建待测电路,并连接好直流稳压电源;4.调节直流稳压电源的输出电压为所需值,并连接数字电压表到待测电路上;5.测量待测电路的电压值,并在数字电压表上进行记录;6.对测得的电压值进行分析、处理和讨论,并得出实验结论。
五、实验注意事项1.在操作实验器材时,务必严格按照使用说明书和教师的要求进行操作;2.实验器材保持完好无损,任何破损的器材均不能使用;3.实验前需仔细了解实验内容,规划实验流程;4.在操作实验时,要认真记录实验数据,并进行及时分析处理;5.实验结束后,将实验器材妥善归位,保持实验室整洁干净。
六、实验结果及结论通过实验,我们得到了待测电路的电压值,并对其进行了分析、处理和讨论。
根据实验结果和所给数据,我们得出了结论:数字电压表可准确测量待测电路的电压值,为后续研究和实践提供重要依据。
七、实验心得体会通过本次实验,我对数字电压表的原理及其使用方法有了更深入的了解,并通过实践掌握了一定的动手操作能力和实际问题解决能力。
同时,我认识到在实验中必须注重细节和注意安全,仔细完成每一个实验步骤,及时记录和分析实验数据,才能使实验结果更加准确和可靠。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电压表设计报告课程设计报告题目:数字电压表学生姓名:张强学生学号:1214010242系别:电气信息工程学院专业:自动化(2)班届别:20XX指导教师:徐峰1设计总体方案1.1设计要求⑴以MCS-51系列单片机为核心器,组成一个简单的直流数字电压表。
⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。
⑶电压显示用4位一体的LED数码管显示,至少能够显示两位小数。
⑷尽量使用较少的元器。
1.2设计思路⑴根据设计要求,选择AT89C51单片机为核心控制器。
⑵A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。
⑶电压显示采用4位一体的LED数码管。
⑷LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。
1.3设计方案硬电路设计由6个部分组成;A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。
硬电路设计框图如图1所示。
时钟电路复位电路A/D转换电路测量电压输入显示系统P1P2P2P0图1数字电压表系统硬设计框图2硬电路设计2.1A/D转换模块现实世界的物理量都是模拟量,能把模拟量转化成数字量的器称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。
一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用[1]。
逐次逼近型A/D转换器原理逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。
它利用内部的寄存器从高位到低位一次开始逐位试探比较。
转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量[5]。
其原理框图如图2所示:顺序脉冲发生器逐次逼近寄存器ADC电压比较器输入电压输入数字量图2逐次逼近式A/D转换器原理图2.1.2主要特性ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域[5]。
ADC0808主要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与TTL兼容;转换时间:128μs;转换精度:0.2%;单个+5V电源供电;模拟输入电压范围0-+5V,无需外部零点和满度调整;低功耗,约15mW[6]。
2.1.3ADC0808的外部引脚特征ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图3所示。
图3ADC0808引脚图下面说明各个引脚功能:IN0-IN7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。
地址输入控制(4条):ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。
ADDA,ADDB,ADDC:3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表1所示:表1ADC0808通道选择表地址码对应的输入通道CBA11111 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6START:START为“启动脉冲”输入法,该线上正脉冲由CPU 送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。
EOC:EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。
D1-D8:数字量输出端,D1为高位。
OE:OE为输出允许端,高电平能使D1-D8引脚上输出转换后的数字量。
REF+、REF-:参考电压输入量,给电阻阶梯网络供给标准电压。
Vcc、GND:Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF-与GND连接在一起.CLK:时钟输入端。
2.1.4ADC0808的内部结构及工作流程ADC0808由8路模拟通道选择开关,地址锁存与译码器,比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成,其内部结构如图4所示。
图4ADC0808的内部结构其中:(1)8路模拟通道选择开关实现从8路输入模拟量中选择一路送给后面的比较器进行比较。
(2)地址锁存与译码器用于当ALE信号有效时,锁存从ADDA、ADDB、ADDC3根地址线上送来的3位地址,译码后产生通道选择信号,从8路模拟通道中选择当前模拟通道。
(3)比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路组成8位A/D转换器,当START信号有效时,就开始对当前通道的模拟信号进行转换,转换完成后,把转换得到的数字量送到8位三态锁存器,同时通过引脚送出转换结束信号。
(4)三态输出锁存器保存当前模拟通道转换得到的数字量,当OE信号有效时,把转换的结果送出。
ADC0808的工作流程为:(1)输入3位地址,并使ALE=1,将地址存入地址锁存器中,经地址译码器从8路模拟通道中选通1路模拟量送给比较器。
(2)送START一高脉冲,START的上升沿使逐次寄存器复位,下降沿启动A/D转换,并使EOC信号为低电平。
(3)当转换结束时,转换的结果送入到输出三态锁存器中,并使EOC信号回到高电平,通知CPU已转换结束。
(4)当CPU执行一读数据指令时,使OE为高电平,则从输出端D0-D7读出数据。
2.2单片机系统2.2.1AT89C51性能AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。
该器采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51功能性能:与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:1000次写/擦循环;数据保留时间:10年;全静态工作:0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式[6]。
2.2.2AT89C51各引脚功能AT89C51提供以下标准功能:4KB的Flash闪速存储器,128B 内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬复位。
AT89C51采用PDIP封装形式,引脚配置如图5所示[7]。
图5AT89C51的引脚图AT89C51芯片的各引脚功能为:P0口:这组引脚共有8条,P0.0为最低位。
这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。
P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
P1口:这8个引脚和P0口的8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。
P2口:这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用I/O口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器的读/写数据。
P3口:这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表2所示:表2P3口各位的第二功能P3口各位第二功能P3.0RXT(串行口输入)P3.1TXD(串行口输出)P3.2/INT0(外部中断0输入)P3.3/INT1(外部中断1输入)P3.4T0(定时器/计数器0的外部输入)P3.5T1(定时器/计数器1的外部输入)P3.6/WR(片外数据存储器写允许)P3.7/RD(片外数据存储器读允许)Vcc为+5V电源线,Vss接地。
ALE:地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。
在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列。
该脉冲序列可以作为外部时钟源或定时脉冲使用。
/EA:片外存储器访问选择线,可以控制89C51使用片内ROM 或使用片外ROM,若/EA=1,则允许使用片内ROM,若/EA=0,则只使用片外ROM。
/PSEN:片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号。
RST:复位线,可以使89C51处于复位(即初始化)工作状态。
通常89C51复位有自动上电复位和人工按键复位两种。
XTAL1和XTAL2:片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)的定时反馈回路。
2.4LED显示系统设计2.4.1LED基本结构LED是发光二极管显示器的缩写。