单片机课程设计报告数字电压表

合集下载

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

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

基于单片机的数字电压表设计一、引言在电子测量领域中,电压表是一种常用的测量仪器,用于测量电路中的电压值。

传统的模拟电压表由于精度低、读数不便等缺点,逐渐被数字电压表所取代。

数字电压表具有精度高、读数直观、抗干扰能力强等优点,广泛应用于工业自动化、电子设备检测、实验室测量等领域。

本文将介绍一种基于单片机的数字电压表设计方案,详细阐述其硬件电路设计、软件编程实现以及系统性能测试。

二、系统总体设计方案(一)设计要求设计一款基于单片机的数字电压表,能够测量 0 5V 的直流电压,测量精度为 001V,具有实时显示测量结果的功能。

(二)系统组成本数字电压表系统主要由以下几个部分组成:1、传感器模块:用于将输入的电压信号转换为适合单片机处理的电信号。

2、单片机模块:作为系统的核心,负责对传感器采集到的数据进行处理和计算,并控制显示模块显示测量结果。

3、显示模块:用于实时显示测量的电压值。

三、硬件电路设计(一)传感器模块选用 ADC0809 作为模数转换芯片,它具有 8 个模拟输入通道,可以将 0 5V 的模拟电压转换为 8 位数字量输出。

(二)单片机模块选择 AT89C51 单片机作为控制核心,它具有 4K 字节的 Flash 程序存储器和 128 字节的随机存取数据存储器。

(三)显示模块采用液晶显示屏(LCD1602)作为显示器件,它能够清晰地显示数字和字符信息。

四、软件编程实现(一)编程语言选择使用 C 语言进行编程,C 语言具有语法简洁、可移植性强等优点。

(二)主程序流程主程序首先进行系统初始化,包括单片机端口初始化、LCD1602 初始化、ADC0809 初始化等。

然后启动 ADC0809 进行模数转换,读取转换结果并进行数据处理,计算出实际的电压值。

最后将电压值发送到 LCD1602 进行显示。

(三)模数转换子程序ADC0809 的转换过程通过控制其启动转换引脚(START)和读取转换结束引脚(EOC)来实现。

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

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

基于单片机的数字电压表的课程设计一、引言在电子测量领域,电压表是一种常见且重要的测量工具。

传统的模拟电压表存在精度低、读数不直观等缺点,而数字电压表则凭借其高精度、高稳定性和直观的数字显示等优势,在电子测量中得到了广泛的应用。

本课程设计旨在基于单片机设计一款数字电压表,以实现对直流电压的准确测量和数字显示。

二、设计要求1、测量范围:0 5V 直流电压。

2、测量精度:优于 01V 。

3、显示方式:四位数码管显示。

4、具备超量程报警功能。

三、系统总体设计本数字电压表系统主要由单片机最小系统、A/D 转换模块、数码管显示模块和报警模块组成。

单片机最小系统作为控制核心,负责整个系统的运行和数据处理。

A/D 转换模块将输入的模拟电压转换为数字量,供单片机读取。

数码管显示模块用于显示测量的电压值。

报警模块在测量电压超过设定范围时发出报警信号。

四、硬件设计1、单片机最小系统选用 STC89C52 单片机,其具有性能稳定、价格低廉等优点。

最小系统包括单片机芯片、晶振电路和复位电路。

2、 A/D 转换模块采用 ADC0809 芯片进行 A/D 转换。

ADC0809 是 8 位逐次逼近型A/D 转换器,具有 8 个模拟输入通道,能够满足本设计的需求。

3、数码管显示模块使用四位共阳极数码管进行电压显示。

通过单片机的 I/O 口控制数码管的段选和位选,实现数字的显示。

4、报警模块采用蜂鸣器作为报警元件,当测量电压超过 5V 时,单片机输出高电平驱动蜂鸣器发声报警。

五、软件设计软件部分主要包括主程序、A/D 转换子程序、数据处理子程序和显示子程序等。

1、主程序负责系统的初始化,包括单片机端口设置、A/D 转换器初始化等。

然后循环调用 A/D 转换子程序、数据处理子程序和显示子程序,实现电压的测量和显示。

2、 A/D 转换子程序控制 ADC0809 进行 A/D 转换,并读取转换结果。

3、数据处理子程序将 A/D 转换得到的数字量转换为实际的电压值,并进行精度处理。

单片机课程设计报告:电压表(附程序)

单片机课程设计报告:电压表(附程序)

——电压表【课题】电压表【设计要求】设计一个量程可变的数字电压表,用3个LED数码管显示,电压表量程为0~200mV(显示0~200mV)、200mV~2V(显示0.2V~2V)。

【设计原理】一、实验电路图二、工作原理如上图所示,实验中主要用到的芯片有运算放大器、继电器、ADC0832、8951单片机及其外围设备。

电压表的量程为两档,0~200mV 和200mV~2V。

其相对应的运放的放大增益是25倍和2.4倍,这样即使是最大的输入其通过运放后的输出电压都会小于5V,其通过限幅电路后电压均为其真实值。

然后模拟输入电压由AD0832输入,经过模数转换后送给单片机。

由p0口输出字形,同时由p1.4的电平控制74LS573的锁存和直通状态。

P1.5、p1.6、p1.7控制字位。

P1.2控制继电器的工作状态,当P1.2低电平时,三极管工作在截止状态,继电器线圈无电流通过,继电器处于常闭状态,那么相对应的运放的放大增益为25倍。

而当P1.2为高电平时,三极管工作在饱和状态,继电器线圈有电流通过,产生电磁力将继电器的开关吸到常开状态,其对应的放大增益即变为2.4倍。

对于一个模拟输入,现将其放大2.4倍,然后由AD 输入并相应转化,如果它的输出要是小于0.5V ,也就是19H ,则选择此档位是不精确的,也说明此时的输入电压介于0~200mV 之间。

那么我们就需要让P1.2置低电平,将相应的放大倍数改成25以提高转换精度。

若其满足相应的条件则直接将其转换成BCD 码并直接送数显示即可。

实验中用到了模数转换器ADC0832,其引脚图如右图所示,ADC0832是8位逐次逼近型A /D 转换器, 单一正5V 电源供电,CS 为片选, CLK 提供串行输入/输出时钟信号,DO用于串行数字输出,CHO 和CHl 为双通道模拟输入端, 它可用软件设定为单端或差分输人。

在差分方式中,通道口地址的选择由DI 逐位输入,GND 是数字、模拟公共地,cc V (REP V )为芯片电源、参考电压公共端。

单片机应用技术课程报告——数字电压表的设计

单片机应用技术课程报告——数字电压表的设计

单片机应用技术课程报告
5、软件程序设计
(1)、程序设计思路
2)性能指标测试及结果分析
本设计以8051单片机为控制核心,通过集成摸数转换芯片ADC0809将被测信号转换成数字信号,经单片机内部程序处理后,由LED八段数码管显示测量结果。

仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量范围为0~5V,最小分辨率为0.02V,满足任务书指标要求。

但是,该系统也存在定程度的不足,例如:
1、若能将测量的电压值实时保存,使用时将更方便。

2、ADC0809可实现对8个通道的输入信号轮流转换,本设计仅仅使用了其中一个通道,造成了较大的资源浪费。

若能对电路稍加改进,实现对多路信号的轮流测量并自动保存相应结果,其应用价值将会更大。

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

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

哈尔滨理工大学课程设计报告书课程名称单片机课程设计题目数字电压表院(系)自动化学院班级电技12-3学号1212020301学生姓名蔡成灼指导教师王宏民辅导教师王宏民2014 年12 月25 日课程设计(论文)任务书自动化学院电子信息科学与技术专业12-3班一、课程设计(论文)题目:数字电压表二、课程设计(论文)工作自20 14 年 12 月 26 日起至 20 14 年 12 月 27 日止三、课程设计(论文) 地点: B302四、课程设计(论文)内容要求:1. 本课程设计的目的(1)进一步巩固和加深对“单片机原理及应用”课程基本知识的理解和掌握,了解51系列单片机在项目开发中的应用。

(2)学习单片机硬件和软件设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。

(3)通过对标准化、规范化文档的掌握并查阅有关技术资料等,培养项目设计开发能力,同时提倡团队合作精神。

2. 课程设计的任务及要求1) 基本要求:(1)对系统功能进行需求分析;(2)提出系统的设计方案;(3)完成硬件设计和编写源程序代码并进行必要的调试。

2) 创新要求ADC0832是双通道,由程序可以任意的选取通道进行显示。

3) 课程设计报告撰写及装订要求课程设计报告的撰写要求表述简明,图表准确。

报告按如下内容和顺序用A4纸进行打印并装订成册。

(1)封面采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。

(2)设计任务书(3)评阅书(4)目录(5)正文(6)主要参考文献4) 课程设计完成标准要求:每人按指定题目进行设计,严禁抄袭,要求每人自己动手编写程序,采取同一组同时检查程序及运行结果,检查时同组成员每人陈述自己的分工,同一选题不同组如发现代码完全一样,则双方都作不及格处理。

(1)达到课程设计的目的与要求,程序的可读性较好,并调试正确;(2)能正确回答设计的中老师所提问题;(3)课程设计报告书写规范整齐;(4)心得体会认真总结;(5)程序有创新性;成绩评定实行优秀、良好、中等、及格和不及格五个等级。

数字电压表实验报告

数字电压表实验报告

简易数字电压表设计报告姓名:***班级:自动化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软件进行编程。

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

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

基于单片机的数字电压表设计报告
一、研究意义
数字电压表是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。

目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。

与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

二、系统硬件设计
模拟电压经过档位切换到不同的分压电路衰减后,经隔离干扰送到A/D转换器进行A/D转换,然后送到单片机中进行数据处理。

处理后的数据送到LCD中显示,同时通过串行通讯与上位机通信。

1)硬件电路框图:
2)硬件电路原理图:
三、系统软件设计1)主程序设计
2)中断子程序设计
四、分析及结论
电压测量通过不同的接口电路可实现温度、湿度、压力等测量,广泛应用于工业领域。

本电路设计别具一格,是一种高精度、低功耗、宽量程、智能化的电压表。

可扩展键盘、EEPROM、报警电路,实现电压异常记录、报警。

单片机课程设计 数字电压表

单片机课程设计 数字电压表

一目的和意义 (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口。

单片机数字电压表课程设计报告

单片机数字电压表课程设计报告

单片机数字电压表课程设计报告单片机数字电压表课程设计报告摘要:本次课程设计采用单片机来实现数字电压表的设计,通过对市场上常见单片机的选型和开发工具的使用,实现了数字电压表的硬件和软件设计。

该数字电压表具有分辨率高、测量精度高、响应速度快等特点,可广泛应用于测量高压、低压、直流电压等领域。

关键词:单片机、数字电压表、驱动电路、计数器一、课程设计目的本次课程设计旨在让学生了解数字电压表的设计方法和原理,通过使用单片机来实现数字电压表的设计,提高学生的实践能力和创新能力。

同时,通过本次课程设计,还可以让学生了解单片机的使用方法和开发工具的使用,加深对单片机应用的理解。

二、课程设计内容本次课程设计采用单片机来实现数字电压表的设计,具体包括以下内容:1. 对市场上常见单片机的选型和开发工具的使用。

2. 设计数字电压表的硬件电路,包括驱动电路、计数器、计数器清零电路等。

3. 设计数字电压表的软件电路,包括计数器清零程序、计数器累加程序、显示程序等。

4. 将数字电压表与单片机连接,进行测试和调试。

三、课程设计原理数字电压表的设计原理是利用单片机的计数器来实现对电压值的计数和显示。

单片机通过外部时钟信号来控制计数器的计数频率,将计数器的计数值累加到显示寄存器中,从而实现对电压值的显示。

同时,通过对电压值的测量和计算,可以实现对高压、低压、直流电压的测量和显示。

四、课程设计步骤1. 对市场上常见单片机的选型和开发工具的使用。

2. 设计数字电压表的硬件电路,包括驱动电路、计数器、计数器清零电路等。

3. 设计数字电压表的软件电路,包括计数器清零程序、计数器累加程序、显示程序等。

4. 将数字电压表与单片机连接,进行测试和调试。

五、课程设计成果通过本次课程设计,学生可以独立完成数字电压表的硬件和软件设计,掌握单片机的应用和开发技巧,提高实践能力和创新能力。

同时,学生还可以根据实际应用需求,对数字电压表进行改进和创新,提高其实用性和市场竞争力。

单片机课程设计报告——数字电压表

单片机课程设计报告——数字电压表

数 字 电 压 表单片机课程设计报告班 级:姓 名:学 号:指导教师:2011 年 3 月 29 日数字电压表电路设计报告一、题目及设计要求采用51系列单片机和ADC 设计一个数字电压表,输入为0~5V 线性模拟信号,输出通过LED 显示,要求显示两位小数。

二、主要技术指标1、数字芯片A/D 转换技术2、单片机控制的数码管显示技术3、单片机的数据处理技术三、方案论证及选择主要设计方框图如下:1、主控芯片方案1:选用专用转化芯片INC7107实现电压的测量和实现,用四位数码管电压采集 模数转换 单片机处理 数码管显示显示出最后的转换电压结果。

缺点是京都比较低,内部电压转换和控制部分不可控制。

优点是价格低廉。

方案2:选用单片机AT89C51和A/D转换芯片ADC0809实现电压的转换和控制,用四位数码管显示出最后的转换电压结果。

缺点是价格稍贵;优点是转换京都高,且转换的过程和控制、显示部分可以控制。

基于课程设计的要求和实验室能提供的芯片,我选用了:方案2。

2、显示部分方案1:选用4个单体的共阴极数码管。

优点是价格比较便宜;缺点是焊接时比较麻烦,容易出错。

方案2:选用一个四联的共阴极数码管,外加四个三极管驱动。

这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单。

基于课程设计的要求和实验室所能提供的仪器,我选用了:方案2。

四、电路设计原理模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D转换器进行A/D转换。

然后送到单片机中进行数据处理。

处理后的数据送到LED 中显示。

同时通过串行通讯和上位通信。

硬件电路及软件程序。

而硬件电路又大体可分为A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用Keil和PROTEUS 软件对其编译和仿真。

一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。

单片机课程设计报告-简易数字电压表

单片机课程设计报告-简易数字电压表

TLC0834
P87C52X2
图1
1) A/D 转换部分
1.1 TLC0834 AD 转换器 TLC0834 的启动和转换可以由软件自由控制。根据 TLC0834 的工作时序图,
图 2 控制逻辑表
图 3 时序图
其转换过程是: 片选 置 CS 为低(保证 CS 有一个从高到低的跳变),该电
平能使所有的逻辑功能有效, CS 引脚在整个转换过程中应保持 低电平。此时 DO 端为高阻,DI 端等待指令 起始 向 DI 端输出第一个逻辑高,表示起始位。由于 DI 端
;调用数据转换子程序 LCALL TURN_SUB ;调用显示子程序 LCALL DISP_SUB ;转换成通道 1 CH1: CLR P1.6 ;清时钟 CLR P1.5 SETB P1.7 ;CS=1 CLR P1.7 ;CS=0 SETB P1.5 ;置 1 启动位 SETB P1.6 CLR P1.6 SETB P1.5 ;1 写 SGL SETB P1.6;时钟 0-1 跳变 CLR P1.6 SETB P1.5 ;1 写 ODD SETB P1.6 CLR P1.6 CLR P1.5 ;0 写 SELECT BIT1 SETB P1.6 CLR P1.6 ;通道 0,单端输入 SETB P1.6
C3
10uF
9
RST
R2
10k 29 30 31 PSEN ALE EA
RV3
58%
U5
1 2 3 4 5 6 7 8 V+ CS CH0 CH1 CH2 CH3 DGND AGND ADC0834 CLK SARS 12 11
RV1
58%
1k
DI DO VCC VREF
13 10 14 9

单片机课程设计(直流数字电压表)

单片机课程设计(直流数字电压表)

课程设计总结与展 望
课程设计目标:掌握单片机基础知识,学会设计直流数字电压表 课程设计内容:包括硬件设计、软件设计、调试和测试等 课程设计成果:成功设计并制作出直流数字电压表 课程设计收获:提高了单片机应用能力,增强了团队合作和沟通能力
课程设计展望:未来将继续深入学习单片机技术,提高实践能力,为未来就业做好准备
实际应用:可用于测量直流电压,广泛应用于电子、电力等领域 市场前景:随着电子技术的发展,市场需求不断增长 技术更新:需要不断更新技术,提高测量精度和稳定性 市场竞争:面临国内外竞争对手的压力,需要提高产品质量和降低成本
智能化:单片机技术在智能设备中的应用越来越广泛,未来发展方向将更加智能化。
物联网:单片机技术在物联网中的应用越来越广泛,未来发展方向将更加注重物联网技术的应用。
单片机课程设计(直 流数字电压表)
汇报人:
目录
添加目录标题
单片机课程设计概 述
硬件电路设计
软件程序设计
系统调试与测试
课程设计总结与展 望
添加章节标题
单片机课程设计概 述
掌握单片机的基本原理和编程方法 提高动手实践能力和创新能力 培养团队合作精神和解决问题的能力 为未来的学习和工作打下坚实的基础
电源测试:检查电源电压是 否稳定,是否符合要求
信号测试:检查信号输入、 输出是否正常,是否符合要 求
功能测试:检查系统功能是 否正常,是否符合设计要求
性能测试:检查系统性能是 否满足设计要求,如响应时 间、精度等
稳定性测试:检查系统在 长时间运行下的稳定性, 如温度、湿度等环境因素 对系统的影响
软件调试:通过运行程序,发现并修复程序中的错误 软件测试:通过测试程序,验证程序的功能和性能是否符合预期 测试方法:包括单元测试、集成测试、系统测试等 测试工具:可以使用自动化测试工具,如JUnit、Selenium等

单片机数字电压表设计LED显示含C源代码

单片机数字电压表设计LED显示含C源代码

1. 绪论............................... 错误!未定义书签。

1.1 课程设计规定...................... 错误!未定义书签。

1.2 数字电压表简介.................... 错误!未定义书签。

2. 硬件单元电路设计................... 错误!未定义书签。

2.1数字电压表构造框图................. 错误!未定义书签。

2.1.1 AT89C51单片机简介............ 错误!未定义书签。

2.1.2 ADC0832转换器简介............ 错误!未定义书签。

2.1.3 时钟电路..................... 错误!未定义书签。

2.1.4 复位电路..................... 错误!未定义书签。

2.1.5 LED显示电路.................. 错误!未定义书签。

3. 软件单元电路设计................... 错误!未定义书签。

3.1 主程序流程图...................... 错误!未定义书签。

3.2显示子程序流程图................... 错误!未定义书签。

3.3 A/D转换子程序流程图............... 错误!未定义书签。

3.4 数据解决子程序流程图.............. 错误!未定义书签。

4. 数字电压表仿真设计图与实物图....... 错误!未定义书签。

4.1 仿真图............................ 错误!未定义书签。

4.2 器件清单.......................... 错误!未定义书签。

4.3 硬件电路实物图.................... 错误!未定义书签。

5. 程序代码.............................. 错误!未定义书签。

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







课题名称:数字电压表
课程原理:
1、模数转换原理:
试验中,我们选用ADC0809作为模数转换的芯片,其为逐次逼近式AD转换式芯片,其工作时需要一个稳定的时钟输入,根据查找资料,得到ADC0809的时钟频率在10KHZ~1200KHZ,我们选择典型值640KHZ。

课题要求测量电压范围是0到5V,又ADC0809的要求:V ref+<=Vcc,V ref->=GND,故我们取V ref+=+5V,V ref-=0V。

由于ADC0809有8个输入通道可供选择,我们选择IN0通道,直接使ADC0809的A、B、C接地便可以了,在当ADC0809启动时ALE引脚电平正跳变时变可以锁存A、B、C 上的地址信息。

ADC0809可以将从IN0得到的模拟数据转换为相应的二进制数,由于ADC0809输出为8位的二进制数,转换时将0到5V分为255等分,所以我们可以得到转换公式为x/255*5化简为:x/51,x为得到的模拟数据量,也就是直接得到的电压量。

在AD转换完成后,ADC0809将在EOC引脚上产生一个8倍于自身时钟周期的正脉冲,以此来作为转换结束的标志。

然后当OE引脚上产生高电平时,ADC0809将允许转换完的二进制数据输出。

2、数据处理原理:
由ADC0809的转换原理可以知道我们从其得到数据还只是二进制数据,我们还需要进一步处理来的到x的十进制数,并且对其进行精度处理,也就是课题要求的的精确到小数点后两位,在这里我们用51单片机对数据进行处理。

我们处理数据的思路是:首先将得到的二进制数直接除以十进制数51,然后取整为x的整数部分,然后就是将得到的余数乘以10,然后再除以51,再取整为x的十分位,最后将得到的余数除以5得到x的百分位。

3、数据显示原理:
试验中我们用到四位一体的七段数码管,所以我们只能考扫描显示来完成数码管对x的显示,我们用的是四位数码显示管,但是x只是三位的,故我们将将第四位显示为单位U,通过程序的延时,实现四位数码管的稳定显示。

课程电路和仿真图:
实验中我们采用的protus仿真。

我们将单片机得P0口接上拉电阻后与数码管的8位段选相连,若不接上拉电阻将无法驱动数码管,用P2口得4到7位连接数码管的段选,考虑到整体的PCB布线,我选用P3.2口作为ADC0809的时钟输出端,并用到单片机的定时器。

用P3.5传输ADC0809的START启动信号,用P3.6作为ALE的信号传输,P3.3作为OE的连接端。

IN0为输入端,而ADC0809的IN1到IN7悬空,不作连接。

单片机EA接高电平。

而P3口从ADC0809的输出端输入数据。

实验程序代码:
本次实验我用到的是最底层的汇编语言。

ORG0000H
LJMP ST ART
ORG000BH
CPL P3.2
MOV TH0,#0FFH
MOV TL0,#0FFH
RETI
ORG0014H
ST ART: MOV PSW,#0FFH
MOV R1,#00H
MOV R2, #00H
MOV R3,#00H //清零寄存器
MOV IE ,#82H //设置IE,开启定时器,关闭其他中断
MOV TMOD ,#01H //定时器T0,方式1,给ADC0809时钟信号
MOV TH0, #0FFH
MOV TL0, #0FFH
SETB TR0 //启动定时器
LOOP1: CLR P3.5 // 清零并启动ADC0809
CPL P3.5
CPL P3.5
CLR P3.6 //初始化ALE,并启动
SETB P3.6
SETB P3.4
LOOP2: JNB P3.4 , LOOP2 //扫描EOC
SETB P3.3 // 允许输出
MOV P1,#0FFH
MOV A,P1
MOV B,#51
DIV AB
MOV DPTR,#DT AB
MOVC A,@A+DPTR
ORL A,#20H
MOV R1,A //得到个位和小数点存于R1
MOV A,B
MOV B,#10
MUL AB
JNB PSW.2,LOOP3
CLR PSW.2
INC A
MOV B,#51
DIV AB
ADD A,#5
MOV R0,B
AJMP LOOP4
LOOP3: MOV B,#51
DIV AB
MOV R0,B
LOOP4: MOV DPTR,#DT AB
MOVC A,@A+DPTR
MOV R2,A//得到十分位存于R2
MOV A,B // MOV A,R0
MOV B,#10// MOV B,#5
MUL AB //DIV AB
JNB PSW.2,LOOP5
CLR PSW.2
INC A
MOV B,#51
DIV AB
ADD A,#5
AJMP LOOP6
LOOP5: MOV B,#51
DIV AB
LOOP6: MOV DPTR,#DT AB
MOVC A,@A+DPTR
MOV R3,A //得到百分位存于R3
DIS: CLR P2.4 //显示单位
MOV P0,#5EH
MOV R5,#0FH
DJNZ R5,$
SETB P2.4
CLR P2.5 //显示百分位
MOV P0,R3
MOV R5,#0FH
DJNZ R5,$
SETB P2.5
CLR P2.6 //显示十分位
MOV P0,R2
MOV R5,#0FH
DJNZ R5,$
SETB P2.6
CLR P2.7 //显示个位和小数点
MOV P0,R1
MOV R5,#0FH
DJNZ R5,$
SETB P2.7
JB P3.4,LOOP7
AJMP DIS
LOOP7: LJMP LOOP1
DTAB: DB 5FH ,44H ,9DH,0D5H,0C6H
DB 0D3H,0DBH,45H,0DFH,0D7H
END
END
总结:
1、仿真时,也就是写程序时,为了硬件的简单,我们没有采用74LS244来驱动数码管,
而是直接用IO口来驱动数码管,这就导致最开始的时候数码管在位选为低电平(我们没有采用三极管作为开关管),段选为高电平时没有任何显示,也就是没有考虑到单片机IO口驱动负载的能力,后面我们在P0口加上上拉电阻之后情况有所转变。

但是我们又发现了新的问题:当数码管扫描显示时,数码管的显示会出现乱码。

当然这是我们的程序有点问题。

开始我们将得到的数据边处理边显示,然后轮流点亮,但是发现数码管根本就没有一点反应,全部是黑的。

后面将程序改为先将数据全部处理完,然后再依次显示,这样数码管便可以显示。

后面总结得知:边处理数据边显示由于显示时间短的原因导致数码管不能显示。

2、焊完板子以后,通电后不加芯片对板子的各个引脚进行电压检测后,下载程序运行后发
现,数码管有显示,但是显示的很暗,不是很明亮,开始以为是上拉电阻的阻止太大,后面尝试性的将程序中显示做适当的延时后发现数码管的显示变的很亮了,总结得知:数码管轮流显示时,若显示时间很短,即会造成平均电流很小直接使得数码管的亮度不够。

相关文档
最新文档