《单片机课程设计数字电压表.docx》由会员分享,可在线阅读,更多相关《单片机课程设计数字电压表.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机课程设计数字电压表 单片机课程设计 电压表的设计 学院:信息工程学院 专业:电子信息科学与技术 班级:2022150 学号:202215002 姓名:王冬冬 同组同学:凡俊兴 202215001 目录 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的引
2、脚及功能介绍 (7) 3.5.1芯片概述 (7) 3.5.2 引脚简介 (8) 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) 参考文献 (14) 附录1 源
3、程序 (15) 附录2原理电路 (19) 1 引言 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用1。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,
4、从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础2。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。 最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型4。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC 化),另一方面,精度也从0.01%-
5、0.005%。 目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面3。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号 2设计原理及要求 本设计是利用单片机AT89C51与ADC0809设计一个数字电压表,测量05V之间的直流电压值,四位数码显示。 2.1数字电压表的实现原理 ADC0809是8
6、位的A/D转换器。当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196(5/255)。ADC0809具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8 路输入电压进行测量。LED 数码管显示采用软件译码动态显示。通过按键选择可对8路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。 2.2数字电压表的设计要求 可以测量05V范围内的3路直流电压值。在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V5.00V,1位L
7、ED数码管显示路数,3路分别为0-2。要求测量的最小分辨率为0.02V。 3软件仿真电路设计 3.1设计思路 多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0808的CLK直接由外部电源提供为500kHz的方波。由于ADC0809的参考电压VREFVCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF) ADC0808采用逐次逼近法转换,把模拟电压转换成16进制的D,由于是对直流电压05V进行采集,所以D对应的电压为V0 ,我们的目的就
8、是要把V0显示在LED显示器上,因为单片机不好进行小数点计算,所以有:V0=2*D扩大了100倍,扩大100倍后的结果高八 位放寄存器B,低八位放寄存器A,分寄存器B为0或不为0的情况进行存取数据,得到的结果个位放入R0,十位放入R1,通过查表使之显示在LED显示器。 3.2仿真电路图 用Protues软件仿真设计的电路如图3-1所示。 图3-1 仿真电路 3.3设计过程 系统结构框图 系统采用12M 晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。利用中断设置单片机的P2.4口取反产生脉冲做AT89C51的时钟信号。通过按键选择八路通道中的一路,将
9、该路电压送入ADC0809相应通道,单片机软件设置ADC0809开始A/D 转换,转换结束ADC0809的EOC 端口产生高电平,同时将ADC0809的EO 端口置为高电平,单片机将转换后结果存到片内RAM 。系统调出显示子程序,将保存结果转化为0.00-5.00V 分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED 显示电路,将相应电压显示出来,程序进入下一个循环 3.4 AT89C51的功能介绍 3. 4.1简单概述 AT89C51是一种带4K 字节闪存可编程可擦除只读存储器(FPEROM Flash Programmable and Erasable Read On
10、ly Memory )的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3-2所示。 时钟电路 复位电路 单 片 机 LED 显示电路 A/D 转换
11、测量电压输入电路 图3-2 AT89C51芯片模型 3.4.2主要功能特性 (1) 4K 字节可编程闪烁存储器。 (2) 32个双向I/O 口;1288位内部RAM 。 (3) 2个16位可编程定时/计数器中断,时钟频率0-24MHz 。 (4) 可编程串行通道。 (5) 5个中断源。 (6) 2个读写中断口线。 (7) 低功耗的闲置和掉电模式。 (8) 片内振荡器和时钟电路。 3.4.3 AT89C51的引脚介绍 89C51单片机多采用40只引脚的双列直插封装(DIP)方式,下面分别简单介绍。 (1)电源引脚 电源引脚接入单片机的工作电源。 Vcc(40引脚):+5V 电源。 GND(20引
12、脚):接地。 XTAL2 18 XTAL1 19 ALE 30EA 31PSEN 29RST 9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78 P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT1 13P3.4/T 014P3.7/RD 17 P3.6/WR 16P3.5/T 115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1
13、124P2.4/A1225P2.5/A1326P2.6/A1427U1 AT89C51 (2)时钟引脚 XTAL1(19引脚):片内振荡器反相放大器和时钟发生器电路的输入端。 XTAL2(20引脚):片内振荡器反相放大器的输出端。 图3-3 电源接入方式 (3)复位RST(9引脚) 在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。 (4)EA/Vpp(31引脚) EA为外部程序存储器访问允许控制端。当它为高电平时,单片机读片内程序存储器,在PC值超过0FFFH后将自动转向外部程序存储器。当它为低电平时,只限定
14、在外部程序存储器,地址为0000HFFFFH。Vpp为该引脚的第二功能,为编程电压输入端。 (5)ALE/PROG(30引脚) ALE为低八位地址锁存允许信号。在系统扩展时,ALE的负跳沿江P0口发出的第八位地址锁存在外接的地址锁存器,然后再作为数据端口。PROG为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。 (6)PSEN(29引脚) 片外程序存储器的读选通信号。在单片机读片外程序存储器时,此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。 (7) pin39-pin32为P0.0-P0.7输入输出脚,称为P0口。 P0是一个8位漏极开路型双向I/O口。内部不带上拉电
15、阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。通常在使用时外接 上拉电阻,用来驱动多个数码管。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。 (8)Pin1-Pin8为P1.0-P1.7输入输出脚,称为P1口,是一个带内部上拉电阻的8位双向I/0口。P1口能驱动4个LSTTL负载。 (9)Pin21-Pin28为P2.0-P2.7输入输出脚,称为P2口。 P2口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时
16、,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。 (10)Pin10-Pin17为P3.0-P3.7输入输出脚,称为P3口。 P3口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接控制信息。 3.5 ADC0809的引脚及功能介绍 3.5.1芯片概述 ADC0809是一种典型的A/D转换器。它是由8位A/D转换器,一个8路模拟量开关,8位模拟量地
17、址锁存译码器和一个三态数据输出锁存器组成;+5V 单电源供电,转化时间在100us左右;内部没有时钟电路,故需外部提供时钟信号。芯片模型如图3-4所示。 图3-4ADC0808芯片模型 3.5.2 引脚简介 (1) IN0IN7:8路模拟量输入端。 (2) D0D7:8位数字量输出端口。 (3) START:A/D转换启动信号输入端。 (4) ALE:地址锁存允许信号,高电平有效。 (5) EOC:输出允许控制信号,高电平有效。 (6) OE:输出允许控制信号,高电平有效。 (7) CLK:时钟信号输入端。 (8)A、B、C:转换通道地址,控制8路模拟通道的切换。A、B、C分别与地址线或数据线
18、相连,三位编码对应8个通道地址端口,A、B、C=000111分别对应IN7IN0通道的地址端口。 3.5.3 ADC0809的转换原理 ADC 0809 采用逐次比较的方法完成A/D转换,由单一的+5V电源供电。片内带有锁存功能的8路选1的模拟开关,由A、B、C的编码来决定所选的通道。ADC0809完成一次转换需100s左右,它具有输出TTL三态锁存缓冲器,可直接连接到AT89C51的数据总线上。通过适当的外接电路,ADC0809可对05V 的模拟信号进行转换。 3.6 74LS373芯片的引脚及功能 3.6.1芯片概述 74LS373是一种带有三态门的8D锁存器,其在本设计中是锁存P0口的低8位地址,芯片模型如图3-5所示。