实验三 简易数字电压表设计

合集下载

简易数字电压表设计

简易数字电压表设计

本科专业学生毕业设计(论文)题目:简易数字电压表设计系别:计算机工程系专业:电子信息工程年级: 2010级学号:姓名:指导教师:摘要数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。

而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,其基本结构是由采样保持,量化,编码等几部分组成。

因此AD转换是此次设计的核心元件。

输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。

本次设计的作品由于用到的模数转换芯片是ADC0832,设计系统给的供电电压为+5伏,能够测量电压范围为0到5伏之间,满足设计要求。

同时设计的精度为小数点后两位,满足要求的两位小数的精度,在不考虑AD芯片的量化误差的前提下,此次设计的精度能够满足一般测量的要求。

关键词:数字电压表;信号;AD转换;测量AbstractDVM is short for digital display voltmeter,the fundamental of DVM is converting The input analog voltage signal into digital signals,and then show the solution.The function of A/D converter is to convert the continuous change of analog signals into discrete digital signals. It comes in several parts-sampling,maintaining,quantization and coding.So the AD conversion is the core element of the design.The Input analog will be transformed by AD converter then driven by the drive display output, then get the digital voltage measurement This design work requirement for making digital voltage meter range of 0 to 5 v, due to the use of modulus conversion chip is ADC0832, The voltage of power supplied by design system is+ 5 v,At the same time, It can measure the voltage at the range of 0 to 5 v, and meet the design requirements.the precision of the design to two decimal places, meet the requirements of the precision of the two decimal places, without considering the AD chip under the premise of quantization error, the accuracy of the design can meet the requirements of general measure.Key words: DVM signals A/D converter measurement.目录第一章引言 (1)1.1 课题设计的背景及概述 (1)1.2 课题设计方案的选择 (1)1.2.1由数字电路及芯片构建 (2)1.2.2由单片机系统及A/D转换芯片构建 (2)第二章系统方案设计与论证 (3)2.1设计目标 (3)2.1.1基本功能 (3)2.1.2主要技术参数 (3)2.2设计思路与预期成果 (3)2.2.1设计思路 (3)2.2.2预期成果 (3)2.3设计方案 (4)2.4总设计框图 (4)第三章硬件设计与原理 (5)3.1电源的设计 (5)3.2单片机最小系统 (5)3.3 显示系统 (10)3.3.1 LCD1602的指令说明及时序 (11)3.3.2 LCD1602的RAM地址映射及标准字库表 (13)3.4模数转换 (14)第四章软件设计与程序 (16)4.1 软件的组成 (16)4.2 各部分软件分析 (16)4.2.1 初始化程序 (16)4.2.2 采样数据分离,显示子函数 (17)4.2.3 A/D转换子程序 (18)4.2.4 主函数 (19)第五章系统的调试 (20)5.1 软件调试 (20)5.2 显示结果及误差分析 (20)5.2.1 显示结果 (20)5.2.2 误差分析 (21)结论 (23)参考文献 (24)附录 (25)1.原件清单 (25)2.实物图 (26)3.原理图 (26)4.PCB板图 (27)5.源程序代码 (27)感谢 (32)第一章引言1.1 课题设计的背景及概述在电子测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常,而且随着电子技术的发展,更是需要经常测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。

简易电压表设计实验报告

简易电压表设计实验报告

数字电路与逻辑设计实验实验报告课题名称:简易数字电压表的设计学院:信息与通信工程学院班级:姓名:学号:班内序号:一.设计课题的任务要求设计并实现一个简易数字电压表,要求使用实验板上的串行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转换启动键,输入。

简易数字电压表设计,单片机实验。

简易数字电压表设计,单片机实验。
(2) 用 C51 编写代码,实现一个数字式直流电压测量表,将测量到的直流电 压值在 LCD 上显示;
(3) 采用 Keil 和 Proteus 联合调试代码,查看仿真结果; (4) 将编程代码通过 STC-ISP 程序下载到 MCU Flash 中运行,并观察运行结
果。
3. 实训要求
(1) 依照 EDP 实验箱的接口设计,在任务三、四的基础上补充 AD 采集电路 的绘制,可以仿真 EDP 实验箱的相应硬件模块;
lcd1602_com(0x82); lcd1602_Data(0x2e);
lcd1602_com(0x81); lcd1602_Data(DATA[temp/10]);
START=1; START=0; }
} } void delay_1ms() {
int n=100; while(n--); } void lcd1602_com(unsigned char com)
OE=1; temp=P0; temp=temp*a*100; lcd1602_com(0x84); lcd1602_Data(DATA[temp%10]);
temp=temp/10; lcd16DATA[temp%10 ]);
简易数字电压表设计
1. 任务目的
(1) 熟悉 SPI 接口协议; (2) 掌握 TLC1543 A/D 转换器的工作原理及使用方法; (3) 熟悉掌握 TL431 基准电压源的工作原理; (4) 掌握直流电压表的工作原理与实现方法。
2. 实验内容
(1) 参考 EDP 实验箱 AD 模块电路,在 Proteus 中采用 TLC1543 和 TL431 设 计一个 AD 采样电路;
a=0.0196;
OE=0; START=0; START=1; START=0;

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

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

目录摘要及关键词 (2)一、实现方案 (3)1.硬件选择方案 (4)2.程序设计 (12)二、系统的测试与结果 (17)三、调试过程及问题解决方法 (18)四、课题设计的收获及心得 (18)参考文献 (18)摘要:本课题实验主要采用MCU-8088/8086H芯片、8255和ADC0809芯片来完成一个简易的数字电压表,能够对输入的0~5 V的模拟直流电压进展测量,并通过一个4位一体的7段LED数码管进展显示,测量误差约为0.02 V。

该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。

A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。

数据处理那么由芯片MCU-8088/8086H来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进展显示;另外它还控制着ADC0809芯片的工作。

显示模块主要由7段数码管及相应的驱动芯片(74HC245)组成,显示测量到的电压值。

关键词:简易数字电压表、ADC0809、MCU-8088/8086H。

.实现方案:本实验采用MCU-8088/8086H单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,原理电路如图1-1所示。

该电路通过ADC0809芯片采样输入口IN0输入的0~5 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给MCU-8088/8086H芯片的AD0~AD7。

MCU-8088/8086H负责把接收到的数字量经过数据处理送给8255的PA口在送给数码管的KD0~KD7,产生正确的7段数码管的显示段码。

同时8255的PB0~PB3还通过控制数码管的KL1~KL4产生位选信号,控制数码管的亮灭。

另外,还控制着ADC0809的工作。

图1-1 电路原理图图1-2 系统框图硬件选择方案:一.实验所需元器件:1. MCU-8088/8086H芯片1块2. ADC0809芯片1块3. 8255芯片1块4. 4位一体数码1个15.导线假设干课程设计---简易数字电压表〔二〕二.主要元器件的介绍课程设计---简易数字电压表〔三〕2)ADC0809芯片介绍1.模数转换芯片ADC0809:ADC0809是典型的8位8通道逐次逼近式A/D转换器,其实物如图1-3所示。

综合实验三 位直流数字电压表

综合实验三    位直流数字电压表

综合实验三213位直流数字电压表一、实验目的 1、了解双积分式A / D 转换器的工作原理2、熟悉213位A / D 转换器CC14433的性能及其引脚功能3、掌握用CC14433构成直流数字电压表的方法二、实验原理直流数字电压表的核心器件是一个间接型A / D 转换器,它首先将输入的模拟电压信号变换成易于准确测量的时间量,然后在这个时间宽度里用计数器计时,计数结果就是正比于输入模拟电压信号的数字量。

1、V -T 变换型双积分A / D 转换器图3-1是双积分ADC 的控制逻辑框图。

它由积分器(包括运算放大器A 1 和RC 积分网络)、过零比较器A 2,N 位二进制计数器,开关控制电路,门控电路,参考电压V R 与时钟脉冲源CP图3-1 双积分ADC 原理框图转换开始前,先将计数器清零,并通过控制电路使开关 S O 接通,将电容C 充分放电。

由于计数器进位输出Q C =0,控制电路使开关S 接通v i ,模拟电压与积分器接通,同时,门G 被封锁,计数器不工作。

积分器输出v A 线性下降,经零值比较器A 2 获得一方波v C ,打开门G ,计数器开始计数,当输入2n个时钟脉冲后t =T 1,各触发器输出端D n-1~D O 由111…1回到000…0,其进位输出Q C =1,作为定时控制信号,通过控制电路将开关S转换至基准电压源-V R ,积分器向相反方向积分,v A 开始线性上升,计数器重新从0开始计数,直到t =T 2,v A 下降到0,比较器输出的正方波结束,此时计数器中暂存二进制数字就是v i 相对应的二进制数码。

2、213位双积分A / D 转换器CC14433的性能特点 CC14433是CMOS 双积分式213位A / D 转换器,它是将构成数字和模拟电路的约7700多个MOS 晶体管集成在一个硅芯片上,芯片有24只引脚,采用双列直插式,其引脚排列与功能如图18-2所示。

图3-2 CC14433引脚排列引脚功能说明:V AG (1脚):被测电压V X 和基准电压V R 的参考地V R (2脚):外接基准电压(2V 或200mV )输入端V X (3脚):被测电压输入端R 1(4脚)、R 1 /C 1(5脚)、C 1(6脚):外接积分阻容元件端C 1=0.1μf (聚酯薄膜电容器),R 1=470K Ω(2V 量程);R 1=27K Ω(200mV 量程)。

实验三 简易数字电压表设计共7页文档

实验三 简易数字电压表设计共7页文档

电子系统实验报告实验三简易数字电压表设计姓名张巧玲指导教师贾立新课程电子系统设计与实践专业班级自动化1004班学院信息工程学院一、设计题目采用C8051F360单片机最小系统设计一简易数字电压表,实现对0~2.4V直流电压的测量,原理框图如图1所示。

模拟输入电压通过一只1 kΩ电位器产生,采用C8051F360 单片机内部的A/D 转换器将模拟电压转换成数字量后换算成电压值,用十进制的形式在LCD 上显示。

A/D 转换的输入模拟信号由实验板PR3 电位器产生的0~3.3V 的直流电压信号,用一根杜邦实验线将J8 的0~3.3V 输出插针与J7 口的P2.0 插针相连。

注意A/D 转换器模拟输入电压的范围取决于其所选择的参考电压,如果A/D 转换器选择内部参考电压源,其模拟电压的范围为0~2.4V,如果选择外部电源作为参考电压,则其模拟输入电压范围为0~3.3V。

测试时,A/D转换器的模拟输入信号可通过一个电位器产生。

图1 简易数字电压表实验示意框图二.设计方案(1)简易数字电压表设计程序流程图如图2所示。

图2 简易数字电压表设计程序中A/D转换和计时流程图(2)简易数字电压表实验板连接图如图3所示。

此外,还需用一根杜邦实验线将J8 的0~3.3V 输出插针与J7 口的P2.0 插针相连。

图3简易数字电压表设计实验板接线图三、详细设计1.简易数字电压表设计相应C8051F360和LCD初始化程序⑴内部振荡器初始化:OscInit()⑵ I/O端口初始化:PortIoInit()⑶外部数据存储器接口初始化:XramInit()⑷定时器初始化:TimerInit()⑸中断系统初始化:Int0Init()⑹ ADC0初始化:void ADC_Init()⑺ PCA初始化:Int0Init()2.电压转换方式将电压转换成十进制:AT=ADC0H*256+ADC0L;volt=AT*3.31/1024;voltage=volt*1000;for(i=0;i<4;i++)v[i]=voltage%10;voltage=voltage/10;3. LCD显示接口的设计当时间到达设定值,即0.5s后,执行以下程序将所测的电压值在LCD屏幕上第三排显示出来。

简易数字电压表课程设计

简易数字电压表课程设计

简易数字电压表课程设计一、课程目标知识目标:1. 学生能够理解电压表的基本工作原理和电路连接方式;2. 学生能够掌握简易数字电压表的使用方法和读数技巧;3. 学生能够了解电压的单位换算,并能进行简单的计算。

技能目标:1. 学生能够正确连接电压表的电路,并进行电压测量;2. 学生能够通过操作简易数字电压表,准确读取电压值,并记录数据;3. 学生能够运用所学知识解决实际电路中的电压问题。

情感态度价值观目标:1. 培养学生对电子测量工具的兴趣,激发学习电子技术的热情;2. 培养学生严谨、细致的实验态度,注重实验操作的规范性和安全性;3. 培养学生团队合作精神,学会分享和交流实验过程中的心得体会。

课程性质分析:本课程为电子技术基础课程,以实验为主,结合理论教学。

简易数字电压表是电子测量工具的基础,通过本课程的学习,使学生掌握基本的电压测量方法。

学生特点分析:学生为初中生,具备一定的物理知识和实验操作能力。

学生对电子技术感兴趣,但可能对电压表的使用方法和电路连接不够熟悉。

教学要求:1. 理论与实践相结合,注重实验操作技能的培养;2. 注重启发式教学,引导学生主动探究和解决问题;3. 关注学生的个体差异,提供个性化指导,确保每个学生都能达到课程目标。

二、教学内容1. 电压表基本原理:讲解电压表的工作原理,包括磁电式电压表和数字电压表的区别与联系,重点介绍数字电压表的原理和特点。

教材章节:第二章第二节《电压表的原理与使用》2. 电压表的使用方法:详细讲解电压表的电路连接方法,操作步骤,读数技巧以及注意事项。

教材章节:第二章第三节《电压表的使用与维护》3. 电压单位换算:介绍电压的单位制,换算关系,并进行实际计算。

教材章节:第一章第四节《电学单位制》4. 实际电路电压测量:设计实际电路,指导学生运用电压表进行电压测量,分析测量结果。

教材章节:第二章第四节《电压测量》5. 数字电压表操作练习:安排学生进行数字电压表的实操练习,巩固所学知识,提高操作技能。

简易数字电压表的设计(ADC0809)

简易数字电压表的设计(ADC0809)

简易数字电压表的设计(4人)一、设计目的进一步加深理解模拟电子技术、数字电子技术、单片机原理与应用等课程的基础知识,掌握一些小型电子系统的设计方法和制作过程的能力;培养学生们的科学性、系统性、及全面性的设计素质;开拓学生的设计思路,增强他们把理论知识与实践相结合的能力;为毕业后从事电子设备控制电路设计、调试、维修奠定基础。

二、设计要求1.功能要求设计并制作一个简易数字电压表,可以测量0~5V范围内的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示,其中1位为显示通道号。

其测量最小分辨率为0.02V。

2.设计内容(1)根据设计功能要求,确定CPU的选型与硬件接口配置。

(2)进行硬件设计,主要是整个系统电路原理图的绘制和对应的PCB板的布线设计。

(3)进行软件设计,根据控制要求编写控制系统的控制程序。

(4)控制系统调试。

(5)源程序。

三、主要元器件ADC0809、数码管、三极管、发光二极管、总线驱动器、电位器、按键、电阻、电容、导线、万能板等四、设计报告要求1、方案论证及方框图。

2、单元电路设计细则。

3、调试及性能分析。

4、系统的电原理图。

5、电子元器件清单。

6、源程序清单。

7、参考资料。

8、收获。

五、教材及参考书[1] 潘永雄. 新编单片机原理与应用(第二版). 西安:西安电子科技大学出版社,2007年[2] 余永权.单片机应用系统的功率接口技术. 北京:北京航空航天大学出版社,1992[3] 孙涵芳.MCS-51/96系列单片机原理与应用. 北京:北京航空航天大学出版社,1996[4] 丘关源编.电路分析基础.高等教育出版社. 1999年[5] 童诗白编.模拟电子技术基础.高等教育出版社.1999年[6]阎石编.数字电子技术基础.高等教育出版社.1997年[7] [8]刘文涛编.MCS-51单片机培训教程 C51版.电子工业出版社.2006年六、课程设计进度安排注:设计说明书使用课程设计报告本书写,每人一份,独立完成。

简易数字电压表的设计(论文)

简易数字电压表的设计(论文)

目录1 引言 (2)2 系统硬件设计 (2)2.1ATMEL89C51单片机系统和显示电路 (3)2.2A/D转换电路 (4)3 系统软件设计 (5)3.1初始化程序 (5)3.2A/D转换子程序 (5)3.3显示子程序 (6)4 系统安装调试及结果 (14)4.1系统安装调试 (14)4.1.1 电路焊接 (14)4.1.2 程序下载及程序下载 (14)4.2系统调试结果 (14)4.2.1 调试所用工具 (14)4.2.2 记录测试数据 (14)5 总结 (15)6 致谢 (15)7 注释8 参考文献简易数字电压表的设计【内容摘要】此在现代检测技术中,常需用高精度数字电压表进行现场检测,将检测到的数据送入微计算机系统,完成计算、存储、控制和显示等功能。

本文中的数字电压表的控制系统采用ATMEL89C51单片机,A/D转换器采用TLC549为主要硬件,实现数字电压表的硬件电路与软件设计。

该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化。

【关键词】数字单片机;数字电压表;A/D转换;模拟信号1 引言数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

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

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

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

2 系统硬件设计硬件电路设计主要包括:ATMEL89C51单片机系统,A/D转换电路,显示电路。

图2-1是数字电压表硬件电路原理图。

图2-1 数字电压表硬件电路原理图2.1 ATMEL89C51单片机系统和显示电路由于单片机体积小、重量轻、价格便宜,所以本系统采用A TMEL89C51单片机,其原理图如图1所示。

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

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

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

数字电压表课程设计报告

数字电压表课程设计报告

数字电压表课程设计报告一、实验目的本实验旨在使学生掌握数字电压表的基本原理、构成和使用方法,通过实践锻炼学生的动手操作能力和实际问题解决能力。

二、实验器材数字电压表、直流稳压电源、电阻箱、待测电路板等。

三、实验内容1.数字电压表的基本原理、构成和使用方法的介绍;2.根据实验要求搭建待测电路;3.调节直流稳压电源输出电压为所需值;4.连接数字电压表到待测电路上并测量电压值;5.对测得的电压值进行分析、处理和讨论。

四、实验流程及步骤1.实验器材准备:数字电压表、直流稳压电源、电阻箱、待测电路板等器材;2.理解数字电压表的基本原理与构成,并熟练掌握使用方法;3.根据实验所需,找到相应的电路板,搭建待测电路,并连接好直流稳压电源;4.调节直流稳压电源的输出电压为所需值,并连接数字电压表到待测电路上;5.测量待测电路的电压值,并在数字电压表上进行记录;6.对测得的电压值进行分析、处理和讨论,并得出实验结论。

五、实验注意事项1.在操作实验器材时,务必严格按照使用说明书和教师的要求进行操作;2.实验器材保持完好无损,任何破损的器材均不能使用;3.实验前需仔细了解实验内容,规划实验流程;4.在操作实验时,要认真记录实验数据,并进行及时分析处理;5.实验结束后,将实验器材妥善归位,保持实验室整洁干净。

六、实验结果及结论通过实验,我们得到了待测电路的电压值,并对其进行了分析、处理和讨论。

根据实验结果和所给数据,我们得出了结论:数字电压表可准确测量待测电路的电压值,为后续研究和实践提供重要依据。

七、实验心得体会通过本次实验,我对数字电压表的原理及其使用方法有了更深入的了解,并通过实践掌握了一定的动手操作能力和实际问题解决能力。

同时,我认识到在实验中必须注重细节和注意安全,仔细完成每一个实验步骤,及时记录和分析实验数据,才能使实验结果更加准确和可靠。

简易数字电压表的制作

简易数字电压表的制作

浙江科技学院课题实验设计报告班级:学生:学号:指导老师:一、设计题目二、设计内容与要求三、设计目的意义四、系统硬件电路图五、程序流程图与源程序六、系统功能分析与说明七、实物照片八、设计体会一、设计题目简易数字电压表的制作二、设计内容与要求用STC89C52单片机和ADC0809组成一个数字电压表,要求能够测量0~100V的直流电压值,并用2位数码管显示。

简易数字电压表的制作三、设计目的意义1.通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。

2.通过数字电压表的设计系统掌握51单片机的应用。

掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。

四、系统硬件4.1 系统原理框图选择STC89C52作为单片机芯片,选用二位8段共阳极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。

将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。

P2口接数码管位选,P1接数码管,实现数据的动态显示,如图4.1所示。

图4.1 系统原理框图4..2芯片(1)STC89C52STC89C52引脚图(2)ADC0809ADC0809引脚图模数(A/D)芯片A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。

A/D转换的常用方法有:①计数式A/D转换,②逐次逼近型A/D转换,③双积分式A/D转换,④ V/F变换型A/D转换。

在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。

双积分式A/D转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。

【设计】简易数字电压表课程设计

【设计】简易数字电压表课程设计

【关键字】设计《数字逻辑》课程设计报告题目简易数字电压表学院(部)信息工程学院专业计算机科学与技术班级学生姓名学号6 月18日至6 月21 日共 1 周指导教师(签字)前言关于数字式简易电压尝试仪的设计,我们提出了三种设计方法和思路,分别是ADC0809的A/D 转换电路、LM331V/F转换电路、555定时器的V/F转换电路。

在具体操作中,经过对资料的收集、分析,研究与对比,最终选择了简单易懂,而且精度较高的方法,即LM331压频转换法。

本方法的基本理论是LM331的输入电压幅值与输出脉冲的频率成正比,再通过一系列的控制,计数,锁存,显示电路实现了对电压的一般尝试与数字显示。

每学期的课程设计是综合检验我们所学知识的时候,在这期间我们需要将自己所学的知识进行综合,然后运用到我们所要完成的任务中。

此次课程设计我们完成的任务是制作简易数字电压表,我们在拿到这个题目时是没有一点思路的,在仔细研究和向老师请教后终于有了一点头绪,在小组两外两个成员杨羽丰和侯理想的共同努力下,我们初步实现了数字电压表的制作的方案制作,但是由于仿真软件中缺少我们所需元件的原因,我们的方案没能进行模拟仿真,这是此次课程设计的遗憾之处。

我们现在正在试图用另外的仿真软件进行此方案的仿真。

在本次课程设计过程中得到了各方面的支持和帮助,在此特别向数子电子技术老师表示由衷的感谢。

由于设计时间和水平的限制,如有不足之处,敬请指正!目录1.4 V/F转换电路方案比较与论证 (4)66101011111113131313简易数字电压表摘要本文介绍了一种简易的数字式显示电压尝试仪的设计思路及硬件结构。

该测量仪的基本工作原理是:把电压量通过单稳态触发器转化成时间脉冲量,然后在这个时间脉冲内进行计数,再锁存计数值,最终通过数码显示译码器驱动数码管进行显示。

可由555集成定时器构成多谐振荡器产生计数脉冲和对单稳态进行触发,555构成的单稳态触发器电路来控制计数器清零与锁存器锁存,四片74LS160构成计数电路,四片74LS373N构成锁存电路,四片DCD_HEX数码管构成四位译码显示电路,通过计算与分析把各电路连接起来,最终实现对电压(0V—9.99V)的简易测量与数字显示。

数字电路实验三:数字电压表(设计报告)

数字电路实验三:数字电压表(设计报告)

数字电路实验三:数字电压表(设计报告)数电实验3设计报告实验名称:数字电表实验目的:1.掌握组合逻辑与时序逻辑电路的设计方法及调试方法2.熟练掌握常用MSI逻辑芯片的功能及使用方法3.初步掌握Verilog HDL数字系统设计方法4.熟悉PLD实验箱的结构和使用及Quartus II软件的基本操作5.掌握采用Quartus II软件和实验箱设计实现逻辑电路的基本过程设计任务及要求:1、利用FPGA 与ADC0809 设计一个数字电压表,能够测量0-5V 之间的直流电压值,四位数码显示。

2、在实验电路板上焊接插座,将ADC0809 安装在插座上。

3、选择一路模拟量输入通道(如:IN0),经可调电位器送入0-5V 的直流电压。

4、ADC0809 时序由FPGA 控制,ADC 转换输出的数字量(D7-D0)送回FPGA,转换结果由实验箱上的LED 数码管以十进制形式显示。

5、ADC0809 的VREF 接+5V 电压。

6、FPGA 与ADC0809 之间接口利用实验箱上的“彩色液晶”接口。

程序设计过程:1、定义程序名、输入输出量和初始化Moduleadc_cc(clkin,rst,clkout,sel,data,start,eoc,ale,oe,seg_com,seg_data); input clkin; //时钟输入50MHZ inputrst;inputeoc; //ADC0809input [7:0] data; //输入八位数据output clkout; //时钟输出output start; //ADC0809起始信号 output [2:0] sel;//转换通道 output ale; //ADC0809 outputoe;//ADC0809 output [7:0] seg_com; //位选 output [7:0] seg_data;//段选parameter CLK_FREQ = 'D50_000_000;//系统时钟50MHZ parameter CLK_out_FREQ ='D500_000;//输出时钟parameter state_pre = 0; //sel 状态1parameter state_pre2 = 1; //ale 状态2 parameter state_start =2; //start 状态3 parameter state_conv = 3; //conv 状态4parameter state_wait = 4; // 状态5 parameter state_readpre = 5;// 状态6 parameter state_read = 6;//over // 状态7reg [2:0] sel; //定义寄存器 reg ale;//定义寄存器 reg start; //定义寄存器 regoe; //定义寄存器reg [7:0] data_led; //LED显示数据 reg[31:0] DCLK_DIV; //32位计数器regclkout; //提供ADC0809时钟500KHZ reg [3:0]state = state_pre;2、按照PDF所给出的时序图进行编程对照时序图,使ADC0809按上图方式工作进行编程always @ (negedgeclkout) case (state) state_pre : begin sel[2:0] <='b000; //ABC 000 通道0 state <= state_pre2;//转到状态2 oe<= 0; //OE拉低 end state_pre2 :begin ale <= 1; state <= state_start; endstate_start : begin start <= 1; ale<= 0; state <=state_conv; end state_conv : begin ale <= 0;start <= 0; state <= state_wait; end state_wait :begin if(eoc) begin state <= state_readpre; endend state_readpre : begin oe<= 1; state <= state_read; end state_read : begin data_led = data; state <= state_pre; end endcase//ALE拉高 //转到状态3 //START拉高 //转到状态4//ALE拉低锁定 //START拉低 AD启动 //转到状态5 //查询EOC是否被拉高 //转到状态6 //输出使能拉高 //转到状态7//开始读数据 //重新回到状态1 进行下一次AD转换 3、将AD转换结果用数码管显示。

简易数字电压表的设计

简易数字电压表的设计

一、简易数字电压表的设计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)主程序在刚上电时,系统默认为循环显示8个通道的电压值状态。

当进行一次测量后,将显示每一通道的A /D 转换值,每个通道的数据显示时间为1s 左右。

主程序在调用显示子程序和测试子程序之间循环,主程序流程图见图1-3。

(3)显示子程序 显示子程序采用动态扫描法实现四位数码管的数值显示。

实验三 简易数字电压表设计

实验三 简易数字电压表设计

电子系统实验报告实验三简易数字电压表设计姓名张巧玲指导教师贾立新课程电子系统设计与实践专业班级自动化1004班学院信息工程学院一、设计题目采用C8051F360单片机最小系统设计一简易数字电压表,实现对0~2.4V直流电压的测量,原理框图如图1所示。

模拟输入电压通过一只1 kΩ电位器产生,采用C8051F360 单片机内部的A/D 转换器将模拟电压转换成数字量后换算成电压值,用十进制的形式在LCD 上显示。

A/D 转换的输入模拟信号由实验板PR3 电位器产生的0~3.3V 的直流电压信号,用一根杜邦实验线将J8 的0~3.3V 输出插针与J7 口的P2.0 插针相连。

注意A/D 转换器模拟输入电压的范围取决于其所选择的参考电压,如果A/D 转换器选择内部参考电压源,其模拟电压的范围为0~2.4V,如果选择外部电源作为参考电压,则其模拟输入电压范围为0~3.3V。

测试时,A/D转换器的模拟输入信号可通过一个电位器产生。

图1 简易数字电压表实验示意框图二.设计方案(1)简易数字电压表设计程序流程图如图2所示。

图2 简易数字电压表设计程序中A/D转换和计时流程图(2)简易数字电压表实验板连接图如图3所示。

此外,还需用一根杜邦实验线将J8 的0~3.3V 输出插针与J7 口的P2.0 插针相连。

图3简易数字电压表设计实验板接线图三、详细设计1.简易数字电压表设计相应C8051F360和LCD初始化程序⑴内部振荡器初始化:OscInit()⑵ I/O端口初始化:PortIoInit()⑶外部数据存储器接口初始化:XramInit()⑷定时器初始化:TimerInit()⑸中断系统初始化:Int0Init()⑹ ADC0初始化:void ADC_Init()⑺ PCA初始化:Int0Init()2.电压转换方式将电压转换成十进制:AT=ADC0H*256+ADC0L;volt=AT*3.31/1024;voltage=volt*1000;for(i=0;i<4;i++){v[i]=voltage%10;voltage=voltage/10;}3. LCD显示接口的设计当时间到达设定值,即0.5s后,执行以下程序将所测的电压值在LCD屏幕上第三排显示出来。

简易数字电压表的设计

简易数字电压表的设计

单片机课程设计姓名:罗双林学号: 03班级:电气082成绩:指导教师:吴玉蓉设计时刻: 2020-1-4——2020-1-16摘要简易数字电压测量电路由A/D转换、数据处置及显示操纵等组成。

当外部0~5V的模拟信号输入时,第一通过ADC0809转换模块进行转换,转换成数字信号并进入通道进行选择后,将信号传入STC89C52RC单片机时,单片机通过按键电路中的一个按键来选择单路仍是8路,另一个按键作单路显示时选择通道,被选择完毕后将数据送入到显示器。

Simple digital voltage measurement circuit by the A/D conversion, data processing and display control etc.When external 0 ~ 5-v analog signal input, first by ADC0809 conversion module for conversion, converted into digital signals and into the passage, after selecting the signal STC89C52RC microcontroller, introduced into the microcontroller through buttons circuit a button to choose single road or , another button for single road show when choosing the right channel, when choosing after completion will enter data into to the display.目录第一章课程设计任务书 (4)设计目的任务及要求 (4)设计时刻及进度安排 (4)第二章课程设计说明书 (5)设计方案 (5)系统硬件电路的设计 (6)要紧元件选型及相关功能介绍 (7)系统软件设计 (13)第三章结论及心得体会 (15)参考文献 (15)附录 ..................................................................................................错误!未定义书签。

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

电子系统实验报告实验三简易数字电压表设计姓名张巧玲指导教师贾立新课程电子系统设计与实践专业班级自动化1004班学院信息工程学院一、设计题目采用C8051F360单片机最小系统设计一简易数字电压表,实现对0~2.4V直流电压的测量,原理框图如图1所示。

模拟输入电压通过一只1 kΩ电位器产生,采用C8051F360 单片机内部的A/D 转换器将模拟电压转换成数字量后换算成电压值,用十进制的形式在LCD 上显示。

A/D 转换的输入模拟信号由实验板PR3 电位器产生的0~3.3V 的直流电压信号,用一根杜邦实验线将J8 的0~3.3V 输出插针与J7 口的P2.0 插针相连。

注意A/D 转换器模拟输入电压的范围取决于其所选择的参考电压,如果A/D 转换器选择内部参考电压源,其模拟电压的范围为0~2.4V,如果选择外部电源作为参考电压,则其模拟输入电压范围为0~3.3V。

测试时,A/D转换器的模拟输入信号可通过一个电位器产生。

图1 简易数字电压表实验示意框图二.设计方案(1)简易数字电压表设计程序流程图如图2所示。

图2 简易数字电压表设计程序中A/D转换和计时流程图(2)简易数字电压表实验板连接图如图3所示。

此外,还需用一根杜邦实验线将J8 的0~3.3V 输出插针与J7 口的P2.0 插针相连。

图3简易数字电压表设计实验板接线图三、详细设计1.简易数字电压表设计相应C8051F360和LCD初始化程序⑴内部振荡器初始化:OscInit()⑵ I/O端口初始化:PortIoInit()⑶外部数据存储器接口初始化:XramInit()⑷定时器初始化:TimerInit()⑸中断系统初始化:Int0Init()⑹ ADC0初始化:void ADC_Init()⑺ PCA初始化:Int0Init()2.电压转换方式将电压转换成十进制:AT=ADC0H*256+ADC0L;volt=AT*3.31/1024;voltage=volt*1000;for(i=0;i<4;i++){v[i]=voltage%10;voltage=voltage/10;}3. LCD显示接口的设计当时间到达设定值,即0.5s后,执行以下程序将所测的电压值在LCD屏幕上第三排显示出来。

WriteCom(0x8C);WriteData(v[3]+0x30);WriteData(0x2e);WriteData(v[2]+0x30);WriteData(v[1]+0x30);WriteData(v[0]+0x30);4.实验中AD转换方式选用逐次逼近型,A/D转换完成后得到10位数据分为高低字节存放在寄存器ADCOH和ADC0L中,此处选择右对齐,转换时针为2MHZ。

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

四、测试结果在0V~3.3V中取十组测试数据,每组间隔约为0.3V左右,实验数据如表由表1可知,10组数据中最大误差的一组是:其余的误差都不超过,并且大部分数据误差都只有左右,满足小于0.01V的设计误差要求,即本实验的设计可以满足实验要求。

五、心得体会通过这次对简易电压表的设计,我对单片机的最小系统设计有了新的理解,对于硬件和软件的配合也更熟练了。

在这个实验中LCD显示模块的CPLD部分由FPGA充当,芯片本身自带程序,因而这个部分不需要再通过QUARTUS 软件进行编程。

在参考电压选择过程中发现,单片机实际最大电压并不是2.4v而是3.3v,则在转换中将3.3V替换2.4V即可。

六.代码附录/*简易数字电压表*/#include <C8051F360.H>#define uchar unsigned char#define uint unsigned int#define WCOMADDR 0xC008 //写命令寄存器的地址#define WDATADDR 0xC009 //写数据寄存器的地址#define RCOMADDR 0xC00A //读命令寄存器的地址#define RDATADDR 0xC00B //读数据寄存器的地址#define KEYCS 0xC00Cuchar code hanzi[] = "简易数字电压表";uchar code keynum[]="键值";uchar code keyc[]="次数";uint time=0;float volt;uint v[4];uint AT,voltage;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初始化详见书本P144 void Int0Init(); //外部中断初始化void main(){uchar i;InitDevice(); //F360初始化InsitiLcd(); //LCD模块初始化ADC_init();DispHan(hanzi,0x90,0x0e); //显示“键盘显示测试程序”AD0BUSY=1;while(1){if(TF0==1){TF0=0;TL0=0xf0;TH0=0xd8; //重置时间常数10mstime++;}if(time >=49){time = 0;AT=ADC0H*256+ADC0L;volt=AT*0.003234;voltage=volt*1000;for(i=0;i<4;i++){v[i]=voltage%10;voltage=voltage/10;}WriteCom(0x8d);WriteData(v[3]+0x30);WriteData(0x2e);WriteData(v[2]+0x30);WriteData(v[1]+0x30);WriteData(v[0]+0x30);TR0=1;AD0BUSY=1;}}}void ReadKey() interrupt 0{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 Int0Init(){EA=1;IT01CF=0x05;EX0=1;IT0=1;}void OscInit(void) //内部振荡器初始化{SFRPAGE=0x0f; //选择特殊功能寄存器页地址OSCICL=OSCICL+4;OSCICN=0xc2; //允许内部振荡器,频率除2作为SYSCLK=12MHzCLKSEL=0x00; //选择内部振荡器SFRPAGE=0x00;}void ADC_init(){ADC0CF=0x28; // 选择内部参考电压2.4V为基准ADC0CN=0x80; //正端接P2.0AMX0P=0x08; //负端接地AMX0N=0x1F; //右对齐,转换时针为2MHZREF0CN=0x08; //写AD0BUSY启动A/D转换器}void TimerInit(){TMOD=0x01;TH0=0xd8;TL0=0xf0;TR0=1;}void InterruptsInit(void){EA=1;ET0=1;EX0=1;PX0=1;IE0=0;}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;P3MDIN=0xff; //P3设置为数字量输入P3MDOUT=0xff; //P3设置为推拉式输出P3SKIP=0xff;P4MDOUT=0xff; //P4.5设为OC输出,其余推拉式输出XBR0=0x01; //使能UARTXBR1=0xC0; //禁止弱上拉,交叉开关允许SFRPAGE=0x00;return;}void XramInit(void) //外部数据储存器初始化{SFRPAGE=0x0f;EMI0CF=0x07; //引脚复用方式SFRPAGE=0x00;return;}void PcaInit(void) //PCA初始化{PCA0CN=0x40; //允许PCA计数器/定时器PCA0MD=0x00; //禁止看门狗定时器return;}void InitDevice(void){OscInit();PortIoInit();XramInit();//SmbInit();//UartInit();ADC_init();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(){WriteCom(0x30); //设为基本指令集WriteCom(0x01); //清屏WriteCom(0x0c); //开整体显示}void DispHan( uchar code *a,uchar m,uchar k) // 书本177页有详细解释 {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);}。

相关文档
最新文档