电子系统设计报告设计题目:基于单片机的简易电压表设计指导老师://///////专业班级://///////报告人姓名://///////// (签名) 学号://////////信息工程学院通信工程教研室摘要数字电压表简称DVM,它是采用了数字化测量技术,把连续模拟量(直流输入电压)转换成不连续,离散的数字形式加以现实的仪表。
传统的指针是电压表功能单一,精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高,抗干扰能力强,可扩展性强,集成方便,不可与PC进行实时通信。
目前由各种单片机A/D转换器构成的数字电压表,已被广泛的应用为电子及其电工的测量,工业自动化仪表,自动测试系统等智能化测量领域,显示出强大的生命力。
数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式,并加以显示,这有别于传统的指针加刻度盘进行读数的方法,避免了读数的视差和视觉的疲劳,目前数字电压表的核心部件是A/D转换器,转换器的精度很大程度上影响着数字电压表的准确度。
本设计主要分为两部分:软件仿真原理图及软件程序。
而软件仿真又大体可分为单片机小系统电路、A/D转换电路、LCD显示电路,各部分电路的设计及原理将会在软件仿真设计部分详细介绍;程序的设计使用C语言编程,利用keil软件对其编译,详细的设计算法将会在程序设计部分详细介绍。
关键字:数字电压表转换A/D转换器目录第一章绪论 (3)第二章设计准备知识 (3)2.1设计目的 (3)2.2设计要求或内容 (3)2.3设计软件及材料 (3)2.3.1单片机软件开发工具keil介绍 (3)2.3.2仿真软件protues介绍 (4)2.3.3ADC0804 介绍 (4)2.3.4液晶显示器 (4)第三章整体设计过程 (4)3.1设计思路 (4)3.2模块分析 (5)3.2.1AT89C51单片机 (5)3.2.2A/D转换 (6)3.2.3显示电路 (6)3.3程序设计 (7)3.3.1程序设计总方案 (7)3.3.2系统子程序设计 (7)3.4软件调试 (8)第四章显示结果及误差分析 (8)4.1 显示结果 (8)4.2误差分析 (10)第五章出现的问题及解决 (10)5.1问题 (10)5.2改进 (11)第六章设计总结 (11)第七章附件:(程序) (12)7.1主程序 (12)7.2SMC1602 (13)7.3AD转换程序 (16)第一章绪论在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。
由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。
传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。
采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。
数字电压表是诸多数字化仪表的核心与基础[2]。
以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。
目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。
最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。
数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC 化),另一方面,精度也从0.01%-0.005%。
第二章设计准备知识2.1设计目的基于51单片机,编写实验程序,使用LCD液晶显示所要测试模拟电压的数字电压值,使用软件仿真实现实验结果。
掌握模数转换器件ADC0804的应用原理,学习液晶显示原理。
2.2设计要求或内容a)模数转换器件选用ADC0804b)可以测量0—5V的电压值,精度为0.02Vc)须有显示d)此题可用proteus仿真实现2.3设计软件及材料2.3.1单片机软件开发工具keil介绍Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点是,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.3.2仿真软件protues介绍Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译。
2.3.3ADC0804 介绍ADC0804是属于连续渐进式(Successive Approximation Method)的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。
以输出8位的ADC0804动作来说明“连续渐进式A/D转换器”的转换原理,动作步骤如下表示(原则上先从左侧最高位寻找起)。
2.3.4液晶显示器或称LCD(Liquid Crystal Display),为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。
液晶显示器功耗很低,因此倍受工程师青睐,适用于使用电池的电子设备。
它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。
第三章整体设计过程3.1设计思路数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。
按系统实现要求,决定控制系统采用AT89C51单片机,A/D转换由于仿真软件里的ADC0804元件有问题,这里用ADC0808代替,它和ADC0804区别很小。
采用ADC0808。
数字电压表系统整体框图如下图3.1所示。
图3.1 整体框图系统通过软件设置单片机的内部定时器T0产生中断信号。
通过片选选择8路通道中的一路,将该路电压送入ADC0808的EOC 端口产生高电平,同时将ADC0808的OE 端口置为高电平,单片机将转换后结果存到片内RAM 。
系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD 显示电路,将相应电压显示出来。
原理图如图3.23.2模块分析3.2.1AT89C51单片机接口分配电路设计如右3.3图所示:P0口:P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。
P2口:P2口为一个内部上拉电阻的8位双向I/O 口,P2口缓冲器可接收,输出模拟电 压 AT89C51 单 片机 ADC0808转换 数据显 示4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,在这里用到了P3.3 /INT1(外部中断1)、P3.6 /WR(外部数据存储器写选通)、P3.7 /RD(外部数据存储器读选通)。
3.2.2A/D转换接口分配电路设计如3.4所示:➢IN0~IN7为8路模拟量输入端,这里只接一路电压信号,其输入信号是由直流电源及可调电阻提供。
➢OUT1~OUT8为8位二进制数字量输出端,其另一端连接到AT89C51单片机进行数值转换。
➢ADDA、ADDB、ADDC为3位片选地址输入线,用于选通8路模拟输入中的一路。
➢ALE为地址锁存允许信号,由单片机P3.6口写信号与P2.0口相或取反输入,高电平有效。
➢START为A/D转换启动脉冲输入端,由单片机P3.6口写信号与P2.0口相或取反输入一个正脉冲使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。
➢EOC为A/D转换结束信号,当A图3.4 A/D转换电路/D转换结束时,此端输出一个高电平取反给P3.3口(转换期间一直为低电平)。
➢OE为数据输出允许信号,高电平有效。
当A/D转换结束时,此端由单片机P3.7读信号与P2.0口相或后取反输入一个高电平,才能打开输出三态门,输出数字量。
3.2.3显示电路接口分配设计如3.5图所示:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
由单片机P2.1口控制R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
由单片机P2.2口控制E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
由单片机P2.3口控制D0~D7为8位双向数据线。
由单片机P0口输入,经过阻值为1KΏ的上拉电阻连接。
3.3程序设计3.3.1程序设计总方案根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如下图所示。
图3.6 数字式直流电压表主程序框图3.3.2系统子程序设计✓初始化程序所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。
✓A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元。
✓显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。