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

下载本文档

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

文档简介

0 目目 录录 概述概述3 3 一一. .设计目的与功能要求设计目的与功能要求.4 4 1.11.1 设计目的设计目的4 4 1.21.2 功能要求功能要求4 4 1.1.3 3 设计思路设计思路4 4 二二. .总体设计总体设计4 4 2.12.1 系统设计系统设计4 4 2.22.2 设计方案设计方案.4 4 2.32.3 总体设计框图总体设计框图.5 5 三三. .设计原理图设计原理图.6 6 四四. .硬件电路设计硬件电路设计.7 7 4.14.1 核心元器件介绍核心元器件介绍.7 7 4.1.14.1.1 芯片介绍芯片介绍.7 7 4.1.4.1.2 2 其他电路部分简介其他电路部分简介.1313 1.1.显示电路显示电路.1313 2.a/d2.a/d 转换测量模拟电压输入部分转换测量模拟电压输入部分1414 3.3.晶振电路晶振电路.1515 五五. .软件设计软件设计.1515 5.15.1 汇编流程图汇编流程图.1515 1.1.主汇编流程图主汇编流程图.1515 2.a/d2.a/d 转换测量程序转换测量程序.1717 2 3.3.显示程序流程图显示程序流程图.1818 5.25.2 汇编程序清单汇编程序清单.1818 5.35.3 程序说明程序说明.2121 六六. .调试仿真调试仿真.2222 七七. .设计总结与致谢设计总结与致谢.2323 八八. .参考文献参考文献.2424 3 概述概述 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为 经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成 为一种必不可少的测量仪器。数字电压表简称 dvm,它是采用数字化测量技术,把连续的 模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确 方便、精度高、误差小、测量速度快等特而得到广泛应用1。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满 足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连 续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便, 还可与 pc 实时通信。数字电压表是诸多数字化仪表的核心与基础2。以数字电压表为核 心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由 各种单片机和 a/d 转换器构成的数字电压表作全面深入的了解是很有必要的。 最近的几十年来,随着半导体技术、集成电路(ic)和微处理器技术的发展,数字电 路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现 新的类型4。数字电压表从 1952 年问世以来,经历了不断改进的过程,从最早采用继电 器、电子管和形式发展到了现在的全固态化、集成化(ic 化) ,另一方面,精度也从 0.01%-0.005%。 目前,数字电压表的内部核心部件是 a/d 转换器,转换的精度很大程度上影响着数字 电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面3。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模 块、数据处理模块及显示模块。其中,a/d 转换采用 adc0808 对输入的模拟信号进行转换, 控制核心 at89c52 再对转换的结果进行运算处理,最后驱动输出装置 led 显示数字电压信 号11。 4 一一. . 设计目的与功能要求设计目的与功能要求 1.11.1 设计目的设计目的 利用单片机及 adc0808 核心元件制作 4 位数字电压表,更好地学习掌握 adc0808 的工 作原理及 a/d 的转换编程方法。 1.21.2 功能要求功能要求 以 mcs-52 系列单片机为核心器件,组成一个实时模拟数字电压表。 采用 1 路模拟量输入,能够测量 0-5v 之间的直流电压值。 电压显示用 4 位一体的 led 数码管显示,至少能够显示两位小数。 尽量使用较少的元器件。 1.31.3 设计思路设计思路 根据设计要求,选择 at89c52 单片机为核心控制器件。 a/d 转换采用 adc0808 实现,与单片机的接口为 p1 口和 p2 口的高四位引脚。 电压显示采用 4 位一体的 led 数码管。 led 数码的段码输入,由并行端口 p0 产生:位码输入,用并行端口 p2 低四位产生 二二. .总体设计总体设计 2.12.1 系统设计系统设计 主要分为两部分:硬件电路及软件程序。硬件电路包括:单片机及外围电路,模拟信 号采集电路,a/d 转换电路,数码管显示电路,各部分电路的衔接。软件的程序可采用 c 语言或汇编,这里采用汇编语言,详细的设计思路在后面介绍。 2.22.2 设计方案设计方案 数字电压表的设计方案很多,但采用集成电路来设计较流行。其设计主要是由模拟电 路和数字电路两大部分组成,模拟部分包括 a/d 转换器,基准电源等;数字部分包括振荡器, 数码显示,计数器等。其中,a/d 转换器将输入的模拟量转换成数字量,它是数字电压表 的一个核心部件,对它的选择一般有两种选择方案: 1.采用双积分 a/d 转换器 mc14433,它有多路调制的 bcd 码输出端和超量程输出端, 采用动态扫描显示,便于实现自动控制。但芯片只能完成 a/d 转换功能,要实现显示功能 5 振荡器、时序脉冲振荡器、时序脉冲 还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接 的工作。 2. 逐次逼近式 a/d 转换器。它的转换速度更快,而且精度更高,比如 adc0808、adc0809 等,它们通常具有 8 路模拟选通开关及地址译码、锁存电路等,它们可 以与单片机系统连接,将数字量送单片机进行分析和显示。这样电路设计简单,电路板布 线不复杂,便于焊接、调试。这里采用这种方案。 显示部分可以采用各类数码管或用 lcd 显示器显示。在此简化采用 4 位八段共阴极数 码管对 a/d 转换变换后的结果加以显示。 2.32.3 总体设计框图总体设计框图 采采 集集 单单 片片 机机 a/d 转换器转换器 adc0808 外界模拟信号外界模拟信号 数字信号数字信号量程变换处理量程变换处理 四位八段共阴极数码管四位八段共阴极数码管 置置 入入 预先写好的汇预先写好的汇 编程序编程序 显示出模拟电压显示出模拟电压 的数值的数值 6 三设计原理图三设计原理图 7 四四. .硬件电路设计硬件电路设计 4.14.1 核心元器件介绍核心元器件介绍 4.1.14.1.1 芯片介绍芯片介绍 1.1.单片机单片机 at89c52at89c52 介绍介绍 a.a.芯片引脚图:芯片引脚图: b.b. 描述:描述: at89c52 只是 51 系列单片机的一个型号,at89c52 是美国 atmel 公司生产的低电压、 高性能 cmos 8 位单片机,片内含 8kb 的可反复檫写的程序存储器和 12b 的随机存取数据存 储器(ram),器件采用 atmel 公司的高密度、非易失性存储技术生产,兼容标准 mcs-51 指令系统,片内配置通用 8 位中央处理器(cpu)和 flash 存储单元,功能强大的 at89c52 单片机可灵活应用于各种控制领域。at89c52 单片机属于 at89c51 单片机的增强型,与 intel 公司的 80c52 在引脚排列、硬件组成、工作特点和指令系统等方面兼容。at89c52 单 片机在电子行业中有着广泛的应用。 8 c.c.主要特性:主要特性: 片内程序存储器内含8kb的flash程序存储器,可擦写寿命为1000次; 片内数据存储器内含256字节的ram; 具有32根可编程i/o口线; 具有3个可编程定时器; 中断系统是具有8个中断源 6个中断矢量 2个级优先权的中断结构; 串行口是具有一个全双工的可编程串行通信口; 具有一个数据指针dptr; 低功耗工作模式有空闲模式和掉电模式; 具有可编程的3级程序锁定位; at89c52工作电源电压为5(1+0.2)v,且典型值为5v; at89c52最高工作频率为24mhz。 d.d. 引脚描述引脚描述 vcc:电源电压 gndgnd:地 p0p0 口:口:p0 口是一个 8 位漏极开路的双向 i/o 口。作为输出口,每位能驱动 8 个 ttl 逻 辑电平。对 p0 端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时, p0 口也被作为低 8 位地址/数据复用。在这种模式下, p0 具有内部上拉电阻。 在 flash 编程时,p0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要 外部上拉电阻。 p1p1 口:口:p1 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p1 输出缓冲器能驱动 4 个 ttl 逻辑电平。对 p1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口 使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil) 。 此 外,p1.0 和 p1.2 分别作定时器/计数器 2 的外部计数输入(p1.0/t2)和时器/计数器 2 的 触发输入(p1.1/t2ex) 。 在 flash 编程和校验时,p1 口接收低 8 位地址字节。 9 引脚号第二功能引脚号第二功能 p1.0p1.0 t2(定时器/计数器 t2 的外部计数输入) ,时钟输出 p1.1p1.1 t2ex(定时器/计数器 t2 的捕捉/重载触发信号和方向控制) p1.5p1.5 mosi(在系统编程用) p1.6p1.6 miso(在系统编程用) p1.7p1.7 sck(在系统编程用) p2p2 口:口:p2 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出缓冲器能驱动 4 个 ttl 逻辑电平。对 p2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口 使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil) 。 在 访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行 movx dptr) 时,p2 口送出高八位地址。在这种应用中,p2 口使用很强的内部上拉发送 1。在使用 8 位地址 (如 movx ri)访问外部数据存储器时,p2 口输出 p2 锁存器的内容。 在 flash 编程和校 验时,p2 口也接收高 8 位地址字节和一些控制信号。 p3p3 口:口:p3 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出缓冲器能驱动 4 个 ttl 逻辑电平。对 p3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口 使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil) 。 p3 口亦作为 at89s52 特殊功能(第二功能)使用。 端口引脚 第二功能 端口引脚第二功能 p3.0rxd p3.1txd p3.2int0 p3.3int1 p3.4t0 p3.5t1 p3.6wr 10 p3.7rd p3 口还接收一些用于闪烁存储器编程和程序校验的控制信号。 rstrst:复位输入。当震荡器工作时,ret 引脚出现两个机器周期以上的高电平将使单片机 复位。 ale/ale/:当访问外部程序存储器或数据存储器时,ale 输出脉冲用于锁存地址的低 8 prog 位字节。即使不访问外部存储器,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:震荡器反相放大器的输出端。 时钟震荡器时钟震荡器: :at89c52中有一个用于构成内部震荡器的高增益反相放大器,引脚xtal1和 xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶 瓷谐振器一起构成自然震荡器。 外接石英晶体及电容c1,c2接在放大器的反馈回路中构成 并联震荡电路。对外接电容c1,c2虽然没有十分严格的要求,但电容容量的大小会轻微影 响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英 晶体,我们推荐电容使用30pf10pf,而如果使用陶瓷振荡器建议选择40pf10pf。用户 也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到xtal1 端,即内部时钟发生器的输入端,xtal2则悬空。由于外部时钟信号是通过一个2分频触发 器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持 续时间和最大的低电平持续时间应符合产品技术条件的要求。 11 电路内部振荡 外部振荡电路 2.adc08082.adc0808 芯片芯片 a.a.引脚图:引脚图: b.b. 主要特性主要特性 1)8 路输入通道,8 位 ad 转换器,即分辨率为 8 位。 12 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 路模拟输入中的一路 aleale:地址锁存允许信号,输入,高电平有效。 startstart: ad 转换启动脉冲输入端,输入一个正脉冲(至少 100ns 宽)使其启动(脉 冲上升沿使 0809 复位,下降沿启动 a/d 转换)。 eoceoc: ad 转换结束信号,输出,当 ad 转换结束时,此端输出一个高电平(转换期 间一直为低电平)。 oeoe:数据输出允许信号,输入,高电平有效。当 ad 转换结束时,此端输入一个高电平, 才能打开输出三态门,输出数字量。 clkclk:时钟脉冲输入端。要求时钟频率不高于 640khz。 refref(+ +) 、refref(- -):):基准电压。 vccvcc:电源,单一5v。 gndgnd:接地。 13 4.1.24.1.2 其它电路部分简介其它电路部分简介 1.1.显示电路显示电路 1.四位八段共阴极数码管 这种数码管可显示 4 位值,每位由 8 个发光二极管(以下简称字段)即 a、b、c、d、e、f、g、dp 字段构成,通过控制不同的 led 的亮灭的不同组合可用来显示 数字 09 及小数点“”。数码管又分为共阴极和共阳极两种结构。 结构和接法分别如下图: 2. 静态显示方式 直接利用并行口输出。led 显示工作于静态显示方式时,各位的共阴极连接 在一起接地;每位的段选线分别于一个 8 位的锁存输出相连。一般称之为静态显 示,是由于显示器中的各位相互独立。而且各位的显示字符一经确定,相应锁存 器的输出将维持不变,直到显示另一个字符为止。 3. 动态显示方式 14 对多位 led 显示器的动态显示,通常都时采用动态扫描的方法进行显示, 即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但 是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点 亮一样。 4.显示电路: 2.2. a/da/d 转换测量模拟电压输入部分转换测量模拟电压输入部分 a/d 转换的常用方法有:计数式 a/d 转换,逐次逼近型 a/d 转换,双 积分式 a/d 转换, v/f 变换型 a/d 转换。在这些转换方式中,记数式 a/d 转换线路比较简单,但转换速度较慢,所以现在很少应用。双积分式 a/d 转换 精度高,多用于数据采集及精度要求比较高的场合,如 5g14433(31/2 位) , ad7555(41/2 位或 51/2 位)等,但速度更慢。逐次逼近型 a/d 转换既照顾了 转换速度,有具有一定的精度,这里选用的是逐次逼近型的 a/d 转换芯片 adc0808。采用中断控制的方式实现,不浪费时间,效率较高。 这里设计将实际的模拟信号采集电路简化成一个分压电路模型如下图所示 15 分压电路模型 3.3.晶振电路晶振电路 晶振电路用于产生单片机工作所需的时钟信号,使用晶体震荡器时,c2,c3 取值 2040pf,使用陶瓷震荡器时 c1 擦取值 3050pf。在设计电路板时,晶振和电容应尽量靠 近芯片,以减小分布电容,保证震荡器的稳定性。18 引脚接 xtal1,19 引脚接 xtal2,20 引脚接地 五五. .软件设计软件设计 5.15.1 汇编流程图:汇编流程图: 1.1.主汇编流程图:主汇编流程图: 16 开始开始 系统初始化系统初始化 启动启动 a/d 转换转换 采集采集 a/d 转换值转换值 数据转换数据转换 调用显示调用显示 四位是否显示完?四位是否显示完?完?完? 读电压值读电压值 y y n n endend 主程序流程图主程序流程图 转换结束?转换结束? y n 17 2.a/d2.a/d 转换测量程序转换测量程序 开始开始 启动转换启动转换 读取数据读取数据 0808 地址加地址加 1 小于小于 ffff? 结束结束 中断请求中断请求 中断服务中断服务 y n n a/d 转换测量程序流程图 18 3.3.显示程序流程图显示程序流程图 读取判断单元读取判断单元 显示通道显示通道 号号 显示电压显示电压 整数部分整数部分 显示电压显示电压 小数部分小数部分 返回返回 开始程序开始程序 32h30h31h 显示程序流程图 5.25.2 汇编程序清单汇编程序清单 led_0 equ 30h;存放三个数码管的段码 led_1 equ 31h led_2equ 32h adc equ 35h;存放 ad 转换后的数据 st bit p3.2 oe bit p3.0 19 eoc bit p3.1 org 0000h ljmpmain org 0030h main:mov led_0,#00h ;给显示赋初值 0 mov led_1,#00h mov led_2,#00h setb p3.4 setb p3.5 clr p3.6;选择通道 3 wait: clr st setb st clr st;启动 ad 转换 jnb eoc,$;等待转换结束 setb oe;允许输出 mov adc ,p1;暂存转换结果 clr oe;关闭输出 lcall convert;调用数据处理子程序 lcall display;调用显示程序,显示转换的值 sjmp wait ;* ;将 ad 转换输出的数据转换成相应的电压值 ;* convert:mova,adc;将 ad 转换结果转换成 bcd 码 mov b,#51;255/51=5.00v div ab mov led_2,a;个位数字存入 led_2 中 mov a,b;余数大于 19h,f0 为 1 乘法溢出,结果加 5 clr f0 subb a,#1ah mov f0,c mov a, #10 mul ab mov b,#51 div ab jb f0,loop2 add a,#5 loop2:mov led_1,a;小数后的第一位存入 led_1 中 mov a,b clr f0 subb a,#1ah mov f0,c mov a,#10 mul ab 20 mov b,#51 div ab jb f0,loop3 add a,#5 loop3:mov led_0,a;小数后的第二位存入 led_0 中 ret ;* ; 显示程序 ;* display:mova,led_0;数码显示子程序 mov dptr,#table ;送段码表首地址 movc a,a+dptr setb p2.3;允许百位输出,该数码管为共阳极形 mov p0,a;将位段码送给 p0 口 lcall delay;调用延时程序 clr p2.3;关闭百位显示 mov a,led_1 mov dptr,#table ;送段码表首地址 movc a,a+dptr setb p2.2;允许十位输出,该数码管为共阳极形 mov p0,a;将位段码送给 p0 口 lcall delay;调用延时程序 clr p2.2;关闭十位显示 mov a,led_2 mov dptr,#table2 ;送段码表首地址 movc a,a+dptr setb p2.1;允许个位输出,该数码管为共阳极形 mov p0,a;将位段码送给 p0 口 lcall delay ;调用延时程序 clr p2.1;关闭个位显示 mov a,#00 mov dptr,#table movc a,a+dptr setb p2.0 mov p0,a lcall delay clr p2.0 ret ;* ; 延时程序 21 ;* delay:mov r6,#10;延时子程序 d1: mov r7,#250 djnz r7,$ djnz r6,d1 ret table:db 0c0h,0f9h,0a4h,0b0h,99h db 92h, 82h,0f8h, 80h,90h;共阳极 09 十个段码 table2:db

温馨提示

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

评论

0/150

提交评论