当前位置:文档之家› 简易数字电压表 实验报告

简易数字电压表 实验报告

简易数字电压表 实验报告
简易数字电压表 实验报告

简易数字电压表设计

实验报告

姓名陈秀秀

学号 201203870404

指导教师贾立新

专业班级电气1202 学院信息工程学院

一.实验要求

采用C8051F360单片机最小系统设计一简易数字电压表,实现对0~3.3V直流电压的测量,原理框图如图3-1所示。模拟输入电压通过一只1 kΩ电位器产生,ADC0将模拟电压转换成数字量后换算成电压值,用十进制的形式在LCD上显示。进一步,将单片机最小系统与PC通过RS-232通信电缆连接,将A/D转换的数字量在PC终端显示。

图3-1

二.实验设计

设计方案:由主程序、T0中断服务程序、ADC0中断服务程序组成。具体流程图如下图3-2所示。

图3-2

三.具体设计

1.简易数字电压表设计F360初始化及LCD初始化(详细程序代码见附录)

①内部振荡器初始化:OscInit()

②I/O端口初始化:PortIoInit()

③外部数据存储器接口初始化:XramInit()

④定时器初始化:TimerInit()

⑤中断系统初始化:Int0Init()

⑥ADC0初始化:ADC_Init()

⑦PCA初始化:PcaInit()

2.电压转换方式(将电压转换为十进制)

ADCDAT=ADC0H*256+ADC0L;

VOLT=ADCDAT*2.4/1024=ADCDAT*0.002344;

VOLTOUT=VOLT*1000;

for(i=0;i<4;i++)

{

VOLTBCD[i]=VOLTOUT%10;

VOLTOUT=VOLTOUT/10;

}

3.LCD显示程序设计

①检查LCD是否空闲子程序

void CheckLcd()

{

uchar temp=0x00;

uchar xdata *addr;

while(1)

{

addr=RCOMADDR;

temp=*addr;

temp&=0x80;

if(temp==0x00)

break;

}

}

②电压值显示

WriteCom(0x9C);

WriteData(VOLTBCD[3]+0x30);

WriteData(0x2E);

WriteData(VOLTBCD[2]+0x30);

WriteData(VOLTBCD[2]+0x30);

WriteData(VOLTBCD[0]+0x30);

WriteData(0x56);

4.实验中AD转换方式选用逐次逼近型,A/D转换完成后得到10位数据分为高低字节存放在寄存器ADCOH和ADC0L中,此处选择右对齐,转换时针为

2MHZ。

5.选择内部参考电压2.4伏为基准(在实际单片机调试中改为3.311伏),正端接P2.0,负端接地。

四.实验数据测量

V(测量) 0.000 0.372 0.523 0.724 0.980 1326 1.792 2.220 V(实际) 0.00 0.38 0.53 .073 0.99 1.33 1.79 2.23 结论:校准后,测量数据与实际电压误差小于0.01,符合实验精度要求.

五.代码附录

#include

#define uchar unsigned char

#define uint unsigned int

#define WCOMADDR 0xC008 //写命令寄存器的地址

#define WDATADDR 0xC009 //写数据寄存器的地址

#define RCOMADDR 0xC00A //读命令寄存器的地址

#define RDATADDR 0xC00B //读数据寄存器的地址

#define KEYCS 0xC00C //读键盘的地址

uchar code hanzi[]=

{0xbc,0xf2,0xd2,0xd7,0xca,0xfd,0xd7,0xd6,0xb5,0xe7,0xd1,0xb9,0xb1,0xed};//“简易数字电压表”

uchar code keynum[]="键值";

uchar code keyc[]="次数";

uchar time=0; //软件计数器

float VOLT;

uint VOLTBCD[4];

uint ADCDAT,VOLTOUT;

uchar keyn,keycode;

void OscInit(); //内部振荡器初始化

void PortIoInit(); //I/O端口初始化

void XramInit(); //外部数据存储器接口初始化

void PcaInit(); //PCA初始化(设置看门狗定时器的工作状态)void InitDevice(); //内部资源初始化

void CheckLcd(); //检查LCD是否空闲子程序

void WriteCom(uchar n); //Lcd写指令子程序

void WriteData(uchar m); //Lcd写数据子程序

void InsitiLcd(); //Lcd初始化子程序

void DispHan( uchar code *a,uchar m,uchar k); //显示汉字子程序

void TimerInit(); //定时器初始化

void InterruptsInit(); //中断系统初始化

void ADC_init(); //ADC0初始化

void Int0Init(); //外部中断初始化

void main()

{

uchar i;

InitDevice(); //F360初始化

InsitiLcd(); //LCD模块初始化

ADC_init();

DispHan(hanzi,0x90,0x0e); //显示“简易数字电压表”

AD0BUSY=1; //启动A/D转换;

while(1)

{

if(time >=49)

{

time =0;

ADCDAT=ADC0H*256+ADC0L;

VOLT=ADCDAT*0.002344;

VOLTOUT=VOLT*1000;

if(VOLTOUT>=1.0)

{

if(VOLTOUT>=1.5)

VOLTOUT=VOLTOUT*1.02;

else VOLTOUT=VOLTOUT*1.01;

}

for(i=0;i<4;i++)

{

VOLTBCD[i]=VOLTOUT%10;

VOLTOUT=VOLTOUT/10;

}

WriteCom(0x9C);

WriteData(VOLTBCD[3]+0x30);

WriteData(0x2E);

WriteData(VOLTBCD[2]+0x30);

WriteData(VOLTBCD[1]+0x30);

WriteData(VOLTBCD[0]+0x30);

WriteData('V');

TR0=1;

AD0BUSY=1;

}

}

}

void Timer0() interrupt 1

{

TL0=0xf0;

TH0=0xd8; //重置时间常数10ms

time++;

}

/********************************************* /*void ReadKey() interrupt 0 //外部中断INT0 {

uchar xdata *addr;

uchar c1,c2;

addr=KEYCS;

keycode=*addr;

keycode&=0x0F;

keyn++;

DispHan(keynum,0x88,0x04);

WriteCom(0x8b);

if(keycode<10)

{

WriteData(0x30);

WriteData(keycode+0x30);

}

else

{

c1=keycode%10;

c2=keycode/=10;

WriteData(c2+0x30);

WriteData(c1+0x30);

}

DispHan(keyc,0x98,0x04);

WriteCom(0x9b);

if(keyn==10) keyn=0;

WriteData(keyn+0x30);

}*/

void OscInit(void) //内部振荡器初始化转换时钟频率为2Hz {

SFRPAGE=0x0f; //选择特殊功能寄存器页地址

OSCICL=OSCICL+4; //频率校准

OSCICN=0xc2; //允许内部振荡器,频率除2 SYSCLK=12MHz CLKSEL=0x00; //选择内部振荡器

SFRPAGE=0x00;

return;

}

void PortIoInit(void) //I/O口初始化

{

SFRPAGE=0x0f;

P0MDIN=0xe7; //P0.3、P0.4模拟量输入

P0MDOUT=0x83; //P0.0、P0.1、P0.7推拉式输出

P0SKIP=0xf9; //P0.1、P0.2不被交叉开关跳过

P1MDIN=0xff; //P1设置为数字量输入

P1MDOUT=0xff; //P1设置为推拉式输出

P1SKIP=0xff; //P1被交叉开关跳过

//P2MDIN=0xff; //P2设置为数字量输入

//P2MDOUT=0xff; //P2设置为推拉式输出

//P2SKIP=0xff; //P2被交叉开关跳过

P2MDIN=0xfe; //P2.0设置为模拟量输入

P2MDOUT=0xfe; //P2.0设置为OD输出

P2SKIP=0xff; //P2被交叉开关跳过

P3MDIN=0xff; //P3设置为数字量输入

P3MDOUT=0xff; //P3设置为推拉式输出

P3SKIP=0xff; //P3被交叉开关跳过

P4MDOUT=0xff; //P4设置为推拉式输出

XBR0=0x01; //UART连到端口引脚

XBR1=0xC0; //禁止弱上拉,交叉开关允许SFRPAGE=0x00;

return;

}

void XramInit(void) //外部数据储存器初始化

{

SFRPAGE=0x0f;

EMI0CF=0x07; //引脚复用方式

SFRPAGE=0x00;

return;

}

void TimerInit() //定时器初始化

{

TMOD=0x01; //定时器工作方式0

TL0=0xf0; //定时10ms

TH0=0xd8;

TR0=1; //启动定时器工作

}

void Int0Init() //外部中断初始化

{

IT01CF=0x05; //INT0引脚P0.6

EX0=1; //允许INT0中断

IT0=1; //下降沿触发

EA=1; //开中断

}

void ADC_init()

{

ADC0CF=0x28; // 选择内部参考电压2.4V为基准ADC0CN=0x80; //正端接P2.0

AMX0P=0x08; //负端接地

AMX0N=0x1F; //右对齐,转换时针为2MHZ

REF0CN=0x01; //写AD0BUSY启动A/D转换器

}

void PcaInit(void) //PCA初始化

{

PCA0CN=0x40; //允许PCA计数器/定时器

PCA0MD=0x00; //禁止看门狗定时器

return;

}

void InterruptsInit(void) //中断系统初始化

{

EA=1;

ET0=1; //开启定时器中断

EX0=1; //开启外部中断

PX0=1; //外部中断0设置为高优先级

IE0=0;

// ET0=0;

ET1=0;

}

void InitDevice(void) //C8051F360内部资源初始化{

OscInit();

PortIoInit();

XramInit();

TimerInit();

InterruptsInit();

Int0Init();

PcaInit();

return;

}

void CheckLcd()

{

uchar temp = 0x00;

uchar xdata *addr;

while (1)

{

addr=RCOMADDR;

temp=*addr;

temp &= 0x80;

if(temp == 0x00) break;

}

}

void WriteCom(uchar n) //写指令子程序

{

uchar xdata *addr;

CheckLcd();

addr=WCOMADDR;

*addr=n;

}

void WriteData(uchar m) //写数据子程序

{

uchar xdata *addr;

CheckLcd();

addr=WDATADDR;

*addr = m;

}

void InsitiLcd() //LCD模块初始化

{

WriteCom(0x30); //设为基本指令集

WriteCom(0x01); //清屏

WriteCom(0x0c); //开整体显示

}

void DispHan( uchar code *a,uchar m,uchar k) // 汉字显示{

uchar dat, i, j, length;

length = k/2;

WriteCom(m);

for (i=0;i < length;i++)

{

j = 2*i;

dat = a[j];

WriteData(dat);

dat = a[j+1];

WriteData(dat);

}

// WriteData(0x3a);

}

void DispShu( unsigned int a,uchar m) //数字显示{

WriteCom(m);

WriteData(a+0x30);

}

基于51单片机的简易数字电压表的设计

课题交流毫伏表设计 系别 专业 年级 姓名 学号 指导教师

目录 第一章引言 (2) 1.1摘要 (2) 1.2 设计目的 (2) 1.3设计任务及要求 (2) 1.4 课程设计过程 (2) 第二章系统方案选择和论证 (3) 2.1基本方案论证 (3) 2.2输出部分中各模块的方案选择 (3) 2.3总体方案设计 (4) 第三章AT89C51的结构 (5) 3.1AT89C51的概述 (5) 3.2 AT89C51部结构 (5) 3.3存储器和特殊功能寄存器的介绍 (5) 3.4时钟电路和复位电路 (7) 第4章元器件的选择 (7) 4..1显示 (7) 4.2 模数(A/D)芯片 (11) 4.3 数模AC/DC736芯片 (13) 4.4 OP07 (13) 第五章电路的设计 (14) 5.1时钟电路 (15) 5.2A/D转换程序 (17) 第6章系统的调试 (18) 6.1 硬件的调试 (18) 6.2软件调试 (19) 参考文献 (20) 附录 (20) 程序清单 (20) 元件清单 (25)

容摘要 本次设计主要解决AC/DC转换、A/D转换、数据处理及显示控制等几个模块。控制系统采用AT89C51单片机,A/D转换采用ADC0809。要求交流毫伏表检测信号的电压围:1mv—2v ,输入信号的频率围:10Hz-2000KHz,并在LCD1602液晶上显示测量电压信号。 关键词AT89C51单片机;电压测量;A/D转换;LCD1602液晶显示;AC/DC 转换;放大;衰减。 1.2 设计目的 本课程的任务是通过“交流毫伏表的设计”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的工作个对所学知识的综合应用能力。 1.3设计任务及要求 1、设计一个交流毫伏表,检测信号的电压围:1mv—2v。 2、输入信号的频率围:10Hz-2000KHz 3、查阅相关资料,了解交流毫伏表的各种现实发法极其特点,并着重掌 握交流毫伏表的设计及显示等。 4、熟悉并掌握个芯片的功能极其管脚分。 5、检测设计电路中所需要的各种电子元器件。 6、对设计的交流毫伏表进行装接与调试,要时设计的电路达标。 7、完成设计交实物图极其设计报告。 1.4课程设计过程 1、各组组成员讨论并进行软硬件系统设计,经指导老师同意进行具体方 案实施。 2、将可行方案硬件电路焊接在万能板上,并检查。 3、软硬件仿真。

简易数字电压表

单片机课程设计报告 简易数字电压表 一、设计任务与要求 1.电压表的测量范围为0-5V; 2.测量精度约为20mV。 二、方案设计与论证 方案一: 选择MC14433A/D转换器、CD4511等元器件设计电路: 方案二: 用单片机设计电路:

设计采用STC89C52单片机、A/D转换器ADC0809和共阴数码管为主要硬件,分析了数字电压表Proteus软件仿真电路设计及编程方法。将单片机应用于测量技术中,采用ADC0809将模拟信号转化为数字信号,用STC89C52实现数据的处理。通过数码管以扫描的方式完成显示。 方案比较: 方案1:3为半双积分式A/D转换器MC14433转换精度为读数的±0.05%±1字,并能很方便地判断出是否超欠量程,以便于量程的自动切换功能的实现,其中集成了双积分式A/D转换器所有的CMOS模拟电路和数字电路。具有输入阻抗高,功耗低,电源电压范围宽,精度高等特点,并且具有自动校零和自动极性转换功能。缺点是工作速度低,且外围电路需配基准电源,短译码驱动器和位驱动器,电路较复杂。 方案2:设计电路简单。易于控制,且性能稳定;单调试过程需要一定的编程基础,可利用Proteus软件仿真电路设计和调试。Proteus软件是一种电路分析和实物模拟仿真软件。它运行于Windows操作系统上,可以进行仿真、分析(SPICE)各种模拟器件和集成电路,是集单片机和SPICE分析于一身的仿真软件,功能强大,具有系统资源丰富、硬件投入少、形象直观等优点,因此可用此软件方便调试电路。 经过以上两种方案的特点比较,方案二中的电路设计采用比较常见的元器件,对这种方案有一定的专业基础,故采用第二种方案。 三、单元电路设计与参数计算 1 A/D转换模块

基于单片机的数字电压表设计

引言 数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本论文重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。

1 实训要求 (1)基本要求: ①实现8路直流电压检测 ②测量电压范围0-5V ③显示指定电压通道和电压值 ④用按键切换显示通道 (2)发挥要求 ①测量电压范围为0-25V ②循环显示8路电压 2 实训目的 (1)进一步熟悉和掌握单片机的结构和工作原理; (2)掌握单片机的借口技术及,ADC0809芯片的特性,控制方法; (3)通过这次实训设计,掌握以单片机为核心的电路设计的基本方法和技术;(4)通过实际程序设计和调试,逐步掌握模块化程序设计的方法和调试技术。 3 实训意义 通过完成一个包括电路设计和程序开发的完整过程,使自身了解开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。 4 总体实训方案 测量一个0——5V的直流电压,通过输入电路把信号送给AD0809,转换为数字信号再送至89s52单片机,通过其P1口经数码管显示出测量值。 4.1 结构框图 如图1—1所示 图1—1

数字电压表的设计实验报告

课程设计 ——基于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+/-使用。

#简易数字电压表的设计

一、简易数字电压表的设计 l .功能要求 简易数字电压表可以测量0~5V 的8路输入电压值,并在四位LED 数码管上轮流显示或单路选择显示。测量最小分辨率为0.019 V ,测量误差约为土0.02V 。 2.方案论证 按系统功能实现要求,决定控制系统采用A T89C52单片机,A /D 转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其它A /D 转换量的测量、远程测量结果传送等扩展功能。数字电压表系统设计方案框图如图1-1。 3.系统硬件电路的设 计 简易数字电压测量电 路由A /D 转换、数据处 理及显示控制等组成,电 路原理图如图1-2所示。A /D 转换由集成电路0809完 成。0809具有8路模拟输人 端口,地址线(23~25脚)可决定对哪一路模拟输入作A /D 转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存,6脚为测试控制,当输入一个2us 宽高电平脉冲时,就开始A /D 转换,7脚为A /D 转换结束标志,当A /D 转换结束时,7脚输出高电平,9脚为A /D 转换数据输出允许控制,当OE 脚为高电平时,A /D 转换数据从该端口输出,10脚为0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1 MHz 时钟。单片机的P1、P3.0~P3.3端口作为四位LED 数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作A /D 转换数据读入用,P2端口用作0809的A /D 转换控制。 4.系统程序的设计 (1)初始化程序 系统上电时,初始化程序将70H ~77H 内存单元清0,P2口置0。 (2)主程序 在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将 图1-1 数字电压表系统设计方案

基于51单片机的数字电压表设计

目录 摘要........................................................................ I 1 绪论. (1) 1.1数字电压表介绍 (1) 1.2仿真软件介绍 (1) 1.3 本次设计要求 (2) 2 单片机和AD相关知识 (3) 2.1 51单片机相关知识 (3) 2.2 AD转换器相关知识 (4) 3 数字电压表系统设计 (5) 3.1系统设计框图 (5) 3.2 单片机电路 (5) 3.3 ADC采样电路 (6) 3.4显示电路 (6) 3.5供电电路和参考电压 (7) 3.6 数字电压表系统电路原理图 (7) 4 软件设计 (8) 4.1 系统总流程图 (8) 4.2 程序代码 (8) 5 数字电压表电路仿真 (15) 5.1 仿真总图 (15) 5.2 仿真结果显示 (15) 6 系统优缺点分析 (16) 7 心得体会 (17) 参考文献 (18)

1 绪论 1.1数字电压表介绍 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。 本次自己的设计作品从各个角度分析了AD转换器组成的数字电压表的设计过程及各部分电路的组成及原理,并且分析了数模转换进而使系统运行起来的原理及方法。通过自己的实践提高了动手能力,也只有亲历亲为才能收获掌握到液晶学过的知识。其实也为建立节约成本的意识有些帮助。本次设计同时也牵涉到了几个问题:精度、位数、速度、还有功耗等不足之处,这些都是要慎重考虑的,这些也是在本次设计中的收获。 1.2仿真软件介绍 Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: (1)现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 (2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、 A VR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 (3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。 (4)具有强大的原理图绘制功能。 可以仿真51系列、A VR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 姓名:学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;显示精度伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计#include<> #include""

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4; sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) {

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 :学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为5V;显示精度0.001伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计 #include #include"intrins.h" #define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4;

sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) { uchar j; while(ms --) { for(j=0;j<120;j++); } } void ADC_read() { START=0; START=1; START=0; while(EOC==0); OE=1;

简易数字电压表(单片机课程设计)

课程设计说明书 简易数字电压表的设计 院(系) 专业机械电子工程 班级二班 学生姓名 指导老师 2015 年 3月 13 日 课程设计任务书 兹发给机械电子工程(2)班学生课程设计任务书,内容如下:

1.设计题目:简易数字电压表的设计 2.应完成的项目: (1)可测0~5V的8路电压输入值; (2)在LED数码管上轮流显示; (3)单路选择显示; (4)利用功能键可以实现滚动显示,显示启动/停止等; 3.参考资料以及说明: [1]刘瑞新.单片机原理及应用教程[M].北京:机械工业出版社, 2003.7 [2]张俊,钟知原,王日根.简易数字电压表的设计[J].科协论坛:下半月,2012(8)34-35 [3]赵静,刘少聪,丁浩.王莉莎.基于单片机的数字电压表的设计[J].数字技术与应用,2011(6):121-125 [4]魏立峰.单片机原理及应用技术[M].北京大学出版社,2005年 [5]谭浩强.C语言程序设计(第二版)[M].北京:清华大学出版社,2005.12 4.本设计任务书于2015年3月2日发出,应于2015年3月13日前完成,然后进行答辩。 专业教研室、研究所负责人审核年月日 指导教师签发年月日 课程设计评语:

课程设计总评成绩: 课程设计答辩负责人签字: 年月日

摘要 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。 数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。 本实验设计主要讲述了数字电压表的设计过程,主要包括硬件设计和程序设计,硬件主要包括以STC89C51单片机为主要控制电路、数据采样电路、显示电路等,是基于51单片机开发平台实现的一种数字电压表系统。该设计采用STC89C51单片机作为控制核心,驱动控制四块数码管显示被测电压,以ADC0809为模数转换数据采样,实现被测电压的数据采样,使得该数字电压表能够测量0-5V之间的直流电压值。 关键词:STC89C51、ADC0809、显示电路、数据采样

简易数字电压表设计内容

简易数字电压表设计 一、设计要求 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具有更高工作频率,从而具有了更快的计算速度。 3.具有双工UART串行通道。 4.内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。 5.双数据指示器。 6.电源关闭标识。 7.全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。 8.兼容性方面:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。在89C51上一样可以照常运行,这就是所谓的向下兼容。 五、系统硬件设计 5.1 模数转换芯片ADC0809 ADC0809是典型的8位8通道逐次逼近式A/D转换器。它可以和微型计算机直接接口。ADC0809转换器的系列芯片是ADC0808,可以相互替换。

虚拟数字电压表的设计

摘要 LabVIEw 8.5版本的工程技术比以往任何一个版本都丰富.它采用了中文界面,各个控件的功能一目了然。利用它全新的用户界面对象和功能,能开发出专业化、可完全自定义的前面板。LabVIEw 8.5对数学、信号处理和分析也进行了重大的补充和完善,信号处理分析和数学具有更为全面和强大的库,其中包括500多个函数。所以在LabVIEw 8.5版本下能够更方便地实现虚拟电压表的设计。 虚拟电压表是基于计算机和标准总线技术的模块化系统,通常它由控制模块、仪器模块和软件组成,由软件编程来实现仪器的功能。在虚拟仪器中,计算机显示器是惟一的交互界面,物理的开关、按键、旋钮以及数码管等显示器件均由与实物外观相似的图形控件来代替,操作人员只要通过鼠标或键盘操作虚拟仪器面板上的旋钮、开关、按键等设置各种参数,就能根据自己的需要定义仪器的功能。在虚拟电压表的设计中,考虑到仪器主要用于教学和实验,使用对象是学生,因此将引言中提到的三种检波方式的仪器合为一体,既简化了面板操作,又便于直接对比。 该电压表主要用于电路分析和模拟电子技术等实验课的教学和测量仪器,能够使学习者了解和掌握电压的测量和电压表对各种波形的不同响应。因此,虚拟电压表应具备电源开关控制、波形选择,以及显示峰值、有效值和平均值三种结果,且输入信号的大小可调节等功能。虚拟电压表由硬件设备与接口、设备驱动软件和虚拟仪器面板组成。其中,硬件设备与接口包括仪器接口设备和计算机,设备驱动软件是直接控制各种硬件接口的驱动程序,虚拟仪器通过底层设备驱动软件与真实的仪器系统进行通信,并以虚拟仪器面板的形式在计算机屏幕上显示与真实仪器面板操作相对应的各种控件。在此,用软件虚拟了一个信号发生器。该信号发生器可产生正弦波、方波和三角波,还可以输入公式,产生任意波形。根据需要,可调节面板上的控件来改变信号的频率和幅度等可调参数,然后检测电压表的运行情况。因此,在LabVIEW图形语言环境下设计的虚拟电压表主要分为两个部分:第一部分是虚拟电压表前面板的设计;第二部分是虚拟电压表流程图的设汁。

简易电压表设计实验报告

数字电路与逻辑设计实验 实验报告 课题名称:简易数字电压表的设计 学院:信息与通信工程学院 班级: 姓名: 学号: 班内序号:

一.设计课题的任务要求 设计并实现一个简易数字电压表,要求使用实验板上的串行AD 芯片ADS7816。 1.基本要求: (1)测量对象:1~2 节干电池。 (2)AD 参考电压:2.5V。 (3)用三位数码管显示测量结果,保留两位小数。 (4)被测信号超过测量范围有溢出显示并有声音提示。 (5)按键控制测量和复位。 2. 提高要求: (1)能够连续测量。 (2)自拟其他功能。 二. 系统设计(包括设计思路、总体框图、分块设计) 1.设计思路 本次实验利用ADS7816作为电压采样端口,FPGA作为系统的核心器件,用LED数码管进行已测电压值的显示,先把读取的12位串行二进制数据转换成并行的12位二进制数据,然后再把并行的12位二进制数据转换成便利于输出的3位十进制BCD码送给数码管,以显示当前测量电压值。这些工作由ADS7816转换控制模块、数据转换控制模块、译码显示模块完成。 2. 总体框图

3. 分块设计 3.1 ADS7816转换控制模块 (1)ADS7816工作原理 在ADS7816的工作时序中,串行时钟DCLK用于同步数据转换,每位转换后的数据在DCLK 的下降沿开始传送。因此,从Dout引脚接收数据时,可在DCLK的下降沿期间进行,也可以在DCLK的上升沿期间进行。通常情况下,采用在DCLK的上升沿接收转换后的各位数据流。CS 的下降沿用于启动转换和数据变换,CS有效后的最初1至2个转换周期内,ADS7816采样输入信号,此时输出引脚Dout呈三态。DCLK的第2个下降沿后,Dout使能并输出一个时钟周期的低电平的无效信号。在第4个时钟的上升沿,Dout开始输出转换结果,其输出数据的格式是最高有效位(B11位)在前。当最低有效位(B0位)输出后,若CS变为高电位,则一次转换结束,Dout显三态。 (2)元件设计: en:A/D转换启动键,输入。输入高电平时开始转换。 clk:时钟输入。 ad_dat:ADS7816转换结束后的12位串行二进制数据输入端。 cs:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 data_out[11..0]:12位并行二进制数据输出端。 3.2 数据转换控制模块

简易数字电压表的设计

一、设计题目:简易数字电压表的设计 二、设计目的 自动化专业的专业实践课程。本课程的任务是使学生通过“简易数字电压表的设计”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的工作个对所学知识的综合应用能力。 三、设计任务及要求 设计电压表并实现简单测量。具有以下基本功能: ⑴可以测量0~5V的8路输入电压值; ⑵可在四位LED数码管上轮流显示或单路选择显示; ⑶测量最小分辨率为0.019V; ⑷.测量误差约为±0.02V; ⑸带有一定的扩展功能; 目录 第一章摘要 (4) 第二章智能仪表目前的发展状况 (4) 第三章设计目的 (6) 第四章设计要求 (6) 第五章设计方案与比较论证 (6) 5.1 单片机电路设计 (6) 5.2 电源方案 (8) 5.3 显示方案 (9) 5.4 A/D采样方案 (10) 5.5串口通讯方案 (12) 5.7 高压,短路报警 (14) 5.8 键盘 (14) 第六章方案设计 (15) 6.1 硬件设计 (15)

6.2 软件设计 (16) 第七章性能测试 (18) 电压测试 (18) 第八章结果分析 (19) 第九章设计体会 (19) 参考文献 (20) 附录 (20) 元器件清单 (20) 程序清单 (20) 第一章摘要 本报告介绍了基于AT89S52单片机为核心的、以AD0809数模转换芯片采样、以1602液晶屏显示的具有电压测量功能的具有一定精度的数字电压表。在实现基础功能要求之上扩展了串口通讯、时钟功能、高压报警、短路测试、电阻测量、交流电压峰峰值和周期测试等功能,使系统达到了良好的设计效果和要求。 关键词:AT89S52单片机模数转换液晶显示扩展功能 ABSTRACT:The report describes the AT89S52 based on the microcontroller as the core, AD0809 digital-to-analog converter chip sampling, to 1602 LCD display with voltage measurement function with a certain precision of digital voltage meter. In achieving functional requirements based upon the expansion of serial communications, high-pressure alarm, short circuit, electrical resistivity measurement, AC voltage and the peak of cycle testing and other functions, allowing the system to achieve good results and the design requirements. Keywords : AT89S52 SCM analog-to-digital conversion functions LCD expansion 第二章智能仪表目前发展状况 在自动化控制系统中,仪器仪表作为其构成元素,它的技术进展是跟随控制系统技术的发展的。常规的自动化仪器仪表适应常规控制系统的要求,它们以经典控制理论和现代控制理论为基础,以控制对象的数学模型为依据。当今,控制理论已发展到智能控制的新阶段,自动化仪器仪表的智能化就成为必然和必须。本文将就自动化仪器仪表的智能化的状况与进展,以及当今对智能仪器仪表研究、开发热点做概要的分析与表述。作者建议人们关注自动化仪器仪表智能化技术的进展,关注仪器仪表装置

简易数字直流电压表的设计

电子制作课程考核报告 课程名称简易数字直流电压表的设计 学生姓名贾晋学号1313014041 所在院(系)物理与电信工程 专业班级电子信息工程1302 指导教师秦伟 完成地点 PC PROTEUS 2015年 6 月 13 日

简易数字直流电压表的设计 简易数字直流电压表的设计 摘要本文介绍一种基于AT89C51单片机的简易数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换芯片为ADC0808,它主要负责把采集到的模拟量转换为数字量再传送到数据处理模块。数据处理则是由芯片AT89C51来完成,主要负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;并且,它还控制着ADC0808芯片工作。 该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-200V的模拟直流输入电压值,并通过数码管显示。 关键词单片机;数字电压表;AT89C51;ADC0808

目录 1 引言............................................................................................... 2 总体设计方案............................................................................... 2.1设计要求 ............................................................................... 2.2 设计思路 .............................................................................. 2.3 设计方案 .............................................................................. 3 详细设计....................................................................................... 3.1 A/D转换模块 .................................................................... 3.2 单片机系统 ........................................................................ 3.3 时钟电路 ............................................................................ 3.4 LED显示系统设计 ........................................................... 3.5 总体电路设计 .................................................................... 4 程序设计....................................................................................... 4.1 程序设计总方案 ................................................................ 4.2 系统子程序设计 ................................................................ 5 仿真............................................................................................. 5.1 软件调试 (11) 5.2 显示结果及误差分析 ........................................................ 结论................................................................................................. 参考文献........................................................................................... 附录...................................................................................................

数字电压表课程设计实验报告

自动化与电气工程学院 电子技术课程设计报告 题目数字电压表的制作 专业 班级 学号 学生姓名 指导教师 二○一三年七月

一、课程设计的目的与意义 1.课程设计的主要目的,是通过电子技术综合设计,熟悉一般电子电路综合设计过程、设计要求、完成的工作内容和具体的设计方法。 2.同时了解双积分式A/D转换器ICL7107的性能及其引脚功能,熟悉集成电路ICL7107构成直流数字电压表的使用方法,并掌握其在电路中的工作原理。 3.通过设计也有助于复习和巩固以往的模电、数电内容,达到灵活应用的目的。在完成设计后还要将设计的电路进行安、调试以加强学生的动手能力。在此过过程中培养从事设计工作的整体观念。 4.利用双积分式A/D转换器ICL7107设计一数字电压表,量程为-1.99—+1.99,通过七段数码管显示。 二、电路原理图 数字电压表原理图

三、课程设计的元器件 1.课程设计所使用的元器件清单: 2.主要元器件介绍 (1)芯片ICL7107: ICL7107的工作原理 双积分型A/D转换器ICL7107是一种间接A/D转换器。它通过对输入模拟电压和参考电压分别进行两次积分,将输入电压平均值变换成与之成正比的时间间隔,然后利用脉冲时间间隔,进而得出相应的数字性输出。 它的原理性框图如图所示,它包括积分器、比较器、计数器,控制逻辑和时钟信号源。积分器是A/D转换器的心脏,在一个测量周期内,积分器先后对输入信号电压和基

准电压进行两次积分。比较器将积分器的输出信号与零电平进行比较,比较的结果作为数字电路的控制信一号。时钟信号源的标准周期Tc 作为测量时间间隔的标准时间。它是由内部的两个反向器以及外部的RC组成的。其振荡周期Tc=2RCIn1.5=2.2RC 。 ICL7106A/D转换器原理图 计数器对反向积分过程的时钟脉冲进行计数。控制逻辑包括分频器、译码器、相位驱动器、控制器和锁存器。 分频器用来对时钟脉冲逐渐分频,得到所需的计数脉冲fc和共阳极LED数码管公共电极所需的方波信号fc。 译码器为BCD-7段译码器,将计数器的BCD码译成LED数码管七段笔画组成数字的相应编码。 驱动器是将译码器输出对应于共阳极数码管七段笔画的逻辑电平变成驱动相应笔画的方波。 控制器的作用有三个:第一,识别积分器的工作状态,适时发出控制信号,使各模拟开关接通或断开,A/D转换器能循环进行。第二,识别输入电压极性,控制LED 数码管的负号显示。第二,当输入电压超量限时发出溢出信号,使千位显示“1" ,其余码全部熄灭。 钓锁存器用来存放A/D转换的结果,锁存器的输出经译码器后驱动LED 。它的每个测量周期自动调零(AZ)、信号积分(INT)和反向积分(DE)三个阶段。

51单片机数字电压表设计

基于51单片机的数字电压表设计 二级学院铜陵学院 专业自动化 班级 组号 组员 指导教师

简易的数字电压表的设计 目录 一课程设计任务书·····························································································································错误!未定义书签。 1.1 设计题目、目的····················································································································错误!未定义书签。 1.2 题目的基本要求和拓展功能··························································································错误!未定义书签。 1.3 设计时间及进度安排··········································································································错误!未定义书签。 二设计内容············································································································································错误!未定义书签。 2.1 元器件选型······························································································································错误!未定义书签。 2.2 系统方案确定·························································································································错误!未定义书签。 2.3 51单片机相关知识··············································································································错误!未定义书签。 2.4 AD转换器相关知识··············································································································错误!未定义书签。 三数字电压表系统设计 (7) 3.1系统设计框图 (8) 3.2 单片机电路 (9) 3.3 ADC采样电路 (10) 3.4显示电路 (11) 3.5供电电路和参考电压·························································································································································· 3.6 数字电压表系统电路原理图·········································································································································四软件部分 4.1 主程序 4.2 显示子程序 五数字电压表电路仿真 5.1 仿真总图 5.2 仿真结果显示 六系统性能分析 七心得体会 - 2 -

数字电压表设计

《单片机课程设计》设计报告 设计题目: 姓名: 设计时间:2010-12-28 备注:

目录 1.引言 (2) 2.概述··2 2.1实验要求 (2) 2.2实验目的 (2) 2.3 实验器材 (2) 3.总体设计方案 (3) 3.1系统的总体结构 (3) 3.2芯片的选择 (4) 3.3 ADC0809 的主要性能指标 (4) 4.硬件电路设计 (6) 4.1 AT89S52 单片机最小系统 (6) 4.2 ADC0809 与AT89S52 单片机接口电路设计 (6) 4.3显示电路与AT89S52 单片机接口电路设计 (6) 5.软件设计 (7) 5.1 主程序图 (7) 5.2 ADC0809 电压采集程序框图 (8) 5.3显示程序框图 (9) 6.调试与测量结果分析 (10) 6.1实验系统连线图 (11) 6.2程序调试 (12) 6.3 仿真结果 (13) 6.4 实验结果分析 (14) 7.程序清单和系统原理图 (15) 7.1程序清单 (15) 7.2 系统原理图 (16) 8.实验总结和实验收获 (17)

1.引言 本次课程设计要求完成是数字电压表的设计,随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量 最为普遍。本次课程设计我们小组xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx该电路设计新颖、功能强大、可 扩展性强。 实验报告首先简要介绍了设计数字电压表的实验要求和目的;根据要求和目的设计出直流数字电压表的系统结构流程,以及硬件系统和软件系统的设计,并给出了硬件电路的设计细节,以及调试和仿真结果。最后进行了实验和心得体会的总结。 通过完成一个包括电路设计和程序开发的完整过程,使自身了解开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。 2.概述 2.1实验要求 采用ADC0809 和AT89S52 单片机及显示电路完成0~5V 直流电压的检测 2.2实验目的 (1)进一步熟悉和掌握单片机的结构和工作原理; (2)掌握单片机的借口技术及,ADC0809芯片的特性,控制方法;(3)通过这次实训设计,掌握以单片机为核心的电路设计的基本

相关主题
文本预览
相关文档 最新文档