单片机课程设计报告——数字电压表
- 格式:doc
- 大小:425.00 KB
- 文档页数:18
数字电压表单片机课程设计报告班级:姓名:学号:指导教师: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驱动电路。
单片机课程设计——电压表的设计学院:信子信息工程学院专业:电子信息工程技术班级:电子信息工程技术二班学号:11137241** 11137241**姓名: *** ****目录1 引言 (1)2设计原理及要求 (2)2.1数字电压表的实现原理 (2)2.2数字电压表的设计要求 (2)3软件仿真电路设计 (2)3.1设计思路 (2)3.2仿真电路图 (3)3.3设计过程 (3)3.4 AT89C51的功能介绍 (4)3.4.1简单概述 (4)3.4.2主要功能特性 (5)3.4.3 AT89C51的引脚介绍 (5)3.5 ADC0809的引脚及功能介绍 (7)3.5.1芯片概述 (7)3.5.2 引脚简介 (7)3.5.3 ADC0809的转换原理 (8)3.6 74LS373芯片的引脚及功能 (8)3.6.1芯片概述 (8)3.6.2引脚介绍 (9)3.7 LED数码管的控制显示 (9)3.7.1 LED数码管的模型 (9)LED数码管模型如图3-6所示。
(9)3.7.2 LED数码管的接口简介 (9)4系统软件程序的设计 (9)4.1 主程序 (10)4.2 A/D转换子程序 (11)4.3 中断显示程序 (12)5使用说明与调试结果 (13)6总结 (13)参考文献................................ 错误!未定义书签。
附录1 源程序 ........................... 错误!未定义书签。
附录2原理电路.......................... 错误!未定义书签。
1 引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。
基于单片机的数字电压表的课程设计一、引言在电子测量领域,电压表是一种常见且重要的测量工具。
传统的模拟电压表存在精度低、读数不直观等缺点,而数字电压表则凭借其高精度、高稳定性和直观的数字显示等优势,在电子测量中得到了广泛的应用。
本课程设计旨在基于单片机设计一款数字电压表,以实现对直流电压的准确测量和数字显示。
二、设计要求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)程序有创新性;成绩评定实行优秀、良好、中等、及格和不及格五个等级。
单片机预习报告--------------电压表一.题目分析根据题目要求,系统设计需要基于自动控制原理,实现电压量程的自动切换、数据采样、电压显示等功能。
主要来说,系统由信号调理电路、A/D转换电路、单片机控制系统、数码显示系统等几个模块组成。
二.系统总体设计与框图系统框图如图下图所示。
该过程是:首先通过系列比较器检测输入电压的极性与范围,单片机根据电压极性与范围对继电器阵列进行相应的动作,实现了输入量程的全自动转换。
经过调理后的电压信号由AD转换后送出数码显示。
系统总体设计与框图三.各模块方案1)A/D采样系统采用ADC08322)自动量程切换量程切换电路包括电压衰减变换电路和无零漂小信号放大电路。
智能数字电压表中关键技术之一为自动量程转换问题。
用单片机控制多组继电器进行量程切换。
特点是简单实用,缺点是机械噪声大。
3)电压检测为了实现对输入的微小信号或大信号进行精确测量,我们拟采用信号放大或衰减预处理电路,即需要对被测量电压的极性、范围进行判断和确定,从而将被测电压的基本信息传递给单片机系统。
用多组比较器进行电压范围的分段检测,实现对输入电压的粗略测量。
为了粗略地得到被测量的电压范围采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。
4)显示部分采用LED数码管动态扫描显示。
采用3个位LED动态扫描显示的优点是能改善外部信号对显示的干扰,但单片机在工作时要求CPU不停地对LED更新,这将会降低系统的运行速度,且占用资源比较多。
5)信号调理模块该部分主要实现的功能是自动量程切换和电压变换,模块主要由电压极性检测电路、电压范围粗测电路、电压变换电路、继电器模块四部分组成。
7)继电器模块单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.四.元件清单五.程序设计程序流程图如下。
进度安排第1周确定设计方案,编程第2周调试,撰写设计报告第3周打印后上交指导老师论文要求如发现抄袭现象,做零分处理!排版软件Word,Visio专业软件Keil,Proteus,Protel设计报告包括封面、正文和附录等,必须提供电路图和流程图,不少于8页。
章标题黑体小三节标题黑体四号正文宋体小四字母和数字Times New Roman图表标题宋体五号正文每段开始缩进2个字符,行间距为固定值20磅图和表均居中,图和表的标题也居中图标题在图下方,表标题在表上方参考文献宋体五号,如下所示:[1]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2005参考模板湖南理工学院南湖学院单片机课程设计报告基于单片机的数字电压表设计姓名曹诗章学号24072200001系别机电工程专业电子信息工程班级07-1BF完成时间年月日基于单片机的数字电压表设计1 方案设计(介绍系统功能要求和整体结构)调节电位器,数码管显示电压值,超出范围可以报警2 系统的硬件设计(介绍各单元电路)2.1 主控制器(介绍单片机、时钟和复位电路)2.2 电压测量电路(介绍TLC549及其驱动电路)2.3 显示电路(介绍数码管及其驱动电路)3 系统的软件设计(介绍各子程序的算法和流程)3.1 主程序3.2 电压测量3.2.1 读取ADC芯片(读取TLC549芯片)3.2.2 算术滤波(连续读取20次结果,取平均值)3.2.3 数值转换(数字量转换为3位电压值)3.2.4 更新显示缓冲区(电压值送显示缓冲区)3.3 数码管显示(4位数码管动态显示)4 系统的测试(介绍调试过程和测试结果)5 总结(设计体会)参考文献附录1 原理图附录2 源程序清单。
单片机课程设课题名称:数字电压表课程原理: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,通过程序的延时,实现四位数码管的稳定显示。
**学院课程设计报告题目:带流水灯的数字电压表的设计起止日期:自2012年2月27日至2012年3月9日信息科学与工程系系(部)**学生姓名09电科1班班级096666666学号成绩指导教师(签字)2012 年3 月9日**学院课程设计任务书2011-2012学年第学期系(部)信息科学与工程系专业电子科学与技术班级 09电子1班课程名称:单片机原理及接口技术设计题目:带流水灯的数字电压表指导教师(签字):年月日教研室主任(签字):年月日目录1概述 (1)1.1 简述其主要内容 (1)1.2技术指标 (1)2方案的论证及选择 (1)2.1 设计方案 (1)2.2设计思路 (2)3单元电路的设计及元器件的选择 (2)3.1AT89C52 (2)3.2ADC0832模数转换器简介 (2)3.3驱动存储显示电路 (4)3.4流水灯模块 (5)4系统电路总图及原理 (5)4.1 设计原理 (5)4.2软件单元电路设计 (6)4.3系统电路总图。
(7)5经验体会 (7)5.1 设计过程中遇到的问题及解决方案 (7)5.2 设计体会 (7)5.3 对该设计的建议 (8)参考文献 (9)附录A:实物图 (10)附录B:原理图 (11)附录C:程序 (12)附录D:元器件清单 (18)1概述1.1 简述其主要内容使用单片机AT89C52和DC0832设计一个数字电压表,能够测量0—5V 之间的直流电压值,两位数码显示。
在单片机的作用下,能检测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为5V;能用两位LED进行轮流显示或单路选择显示,显示精度0.1伏。
简要地陈述了设计方案和设计思路,然后就对其有关理论知识做了一些简要的介绍,然后在性能指标分析基础上进行单元电路设计,最后设计出整体电路图并且在软件Proteus中进行仿真,验证是否达到技术要求,并在硬件上验证是否实现相应的功能,最后总结设计经验与体会。
一目的和意义 (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驱动电路。
驱动电路有多种,常用的是TTL或MOS集成电路驱动器,在本设计中采用了74LS244驱动电路。
|本实验采用AT89C51单片机芯片配合ADC0808模/数转换芯片构成一个简易的数字电压表,原理电路如图1所示。
该电路通过ADC0808芯片采样输入口IN0输入的0~5 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给AT89C51芯片的P0口。
AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口传送给数码管。
同时它还通过其三位I/O口、、、产生位选信号,控制数码管的亮灭。
另外,AT89C51还控制着ADC0808的工作。
其ALE管脚为ADC0808提供了1MHz工作的时钟脉冲;控制ADC0808的地址锁存端(ALE);控制ADC0808的启动端(START);控制ADC0808的输出允许端(OE);控制ADC0808的转换结束信号(EOC)。
电路原理图如下所示,三个地址位ADDA,ADDB,ADDC均接高电平+5V电压,因而所需测量的外部电压可由ADC0808的IN7端口输入。
由于ADC0808在进行A/D转换时需要有CLK信,本设计中利用AT89C51的定时中断产生一个100KHZ的脉冲,由口送给ADC0808的时钟端,通过软件给其输入一个正脉冲,可立即启动A/D转换。
在软件设计中,由于我们对单片机知识还没能很熟练的掌握,用中断方式较复杂,且这个程序CPU工作量不大,查询方式对速度不会产生影响,所以我们采用查询方式,确保仿真的进度和准确度。
《系统原理图在A/D转换开始之前,逐次逼近寄存器的SAR的内容为0,在A/D转换过程中,SAR存放“试探”数字量,在转换完毕后,它的内容即为A/D转换的结果数字量。
逻辑控制与定时电路在START正脉冲启动后工作,没来一个CLK脉冲,该电路就可能告知向SAR中传送一次试探值,对应输出U0与U1比较,确定一次逼近值,经过8次逼近,即可获得最后转换的结果数字量。
此处,EOC端口的信号显示ADC0808的状态,开始A/D转换时,EOC为低电平,转换结束后,输出高电平。
2、数据处理及控制A/D转换完毕后,单片机的口接收到一高电平,立马通过P2将OE置1,ADC0808的三态输出锁存器被打开,转换完的数字信号经过与D0~D7相连的P0口进入AT89C51。
AT89C51根据公式1-1将数字信号转换为模拟量,然后利用程序获取模拟量的每一位,分别通过P2口输出到LED上。
与此同时,AT89C51会通过~口选择用哪一段LED显示所传出的数据。
例如,当~=1110,则LED接收到的数据会在第四段LED上显示。
:另外,AT89C51一旦获得了数据后便会将ST置0,即模数转换器停止转换,知道LED获得新的数据并显示出来,ST才会重新置1.由于AT89C51转换速率很快(微妙量级),所以不会影响其接收新的数据。
四、主要元器件的介绍1、AT89C51单片机简介、AT89C51是51系列单片机的一个型号,它是ATMEL公司生产的。
AT89C52是一个低电压、高性能CMOS 8为单片机。
将通用的微处理器和Flash存储器结合在一起,可反复擦写的Flash存储器可有效地降低开发成本。
AT89C51有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性:1、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。
2、兼容MCS51指令系统,8K可反复擦写(>1000次)Flash ROM。
3、3个16位可编程定时/计数器中断,时钟频率0-24MHz。
4、32个双向I/O口,256B内部RAM。
5、"6、2个串行中断,可编程UART串行通道。
7、2个外部中断源,共6个中断源。
8、2个读写中断口线,3级加密位。
^2、ADC0808模数转换芯片简介ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0808是ADC0809的简化版本,功能基本相同。
一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
引脚功能(外部特性)ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。
各引脚功能如下:1~5和26~28(IN0~IN7):8路模拟量输入端。
8、14、15和17~21:8位数字量输出端。
》22(ALE):地址锁存允许信号,输入,高电平有效。
6(START): A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
7(EOC): A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
9(OE):数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
10(CLK):时钟脉冲输入端。
要求时钟频率不高于640KHZ。
12(VREF(+))和16(VREF(-)):参考电压输入端11(Vcc):主电源输入端。
13(GND):地。
@23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路。
3、四位共阴极数码管简介数码管有两种:一种共阴极、另一种为共阳极,本次课程设计用的是共阴极。
下面比较详细说明共阴极与共阳极的共同点与区别:;图(b)的左边为共阴极数码管,也就是数码管的阴极管接地。
那时某段亮,这段就必须接高电平。
共阴极数码管0~9的C51编码为:1、uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f};2、uchar codetable[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};其中1不带小数点,2带小数点。
共阳极就是数码管的每段都接高电平,这样要是哪段亮就这段就得接地。
~四、部分电路介绍1、晶振电路接12MHz晶振,根据芯片手册,适合并联30pf微调电容,从而构成并联谐振,帮助和稳定输出波形。
:2、复位电路AT89C51单片机要求至少两个高电平,以便单片机做好准备工作。
当上电时,由于电容的电压不能突变,会输出高电平,当电容充电到一定程度,就会输出低电平,单片机利用输出高电平的这段时间复位。
电阻和电容的值选择要合适。
在这要求R1<<R2,所以选取R1=1kΩ,R2=10kΩ。
3、模拟输入电路通过可变电阻一端接电源+5v,一端接地GND,通过改变电阻的阻值,从而改变所测电压值,实现电压的模拟信号输入。
4、ADC0808芯片与单片机接口电路}ADC0808的输出接到P1口,OUT1对应的是最高位,START与ALE可以接在一起。
在这里,START接,OE接,EOC接,ClOCK接。
5、显示电路通过P0口控制四位共阴极数码管段选,通过P2口的低四位控制位选。
值得注意的是P0需要接上拉电阻,否则P0会处于高阻态。
总电路如下:(设计原理:将模拟量通过IN0输入,经过ADC0808芯片转换,得到数字量输出到单片机P0口,经过单片机处理后,送到四位共阴极数码管上显示。
仿真结果如下:五、程序设计为了在C语言源程序中直接编写中断服务函数的需要,KeilCx51编译器对函数的定义进行了扩展,增加了一个扩展关键字interrupt,它是函数定义是的一个选项,加上这个选项即可以将一个函数定义成中断服务函数。
定义中断服务函数的一般形式为:函数类型函数名(形式参数表) [interrupt n] [using n]<由于ADC0808的CLOCK的时钟频率不高于640KHZ,在这利用定时器T0的中断产生时钟频率,则可设置为:void t0(void) interrupt 1 using 0ADC0808的时序图如下:由时序图可知,只有在转换期间,EOC处于低电平,因此在AD转换开始前EOC 置为低电平,START在上升沿期间将芯片内的所有寄存器清零,在下降沿来临时开始转换,由于所用的时钟为100KHz,比较的缓慢不需要再延时,在此等待转换结束,结束后将其数字量输出。
根据上述分析及原理,可设计程序流程图如下:;设计程序如下:#include<>#include<>…#define uchar unsigned char#define uchar unsigned char#define uint unsigned intsbit START=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit P07=P0^7;)sbit CLK=P3^4;uchar data led[4];uint data tvdata;uchar code tv[]={0xfe,0xfd,0xfb,0xf7};uchar code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; $void delay(void) //延时程序{uint i;for(i=0;i<10;i++);}/void ledxianshi(void) //显示模块{uchar k,i;if(tvdata>5000)tvdata=5000;led[0]=tvdata%10;led[1]=tvdata/10%10;led[2]=tvdata/100%10;…led[3]=tvdata/1000;for(k=0;k<4;k++){P2=tv[k];i=led[k];P0=a[i];—if(k==3){P07 =1;}delay();}}&void main(void){ET0=1;EA=1;TMOD=0x02;TH0=216;TL0=216;@TR0=1;while(1){START=1;START=0; //启动转换 while(EOC==0);OE=1;*tvdata=P1;tvdata*=;OE=0;ledxianshi();delay();}}@void t0(void) interrupt 1 using 0{CLK=~CLK;}…六、硬件制作与测试1、主要仪器及使用方法主要仪器:5v直流电源,剥线钳,数字万用表,通用版电路板,电烙铁,镊子,USB转串口线。