基于某STC89C52的数字电压表设计报告材料
基于AT89C52的某数字电压表的设计

去抖动, 也可以考虑采用软件去抖动, 如采样延时去抖动。
(2) LED 显示扫描。为简化硬件和软件设计, 多位 LED 采用
动态扫描显示, 单片机通过依次给出位选信号, 并在并口给出
相应的 BCD 七段译码数据。具体来说, 中断服务程序可采样如
下处理 方法 : 响 应 一次 显 示 其中 一 位 LED, 依次 循 环 显示 , 两 次
取决于定时器的编程设定, 这由主程序进行设定。
3 关键算法实现
3.1 采样周期自适应调整算法 为满足数据处理的精度要求, 又不加重单片机的处理负 担, 对于叠加周期信号的输入信号, 规定单个周期数据采集不 少于 8 个点, 因 此 需 对 A/D 采 样 周 期进 行 自 适应 调 整 。自适 应 调整算法可用过零点检测来实现。采用周期 Ts 选 择 如 下: 如 果 叠加周 期 信 号周 期 在 0 ̄25 Hz 范围 内 , Ts 为 5 ms; 如果 周 期 在 25 ̄50 Hz 范 围 内 , Ts 为 2 ms; 如 果 周 期 在 50 ̄100 Hz 范 围 内 , Ts 为 1 ms。 算法具体实现如下( 设 Ts 初始值为 2 ms, 采样点数为 100) : (1) 采集 100 个 数 据 点 , 计 算 平 均 值 , 作 为 输 入 信 号 的 平 均 值估值;
由 DVM 扩展而成 的 各 种通 用 及 专用 数 字 仪器 仪 表 , 也把 电 量
及非电量测量技术提高到崭新水平。
本文在简述数字电压表设计要求的基础上, 重点介绍了基
于 AT89C52 和 AD574 的 某数 字 电 压表 的 硬 件和 软 件 方案 的 设
对于图 1 所示系统方案, 设计考虑如下:
的 范 围 内 。而 多 通 道 模 拟 选 择 开 关 则 由 单 片 机 根 据 待 测 电 压 的
基于89C52单片机的数字电压表设计

摘要:在电路设计中我们时常会用到电压表,过去大部分电压表还是模拟的,虽然精度较高但模拟电压表采用用指针式,里面是磁电或电磁式结构,所以响应较慢。
为适应许多高速信号领域目前已广泛使用数字电压表。
本设计是基于Atmel51单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。
该系统采用Atmel89C52单片机作为控制核心,以ADC0809为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,并通过继电器阵列实现了输入量程的自动转换;使用共阴极数码管显示被测电压。
关键词:单片机、电压检测、模数转换、目录摘要 (1)第一章引言 (3)第二章开发平台Keil (4)2.1 系统概述 (4)2.2 整体架构 (5)第三章硬件设计思想和原理图 (6)3.1 系统总体设计框图 (6)3.2 单片机系统 (7)3.3 AD转换电路 (8)3.4 信号调理模块 (9)第四章软件设计与流程 (10)4.1 程序流图...................................... 错误!未定义书签。
4.2 功能介绍 (10)第五章软件仿真及测试数据 (11)5.1 仿真结果 (11)参考文献 (12)附录 (13)第一章引言电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。
根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:模拟式电压表(AVM)和数字式电压表(DVM)。
模拟式电压表是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。
数字式电压表首先将模拟量经模数(A/D)转换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。
众所周知,模拟电压表精度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。
的确模拟电压表在显示测量值方面精度校准,然而却也存在问题。
模拟电压表采用用指针式,里面是磁电或电磁式结构,所以其响应速度较慢。
基于STC89C52的数字电压表

1 引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
本文设计了一种基于单片机的简易数字电压表。
该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。
A/D转换主要由芯片ADC0804来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。
数据处理则由芯片STC89C52来完成,其负责把ADC0804传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0804芯片工作。
该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。
此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过7段数码管显示出来。
2 设计总体方案2.1设计要求⑴以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表。
⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。
⑶电压显示用LED数码管显示,至少能够显示两位小数。
⑷尽量使用较少的元器件。
2.2设计思路⑴根据设计要求,选择STC89C52单片机为核心控制器件。
⑵A/D转换采用ADC0804实现,与单片机的P1口相连接。
⑶电压显示采用三个7段LED数码管显示,另外三位数码管显示A/D转换的数字量的值。
⑷LED数码的段选码和位选码均由单片机P0口经过两片74HC573锁存器输入。
2.3设计方案硬件电路设计由6个部分组成; A/D转换电路,STC89C52单片机系统,LED 显示系统、时钟电路、复位电路以及测量电压输入电路。
硬件电路设计框图如图1所示。
图2-1 数字电压表系统硬件设计框图3 硬件电路设计3.1单片机系统本次课设选择的单片机是STC89C52,之所以选择这块芯片,是因为该芯片的各项功能均符合本次课设的指标要求,并且该芯片有很多成熟的资料供我们学习,使用用起来很方便,也有专门的下载程序平台,方便现场调试。
基于STC89C52单片机的简易数字电压表设计【毕业设计

存档编号华北水利水电大学North China University of Water Resources and Electric Power 毕业设计题目基于单片机的数字电压表设计学院信息工程学院专业通信工程姓名学号 200912303指导教师完成时间 2013年5月20日教务处制目录摘要 (I)Abstract (II)绪论...................................................................................................................... I II 一设计背景................................................................................................ I II 二设计意义. (V)第一章数字电压表 (1)1.1 数字电压表的优点 (1)1.2 数字电压表发展趋势 (1)1.3 设计平台 (2)1.3.1 KEIL C51开发平台 (2)1.3.2 Proteus 7 Professional设计软件 (2)第二章总体设计方案 (4)2.1数字电压设计的两种方案 (4)2.1.1 由数字电路及芯片构建 (4)2.1.2 由单片机系统及A/D 转换芯片构建 (4)2.2 设计要求 (5)2.3 技术要求 (5)2.4 设计方案 (5)第三章硬件简介 (7)3.1 本设计单片机的选择 (7)3.1.1常用单片机的特点比较 (7)3.1.2 单片机的选择 (7)3.1.3 STC89C52单片机介绍 (8)3.2 本设计显示器件选择 (13)3.2.1 常用显示器件简介 (13)3.2.2 显示器件的选择 (14)3.2.3 1602字符型LCD简介 (14)3.3A/D芯片 (19)3.3.1常用的A/D芯片 (19)3.3.2 ADC0809芯片 (20)第四章接口电路 (23)4.1 显示电路 (23)4.2 ADC0809与单片机接口电路 (23)第五章硬件电路系统模块设计 (25)5.1 总电路模块 (25)5.2 硬件系统电路简介 (25)第六章系统软件设计 (26)6.1 主程序 (26)6.2 A/D转换子程序 (26)6.3 显示子程序 (27)第七章调试及性能分析 (28)7.1 调试与测试 (28)7.2 性能分析 (28)总结 (30)参考文献 (31)致谢 (33)附录 (34)附录I(外文翻译) (34)外文译文 (44)附录II(任务书) (52)附录III(开题报告) (54)附录IV(图表) (57)I Proteus仿真图 (57)II 硬件总电路图 (58)III 实物图 (59)附录V(程序清单) (60)摘要随着时代的进步,用指针式万用表测量小幅度直流电压已经显得有些不太方便。
基于STC89C52单片机的数字电压表设计

基于STC89C52单片机的数字电压表设计陈磊;琚泽立;何昭帅;蒲路【期刊名称】《电子质量》【年(卷),期】2017(0)12【摘要】在如今的各个行业,各个领域我们都会看到数字电压表的身影,大到汽车,电厂,超市,小到手表,电脑,手机等等.可以说我们的日常生活,衣食住行都离不开数字电压表.顾名思义,数字电压表是通过模拟数字转换技术,将模拟电压采集成离散的数字变量,然后通过主控芯片,显示在相关的显示设备上,诸如数码管,LCD液晶屏等等.这种高度集成的以及高度可扩展的嵌入式系统满足了如今各行各业变化多样的需求.该文设计的数字电压表是基于STC89C52单片机的硬件设计及软件设计方法.在设计中,充分利用了STC89C52单片机内部的高速计数器和以MAX197组成的A/D 转换器的优良特性[1],使整个设计达到了比较满意的效果[2].【总页数】3页(P38-39,43)【作者】陈磊;琚泽立;何昭帅;蒲路【作者单位】国网陕西省电力公司,陕西西安710048;国网陕西省电力公司,陕西西安710048;国网陕西省电力公司,陕西西安710048;国网陕西省电力公司,陕西西安710048【正文语种】中文【中图分类】TM933.22【相关文献】1.基于网络教学平台的混合式教学设计——以\"简易数字电压表的设计制作\"为例[J], 陈峰2.基于STC89C52单片机智能教室灯光控制系统设计 [J], 张伟楠;孔维宾3.基于STC89C52单片机的智能晾衣架控制系统设计 [J], 林关成4.基于STC89C52单片机的液位控制系统设计 [J], 李学亮;王峰5.基于STC89C52单片机的智能电子称设计 [J], 彭茗;王凌志;时慧慧因版权原因,仅展示原文概要,查看原文内容请购买。
数字电压表设计报告.doc

s南湖学院《数字电路课程设计》设计报告项目名称:数字电压表课程设计专业年级:10级电信1班所在院系:湖南理工学院南湖学院学生姓名:戴思学号:24102200123完成时间:2012年11月12日目录一、设计任务二、硬件设计三、软件设计四、系统调试五、实验数据处理六、设计安装及调试中的体会七、参考文献附录:源程序代码2一、设计任务基于51单片机,以ADC0804芯片实现模数转换,由1602液晶屏显示,具有量程变换功能。
二、硬件设计2.1主控芯片本电压表采用STC89C52为主控芯片,电路如下图所接:晶振电路和复位电路略去,端口和上面各图的接口是一致的。
2.2模拟转换部分该电压表采用的ADC0804,此芯片优点是并行输出,速率快,缺点是只有8位,精度不高。
下来ADC0804芯片图:为了方便,将数字地和模拟地都直接接到了一起,DB0~DB7为并行输出口,CS,RD,WR为控制芯片模数转换及读取芯片数据和写数据的引脚,ADC0804可以自己产生时钟,只要在CLKR和CLKIN端接入电阻(10K)和电容(理论为150pf本人接的220pf),可产生脉冲信号。
VREF为参考电压端,VIN+和VIN-为电压输入端。
当电压加在VIN+和VIN -端时,在DB0~DB7可输出八位到单片机,本处参考电压为5V,则当输入电压U时,输出数据为temp,则U/temp=5/255.在自然状态下,最多也只能测5V电压,为了扩大量程,4本人加了衰减网络,见下图:接到ADC芯片上面的始终是VIN和地之前的电压,为了调精度,在上面加了滑动变阻器。
此处R22选用的是470K欧的,首先选的10K,因为内阻过小,导致在5V以下的电压测量不准确,choice和GND两端为外加的电压,这样,有部分电压会在R20或者R21上分压,只在保证在R22两端不超过5V,就可实现多量程电压测量。
2.3显示模块本处用1602液晶显示,1602优点是价格便宜,可显示基本字符,对于做电压表这样的东西已足够。
基于89c52的8通道循环显示数字电压表电路的设计与制作任务书(常进)
南京工程学院毕业设计任务书通信工程学院电子信息工程专业设计题目基于89C52的8通道循环显示数字电压表电路的设计与制作学生姓名常进班级电信081起止日期2012.2. 20—2012.6.15指导教师纪贤宝教研室主任包永强发任务书日期2012 年2月20日1.毕业设计的原始数据:利用所学知识,结合实际,设计、制作8路模拟电压值(0—5V)转换为数字量进行测量并循环显示。
2.毕业设计(论文)的内容和要求(包括技术要求、图表要求以及工作要求等):课题任务及要求:1.采用模数转换器对8个输入的模拟电压量进行转换。
2.用89C52单片机对各路电压值进行单路和循环显示。
3.制作电路板并完成调试,实现功能。
3.毕业设计应完成的技术文件:1.阅读资料,完成外文资料翻译(2000字以上)和开题报告(3000字以上),提出方案。
2.电原理图;印制板PCB图。
3.调试数据记录。
4.完成毕业设计论文(15000字)。
4.主要参考文献:[1] 刘复华. 单片机及其应用系统. 北京:清华大学出版社,1992[2] 李斌,董慧颖. 可重组机器人研究和发展现状. 沈阳工业学院学报,2000,19(4):23-27[3] 张国勋,《缩短ICL7135A/D采样程序时间的一种方法》[J]. 《电子技术应用》,1993,第一期.[4] 高峰,《单片微型计算机与接口技术》[M].北京:科学出版社,2003.[5] .杨恢先,黄辉先.单片机原理及应用[M].北京:人民邮电出版社,2006[6] 李广弟.《单片机基础》. 北京航空航天大学出版社 1994[7] 何立民.《单片机应用系统设计》. 北京航空航天大学出版社 19905.毕业设计(论文)进度计划(以周为单位):。
基于STC89C52的秒表设计报告
摘要现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。
对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。
数码管显示的时间简单明了而且读数快、时间准确显示到秒。
而机械式的依赖于晶体震荡器,可能会导致误差。
数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们目前只采用LED数码管显示秒来显示最高秒为99秒的方式,根据数码管动态显示原理来进行显示,用基于C52单片机、12MHz的晶振产生振荡脉冲。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
关键字:数字钟晶振引言集成电路是信息产业和高新技术的核心,是推动国民经济和社会信息化的关键技术。
集成电路的产业规模和技术水平已成为国家综合国力的一个重要标志.集成电路有体积小、功耗小、功能多等优点,因此在许多电子设备中被广泛使用。
电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。
本次设计以数字电子为主,分别对1S时钟信号源、秒计时显示进行设计的功能,并通过本次设计加深对数字电子技术的理解以及更熟练使用计数器、触发器和各种逻辑门电路的能力。
日常生活中常见的电路图有:如74ls48,LED数码管,分频器电路,CD4060,及各种门电路和基本的触发器等组成,很适合在日常生活中使用。
目录第一章:1.1、设计任务 (4)第二章:2.1、设计方案的选择与论证 (5)第三章:3.1、系统原理 (6)3.2、振荡电路........................................................... .. (7)3.3、单元电路的设计.................................................. 8、93.4、整体电路 (10)第四章:4.1、电路总图 (11)4.2、元器件列表 (12)4.3、程序 (13)4.4、总结与体会 (18)第五章:5.1、参考文献 (19)第一章1.设计任务:设计一种多功能数字钟,该数字钟具有准确计时,以数字形式显示时秒的时间功能。
单片机课程设计报告-简易数字电压表
课程设计报告课程名称:单片机原理及应用设计题目:简易数字电压表设计系别:专业:班级:学生姓名:学号:起止日期:指导教师:教研室主任:摘要本文介绍了一种基于单片机STC89C52的简易数字电压表的设计。
该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。
A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量然后传送到数据处理模块。
数据处理则由芯片AT89C52来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码并通过8255芯片送到数码管进行显示;此外,它还控制着ADC0809芯片工作。
该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。
此数字电压表可以测量0-5V的4路模拟直流输入电压值,并通过共阳极7段数码管显示出来。
关键词:STC89C52;ADC0809;8255;电压表;单片机目录设计要求 (1)1、前言 (1)2、方案选择与论证 (2)2.1方案一 (2)2.2方案二 (3)2.3方案对比与选择 (4)3 单元电路设计 (5)3.1单片机系统 (5)3.2时钟电路 (6)3.3电源电路 (6)3.4复位电路 (7)3.5 A/D 转换电路 (7)3.6 显示电路设计 (8)3.7 总体电路设计 (10)4、程序设计与调试 (11)4.1 程序设计总方案 (11)4.2 程序调试 (11)5、结果显示及误差分析 (12)5.1 结果显示 (12)5.2 误差分析 (14)6、设计总结 (15)7、主要芯片资料 (16)7.1 STC89C52 (16)7.2 ADC0809 (17)7.3 8255A (18)8、参考文献 (19)9、致谢 (20)10、附录 (21)简易数字电压表设计设计要求设计要求:1)能用数码管显示电压值2)可以测量0~5V范围内的4路输入电压值3)其测量最小分辨率为0.02V4)在4位LED数码管上轮流显示或者单路显示1、前言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成运算部件、控制部件、数据存储器、程序存储器、定时器/计数器中断系统,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。
基于STC89C52单片机的数字电压表的设计
基于STC89C52单片机的数字电压表的设计作者:刘家兴王李亨男王衍震来源:《中国科技博览》2018年第11期[摘要]本文主要采用STC89C52单片机和ADC0831 芯片制作的简易数字电压表,可以采集0~5V的模拟直流电压进行测量,其测量结果在液晶LCD1602上显示。
该设计硬件电路主要有三个模块成:A/D转换模块、数据处理模块及输出显示模块。
程序设计上有各模块初始化操作、电压档位选择和LCD1602液晶显示程序等。
[关键词]数字电压表;LCD1602;ADC0831;单片机中图分类号:TM933.22;TP368.1 文献标识码:A 文章编号:1009-914X(2018)11-0115-011 引言数字电压表主要采用单片机和模/数转换模块,这样不仅提高了测量速度,而且抗干扰能力强、使用便捷、可扩展性强、测量准确。
本文利用stc89c52单片机实现了直流电压的测量,其测量结果在液晶LCD1602上显示。
2 系统硬件设计以 89C52单片机为关键部件,制作一个简易的数字电压表。
总体设计电路有以下几部分组成:STC89C52单片机、A/D转换电路、液晶LCD显示电路、时钟电路、复位电路、被测电压输入电路及量程选择。
2.1 STC89C52控制器STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
硬件为直插封装的STC89C52。
2.2 A/D转换模块按照不同的A/D转换芯片的转换原理可把其分为逐次逼近行、双积分型等。
其中双积分式A/D转换器抗干扰能力强、转换精度高、价格便宜。
但与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,它们可以与单片机系统连接,将数字量送入单片机进行分析和显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
荆楚理工学院单片机课程设计成果学院: 电子信息工程学院班级: 13电气2班学生姓名:xxx学号:xxxxxxxxxxxxxxxx设计地点(单位)单片机实验室D1302 设计题目:数字电压表完成日期:2015年7月3日指导教师评语: _________________________________成绩(五级记分制):教师签名:摘要电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。
本系统以STC89C52单片机为核心,以逐次逼近式A/D转换器ADC0809、数码管显示器为主体,设计了一款简易的数字电压表,能够测量0~5V的直流电压。
该设计大体分为以下几个部分,同时,各部分选择使用的主要元器件确定如下:1、单片机部分。
使用常见的STC89C52单片机,同时根据需要设计单片机电路。
2、测量部分。
该部分是实验的重点,要求将外部采集的模拟信号转换成数字信号,通过单片机的处理显示在显示器上。
根据需要本设计采用逐次逼近型A ∕D转换器ADC0809进行模数转换。
3、数码管显示部分。
其中一位为整数部分,其余位小数部分。
关键词:STC89C52 模数转换数码管显示目录1.方案设计与论证 (4)1.1方案设计 (4)1.2方案论证 (4)2.系统硬件电路设计 (4)2.1系统原理框图 (4)2.2 A/D转换电路 (5)2.3单片机主控电路 (5)2.4电压显示电路 (7)2.5总体电路设计 (8)3.系统测试 (10)3.1测试方法与结果 (10)3.2测试结论 (11)3.3误差分析 (11)4.设计总结 (11)参考文献 (13)附录 (14)1.方案设计与论证数字电压表(Digital Voltmeter)简称DVM,目前采用单片机设计的数字电压表,由于精度高、抗干扰能力强、可扩展性强、集成方便,还可以与PC进行实时通信,所以以下方案均采用单片机设计。
1.1方案设计方案一:使用AT89C51单片机作为核心控制芯片,并用TLC549串行芯片作模数采样芯片。
其占用的单片机的I/O口少且占用电路面积小。
其缺点是编程比较复杂。
方案二:使用STC89C52RC单片机作为核心控制芯片,并采用ADC0809数模转换芯片其需要占用一个I/O口,可以循环采样8路模拟通道。
编程相对更为简单。
1.2方案论证结合实际情况,采用TLC549串行芯片实现电路不具有可行性,所以本设计采用方案二。
2.系统硬件电路设计2.1系统原理框图图2-1系统原理框图2.2A/D转换电路本设计采用ADC0809芯片进行数模转换,ADC0809是具有8通道、8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
A/D转换工作原理:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
其结构原理图和外部引脚图如图1-2所示。
图2-2 ADC0809内部结构框图及引脚图本设计通过输入电路将8路输入电压送入ADC0809。
并通过单片机P3端口控制实现模数转换,并将转换后的数字信号送入单片机的P2口。
ADC0809芯片的时钟信号由单片机产生,送入芯片clock端口。
芯片的基准电压和电源电压均由单片机学习板提供。
2.3单片机主控电路2.3.1STC89C52性能STC89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的STC89C52是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
STC89C52功能性能:与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:1000次写/擦循环;数据保留时间:10年;全静态工作:0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式。
2.3.2 STC89C52RC各引脚功能2-3-2引脚配置图P0端口:P0口是一个漏极开路的8位双向I/O口。
作为输出端口每个引脚能驱动8个TTL负载对端口P0写入“1”时可以作为高阻抗输入。
在访问外部程序和数据存储器时P0口也可以提供低8位地址和8位数据的复用总线。
此时P0口内部上拉电阻有效。
在Flash ROM编程时P0端口接收指令字节而在校验程序时则输出指令字节。
验证时要求外接上拉电阻。
P1端口:P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动吸收或者输出电流方式4个TTL输入。
对端口写入1时通过内部的上拉电阻把端口拉到高电位这是可用作输入口。
P1口作输入口使用时因为有内部上拉电阻那些被外部拉低的引脚会输出一个电流。
P2端口:P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动吸收或输出电流方式4个TTL输入。
对端口写入1时通过内部的上拉电阻把端口拉到高电平这时可用作输入口。
P2作为输入口使用时因为有内部的上拉电阻那些被外部信号拉低的引脚会输出一个电流。
在访问外部程序存储器和16位地址的外部数据存储器如执行“MOVX @DPTR”指令时P2送出高8位地址。
在访问8位地址的外部数据存储器如执行“MOVX @R1”指令时P2口引脚上的内容就是专用寄存器SFR区中的P2寄存器的内容在整个访问期间不会改变。
在对Flash ROM编程和程序校验期间P2也接收高位地址和一些控制信号。
P3端口:P3口是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动吸收或输出电流方式4个TTL输入。
对端口写入1时通过内部的上拉电阻把端口拉到高电位这时可用作输入口。
P3做输入口使用时因为有内部的上拉电阻那些被外部信号拉低的引脚会输入一个电流。
在对Flash ROM编程或程序校验时P3还接收一些控制信号。
2.4电压显示电路在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸型号不同的LED显示器供选择。
在本设计中,选择四位一体的数码型LED显示器,即SMA420564:图2-4 SMA420564显示器引脚图它是一个共阴极接法的四位LED数码显示管,其中a,b,c,d,e,f,g为四位LED各段公共输出端,1,2,3,4分别为每一位的位数选端,dp是小数点引出端2.5总体电路设计2.5.1元器件清单2.5.2仿真图经过以上的设计过程可设计出在pruteus软件中基于单片机的简易数字直流电压表硬件电路原理图如图2-5-2所示图 2-5-2数字直流电压表硬件电路原理图原理是采用中断方式,对2路0~5V的模拟电压进行循环采集,采集的数据送LED显示,并存入内存。
超过界限时指示灯闪烁。
本质上是以单片机为控制器,ADC器件采用ADC0809,要求的电压显示,是对ADC采集所得信号的进一步处理。
为得到可读的电压值,需根据ADC的原理,对采集所得的信号进行计算,并显示在LED上。
本项目中ADC0809的参考电压为+5V,根据定义,采集所得的二进制信号addata所指代的电压值为:而若将其显示到小数点后两位,不考虑小数点的存在(将其乘以100),其计算的数值为:将小数点显示在第二位数码管上,即为实际的电压。
本程序将1.25 V和2.5 V作为两路输入的报警值,反映在二进制数字上,分别为0x40和0x80。
当A/D转换结果超过这一数值时,将会出现二极管闪烁和蜂鸣器发声2.5.3软件设计主程序包括初始化部分,A/D转换控制部分和定时子程序。
同时还设置了多路循环显示和报警子程序。
程序框图如图1-3-2所示。
图2-5-2 主程序流程图3.系统测试3.1测试方法与结果(1)测试方法实物电路的测试,首先根据仿真电路图焊接实物电路,连接好后,将C语言程序下载到单片机内,进行测试,将侧的的数值记录下来,然后再用已有的数字电压表对可变电阻的电压进行测量,将两组数据进行比较,看结果是否一致,如果不一致,计算测量误差。
(2)测试结果3.2测试结论通过使用万用表多次测量,并与实际值进行对比。
测试结果表明,本设计完成了基本要求。
3.3误差分析通过分析以上测试数据,得出一下结论:(1)测量值与实际值有一定的误差,其主要原因是因为A/D转换芯片自身的转换误差和实际电路延时问题造成的。
(2)两次测量值有一定的偏差,其主要原因是因为使用单片机学习班提供5V供电,由于单片机输出电压不稳定,造成以上结果。
4.设计总结经过近二周的单片机课程设计,终于完成了我的数字电压表的设计,基本达到设计要求。
对于此次课程设计,有许多的感触与体会,遇到的难题多,学习到的知识也就更多。
第一,硬件电路遇到了ADC0809无内部时钟,需外接外部时钟,如何解决这个问题,我们小组进行了多次讨论,最终确定了在程序中提供时钟信号,大大降低了硬件电路的复杂度。
第二,在一个课题中,要设计一个成功的电路,必须要有耐心,要有坚持的毅力。
在整个电路的设计过程中,重要的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。
这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。
完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。
第三,在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。
我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整,这就要求我们应更加注重实践环节。
最后,还要在此感谢课程设计的指导老师们和我的组员们,他们在整个过程中都给予了我充分的帮助与支持。
参考文献[1].李建忠,《单片机原理及应用》第二版,西安电子科技出版社,2008[2].李光飞楼然苗,《单片机课程设计指导》航空航天大学出版社,2007[3]. 周立功.《单片机实验与实践》.北京航空航天大学出版社,2011[4]. 吴国经.《单片机应用技术》.中国电力出版社,2003.[5]. 徐惠民安德宁丁玉珍.《单片微型计算机原理、接口及应用》.北京邮电大学出版社,2007年.[6]. 徐爱钧.《智能化测量控制仪表原理与设计》第二版.北京航空航天大学出版社,2004.附录#include<reg52.h>sbit led1=P1^0;sbit led2=P1^1;sbit led3=P1^2;sbit led4=P1^3;sbit led=P3^1;sbit beep=P1^7;sbit ADDA=P1^6;sbit ADDB=P1^5;sbit ADDC=P1^4; //地址选择端sbit ALE=P3^4; //高电平锁存地址,低电平改变地址sbit OE=P3^5; //AD转换结束,置1,读数据sbit START=P3^7; //高电平启动转换sbit EOC=P3^2;// 外部中断0#define uchar unsigned char#define uint unsignedintuchar channel=0;ucharvoltage_temp;uchar aa,ab1,ab2,ab3;bit flag;uchar code table[]={0xd7,0x12,0x67,0x37,0xb2,0xb5,0xf5,0x13,0xf7,0xb7};void delay(uint z){uinti,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}void main(void){uchar i;led=1;beep=1;OE=0; //START=0;//高电平启动转换EA=1;EX0=1;//允许外部中断EX1=1;IT0=1;//跳变沿触发中断IT1=1;TMOD=0x21;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=6;TL1=6;ALE=0; //允许改变地址ADDA=0;ADDB=1;ADDC=0;ALE=1; //锁存地址while(1){display(voltage_temp);delay(2);START=1;delay(2);START=0;if(((voltage_temp)<=0x40)||((voltage_temp)>=0x80)) {ET0=ET1=1;TR0=TR1=1;}else{ET0=ET1=0;TR0=TR1=0;led=1;beep=1;}}}void ext_0(void) interrupt 0 {OE=1;P2=0xff;voltage_temp=P2;START=0;OE=0;ALE=0; //允许改变地址if(channel==0){ADDA=0;ADDB=0;ADDC=1;}else{ADDA=0;ADDB=1;ADDC=0;}ALE=1;}void Timer_0(void) interrupt 1 {TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;if(aa>=10){aa=0;led=~led;}}void Timer_1(void) interrupt 3{ab1++;if(ab1>=3){ab1=0;beep=~beep;}}。