51单片机测量5V电压
基于51单片机-PCF8591数字电压表课程设计

课程名称:微机原理课程设计题目:数字电压表ﻬ摘要单片微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
其中我们用于学习用的最多的是STC89C52单片机,STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但也做了很多改进使得芯片具有传统51单片机不具备的功能。
STC89C52具有8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EE PROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构,全双工串行口。
本设计就是以单片机STC89C52为核心,附以外围电路,实现数字电压表的功能,并运用软件Proteus进行仿真来得到实验结果。
关键词:STC89C52单片机、仿真、中断、数字电压表、数码管显示ﻬ目录一、任务要求ﻩ错误!未定义书签。
1.1 设计任务ﻩ错误!未定义书签。
1.2设计要求ﻩ错误!未定义书签。
1.3发挥部分 ...................................................................................... 错误!未定义书签。
1.4 创新部分 ........................................................................................... 错误!未定义书签。
51单片机数据采集系统

课程设计报告书设计任务书一、设计任务1一秒钟采集一次。
2把INO口采集的电压值放入30H单元中。
3做出原理图。
4画出流程图并写出所要运行的程序。
二、设计方案及工作原理方案: 1. 采用8051和ADC0809构成一个8通道数据采集系统。
2. 能够顺序采集各个通道的信号。
3. 采集信号的动态范围:0~5V。
4. 每个通道的采样速率:100 SPS。
5.在面包板上完成电路,将采样数据送入单片机20h~27h存储单元。
6.编写相应的单片机采集程序,到达规定的性能。
工作原理:通过一个A/D转换器循环采样模拟电压,每隔一定时间去采样一次,一次按顺序采样信号。
A/D转换器芯片AD0809将采样到的模拟信号转换为数字信号,转换完成后,CPU读取数据转换结果,并将结果送入外设即CRT/LED显示,显示电压路数和数据值。
目录第一章系统设计要求和解决方案第二章硬件系统第三章软件系统第四章实现的功能第五章缺点及可能的解决方法第六章心得体会附录一参考文献附录二硬件原理图附录三程序流程图第一章系统设计要求和解决方案根据系统基本要求,将本系统划分为如下几个部分:●信号调理电路●8路模拟信号的产生与A/D转换器●发送端的数据采集与传输控制器●人机通道的接口电路●数据传输接口电路数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。
系统框图如图1-1所示1.1 信号采集分析被测电压为0~5V 直流电压,可通过电位器调节产生。
1.1.1 信号采集多路数据采集系统多采用共享数据采集通道的结构形式。
数据采集方式选择程序控制数据采集。
程序控制数据采集,由硬件和软件两部分组成。
,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序,以满足不同采样任务的要求。
如图1-3所示。
程序控制数据采集的采样通道地址可随意选择,控制多路传输门开启的通道地址码由存储器中读出的指令确定。
51单片机结构功能

51单片机结构功能51单片机是指基于Intel的8051微处理器为核心的单片机,其结构功能丰富,被广泛应用于各种嵌入式系统。
一、结构51单片机采用冯·诺依曼结构,具有指令存储器和数据存储器,其中程序存储器(ROM)用于存储程序和表格数据,而数据存储器(RAM)用于存储可变数据。
51单片机还具有特殊功能寄存器(SFR),这些寄存器专门用于控制和设置单片机的各种功能。
二、功能1、运算功能:51单片机具有8位运算器,可以进行算术、逻辑和位运算。
2、控制功能:51单片机具有丰富的控制指令,可以实现如条件转移、跳转、中断等功能,还可以进行定时器和计数器的控制。
3、通信功能:51单片机可以通过串行口实现串行通信,也可以通过并行口实现并行通信。
4、存储功能:51单片机内部具有少量的RAM和ROM存储器,同时还可以外接扩展存储器。
5、定时/计数功能:51单片机内部具有定时器和计数器,可以实现定时和计数的功能。
6、中断功能:51单片机具有多个中断源,可以实现多级中断控制。
7、输入/输出功能:51单片机具有多个输入/输出端口,可以实现多种输入/输出控制。
51单片机以其结构紧凑、功能丰富、易于使用等特点,被广泛应用于工业控制、智能家居、消费电子等领域。
C51单片机寄存器功能湖山网络广播系统设计方案一、概述随着科技的发展和数字化的普及,网络广播系统在各种场所扮演着越来越重要的角色。
湖山网络广播系统设计方案旨在满足湖山地区对高质量、高效的网络广播系统的需求。
该方案旨在构建一个稳定、可靠、易用的网络广播系统,以满足湖山地区在公共广播、紧急通知、日常资讯等方面的需求。
二、系统需求分析1、稳定性:系统应具备高度的稳定性,能够保证长时间的连续运行,避免因设备故障或网络问题导致的广播中断。
2、可靠性:系统应具备可靠的备份机制,确保在主设备出现问题时,备份设备能够迅速接管,保证广播的连续性。
3、易用性:系统应具备良好的用户界面,操作简单易懂,方便管理员进行配置和管理。
基于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电路仿真相结合。
基于51单片机的数字电压表仿真设计(有参考文献)

基于51单片机的数字电压表仿真设计一、引言随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。
数字电压表是采用数字化测量技术设计的电压表。
数字电压表与模拟电压表相比,具有读数直观、准确、显示范围宽、分辨力高、输入阻抗大、集成度高、功耗小、抗干扰能力强,可扩展能力强等特点,因此在电压测量、电压校准中有着广泛的应用。
而单片机也越来越广泛的应用与家用电器领域、办公自动化领域、商业营销领域、工业自动化领域、智能仪表与集成智能传感器传统的控制电路、汽车电子与航空航天电子系统。
单片机是现代计算机技术、电子技术的新兴领域。
本文采用ADC0808对输入模拟信号进行转换,控制核心C51单片机对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号,通过Proteus仿真软件实现接口电路设计,并进行实时仿真。
Proteus软件是一种电路分析和实物模拟仿真软件。
它运行于Windows 操作系统上,可以进行仿真、分析(SPICE)各种模拟器件和集成电路,是集单片机和SPICE分析于一身的仿真软件,功能强大,具有系统资源丰富、硬件投入少、形象直观等优点,近年来受到广大用户的青睐。
二、数字电压表概述1、数字电压表的发展与应用电压表指固定安装在电力、电信、电子设备面板上使用的仪表,用来测量交、直流电路中的电压。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,并且传统的电压表在测量电压时需要手动切换量程,不仅不方便,而且要求不能超过该量程。
目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量领域,并且由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
2、本次设计数字电压表的组成部分本设计是由单片机AT89C51作为整个系统控制的核心,整个系统由衰减输入电路、量程自动转换电路、交直流转换电路、模数转换及控制电路以及接口电路五大部分构成。
单片机课程设计 数字电压表

一目的和意义 (2)二任务和要求 (2)1、设计任务 (2)2、设计要求 (2)三设计思路 (2)四、系统结构框图与工作原理 (2)1、系统结构框图 (2)2、工作原理 (3)五、硬件介绍 (3)1、单片机系统 (3)2、ADC0808主要特性 (5)ADC0808的外部引脚特征: (5)3、ADC0808的内部结构及工作流程 (7)六、复位电路和时钟电路 (8)1、复位电路设计 (8)2、时钟电路设计 (8)七LED显示系统设计 (9)1、 LED基本结构 (9)2、LED显示器的选择 (9)3、 LED译码方式 (9)4、LED显示器与单片机接口间的设计 (10)八、A/D转换电路和测量电路的设计 (11)九、程序设计 (12)1、程序设计总方案 (12)2、系统子程序设计 (12)十、使用说明与调试结果 (14)十一、总结 (15)参考文献 (16)附一系统原理图 (17)附二程序清单 (18)一目的和意义《单片机原理与接口技术》课程设计是在完成《单片机原理及其接口技术》的理论教学之后安排的一个实践教学环节。
《单片机原理与接口技术》课程设计是学习单片机理论的重要实践环节。
在单片机课程基础上,通过本课程设计的学习使学生增进对单片机的感性认识,加深对单片机理论方面的理解;使学生了解和掌握单片机应用系统软件的软硬件设计工程、方法及实现,强化单片机应用电路的设计与分析能力。
提高学生在单片机应用方面的实践技能和科学作风,培养学生综合运用理论知识解决问题的能力。
二任务和要求1、设计任务基于MCS-51系列单片机AT89C51,设计一个能测量0~5V直流电压的数字电压表2、设计要求(1)选用A/D转换器ADC0808,测定0——+5V范围内的直流电压值。
(2)采集的数据送四位数码管实时显示。
(3)实现多路电压循环测量和循环显示。
三设计思路1、根据设计要求,选择AT89C51单片机为核心控制器件。
2、A/D转换采用ADC0808实现,与单片机的接口为P0口和P2口。
基于51单片机的数字电容测量仪设计

设计课题 基于单片机地电容测量仪设计
学 院 信息科学与工程
学生姓名
学号
专业班级
队友
指导教师
设计时间
2014.6.4-2014.7.3
本设计详细介绍了一种基于单片机地数字式电容测量仪设计方案及实现方法
.设计地主
要方法是采用 555 芯片构成单稳态触发器 ,将电容容量转换为脉冲宽度 .通过单片机地计时器
根据设计要求、可行性和设计成本地考虑选择了基于
STC89C52 单片机和 555 芯片构成地
单稳态触发电路测量电容地方案 . 现在一一介绍论证如下 .
1.3 方案Ⅱ
根据积分电路原理可得 C=Ui*dt/R*Uo ,将经过 RC 充电电路后,输出地与电容对应地 电压值输入到 ADC0809 中,经过处理后,将相应地数值传到单片机里,再通过公式运 算,求得相应地电容 C 值,在 LCD 上显示 .
R1
10K
P1.0 1 P1.1 2
P1.2 3 P1.3 4 P1.4 5 P1.5 6
P1.6 7 P1.7 8
P1.0 P1.1 P1.2 P1.3
P1.4 P1.5 P1.6 P1.7
AT89C51
P0.0/AD0
39 38
P0.1/AD1 P0.2/AD2
37
P0.3/AD3 P0.4/AD4
测量脉宽 , 根据已知地 R 值,通过单片机地运算功能,计算出电容容量
,最后,再通过单片
机地普通 I/O 口控制液晶屏显示出电容容量地计算结果 .系统地测量范围为 10pF~ 500uF, 具
有多个量程,可根据用户需要由用户选择,与用户地交互是通过键盘实现,不同量程地实
51单片机温度计

目前,单片机已经广泛应用于测控领域。
它不仅可以测量电信,还可以测量温度、湿度等非电信号。
可独立工作的单片机温度检测与控制系统已广泛应用于许多领域。
单片机是一种特殊的计算机,它将CPU、存储器、RAM、ROM和输入输出接口电路集成在一块半导体芯片上。
这个芯片叫单片机。
单片机由于集成度高、功能强、通用性好,具有体积小、重量轻、能耗低、价格低、抗干扰能力强、可仿制等优点。
得到了迅速的推广和应用,现已成为测控系统中的优秀机型和新型电子产品中的关键元器件。
单片机不仅仅局限于小系统的概念,还广泛应用于家用电器、机电产品、办公自动化产品、机器人、儿童玩具、航天器等领域。
这次我们的模拟电气设计是用单片机来控制温度。
传统的温度传感器大多采用热敏电阻作为温度传感器,但热敏电阻的可靠性差,测温精度低,必须通过专门的接口电路转换成数字信号,才能由单片机进行处理。
这次我和同学陆鲁豫用的是DS18B。
20数字温度传感器实现基于51单片机的温度计设计。
传统温度计存在反射速度慢、读数麻烦、测量精度低、误差大等缺点。
利用集成温度传感器DS18B20,设计并制作了一种基于AT89C51的4位数码管数字温度计。
其电路简单,软硬件结构模块化,易于实现。
数字温度计是利用温度传感器和接口电路测量温度并转换成模拟电压信号,通过模数转换器转换成单片机可以处理的数字信号,然后送到单片机进行处理和转换,最后在数码管上显示温度值。
该系统由单片机为控制核心,DS18B20温度传感器,带4位温度数据显示的共阴极数码管,外围电源和报警电路组成。
2.设计任务和要求2.1设计任务在现代生活中,多功能数字体温计可以给我们的生活带来极大的便利。
支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本。
以美国MA*IM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,ATMEL公司的AT89S52位控制器设计的AT89S51为智能温度控制器,结构简单,测温准确,具有一定的控制功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电压表
1.实验任务
利用单片机STC89C52与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。
2.现有元件
模数转换器ADC0804,STC89C52单片机,两个共阳极数码管。
3.硬件设计
3.1模数转换器ADC0809与单片机STC89C52的连接
(1) ADC0809规格及引脚分配图如下图3-1所示:
图3-1 ADC0809引脚图
(2) STC89C52各个引脚分布如下图3-2所示:
图3-2 STC89C52引脚图
(3) 硬件连线
(a) 把“单片机系统”区域中的P3.0与”模数转换模块ADC0809“区域中的ST端子用导线
相连接。
(b) 把“单片机系统”区域中的P3.1与”模数转换模块ADC0809“区域中的ALE端子用导线相连接。
(c) 把“单片机系统”区域中的P3.2与”模数转换模块ADC0809“区域中的OE端子用导线相连接。
(d) 把“单片机系统”区域中的P3.6与”模数转换模块ADC0809“区域中的EOC端子用导线相连接。
(e) 把“单片机系统”区域中的P3.7与”模数转换模块ADC0809“区域中的CLK端子用导线相连接。
(f) 把“模数转换模块ADC0809”区域中的ADDA、ADDB、ADDC端子用导线连接到单片机的VCC端子上。
把“模数转换模块ADC0809”区域中IN7与外接输入电压相连。
(g) 把“单片机系统”区域中的P2.0-P2.7连接到“模数转换模块ADC0809”区域中D0D1D2D3D4D5D6D7端子上。
(h) 把“单片机系统”区域中的P1.0-P1.7连接到“数码管”区域中ABCDEFG端子上。
把“单片机系统”区域中的P0.0-P0.1连接到“数码管”区域中12端口。
4. 电路原理图
图4 电路原理图
5. 程序设计内容
由于ADC0809在进行A/D转换时需要CLK信号,而此时ADC0809的CLK是接在单片机的P3.7口,也就是要求从P3.7输出CLK信号供ADC0809使用。
因此产生CLK信号的方法就要用软件来产生。
6. C语言源程序
#include<reg52.h>
sbit ALE = P3^1;
sbit ST = P3^0;
sbit EOC = P3^2;
sbit OE = P3^6;
sbit CLK = P3^7;
sbit wexuan1=P0^0;
sbit wexuan2=P0^1;
//sbit IN1 = P0^5;
//sbit IN2 = P0^6;
//sbit IN3 = P0^7;
unsigned int code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90}; //段码表
unsigned int n=0,flag1=1;flag=1,ad_data,num1=0,num2=0;
void delay(xms)
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
void display()//2位数码管显示
{
float a;
a=(float)ad_data/256*5*1000;
num1=(int)a/1000;
num2=(int)a/100-num1*10;
P1=table[num1];
wexuan1=1;
delay(1);
wexuan1=0;
P1=0xff;
P1=0x7f; //小数点
wexuan1=1;
delay(1);
wexuan1=0;
P1=0xff;
P1=table[num2];
wexuan2=1;
delay(1);
wexuan2=0;
P1=0xff;
}
void init()
{
ST = 0;
ALE = 0;
OE = 0;
CLK = 0;
// _EOC= 1;
TMOD=0x12;IP=0x09;
TH0=(65536-22)/256;
TL0=(65536-22)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
EA=1;
ET0=1;ET1=1;
TR0=1;TR1=1;
EX0=1;//打开外部中断
IT0=1;//从高到低的负跳变有效
P0=0x00;
}
void start() //int a,int b,int c) //选择通道{
// IN1 = a;IN2 = b;IN3 = c;
ALE = 0;ALE = 1;
ST = 0;ST = 1;
ALE = 0;ST = 0;
display();
delay(10);
}
int read()
{
unsigned int dat;
P2 = 0xff;
OE = 1;
display();
dat = P2;
OE = 0;
return (dat);
}
void main()
{
init();
while(1)
{ ST = 0;
ST = 1;
ST = 0;
if(n==20)
{
flag=1;
// display();
// start();
// while(EOC==0);//转换结束(EOC=1)读出数据后显示
// _EOC=0;
ad_data=read();
flag=0;
display();
//
n = 0;
// display();
// _EOC = 1;
}
display();//显示的是if中的电压值
}
}
void INTR_0() interrupt 0
{
while(1){
ad_data = read();
flag = 0;
display();}
}
void timer0() interrupt 1 // 输出500kHz 方波{
CLK=~CLK;
}
void timer1() interrupt 3
{
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
n++;
flag1=0;
}。