多通道数字电压表设计2012山东理工大学
52数字电压表课程设计

52数字电压表课程设计一、教学目标本节课的学习目标主要包括以下三个方面:1.知识目标:学生需要掌握数字电压表的基本原理、工作方式、使用方法等,能够理解并描述数字电压表的内部结构和外部接线方式。
2.技能目标:学生能够熟练使用数字电压表进行电压测量,能够正确读取和理解测量结果,能够根据测量需求选择合适的量程和分辨率。
3.情感态度价值观目标:学生能够认识到数字电压表在工程实际和科学研究中的重要性,培养学生的实践能力和创新精神,激发学生对电子测量技术的兴趣。
二、教学内容本节课的教学内容主要包括以下几个部分:1.数字电压表的基本原理:介绍数字电压表的工作原理,包括模拟量转换为数字量的过程,以及数字电压表的显示原理。
2.数字电压表的内部结构:介绍数字电压表的内部组成部分,包括放大器、滤波器、A/D转换器、显示器等。
3.数字电压表的外部接线方式:介绍数字电压表的接线方法,包括直流电压测量和交流电压测量的接线方式。
4.数字电压表的使用方法:介绍数字电压表的使用步骤,包括开机关机、量程选择、分辨率设置、测量结果读取等。
5.数字电压表的测量误差分析:分析数字电压表的测量误差来源,包括仪器误差、环境干扰等。
三、教学方法为了达到本节课的教学目标,我们将采用以下几种教学方法:1.讲授法:通过教师的讲解,使学生掌握数字电压表的基本原理和内部结构。
2.讨论法:通过分组讨论,让学生探讨数字电压表的使用方法和测量误差分析。
3.实验法:让学生动手操作数字电压表,进行实际测量,增强学生的实践能力。
4.案例分析法:通过分析实际案例,使学生了解数字电压表在工程实际中的应用。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用《电子测量技术》作为主要教材,为学生提供理论知识的系统学习。
2.参考书:推荐《数字电压表设计与应用》等参考书籍,为学生提供更多的学习资料。
3.多媒体资料:制作课件和教学视频,直观展示数字电压表的内部结构和操作方法。
基于DSP的LCD电压表设计

图 1 1 系统 结 构 框 图 — 1 . 输 入 电 路 1 输 入 电 路 采 用 电 阻 降压 和 运 算 放 大 器 L 4 8来 实 现 , M15 以满 足 A /
D 转 换 器 的输 入 要 求 。经 过 输 入 电 路 的 处 理 后 , 信 号 的 输 入 范 围
2 1 主 程 序 .
求 时 关 闭 中 断 后 返 回 主 程 序 . 主 程 序 中 DS 在 P把 读 入
为一 2 1 V至 + 2 1V
1 A D转 换模 块 . 2 , 本 系 统 采 用 A 7 2 , 特 点 为 : 极 性 输 入 , 样 分 辨 率 8 i 并 D 82其 单 采 bt ,
图 2 1 主 程序 流 程 —
行输 出, 内含 取 样保 持 电路 , 以及 可 选 择 使 用 内 部 或 外 部 参 考 电 压 源 . 转 换 时 间 为 4 0 s 2n 。 22 初始 化 程 序 _ 系 统 电源 电压 V D5 参 考 电 压 VR= .V, 置 电 压 V = . D ̄ V,  ̄ 25 偏 25 V, 系 统初 始 化 完 成 在 I 空 间设 置 7个 等 待周 期 , 保 证 数 据存 取 / O 可 模 拟 输 入 范 围 为 1 5 至 37 V。 程 序 中 A 7 2 . V 2 .5 本 D 8 2分 配 空 间 为 I 空 正 确 。程 序 与 数 据 空 间 访 问 时插 人 0个 等 待 周期 。D A 映射 到 程 序 / O R M
间 的 8 0 h 08。
1 _ 数 据 处 理模 块 3
空 间 和 数 据 空 间 . 量 表 映 向
射 008 x 0 0空 间 。 置 时 钟 控 设 本 系 统 使用 的 T 3 0 C 4 6具 有 优 化 的 C U结 构 .内 部 有 4 制 方 式 P L为 D V( 频 器 ) M¥ 2 V 5 1 P 0 L / 分 位 的算 术 逻 辑 单 元 fL ) 括 一 个 4 A u包 O位 的 桶 式 移 位 寄 存 器 和 2个 独 方 式 , 关 断 所 有 的 模 拟 电 立 的4 O位 累 加 器 , 个 1"7的 乘 法 器 和 一 个 4 一 71 0位 专 用 加 法 器 用 于 路 , 括 P L电 路 , 使 功 包 L 以
多通道数字电压表设计2012山东理工大学

目录一、设计任务及要求 (2)1.1设计任务 (2)1.2设计要求 (2)二、硬件电路设计 (2)2.1MCS-51单片机 (2)2.1.1单片机的引脚及其功能 (2)2.1.2单片机的时钟电路 (3)2.1.3单片机的复位电路 (3)2.2A/D转换模块设计 (4)2.2.1ADC0809的介绍 (4)2.2.2ADC0809时钟产生电路 (5)2.3通道选择模块设计 (5)2.4数码管显示电路 (5)2.5电源模块电路 (6)2.6下载模块电路 (6)三、软件设计部分 (7)3.1主程序流程图 (8)3.2A/D转换子程序流程图 (8)3.3显示子程序流程图 (9)3.4通道键值确定流程图 (9)四、结论 (10)参考文献 (10)附件 (11)一、设计任务与要求1.1设计任务利用单片机MCS-51和ADC0809设计一个多通道数字电压表,能够测量0—5V之间的8路直流电压值,并在四位LED上轮流显示。
1.2设计要求利用MCS-51单片机设计一个多通道数字电压表,可以测量0~5v的8路直流电压值,并在四位LED 上轮流显示。
测量最小分辨率为0.02V,测量误差约为±0.02v。
二、硬件设计本系统采用MCS-51单片机作为核心控制,对8路8位模数转换芯片ADC0809采集到的模拟电压信号进行分析处理,实现A/D转换,通过数码管显示其电压值。
电压表的测量电路主要由三个模块组成:A/D 转换模块、数据处理模块以及显示控制模块。
2.1MCS-51单片机MCS-51单片机在一块芯片上集成了CPU、ROM、RAM、定时器/计数器和多种I/O功能部件,具有一台微型计算机的基本结构,主要包括下列部件。
1个8位的CPU、1个布尔处理机、1个片内震荡器、128字节的片内数据存储器、4K字节的片内程序存储器、寻址范围为64K字节的外部数据存储器和程序存储器、21字节的专用存储器、4个并行I/O口、1个全双工的串行口、2个16位的定时器/计数器、5个中断源、2个中断优先级和111条指令,片内采用单总线结构。
山东理工大学第七届电子设计竞赛题目精选文档

山东理工大学第七届电子设计竞赛题目精选文档TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-微弱信号检测装置(A题)【专业组】一、任务设计并制作一套微弱信号检测装置,用以检测在强噪声背景下已知频率的微弱正弦波信号的幅度值,并数字显示出该幅度值。
为便于测评比较,统一规定显示峰值。
整个系统的示意图如图1所示。
正弦波信号源可以由函数信号发生器来代替。
噪声源采用给定的标准噪声(wav文件)来产生,通过PC机的音频播放器或MP3播放噪声文件,从音频输出端口获得噪声源,噪声幅度通过调节播放器的音量来进行控制。
图中A、B、C、D和E分别为五个测试端点。
图1 微弱信号检测装置示意图二、要求1. 基本要求(1)噪声源输出VN的均方根电压值固定为1V?0.1V;加法器的输出VC =VS+VN,带宽大于1MHz;纯电阻分压网络的衰减系数不低于100。
(2)微弱信号检测电路的输入阻抗Ri≥1 M?。
(3)当输入正弦波信号VS 的频率为1 kHz、幅度峰峰值在200mV ~ 2V范围内时,检测并显示正弦波信号的幅度值,要求误差不超过5%。
2. 发挥部分(1)当输入正弦波信号VS 的幅度峰峰值在20mV ~ 2V范围内时,检测并显示正弦波信号的幅度值,要求误差不超过5%。
(2)扩展被测信号VS的频率范围,当信号的频率在500Hz ~ 2kHz范围内,检测并显示正弦波信号的幅度值,要求误差不超过5%。
(3)进一步提高检测精度,使检测误差不超过2%。
(4)其它(例如,进一步降低VS 的幅度等)。
三、说明本题必须使用TI 的Launchpad(MSP430小开发板)来完成。
微弱信号检测电路要求采用模拟方法来实现。
常用的微弱信号检测方法有:滤波,锁相放大,取样积分等(仅供参考)。
为便于各个模块的测试,所有测试端点(A~E)应做成跳线连接方式。
检测并显示正弦波信号的幅度值是指输入正弦波信号VS 的幅度(即峰值)。
实验三 简易数字电压表设计共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屏幕上第三排显示出来。
全国大学生电子设计大赛获奖论文

2012年山东省大学生电子设计竞赛A题低功耗数字多功能表的设计制作低功耗数字多功能表的设计制作摘要:用低功耗单片机为控制核心,设计了低功耗数字多功能表。
本系统包括:直流电压、交流电压、电阻、电容、三极管放大倍数的测量和正弦波信号源电路。
为了提高测量精度,在信号源、电阻、交流电压三个测量电路中,用OPA2111精密仪器放大器芯片,设计了自动较零型仪器放大器。
交流电压信号处理电路中,采用了AD736交流变直流芯片,测量精度较高。
按照题目要求完成了全部功能,并自由发挥增加了晶体管PN结电压的测量功能及温度测量功能。
仿真结果和试验数据表明,本系统具有较高的测量精度,再加后期研发完善,可推广作为数字万用表使用。
关键词:数字多功能表,低功耗,高精度,单片机控制Abstract: With low power consumption single-chip microcomputer as control core, design the low power consumption digital multi-function table. This system includes: dc volts, ac voltage, resistance, capacitance, triode magnification factor measurement and sine wave signal source circuit. In order to improve the measurement precision, the signal source, resistance, ac voltage three in the measurement circuit, with OPA2111 precision instrument amplifier chip, design the automatic a zero type instrument amplifier. In the ac voltage signal processing circuit, adopted AD736 ac variable dc chip, has high accuracy. According to the topic request completed all function, and free play to increase the diode and triode p-n junction voltage measurement function. The simulation results and test data show that this system has high measurement precision, add later research and perfect, can be generalized as digital multimeter use.Keywords: digital multi-function table, low power consumption, high precision, single-chip microcomputer control目录1.方案选择及论证 (3)1.1方案选择 (3)1.2设计方案 (3)2.硬件电路设计及理论分析计算 (3)2.1低功耗供电系统电路 (3)2.2直流电压测量电路 (4)2.3交流电压测量电路 (4)2.4电阻测量电路 (5)2.5电容测量电路 (5)2.6三极管放大倍数测量电路 (6)2.7正弦波信号源电路 (6)3系统软件设计 (7)3.1主程序流程图 (7)3.2系统自动休眠设计 (7)4.测试方案和测试结果分析 (7)4.1直流电压测量方法和测试结果 (7)4.2交流电压测量方法和测试结果 (7)4.3电阻测量方法和测试结果 (8)4.4电容测量方法和测试结果 (8)4.5三极管放大倍数测量方法和测试结果 (8)4.6正弦波信号源测量方法和测试结果 (8)4.7晶体管PN结电压测量方法和测试结果 (9)5自由发挥部分 (9)5.1测晶体管PN结电压电路 (9)5.2温度测量电路 (9)6结论 (9)参考文献 (10)附录1:系统电路原理总图 (11)附录2:部分程序清单 (12)1.方案选择及论证1.1 方案选择方案一:选用MSP430单片机为控制核心。
基于AT89S52的数字电压表的设计

数字电压表是采用数字化测量技术,把连续的模拟电压量转换成不连续、离散的数字化形式并加以显示的仪表。
目前已被广泛应用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域。
设计的电压表可以测量0~5V范围内的8路输入电压值,并且通过4位LED数码管轮流或单路选择显示。
测量的最小分辨率为0.02V。
1系统方案根据数字电压表的功能实现要求,选用AT89S52单片机作控制系统,由ADC0809实现A/D转换功能。
数字电压表系统设计方案如图1所示。
2系统硬件电路设计对待测模拟电压值进行A/D转换由集成电路ADC0809完成。
集成电路ADC0809具有8路模拟输入端口,由端口C、B、A的值决定对哪一路模拟输入作A/D转换,端口ALE为地址锁存控制端口,当输入为高电平时,对端口C、B、A输入的地址信号进行锁存,从而决定对哪路待测输入电压值进行A/D转换。
当端口START输入1个2μs宽的高电平脉冲时,开始进行A/D转换,当待测电压值转换为对应的数字信号完毕,端口EOC输出高电平。
端口OE输出高电平时,转换的数据从端口D0~D7输出。
在本系统设计中,采用AT89S52单片机的端口P1,端口P3.0~P3.3作为4位LED数码管的显示控制。
端口P3.5作为单路显示/循环显示转换按钮。
端口P3.6作为单路显示时选择显示通道。
端口P0与ADC0809的端口D0~D7相连,用作A/D转换数据的读入。
端口P2用作集成电路ADC0809的A/D转换控制。
AT89S52单片机的端口ALE以晶体振荡器振荡频率(12MHz)的1/6周期性地发出正脉冲信号,再经过集成电路MC14024二分频得到1MHz的时钟频率,输出给集成电路ADC0809的时钟端CLOCK,作为集成电路ADC0809的时钟信号。
4位LED数码管的采用动态显示方式显示。
74LS244是8同相三态缓冲器/线驱动器,在本系统中用于驱动4位LED数码管。
数字电压表原理图如图2、图3所示。
多功能数字电压表设计_课程设计

多功能数字电压表设计多功能数字电压表设计1.设计主要内容及要求;设计一个多功能数字电压表。
要求:1)硬件电路设计,包括原理图和PCB板图。
2)数字电压表软件设计。
3)要求能够测量并显示直流电压、交流电压,测量范围0.002V---2V。
2.对设计论文撰写内容、格式、字数的要求;(1).课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。
(2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。
课程设计论文的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
(3).论文要求打印,打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
(4). 课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。
3.时间进度安排;中文摘要随着微型计算机及微电子技术在测试领域中的广泛应用,仪器仪表在测量原理、准确度、灵敏度、可靠性、多种功能及自动化水平等方面都发生了巨大的变化,逐步形成了完全突破传统概念的新一代仪器——智能仪器。
智能化是现代仪器仪表的发展趋势,许多嵌入式系统、电子技术和现场总线领域的新技术被应用于智能仪器仪表的设计,尤其是嵌入式系统的许多新的理念极大地促进了智能仪器仪表技术的发展。
今年来,随着大规模集成电路的发展,有单片A/D转换器构成的数字电压表获得了迅速普及和广泛应用,它是目前在电子测量及维修工作中最常用、最得力的一种工具类数字仪表。
数字电压表具有很高的性价比,其主要优点是准确度高、分辨力强测试功能完善、测量速率快、显示直观。
测试仪器的智能化已是现代仪器仪表发展的主流方向。
因此学习智能仪器的工作原理、掌握新技术和设计方法无疑是十分重要的。
关键词智能,数字,电压表,仪器仪表多功能数字电压表目录中文摘要 (II)目录 (III)1 设计任务描述 (1)1.1设计题目:多功能数字电压表设计 (1)1.2 设计要求 (1)1.2.1 设计目的 (1)1.2.2 基本要求 (1)2、设计思路 (2)3、设计方框图 (3)4、硬件整体框图 (4)5、硬件的设计和元器件的选择及介绍 (5)5.1.稳压源部分电路的设计 (5)5.2外部晶振和复位 (5)5.3 蜂鸣器 (6)5.4交流电压采集测量电路 (7)5.5单片机C8051简介 (7)6、系统软件设计 (8)6.1软件总流程图 (8)6.2 各部分程序介绍 (9)6.2.1主程序部分 (9)6.2.2.显示程序 (11)6.2.3.报警程序 (11)6.2.4.量程选择 (12)7、各部分参数计算 (13)8、元器件清 (14)小结 (15)致谢 (15)参考文献 (15)附录1 程序清单 (16)附录2 硬件电路图 (24)附录3 PBC板图 (25)多功能数字电压表1 设计任务描述1.1设计题目:多功能数字电压表设计1.2 设计要求1.2.1 设计目的1) 掌握A/D转换的采集,处理和显示程序方法;2)熟悉单片机的编程方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、设计任务及要求 (2)1.1设计任务 (2)1.2设计要求 (2)二、硬件电路设计 (2)2.1MCS-51单片机 (2)2.1.1单片机的引脚及其功能 (2)2.1.2单片机的时钟电路 (3)2.1.3单片机的复位电路 (3)2.2A/D转换模块设计 (4)2.2.1ADC0809的介绍 (4)2.2.2ADC0809时钟产生电路 (5)2.3通道选择模块设计 (5)2.4数码管显示电路 (5)2.5电源模块电路 (6)2.6下载模块电路 (6)三、软件设计部分 (7)3.1主程序流程图 (8)3.2A/D转换子程序流程图 (8)3.3显示子程序流程图 (9)3.4通道键值确定流程图 (9)四、结论 (10)参考文献 (10)附件 (11)一、设计任务与要求1.1设计任务利用单片机MCS-51和ADC0809设计一个多通道数字电压表,能够测量0—5V之间的8路直流电压值,并在四位LED上轮流显示。
1.2设计要求利用MCS-51单片机设计一个多通道数字电压表,可以测量0~5v的8路直流电压值,并在四位LED 上轮流显示。
测量最小分辨率为0.02V,测量误差约为±0.02v。
二、硬件设计本系统采用MCS-51单片机作为核心控制,对8路8位模数转换芯片ADC0809采集到的模拟电压信号进行分析处理,实现A/D转换,通过数码管显示其电压值。
电压表的测量电路主要由三个模块组成:A/D 转换模块、数据处理模块以及显示控制模块。
2.1MCS-51单片机MCS-51单片机在一块芯片上集成了CPU、ROM、RAM、定时器/计数器和多种I/O功能部件,具有一台微型计算机的基本结构,主要包括下列部件。
1个8位的CPU、1个布尔处理机、1个片内震荡器、128字节的片内数据存储器、4K字节的片内程序存储器、寻址范围为64K字节的外部数据存储器和程序存储器、21字节的专用存储器、4个并行I/O口、1个全双工的串行口、2个16位的定时器/计数器、5个中断源、2个中断优先级和111条指令,片内采用单总线结构。
2.1.1单片机的引脚及其功能AT89C51的引脚如图1所示。
图1AT89C51的引脚图各引脚的功能介绍如下所示:(1)VCC:运行和程序校验时接电源正端。
(2)P0口:P0口是一个8位、漏极开路的双向I/O口,每脚可吸收8个TTL门电流。
(3)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
(4)P2口:P2口是一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。
(5)P3口:P3口是一个8位带内部上拉电阻的准双向I/O口,可接收输出4个TTL门电流。
(6)RST:复位输入信号,高电平有效。
(7)ALE/PROG:地址锁存允许信号,输出。
(8)/PSEN:片外程序存储器读选通信号,低电平有效。
(9)/EA/VPP:片外程序存储器访问允许信号,低电平有效。
(10)XTAL1:输入到单片微机内部振荡器的反相放大器。
(11)XTAL2:反相放大器的输出,输入到内部时钟发生器。
2.1.2单片机的时钟电路系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性,电容应尽可能的选择陶瓷电容,电容值约为22pF。
振荡器的工作频率一般在1.2MHz~12MHz之间,由于制造工艺的改进,有些单片微机的频率范围正向两端延伸,高端可达40MHz,低端可达0Hz,一般用11.0592MHz晶振。
时钟电路图如图2所示[7]。
图2时钟电路2.1.3单片机的复位电路复位电路是上电自动复位加按键复位。
由于电容两端的电压不能突变,在上电的瞬间电容负端的电位和正端的电位相同都为高电平5V,紧接着电源给电容充电,经过很快的时间充电过程结束,电容对于直流电来说是断路,此时RST引脚通过R12接地。
整个过程会在RST引脚上产生一个维持几个机器周期的高电平脉冲足以使单片机有效复位。
手动按键复位同样是在按键按下的瞬间使电容完成先放电再充电的过程,也能产生一个维持几个机器周期的高电平脉冲使单片机有效复位。
RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上。
若使用频率为12MHz的晶振,则复位信号应持续2µs以上,复位电路如图3所示[8]。
图3复位电路2.2A/D转换模块设计A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量转换成数字量再处理,本设计用ADC0809转换器。
测量电压范围为0V~5V,ADC0809的精度可达到0.02V。
2.2.1ADC0809的介绍ADC0809是采样分辨率为8位的、采用CMOS工艺制成的8通道以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0809的内部结构包括8路模拟选通开关、通道地址锁存器与译码器、8位A/D转换器和三态输出锁存器。
ADC0809的引脚功能,其引脚如图4所示。
图4ADC0809的引脚图IN0~IN7:模拟量输入通道。
A、B、C:地址线。
ALE:地址锁存允许信号。
START:启动转换信号。
D0~D7:数据输出线。
OE:输出允许信号。
CLOCK:时钟信号。
EOC:转换结束状态信号。
VCC:接+5V电源。
REF(+)、REF(-):参考电压。
2.2.2AD0809时钟产生电路该电路模块的工作过程:AD0809工作需要时钟电路,单片机ALE端输出为Fosc/6的方波信号,进过74HC74二分频后可做为AD0809的驱动时钟输入。
如图5。
图5时钟产生电路2.3通道选择模块设计矩阵式键盘的硬件结构比较简单,有行输出口和列输出口构成矩阵式键盘,按键设置在行、列的交点上。
图5所示为2*4矩阵式键盘的硬件结构。
图5矩阵式键盘电路2.4数码管显示模块电路显示电路采用四位数码管LG3641通过单片机以及锁存器573控制实现动态显示,通过单片机的P0口做为数据输出口。
U4为段码显示锁存器,U2为位码锁存器,使能端分别连接51单片机的P3.6和P3.7。
电路如图6。
图6数码显示模块电路2.5电源模块电路由于51单片机工作电压为5V,因此可以采用三端集成稳压器L7805的输出电压做为电压输入,如下图C8,C9为电源滤波电容,D1为电源工作指示灯。
图7数码显示模块电路2.6下载模块电路下载模块可以实现将程序烧写如51单片机内,原理为MAX232电平转换芯片可以实现PC机和单片机的电平匹配,同时PC机通过51单片机的串行发送(TXD)和接受(RXD)将程序下载到目标板上。
连接电路如图8。
图8下载模块电路三、系统软件设计软件设计分为主程序设计和子程序设计,下面分别加以说明。
初始化主要是对单片机,它主要包含显示缓冲区初始化。
准备工作做好后便启动ADC0809对模拟通道输入的0V~5V电压模拟信号进行数据采集并转换成相对应的0~255十进制数字量。
在数据处理程序中,运用标度变换知识,编写算法将0~255十进制数字量转换成0.00V~5.00V的数据,输出到显示子程序中进行显示。
3.1主程序流程图主程序包括初始化部分,调用A/D转换子程序和调用显示子程序,通道选择程序。
初始化键盘扫描通道选择启动AD接收数据数据处理显示图9主程序流程图3.2A/D 转换子程序流程图A/D转换子程序是用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值移入70H~77H8个相应的存储单元中,其程序流程如图10所示。
A/D转换子程序每隔一定时间调用一次。
程序开始执行后首先通过手动控制拨码开关来选择8路模拟通道的一路进行模数转换。
接着启动一次A/D转换,通过判断转换结束状态信号EOC是否为1来判断A/D转换是否结束。
EOC=1,则表示A/D转换结束,否则EOC=0,则表示正在进行A/D转换。
接着输出允许信号OE=1,输出转换后的数据,就完成了一次A/D转换,程序返回到数据处理模块。
只要手动控制模拟通道就可以不停的循环进行模数转换。
图10A/D 转换流程图3.3显示子程序流程图LG3641数码管为4位共阴数码管,采用74hc573锁存器以及单片机控制实现显示功能,显示原理为分时显示,即通过51单片机PO口分时输出数据到573并锁存显示,显示电路共用两片74HC573一片为位选功能,另一片为段选功能。
流程图如图11.开始判断地址码启动一次A/D 转换EOC=1取数据(OE=1)是返回EOC=1A/D 转换结束开始初始化位选数据信号输出至P0口段选数据信号输出至P0口返回4位数据显示完成?是否图11显示流程图3.4通道选择程序流程图图11按键键值处理流程图四、结论由于本设计使用高效的51系列单片机作为核心的测量系统,以及高精度高速度高抗干扰的AD0809转换器。
使得数字电压表具体精度高,灵敏度强,性能可靠,电路简单,成本低等特点。
在电路设计中我总结出,硬件选择,不仅要功能复合逻辑,成本低廉,更重要的是要达到系统的设计要求,有高的系统稳定性和安全性。
在此次设计中,通过对各种备选方案的综合比较,采用ADC0809可以很好地实现设计要求,达到了误差0.02V 的要求。
因为单片机系统设计是硬件和软件相结合的设计,所以系统和硬件软件必须紧密配合,协调一致,应不断调整硬软件设计,以提高系统工作效率。
再设计时已经充分考虑到了软件的可行性,方便了后期系统软件的编写。
通过此次单片机课程设计,我进一步掌握了单片机的内部资源及机构,并熟练掌握了单片机外围硬件的搭建过程。
在课程设计过程中,也遇到过一些问题,但经过查阅相关书籍和芯片资料,问题都得以解决,同时也提高了自己查阅资料的能力。
此次设计不仅是对所学课程的巩固,更为以后自己从事电子电路开发打下了坚实的基础。
参行扫描开始P2口低两位为10?P2口低两位为01?列扫描,确定键值返回是否列扫描,确定键值参考文献:1.姜志海黄玉清刘连鑫《单片机原理及应用》电子工业出版社2.何立民编《单片机应用技术选编》北京航空航天大学出版社3.童诗白编《模拟电子技术基础》高等教育出版社4.何希才编《传感器及其应用电路》电子工业出版社5.李大有,《单片机应用与设计》,电子工业大学出版社6.赵茂泰,《智能仪器原理及应用》,电子工业出版社7.柳淳,徐玮.单片机开发应用技能与技巧.北京:中国电力出版社,20088.余永权,汪明慧,黄英.单片机在控制系统中的应用.北京:电子工业出版社,9.彭树生.单片机实践与系统设计.北京:电子工业出版社,200710.李元.数字电路与逻辑设计.江苏:南京大学出版社,1997附件一源程序#include<reg52.h>#include<instrins.h>#define uchar unsigned char#define uint unsigned intsbit OE=P2^7sbit start=P2^6sbit EOC=P3^3sbit C=P3^2sbit B=P3^1sbit A=P3^0sbit LATCH1=P2^2;//定义锁存使能端口段锁存sbit LATCH2=P2^3;//位锁存Unsigned char code TempData[4];Unsigned char code dofly_DuanMa[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示段码值0~9unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7};//分别对应相应的数码管点亮,即位码1-4位uchar m,n;uint Chanel,Baiwei,Shiwei,Gewei;//延时时间为1msvoid Delay(uint i){uchar x,j;for(j=0;j<i;j++)for(x=0;x<=148;x++);}void delay(){int i,j;for(i=0;i<=10;i++)for(j=0;j<=2;j++);}/*------------------------------------------------AD初始化函数------------------------------------------------*/void AD0809_init(void){if(DS4==0){A=0;B=0;C=0;}if(DS4==1){A=0;B=0;C=1;}if(DS4==2){A=0;B=1;C=0;}if(DS4==3){A=0;B=1;C=1;}if(DS4==4){A=1;B=0;C=0;}if(DS4==5){A=1;B=0;C=1;}if(DS4==6){A=1;B=1;C=0;}if(DS4==7){A=1;B=1;C=1;}start=1;Delay(2);start=0;}/*------------------------------------------------AD转换结束中断服务函数------------------------------------------------*/void int1(void)interupt1using0{ET1=1;//开外部中断1if(EOC==1){OE=1;//0809输出使能置位_n0p_;m=P0;//读0809转换值}n=int(int(m)/256*500);//转换成百位数(0——500)TempData[0]=dofly_DuanMa[Chanel];Baiwei=int(n/100);//取百位数值TempData[1]=dofly_DuanMa[Baiwei];Shiwei=n%100/10;//取十位数值TempData[2]=dofly_DuanMa[shiwei];gewei=n%10;//取个位数值TempData[3]=dofly_DuanMa[shiwei];}/*------------------------------------------------键盘扫描函数,使用行列逐级扫描法------------------------------------------------*/unsigned char KeyScan(void){unsigned char Val;KeyPort=0xf0;//高四位置高,低两位拉低if(KeyPort!=0xf0)//表示有按键按下{DelayMs(10);//去抖if(KeyPort!=0xf0){//表示有按键按下KeyPort=0xfe;//检测第一行if(KeyPort!=0xfe){Val=KeyPort&0xf0;Val+=0x0e;while(KeyPort!=0xfe);DelayMs(10);//去抖while(KeyPort!=0xfe);return Val;}KeyPort=0xfd;//检测第二行if(KeyPort!=0xfd){Val=KeyPort&0xf0;Val+=0x0d;while(KeyPort!=0xfd);DelayMs(10);//去抖while(KeyPort!=0xfd);return Val;}}}return0xff;}/*------------------------------------------------按键值处理函数,返回扫键值------------------------------------------------*/unsigned char KeyPro(void){switch(KeyScan()){case0x7e:return0;break;//0按下相应的键显示相对应的码值case0x7d:return1;break;//1case0x7b:return2;break;//2case0x77:return3;break;//3case0xbe:return4;break;//4case0xbd:return5;break;//5case0xbb:return6;break;//6case0xb7:return7;break;//7default:return0xff;break;}}/*------------------------------------------------中断初始化函数------------------------------------------------*/Void it_int(){EA=1;//开总中断ET1=1;//开外部中断1IT1=1;//外部中断1边沿促发}/*------------------------------------------------显示子程序------------------------------------------------*/void Display(unsigned char FirstBit,unsigned char Num) {unsigned char i;for(i=0;i<Num;i++){DataPort=0;LATCH1=1;LATCH1=0;DataPort=dofly_WeiMa[i+FirstBit];LATCH2=1;LATCH2=0;DataPort=TempData[i];LATCH1=1;LATCH1=0;Delay(200);//}}/*------------------------------------------------主函数------------------------------------------------*/void main(){it_int();//外部中断初始化while(1){Chanel=KeyPro();//通道键值设定AD0809_init();Display(0,4);}}。