课程设计(论文)-基于单片机系统的数字电压表.doc_第1页
课程设计(论文)-基于单片机系统的数字电压表.doc_第2页
课程设计(论文)-基于单片机系统的数字电压表.doc_第3页
课程设计(论文)-基于单片机系统的数字电压表.doc_第4页
课程设计(论文)-基于单片机系统的数字电压表.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0 基于单片机的电子产品设 计与制作实训报告书 数字电压表 院院 部部: : 专专 业:业: 姓姓 名:名: 学学 号:号: 指导老师:指导老师: 2 目目 录录 概述概述. . . . .3 一一. .设计目的与功能要求设计目的与功能要求. . . . . . . .4 1.11.1 设计目的设计目的4 1.21.2 功能要求功能要求.4 二二. .总体设计总体设计.4 2.12.1 系统设计系统设计.4 2.22.2 设计方案设计方案5 2.32.3 总体设计框图总体设计框图5 三三. .设计原理图设计原理图.6 四四. .硬件电路设计硬件电路设计.6 4.14.1 核心元器件介绍核心元器件介绍.6 4.1.14.1.1 芯片介绍芯片介绍.6 4.1.24.1.2 其它部分简介其它部分简介.12 1.1.四位八段共阴极数码管四位八段共阴极数码管.12 2.2.模拟电压输入部分模拟电压输入部分.13 五五. .软件设计软件设计13 5.15.1 汇编流程图汇编流程图.14 5.25.2 汇编程序清单汇编程序清单.15 5.35.3 程序说明程序说明.15 3 六六. .调试仿真调试仿真.16 七七. .设计总结与致谢设计总结与致谢.18 .19 概述 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量 的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压, 所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称 DVM,它是 采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以 显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度 快等特而得到广泛应用1。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳, 因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量 如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰 能力强,可扩展性强、集成方便,还可与 PC 实时通信。数字电压表是诸多数字 化仪表的核心与基础2。以数字电压表为核心,可以扩展成各种通用数字仪表、 专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和 A/D 转换器 构成的数字电压表作全面深入的了解是很有必要的。 最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发 展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的 快速发展,并不断出现新的类型4。数字电压表从 1952 年问世以来,经历了不 断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、 集成化(IC 化) ,另一方面,精度也从 0.01%-0.005%。 目前,数字电压表的内部核心部件是 A/D 转换器,转换的精度很大程度上 影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和 低成本这两个方面3。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模 块:转换模块、数据处理模块及显示模块。其中,A/D 转换采用 ADC0808 对输 入的模拟信号进行转换,控制核心 AT89C51 再对转换的结果进行运算处理,最 后驱动输出装置 LED 显示数字电压信号11。 4 一一. .设计目的与功能要求设计目的与功能要求 1.11.1 设计目的设计目的 利用单片机及 ADC0809 核心元件制作 3 位数字电压表,更好地 学习掌握 ADC0809 的工作原理及 A/D 的转换编程方法。 1.21.2 功能要求功能要求 利用 ADC0809 设计实现数字电压表的测量值为 05V,用电 位器模拟 ADC0809 的输入电压,用 3 位数码管显示,实时模拟数 字电压表。 二二. .总体设计总体设计 2.12.1 系统设计系统设计 主要分为两部分:硬件电路及软件程序。硬件电路包括:单片 机及外围电路,模拟信号采集电路,A/D 转换电路,数码管显示电 路,各部分电路的衔接。软件的程序可采用 C 语言或汇编,这里采 用汇编语言,详细的设计思路在后面介绍。 2.22.2 设计方案设计方案 数字电压表的设计方案很多,但采用集成电路来设计较流行。 其设计主要是由模拟电路和数字电路两大部分组成,模拟部分包括 A/D 转换器,基准电源等;数字部分包括振荡器,数码显示,计数器 5 等。其中,A/D 转换器将输入的模拟量转换成数字量,它是数字电 压表的一个核心部件,对它的选择一般有两种选择方案: 1.采用双积分 A/D 转换器 MC14433,它有多路调制的 BCD 码输 出端和超量程输出端,采用动态扫描显示,便于实现自动控制。但 芯片只能完成 A/D 转换功能,要实现显示功能还需配合其它驱动芯 片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊 接的工作。 2. 逐次逼近式 A/D 转换器。它的转换速度更快,而且精度更高, 比如 ADC0808、ADC0809 等,它们通常具有 8 路模拟选通开关及地址 译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片 机进行分析和显示。这样电路设计简单,电路板布线不复杂,便于 焊接、调试。这里采用这种方案。 显示部分可以采用各类数码管或用 LCD 显示器显示。在此简化 采用 4 位八段共阴极数码管对 A/D 转换变换后的结果加以显示。 2.32.3 总体设计框图总体设计框图 采采 集集 单单 片片 机机 A/D 转换器转换器 ADC0809 外界模拟信号外界模拟信号 数字信号数字信号量程变换处理量程变换处理 四位八段共阴极数码管四位八段共阴极数码管 置置 入入 6 振荡器、时序脉冲振荡器、时序脉冲 三设计原理图三设计原理图 四四. .硬件电路设计硬件电路设计 4.14.1 核心元器件介绍核心元器件介绍 4.1.14.1.1 芯片介绍芯片介绍 1.1.单片机单片机 AT89C51AT89C51 介绍介绍 预先写好的汇预先写好的汇 编程序编程序 显示出模拟电压显示出模拟电压 的数值的数值 7 a.a.芯片引脚图:芯片引脚图: b.b. 描述:描述:AT89C51是一个低电压,高性能CMOS 8位单片机带有4K字 节的可反复擦写的程序存储器(PENROM)。和128字节的存取数据存 储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储 技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央 处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用 到控制领域中。 C.C.主要特性:主要特性: 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I/O线 两个16位定时器计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 d.d. 引脚描述引脚描述 VCC:电源电压 GNDGND:地 8 P0P0 口:口:P0 口是一组 8 位漏极开路双向 I/O 口,即地址/数据总线复 用口。作为输出口时,每一个管脚都能够驱动 8 个 TTL 电路。当 “1”被写入 P0 口时,每个管脚都能够作为高阻抗输入端。P0 口还 能够在访问外部数据存储器或程序存储器时,转换地址和数据总线 复用,并在这时激活内部的上拉电阻。P0 口在闪烁编程时,P0 口接 收指令,在程序校验时,输出指令,需要接电阻。 P1P1 口:口:P1 口一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓 冲级可驱动 4 个 TTL 电路。对端口写“1”,通过内部的电阻把端口 拉到高电平,此时可作为输入口。因为内部有电阻,某个引脚被外 部信号拉低时输出一个电流。闪烁编程时和程序校验时,P1 口接收 低 8 位地址。 P2P2 口:口:P2 口是一个内部带有上拉电阻的 8 位双向 I/O 口,P2 的输 出缓冲级可驱动 4 个 TTL 电路。对端口写“1”,通过内部的电阻把 端口拉到高电平,此时,可作为输入口。因为内部有电阻,某个引 脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或 16 位地址的外部数据存储器时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器时,P2 口线上的内容在整个运行期间不变。 闪烁编程或校验时,P2 口接收高位地址和其它控制信号。 P3P3 口:口:P3 口是一组带有内部电阻的 8 位双向 I/O 口,P3 口输出缓 冲故可驱动 4 个 TTL 电路。对 P3 口写如“1”时,它们被内部电阻 拉到高电平并可作为输入端时,被外部拉低的 P3 口将用电阻输出电 流。 P3 口除了作为一般的 I/O 口外,更重要的用途是它的第二功能,如 下表所示: 端口引脚第二功能 P3.0RXD P3.1TXD P3.2INT0 9 P3.3INT1 P3.4T0 P3.5T1 P3.6WR P3.7RD P3 口还接收一些用于闪烁存储器编程和程序校验的控制信号。 RSTRST:复位输入。当震荡器工作时,RET 引脚出现两个机器周期以上 的高电平将使单片机复位。 ALE/ALE/:当访问外部程序存储器或数据存储器时,ALE 输出脉冲 PROG 用于锁存地址的低 8 位字节。即使不访问外部存储器,ALE 以时钟 震荡频率的 1/16 输出固定的正脉冲信号,因此它可对输出时钟或用 于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。 如果必要,可对特殊寄存器区中的 8EH 单元的 D0 位置禁止 ALE 操作。 这个位置后只有一条 MOVX 和 MOVC 指令 ALE 才会被应用。此外,这 个引脚会微弱拉高,单片机执行外部程序时,应设置 ALE 无效。 PSENPSEN:程序储存允许输出是外部程序存储器的读选通信号,当 AT89C51 由外部程序存储器读取指令时,每个机器周期两次 PSEN 有 效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两 次有效的 PSEN 信号不出现。 EA/VPPEA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器, EA 端必须保持低电平。需要注意的是:如果加密位 LBI 被编程,复 位时内部会锁存 EA 端状态。如 EA 端为高电平,CPU 则执行内部程 序存储器中的指令。闪烁存储器编程时,该引脚加上+12V 的编程允 许电压 VPP,当然这必须是该器件是使用 12V 编程电压 VPP。 XTAL1XTAL1:震荡器反相放大器及内部时钟发生器的输入端。 XTAL2XTAL2:震荡器反相放大器的输出端。 时钟震荡器时钟震荡器: :AT89C51中有一个用于构成内部震荡器的高增益反相放 大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个 10 放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然 震荡器。 外接石英晶体及电容C1,C2接在放大器的反馈回路中构成 并联震荡电路。对外接电容C1,C2虽然没有十分严格的要求,但电 容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、 起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容 使用30PF10PF,而如果使用陶瓷振荡器建议选择40PF10PF。用 户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下, 外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则 悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信 号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平 持续时间和最大的低电平持续时间应符合产品技术条件的要求。 电路内部振荡 外部振荡电路 2.ADC08092.ADC0809 芯片芯片 a.a.引脚图:引脚图: 11 b.b. 主要特性主要特性 1)8 路输入通道,8 位 AD 转换器,即分辨率为 8 位。 2)具有转换起停控制端。 3)转换时间为 100s(时钟为 640kHz 时),130s(时钟为 500kHz) 4)单个5V 电源供电 5)模拟输入电压范围 05V,不需零点和满刻度校准。 6)工作温度范围为-4085 摄氏度 7)低功耗,约 15mW。 C.C. 外部特性(引脚功能)外部特性(引脚功能) IN0IN0IN7IN7:8 路模拟量输入端。 DB0-DB7DB0-DB7:8 位数字量输出端。 ADDAADDA、ADDBADDB、ADDCADDC:3 位地址输入线,用于选通 8 路模拟输入中的 一路 12 ALEALE:地址锁存允许信号,输入,高电平有效。 STARTSTART: AD 转换启动脉冲输入端,输入一个正脉冲(至少 100ns 宽)使其启动(脉冲上升沿使 0809 复位,下降沿启动 A/D 转换)。 EOCEOC: AD 转换结束信号,输出,当 AD 转换结束时,此端输出 一个高电平(转换期间一直为低电平)。 OEOE:数据输出允许信号,输入,高电平有效。当 AD 转换结束时, 此端输入一个高电平,才能打开输出三态门,输出数字量。 CLKCLK:时钟脉冲输入端。要求时钟频率不高于 640KHZ。 REFREF(+ +) 、REFREF(- -):):基准电压。 VccVcc:电源,单一5V。 GNDGND:接地。 4.1.24.1.2 其它部分简介其它部分简介 1.1.四位八段共阴极数码管四位八段共阴极数码管 这种数码管可显示 4 位值,每位由 8 个发光二极管(以下简称 字段)即 a、b、c、d、e、f、g、dp 字段构成,通过控制不同的 LED 的亮灭的不同组合可用来显示数字 09 及小数点“”。数码管 又分为共阴极和共阳极两种结构。结构和接法分别如下图 13 2.2.模拟电压输入部分模拟电压输入部分 这里设计将实际的模拟信号采集电路简化成一个分压电路模型 如右图所示 五五. .软件设计软件设计 5.15.1 汇编流程图汇编流程图 14 开始开始 系统初始化系统初始化 启动启动 A/D 转换转换 采集采集 A/D 转换值转换值 数据转换数据转换 Y调用显示调用显示 三位是否显示完?三位是否显示完? 完?完? 读电压值读电压值 Y Y N N ENDEND 程序流程图程序流程图 转换结束?转换结束? Y N 15 5.25.2 汇编程序清单汇编程序清单 ;初始化定义 LED1 EQU 30H LED2 EQU 31H LED3 EQU 32H;存放三个数码管的段码 ADC EQU 35H;存放转换后的数据 ST BIT P3.2 OE BIT P3.0 EOC BIT P3.1;定义 ADC0809 的功能控制引脚 ORG 0000H LJMP MAIN;跳转到主程序执行 ORG 0030H ;主程序,各寄存器初始化,ADC0809 采集数据和调用显示主程序; MAIN: MOV LED1,#00H MOV LED2,#00H MOV LED3,#00H;寄存器初始化 CLR P3.4 SETB P3.5 CLR P3.6;选择 ADC0809 的通道 2 WAIT: CLR ST SETB ST CLR ST;在脉冲下降沿启动转换 JNB EOC,$;等待转换结束 SETB OE;允许输出信号 MOV ADC,P1;暂存 A/D 转换结果 CLR OE;关闭输出 MOV A,ADC;将转换结果放入 A 中,准备个位数据转换 MOV B,#50;变换个位调整值 50 送 B DIV AB MOV LED1,A;将变换后的个位值送显示缓冲区 LED1 MOV A,B;将变换结果的余数放入 A 中,准备十分位变换 MOV B,#5;变换十分位调整值 5 送 B DIV AB MOV LED2,A;将变换后的十分位值送 LED2 MOV LED3,B;最后的余数作百分位值送 LED3 LCALL DISP;调用显示程序 AJMP WAIT ;显示子程序: DISP:MOV R1,#LED1 CJNE R1,#5,GO;R1=5V?是往下执行,否,则到 GO MOV LED2,#0H;是 5V,即最高值,将小数的十分位清零 16 MOV LED3,#0H;将小数的百分位清零 GO:MOV R2,#3;显示位数赋初值,用到 3 位数码管 MOV R3,#0FDH;扫描初值送 R3 DISP1:MOV P2,#0FFH;关闭显示,目的防止乱码 MOV A,R1;显示值送 A MOV DPTR,#TAB;送表首地址给 DPTR MOVC A,A+DPTR;查表取段码 CJNE R2,#3,GO1;判断是否个位数码管?否则跳到 GO1 ORL A,#80H;将整数的数码管显示小数点 GO1:MOV P0,A;送段码给 P0 口 MOV A,R3 MOV P2,A;送位码给 P2 口 LCALL DELAY;调用延时 MOV R3,A RL A;改变位码 MOV R3,A INC R1;改变段码 DJNZ R2,DISP1;三位是否显示完?否则调到 DISP1 RET ;延时 5S 程序: DELAY:MOV R6,#10 D1:MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RET ;显示数据表: TAB: DB 3FH, 06H,5BH,4FH,66H;共阴极数码管显示 0-4 DB 6DH,7DH,07H,7FH,6FH;显示 5-9 END 5.35.3 程序说明程序说明 程序先定义了 ADC0809 的控制线,对其控制端口要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论