当前位置:文档之家› 基于STM32的简易数字电压表

基于STM32的简易数字电压表

基于STM32的简易数字电压表
基于STM32的简易数字电压表

课程设计报告

学院(系):机械电子工程学院专业:测控技术与仪器学生姓名:学号:

课程设计题目:简易数字电压表

起迄日期:

课程设计地点:

指导教师:

目录

第1章简易数字电压表设计方案论证 (1)

1.1 简易数字电压表的应用意义 (1)

1.2 本次课程设计的目的 (1)

1.3 简易数字电压表设计的要求及技术指标 (1)

1.4 设计方案论证 (2)

1.5 总体设计方案框图及分析 (2)

第2章简易数字电压表各单元电路设计 (2)

2.1 A/D转换及数据处理 (2)

2.2 串口通信 (7)

2.3 LCD显示电路设计 (7)

第3章电路原理图和PCB板的设计 (8)

第4章系统软件程序设计 (9)

第5章设计总结 (16)

参考文献 (17)

摘要

本文以ARM系列的STM32芯片为核心设计了一个简易数字电压表。简易数字电压表采用模数转换思想来实现,通过硬件电路和软件程序相结合,可输出自定义测量电压,通过调节模数

转换电位器使在一定范围内可任意改变。输出的电压格式和精度的改变通过软件控制,输出电压的大小的改变通过硬件实现。介绍了的生成原理、硬件电路和软件部分的设计原理。该简易数字电压表具有体积小、价格低、性能稳定、功能齐全的优点。

关键词:简易数字电压表;STM32F103;AD转换;

第一章简易数字电压表设计方案论证

1.1 简易数字电压表的应用意义

数字电压表简称DMV,它是采用数字化测量技术设计的电压表。数字电压表的优良特性深受人们的青睐。具体有以下的应用特点:

a)显示清晰直观,读数准确。

b)准确度高。

c)分辨率高。

d)测量范围宽。

e)扩展能力强。

f)测量速度快。

g)输入阻抗高。

h)集成度高、微功耗。

h) 抗干扰能力强

1.2 本次课程设计的目的

1)了解STM32f103内部A/D转换性能及编程方法。

2)学会使用A/D转换器进行电压信号采集。

3)了解uCosII系统工作原理。

1.3 简易数字电压表设计的要求及技术指标

设计要求:利用STM32F103内部A/D及2.8寸TFT液晶屏,设计完成一个数字电压表。

要求:数字电压表可测量0-5V输入电压,电压值通过液晶屏显示。

工作原理及设计思路:简易数字电压表的设计由A/D转换.数据处理及显示控制等组成。

利用STM32F103内部A/D转换器将模拟电压转换成数字量,经STM32F103计算将数字量转换成对应的电压值,并通过液晶屏输出。

1.4.设计方案论证

数字电压表的基本组成部分是A/D 变换器+电子计数器。通常,被测直流电压经A/D 转换器变为与之成正比的闸门时间,在此闸门时间内计数,用数字显示被测电压值。可见A/D 变换器是DVM 的核心部件。本课设上采用的是单片A/D 转换器(含模拟电路与数字电路)集成在一片芯片上,配以LCD 或LED 数字器件后能显示A/D 转换结果的集成电路。它们均属于大规模的集成电路,能以最简的方式构成DVM 。在此采用ICL7106A/D 转换器。但由于STM32F103内部集成了A/D 转换器,所以不需要外围的A/D 转换器,这就体现了STM32得集成特性。

1.5总体设计方案框图及分析

第二章 简易数字电压表各单元电路设计

简易数字电压表的设计由A/D 转换.数据处理及显示控制等组成。由于STM32F103集成了A/D 转换.数据处理部分,所以可以集中在一起研究,所以分成了两部分。 2.1 A/D 转换及数据处理 1)基本型号介绍

首先我们先研究STM32系列芯片的基本知识。由图1可知STM32F103ZET6有144个引脚,所以我们来了解他的基本型号与代码之间的关系。

RC 滤波器 STM32F103控制逻辑 LCD 显示

RC 振荡器

分频器

图1

STM32系列产品命名规则示例:STM32 F 103 C 8 T 6 A xxx

产品系列STM32 = 基于ARM?s22的32位微控制器产品类型

F = 通用类型产品子系列

101 = 基本型

102 = USB基本型,USB 2.0全速设备

103 = 增强型

105或107 = 互联型引脚数目

T = 36脚C = 48脚R = 64 脚V = 100脚Z = 144脚

闪存存储器容量4 = 16K字节的闪存存储器6 = 32K字节的闪存存储器8 = 64K字节的闪存存储器B= 128K字节的闪存存储器C= 256K字节的闪存存储器D= 384K字节的闪存存储器E = 512K字节的闪存存储器

封装H = BGAT = LQFPU = VFQFPNY = WLCSP

温度范围 6 = 工业级温度范围,-40°C~85°C7 = 工业级温度范围,-40°

C~105°C内部代码A 或者空(详见产品数据手册)

选项xxx = 已编程的器件代号(3个数字)TR = 卷带式包装

2)STM32系列的最小系统设计和独立的A/D转换器供电和参考电压

最小系统主要包括调试接口.震荡电路.引导设置.复位电路和供电系统。

电路由稳定的电源VDD供电。值得注意的是,如果使用ADC,VDD的范围必须在2.4-3.6V;如果没有使用ADC,VDD的范围为2-3.6V。

启动模式选项:由开关SW(BOOT0)和SW(BOOT1)配置。如图2所示

图2

复位电路:复位信号是低有效,复位源包括复位按钮JP3和连在连接器上的调试工具。如图3

图3

时钟源:两个时钟源被用于这个微控制器。

LSE X1用于嵌入式RTC的32.768kHz晶振;

HSE X2用于STM32F103微控制器的8MHz晶振。

如图4所示

图4

去耦电容:去耦电容就是起到一个电池的作用,满足驱动电路电流的变化,避免相互间的耦合干扰。由11个100nf的陶瓷电容和一个钽电容组成。如图5所示

图5

独立的A/D转换器供电和参考电压:为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。

●ADC的电源引脚为V DDA

●独立的电源地V SSA 如果有V REF-引脚(根据封装而定),它必须连接到V SSA。

100脚和144脚封装:为了确保输入为低压时获得更好精度,用户可以连接一个独立的外部参考电压ADC到V REF+和V REF-脚上。在V REF+的电压范围为2.4V~V DDA。如图6所示

图6

3)STM32系列的内ADC转换逻辑

12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。

ADC主要特征●12位分辨率●转换结束、注入转换结束和发生模拟看门狗事件时产生中断●单次和连续转换模式●从通道0到通道n的自动扫描模式●自校准●带内嵌数据一致性的数据对齐●采样间隔可以按通道分别编程●规则转换和注入转换均有外部触发选项●间断模式●双重模式(带2个或以上ADC的器件) ●ADC转换时间:─ STM32F103xx增强型产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs) ─ STM32F101xx基本型产品:时钟为28MHz时为1μs(时钟为36MHz为 1.55μs) ─ STM32F102xxUSB型产品:时钟为48MHz时为1.2μs ─ STM32F105xx和STM32F107xx 产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs) ●ADC供电要求:2.4V到3.6V ●ADC输入范围:V REF- ≤V IN ≤V REF+ ●规则通道转换期间有DMA请求产生。

我们需要打开一个ADC输入端口,使外部的模拟量被采集,这样才能通过内部的ADC转换器和驱动电路来实现转换成数字量。采集模拟量的电路如图7所示

图7

控制逻辑有三个作用:第一,识别积分器的工作状态,适时发出控制信号,使A/D 转换正常进行;第二,判定输入电压极性并控制LCD的负极性显示。

2.2 串口通信

由于微控制器的控制是通过编程语言来控制的,所以需要外设的串口来实现编程语言的读写。通用异步收发器(UART)是一种串行接口,一般微处理器中都包含这种外设接口。异步串行接口提供了一种简单的途径,使两个器件无需共享同一个时钟信号就能进行通信。如果再加入一个合适的电平转换器MAX232,串口就能能用在RS232和RS485等网络中实现通信,或者与计算机的COM端口连接。串口只需两根信号线(RX和TX)即可实现,而且只要两端器件都采用同样的位格式和波特率,那么它们无需其它任何对方的信息就可以成功传输数据。电路图如图8所示

图8

2.3 LCD显示电路设计

由于STM32是一种高集成芯片,所以在显示液晶屏电路上就少了很多附带的驱动电路,我们选用采用自带驱动模块的液晶屏,这样就少了外围驱动电路。LCD的显示电路如图9所示

图9

第三章电路原理图与PCB板设计我们用电路板绘图软件protel,绘制电路原理图并生成PCB板,在绘制完原理图生成PCB板的布线与原件的排列方面有很多值得注意的问题,如地线与电源线必须加粗,尽量避免出现绕线的现象,因为这样就增加了信号传输的时间,尽量减少线的使用,相同器件尽量布在一起,这样方便以后电路板的焊接等等规则。根据要求和以上的分析得到的原理图与PCB板图如图10所示

第四章系统软件程序设计

我们采用的是Kilc-4编写与烧入软件,在Kilc-4中建立项目并建立c语言文件,在文件中编写c语言程序,编写完毕后在软件中的选项flash中的configure flash tools中设置参数,设置成适合Cortex-M3嵌入式处理器STM32合适的参数。最后编译检查程序的正确与否,如果可以创建目标文件则可以烧入微控制器中,否则检查是否有错误或是警告,排除错误或是警告,最终实现创建目标,最后烧入火牛开发板,检验程序是否符合设计要求,看液晶显示屏上的检测电压是否随着模拟输入电位器的旋转改变而改变。

简易数字电压表的控制程序为:

显示程序.c :

#include

#include "sys.h"

#include "usart.h"

#include "delay.h"

#include "led.h"

#include "lcd.h"

#include "adc.h"

int main(void)

{

u16 adcx;

float temp;

float temperate;

Stm32_Clock_Init(9);//系统时钟设置

delay_init(72); //延时初始化

// uart_init(72,9600); //串口1初始化

LED_Init();

LCD_Init();

Adc_Init();

POINT_COLOR=RED;//设置字体为红色

LCD_ShowString(60,50,"Fire Bull STM32");

LCD_ShowString(60,70,"1 ");

LCD_ShowString(60,110,"2011/12/26"); //显示时间POINT_COLOR=BLUE;//设置字体为蓝色

LCD_ShowString(60,130,"TEMP_VAL:");

LCD_ShowString(60,150,"TEMP_VOL:0.000V");

while(1)

{

adcx=Get_Temp();

LCD_ShowNum(132,130,adcx,4,16);//显示ADC的值

temp=(float)adcx*(3.3/4096);

temperate=temp;//保存温度传感器的电压值

adcx=temp;

LCD_ShowNum(132,150,adcx,1,16); //显示电压值整数部分

temp-=(u8)temp; //减掉整数部分

LCD_ShowNum(148,150,temp*1000,3,16);//显示电压小数部分

}

}

初始化程序.c:#include "sys.h"

#include "usart.h"

//Mini STM32开发板

//串口1初始化

//正点原子@ALIENTEK

//2010/5/27

//V1.3

//支持适应不同频率下的串口波特率设置.

//加入了对printf的支持

//增加了串口接收命令功能.

//////////////////////////////////////////////////////////////////

//加入以下代码,支持printf函数,而不需要选择use MicroLIB

#if 1

#pragma import(__use_no_semihosting)

//标准库需要的支持函数

struct __FILE

{

int handle;

/* Whatever you require here. If the only file you are using is */

/* standard output using printf() for debugging, no file handling */

/* is required. */

};

/* FILE is typedef’ d in stdio.h. */

FILE __stdout;

//定义_sys_exit()以避免使用半主机模式

_sys_exit(int x)

{

x = x;

}

//重定义fputc函数

int fputc(int ch, FILE *f)

{

USART1->DR = (u8) ch;

while((USART1->SR&0X40)==0);//循环发送,直到发送完毕

return ch;

}

#endif

//end

//////////////////////////////////////////////////////////////////

#ifdef EN_USART1_RX //如果使能了接收

//串口1中断服务程序

//注意,读取USARTx->SR能避免莫名其妙的错误

u8 USART_RX_BUF[64]; //接收缓冲,最大64个字节.

//接收状态

//bit7,接收完成标志

//bit6,接收到0x0d

//bit5~0,接收到的有效字节数目

u8 USART_RX_STA=0; //接收状态标记

void USART1_IRQHandler(void)

{

u8 res;

if(USART1->SR&(1<<5))//接收到数据

{

res=USART1->DR;

if((USART_RX_STA&0x80)==0)//接收未完成

{

if(USART_RX_STA&0x40)//接收到了0x0d

{

if(res!=0x0a)USART_RX_STA=0;//接收错误,重新开始

else USART_RX_STA|=0x80; //接收完成了

}else //还没收到0X0D

{

if(res==0x0d)USART_RX_STA|=0x40;

else

{

USART_RX_BUF[USART_RX_STA&0X3F]=res;

USART_RX_STA++;

if(USART_RX_STA>63)USART_RX_STA=0;//接收数据错误,重新开始接收

}

}

}

}

}

#endif

//初始化IO 串口1

//pclk2:PCLK2时钟频率(Mhz)

//bound:波特率

//CHECK OK

//091209

void uart_init(u32 pclk2,u32 bound)

{

float temp;

u16 mantissa;

u16 fraction;

temp=(float)(pclk2*1000000)/(bound*16);//得到USARTDIV

mantissa=temp; //得到整数部分

fraction=(temp-mantissa)*16; //得到小数部分

mantissa<<=4;

mantissa+=fraction;

RCC->APB2ENR|=1<<2; //使能PORTA口时钟

RCC->APB2ENR|=1<<14; //使能串口时钟

GPIOA->CRH=0X444444B4;//IO状态设置

RCC->APB2RSTR|=1<<14; //复位串口1

RCC->APB2RSTR&=~(1<<14);//停止复位

//波特率设置

USART1->BRR=mantissa; // 波特率设置

USART1->CR1|=0X200C; //1位停止,无校验位.

#ifdef EN_USART1_RX //如果使能了接收

//使能接收中断

USART1->CR1|=1<<8; //PE中断使能

USART1->CR1|=1<<5; //接收缓冲区非空中断使能

MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级#endif

}

ADC驱动.c: #include

#include "adc.h"

#include "delay.h"

//ADC 驱动代码

//初始化ADC

//这里我们仅以规则通道为例

//我们默认将开启通道0~3

void Adc_Init(void)

{

//先初始化IO口

RCC->APB2ENR|=1<<2; //使能PORTA口时钟

GPIOA->CRL&=0XFFFF0000;//PA0 1 2 3 anolog输入

//通道10/11设置

RCC->APB2ENR|=1<<9; //ADC1时钟使能

RCC->APB2RSTR|=1<<9; //ADC1复位

RCC->APB2RSTR&=~(1<<9);//复位结束

RCC->CFGR&=~(3<<14); //分频因子清零

//SYSCLK/DIV2=12M ADC时钟设置为12M,ADC最大时钟不能超过14M!

//否则将导致ADC准确度下降!

RCC->CFGR|=2<<14;

ADC1->CR1&=0XF0FFFF; //工作模式清零

ADC1->CR1|=0<<16; //独立工作模式

ADC1->CR1&=~(1<<8); //非扫描模式

ADC1->CR2&=~(1<<1); //单次转换模式

ADC1->CR2&=~(7<<17);

ADC1->CR2|=7<<17; //软件控制转换

ADC1->CR2|=1<<20; //使用用外部触发(SWSTART)!!! 必须使用一个事件来触发

ADC1->CR2&=~(1<<11); //右对齐

ADC1->CR2|=1<<23; //使能温度传感器

ADC1->SQR1&=~(0XF<<20);

ADC1->SQR1&=0<<20; //1个转换在规则序列中也就是只转换规则序列1

//设置通道0~3的采样时间

ADC1->SMPR2&=0XFFFFF000;//通道0,1,2,3采样时间清空

ADC1->SMPR2|=7<<9; //通道3 239.5周期,提高采样时间可以提高精确度

ADC1->SMPR2|=7<<6; //通道2 239.5周期,提高采样时间可以提高精确度

ADC1->SMPR2|=7<<3; //通道1 239.5周期,提高采样时间可以提高精确度

ADC1->SMPR2|=7<<0; //通道0 239.5周期,提高采样时间可以提高精确度

ADC1->SMPR1&=~(7<<18); //清除通道16原来的设置

ADC1->SMPR1|=7<<18; //通道16 239.5周期,提高采样时间可以提高精确度

ADC1->CR2|=1<<0; //开启AD转换器

ADC1->CR2|=1<<3; //使能复位校准

while(ADC1->CR2&1<<3); //等待校准结束

//该位由软件设置并由硬件清除。在校准寄存器被初始化后该位将被清除。

ADC1->CR2|=1<<2; //开启AD校准

while(ADC1->CR2&1<<2); //等待校准结束

//该位由软件设置以开始校准,并在校准结束时由硬件清除

}

//获得ADC值

//ch:通道值 0~3

u16 Get_Adc(u8 ch)

{

//设置转换序列

ADC1->SQR3&=0XFFFFFFE0;//规则序列1 通道ch

ADC1->SQR3|=ch;

ADC1->CR2|=1<<22; //启动规则转换通道

while(!(ADC1->SR&1<<1));//等待转换结束

return ADC1->DR; //返回adc值

}

//得到ADC采样内部温度传感器的值

//取10次,然后平均

u16 Get_Temp(void)

{

u16 temp_val=0;

u8 t;

for(t=0;t<10;t++)

{

temp_val+=Get_Adc(TEMP_CH);

delay_ms(5);

}

return temp_val/10;

}

延时程序.c:

#include

#include "delay.h"

//使用SysTick的普通计数模式对延迟进行管理

//包括delay_us,delay_ms

//2010/5/27

//V1.2

//修正了中断中调用出现死循环的错误

//防止延时不准确,采用do while结构!

static u8 fac_us=0;//us延时倍乘数

static u16 fac_ms=0;//ms延时倍乘数

//初始化延迟函数

//SYSTICK的时钟固定为HCLK时钟的1/8

//SYSCLK:系统时钟

void delay_init(u8 SYSCLK)

{

SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟 HCLK/8

fac_us=SYSCLK/8;

fac_ms=(u16)fac_us*1000;

}

//延时nms

//注意nms的范围

//SysTick->LOAD为24位寄存器,所以,最大延时为:

//nms<=0xffffff*8*1000/SYSCLK

//SYSCLK单位为Hz,nms单位为ms

//对72M条件下,nms<=1864

void delay_ms(u16 nms)

{

u32 temp;

SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)

SysTick->VAL =0x00; //清空计数器

SysTick->CTRL=0x01 ; //开始倒数

do

{

temp=SysTick->CTRL;

}

while(temp&0x01&&!(temp&(1<<16)));//等待时间到达

SysTick->CTRL=0x00; //关闭计数器

SysTick->VAL =0X00; //清空计数器

}

//延时nus

//nus为要延时的us数.

void delay_us(u32 nus)

{

u32 temp;

SysTick->LOAD=nus*fac_us; //时间加载

SysTick->VAL=0x00; //清空计数器

SysTick->CTRL=0x01 ; //开始倒数

do

{

temp=SysTick->CTRL;

}

while(temp&0x01&&!(temp&(1<<16)));//等待时间到达

SysTick->CTRL=0x00; //关闭计数器

SysTick->VAL =0X00; //清空计数器

}

第五章设计总结

大学的课程设计给了我们和实践接触的机会,并且可以把自己这一年所学的理论知识的到合理的运用,因此在此过程中我非常的用心。在图书馆和网上找了不少的资料,也让我学习到了不少书本上没有学到的知识。

1. 通过课设,加强了对电子技术电路的理解,学会查寻资料﹑方案比较,以及

设计计算等环节,进一步提高分析解决实际问题的能力。让我拥有了一定的独立分析解决问题的能力,开阔了视野,知道了电子在社会实践当中应用的广泛性。也因此让我察觉到我对电子知识的了解很贫乏。它督促我今后一定要学好电子技术基础。

2.了解与课程有关的电子电路以及元器件工程技术规范,能按课程设计任务书的

技术要求,编写设计说明,能正确反映设计和实验成果,能正确绘制电路图。。

3.在课设过程当中熟悉了电路板绘图软件protel的运用,为我课设时画电路图节省了不少的时间。

4 .在课设的过程当中有不少的我不懂的问题,得到了老师和同学的细心帮助,

让我有不少长进,感谢老师的辛苦指导,相信在今后的学习中我会更加努力,弥补自己的不足之处。

参考文献

[1] Cortex-M3 嵌入式处理器原理与应用

[2] 32位基于ARM微控制器STM32F10xx固件函数库

[3] Cortex-M3 技术参考手册

[4]STM32F10x参考手册_cn

[5] STM32F10x微控制器参考手册(2009年12月第10版)

基于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

#简易数字电压表的设计

一、简易数字电压表的设计 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、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的

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

课程设计说明书 简易数字电压表的设计 院(系) 专业机械电子工程 班级二班 学生姓名 指导老师 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图形语言环境下设计的虚拟电压表主要分为两个部分:第一部分是虚拟电压表前面板的设计;第二部分是虚拟电压表流程图的设汁。

简易数字电压表的设计

一、设计题目:简易数字电压表的设计 二、设计目的 自动化专业的专业实践课程。本课程的任务是使学生通过“简易数字电压表的设计”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的工作个对所学知识的综合应用能力。 三、设计任务及要求 设计电压表并实现简单测量。具有以下基本功能: ⑴可以测量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 显示结果及误差分析 ........................................................ 结论................................................................................................. 参考文献........................................................................................... 附录...................................................................................................

简易数字电压表的设计

一、简易数字电压表的设计 l.功能要求 简易数字电压表可以测量0~5V的8路输入电压值,并在四位LED数码管上轮流显示或单路选择显示。测量最小分辨率为0.019 V,测量误差约为土0.02V。 2.方案论证 按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。数字电压表系统设计方案框图如图1-1。 图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)主程序

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)通过这次实训设计,掌握以单片机为核心的电路设计的基本

简易数字电压表设计报告

摘要--------------------------------------------------------2 1.数字电压表的简介------------------------------------------3 1.1数字电压表的发展--------------------------------------3 1.2数字电压表的分类--------------------------------------4 2.设计的目的------------------------------------------------5 3.设计的内容及要求------------------------------------------5 4.数字电压表的基本原理--------------------------------------5 4.1数字电压表各模块的工作原理----------------------------5 4.2数字电压表各模块的功能--------------------------------5 4.3数字电压表的工作过程----------------------------------6 5.实验器材--------------------------------------------------7 6.电路设计实施方案------------------------------------------7 6.1.实验步骤---------------------------------------------7 6.2各个模块设计------------------------------------------8 6.2.1 基准电压模块-----------------------------------8 6.2.2 3 1/2位A/D电路模块---------------------------10 6.2.3 字形译码驱动电路模块--------------------------12 6.2.4 显示电路模块----------------------------------13 6.2.5 字位驱动电路模块------------------------------16 7.总结-----------------------------------------------------17 参考文件---------------------------------------------------18 附录-------------------------------------------------------19

基于AT89C51和ADC0809简易数字电压表的设计

基于AT89S51的简易数字电压表的设计 摘要: 本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码管显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过ADC0809转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字。此外,本文还讨论了设计过程中的所用的软件硬件环境,调试所出现的问题等。关键词:单片机; AT89S51;数字电压表; ADC0809,四位数码管 任务书 1.设计题目 基于AT89S51的简易数字电压表的设计。 2.设计内容与要求 用AT89S51单片机和ADC0809组成一个数字电压表,要求能够测量0~5V的直流电压值,并用四位数码管显示,并要求所用元器件最少。 3,。设计目的意义 (1).通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。 (2).通过数字电压表的设计系统掌握51单片机的应用。掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。 目录 一、系统原理框图 二、AT89S51的结构 三、器件的比较与选择 四、系统硬件及仿真图

五、相关软件简介 六、程序流程图与源程序 七、数字电压表发展及未来 八、设计体会 九、参考文献 基于AT89S51的简易数字电压表的设计

第一章系统原理框图 选择AT89S51作为单片机芯片,选用四位8段共阴极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。P2口接数码管位选,P1接数码管,实现数据的动态显示,如图4.1所示。 图4.1 系统原理框图 第二章: AT89S51的结构 在本次课题设计中我们选择了AT89S51芯片。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash 只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51

单片机数字电压表

数字电压表 姓名潘刚 所在学院电子信息工程学院 专业班级通信1105班 学号 11214048 指导教师付文秀 日期2013 年 12月 15日

一、实验目的: 通过利用单片机设计简易数字电压表,使学生学会使用A/D转换器进行电压信号采集,了解A/D芯片TLC0832转换性能及基本原理,掌握A/D转换器与单片机的接口电路及编程技术。思考如何利用单片机和A/D实现多路电压监测系统,各路电压值通过数码管轮流显示问题 二、实验内容和要求: 利用实验平台上的串行模/数转换芯片及4位数码管,设计完成一个数字电压表。要求:数字电压表可测量0~5V输入电压,电压值通过数码管显示。 三、方案设计: 使用ADC0832模拟/数字转换器芯片设计数字电压表电路。该设计方案以单片机AT89S52为主控芯片,以ADC0832模拟/数字转换器芯片为核心转换模拟/数字量的芯片,组成数字电压表电路。该电路能准确地测出所被测有效电压值、附加四位显示功能,可精确到有效电压值为0.01V。 四、设计流程图 4.1总体设计流程图

4.2 AD转换关系设计流程图 五、软硬件设计 5.1 硬件电路设 该设计的硬件电路由主控部分(单片机AT89S51)、采集模拟量部分(A/D转换一路ADC0832)、显示部分(四位八段数码管)、电源部分由电脑USB(5V)供电4个部分组成。各部分之间相互协作,构成一个统一的有机整体,实现数字电压表的功能。各部分的硬件电路设计如下。设计总电路图见附录一。 5.2单片机AT89S52外围电路设计 5.2.1复位电路设计 MCS-51的复位输入引脚RST为MCS-51提供了初始化的手段,可以使程序从指定处开始执行,在MCS-51的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作,只要RST保持高电平,则MCS-51循环复位,只有单RET由高电平变成低电平以后,MCS-51才从0000H地址开始执行程序,本系统采用按键复位方式的复位电路。

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