5V简易数字电压表设计_第1页
5V简易数字电压表设计_第2页
5V简易数字电压表设计_第3页
5V简易数字电压表设计_第4页
5V简易数字电压表设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

PAGE21摘要根据8051单片机的内部结构特点本文提出以MCS-51单片机为核心的电压测量系统。该系统以8051和ADC0809核心内件,能够在单片机的控制下监测八路的输入电压值,用8位串行A/D转换器进行0-5V量程自动转换,并且测量的电压值可通过三位数码管显示同时用一位数码管显示选择通道。整个系统的设计过程中主要采用了模块化的设计方法,完成了硬件电路的设计及软件程序的编写,还详细的给出了相关的硬件框图和软件流程图,通过最终硬件电路的调试,使该系统能够在要求的条件下达到正常的测量及显示功能。单片机8051是整个系统的核心,实现输入端的分路选择,模数转换后数据的处理及在数码管上数据的显示等功能。正文着重给出了软硬件系统的各部分电路,介绍了该系统的工作原理,MCS-51单片机特点,8051的功能和应用,ADC0809的功能和应用等。关键词:MCS-51单片机;8051;ADC0809;数码管 目录1硬件设计 11.1单片机件简介 11.1.18031芯片 11.1.28051芯片 11.1.38751芯片 11.28051单片机简介 21.2.1中央处理器 21.2.2数据存储器(RAM) 21.2.3程序存储器(ROM) 31.2.4定时/计数器(ROM) 31.2.5并行输入输出(I/O)口 31.2.6全双工串行口 31.2.7中断系统 31.2.8时钟电路 31.3引脚极其功能 41.3.1电源引脚Vcc和Vss 41.3.2外接晶振引脚XTAL1和XTAL2 41.3.3控制信号或与其它电源复用引脚 41.3.4输入/输出(I/O)引脚P口 51.4ADC0809芯片简介 61.4.1主要特性 71.4.2内部结构 71.4.3外部特性(引脚功能) 71.58051中断系统 81.5.18051单片机中断系统中的五个中断源 81.5.28051中断系统的4个特殊功能寄存器 91.5.3中断的优先排队与嵌套 91.5.4MCS-51中断系统的初始化 91.5.5各中断源与之对应的中断服务程序矢量地址如图示 91.5.6LED工作原理 101.6数字电压表的原理结构 121.6.1数据采集接口电路 121.6.2LED显示电路 122软件设计 132.1流程图 132.2程序设计 173设计总结 18参考文献 19附录A 20附录B 23附录C 241硬件设计1.1单片机件简介MCS51系列单片机包括三个基本型8031、8051、87511.1.18031芯片8031内部包括一个8位CPU、128个字节RAM,21个特殊功能寄存器(SFR)、4个8位并行I/O口、1个全双工串行口、2个16位定时器/计数器,但片内无程序存储器,需外扩EPROM芯片。1.1.28051芯片8051是在8031的基础上,片内集成有4KROM,作为程序存储器,是一个程序不超过4K字节的小系统。ROM内的程序是公司制作芯片时,代为用户烧制的,出厂的8051都是含有特殊用途的单片机。所以8051适合与应用在程序已定,且批量大的单片机产品中。1.1.38751芯片8751是在8031基础上,增加了4K字节的EPROM,它构成了一个程序小于4KB的小系统。用户可以将程序固化在EPROM中,可以反复修改程序。但其价格相对8031较贵。8031外扩一片4KBEPROM的就相当与8751,它的最大优点是价格低。随着大规模集成电路技术的不断发展,能装入片内的外围接口电路也可以是大规模的。下图是MCS-51系列单片机的内部结构:图1.1MCS-51单片机内部结构图1.2MCS-51内部结构框图1.28051单片机简介8051单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上[2]。如果按功能划分,它由如下功能部件组成,即中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口、中断系统和时种电路,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。1.2.1中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。1.2.2数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。1.2.3程序存储器(ROM) 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。1.2.4定时/计数器(ROM)8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。1.2.5并行输入输出(I/O)口8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。1.2.6全双工串行口8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。1.2.7中断系统8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。1.2.8时钟电路8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序但8051单片机需外置振荡电容。由上可见,8051单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。1.3引脚极其功能图1.380C51的管脚图MCS—51系列单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4个部分叙述个引脚的功能。1.3.1电源引脚Vcc和VssVcc(40脚):接+5V电源正端。Vss(20脚):接+5V电源正端。1.3.2外接晶振引脚XTAL1和XTAL2XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。1.3.3控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。1、RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。图1.4上电自动复位图1.5手动复位电路图1.6内部时钟方式图1.7外部时钟方式2、ALE/P(30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低3、PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。4、EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS—52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。1.3.4输入/输出(I/O)引脚P口1、P0口(39脚~22脚),P0.0~P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。2、P1口(1脚~8脚),P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。3、P2口(21脚~28脚),P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。4、P3口(10脚~17脚),P3.0~P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见下表表1.1单片机P3.0管脚含义引脚第2功能P3.0RXD(串行口输入端0)P3.1TXD(串行口输出端)P3.2INT0(部中断0请求输入端,低电平有效)P3.3INT1(中断1请求输入端,低电平有效)P3.4T0(时器/计数器0计数脉冲端)P3.5T1(时器/计数器1数脉冲端)P3.6WR(部数据存储器写选通信号输出端,低电平有效)P3.7RD(部数据存储器读选通信号输出端,低电平有效)综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点:1、单片机功能多,引脚数少,因而许多引脚具有第2功能;2、单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。1.4ADC0809芯片简介ADC0809是一种8路模拟输入8路数字输出的逐次比较型A/D转换器。目前在8位单片机系统中有着广泛的使用。ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8个单断模拟输入信号中的一个进行A/D转换。图1.8ADC0809芯片的内部逻辑结构与引脚图图1.8ADC0809芯片的内部逻辑结构与引脚图1.4.1主要特性1、8路8位A/D转换器,即分辨率8位。

2、具有转换起停控制端。

3、转换时间为100μs。4、单个+5V电源供电。

5、模拟输入电压范围0~+5V,不需零点和满刻度校准。

6、工作温度范围为-40~+85摄氏度。7、低功耗,约15mW。1.4.2内部结构ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8位模拟开关、地址锁存与译码器、比较器、8位开关输入A/D转换器、逐次逼近。1.4.3外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能。

1、IN0~IN7:8路模拟量输入端。

2、2-1~2-8:8位数字量输出端。

3、ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路

4、ALE:地址锁存允许信号,输入,高电平有效。

5、START:A/D转换启动信号,输入,高电平有效。

6、EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

7、OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

8、CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。

9、REF(+)、REF(-):基准电压。0、Vcc:电源,单一+5V,GND:地。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。表1.2通道选择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN71.58051中断系统1.5.18051单片机中断系统中的五个中断源1、INT0:外部中断0请求,低电平有效。2、INT1:外部中断1请求,低电平有效。3、T0:定时/计数器0溢出中断请求。4、T1:定时/计数器1溢出中断请求。5、TX/RX:串行口通信中断请求,当串行口完成一帧数据的发送或接受时,便请求中断。1.5.28051中断系统的4个特殊功能寄存器1、定时计数控制器TCON2、串行口控制器SCON3、中断允许控制器IE4、中断优先控制器IP1.5.3中断的优先排队与嵌套1、中断的优先排队。自然优先级排列由高到低的顺序:外部中断0、定时/计数器0溢出中断、外部中断1、定时/计数器1溢出中断、串行口中断。2、中断嵌套。CPU在响应中断时,先处理高级中断,再处理低级中断,若有多个同级中断请求时,则按自然优先级顺序处理。1.5.4MCS-51中断系统的初始化1、设定所有中断源的中断优先级;2、若为外部中断,应规定低电平出发还是边沿出发方式;3、开相应中断源中断。1.5.5各中断源与之对应的中断服务程序矢量地址如图示表1.3中断源及对应的矢量地址中断源中断矢量地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H1.5.6LED工作原理LED显示是用发光二极管显示字段的显示器件,也可称为数码管,其外形结构如图所示,由图可见它由8个发光二极管构成,通过不同的组合可用来显示0~9、A~F及小数点。图1.9管脚配置图1.10共阴极图1.11共阳极LED显示器分为共阴极和共阳极,共阴极是将8个发光二极管阴极连接在一起作为公共端,而共阳极是将8个发光二极管的阳极连接在一起作为公共端。如图1.7.2所示,LED显示器有静态和动态显示两种方式,静态显示是将共阴极联到一起接地,每位的显示段(a-dp)分别与一个8位的锁存器输出相连。由于显示的各位可以相互独立,各位可以互相显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。并且由于各位由一个8位锁存器控制段选线,故在同一时间内每一位显示的字符可以不同。这种方式占用锁存器较多。动态显示是将所有位的段选线相应的并联在一起,由一个8位的I/O口控制,形成段选线的多路复用。而各位的阴极分别由相应的I/O口控制,实现各位的分时选通。要LED能够显示相应的字符,就必须采用动态扫描方式,只要每位显示的时间足够短,则可造成多位同时显示的假象,达成显示的目的。在数字电路中常常要把数据或运算结果通过半导体数码管、液晶数码和荧光数码管,用十进制数显示出来。发光二极管的工作电压为1.5V-3.0V,工作电流为己毫安到几十毫安,寿命很长。半导体数码管将十位数分成七个字段,每段为一个发光二极管,其字形结构如图1.7.2所示,选择不同的字段发光,可显示出不同的字型。共阳极:把发光二极管的阳极连在一起构成共阳极。使用时公共端接Vcc,当某阳极为低电平时,该发光二极管就导通发光。输出一个段码就可以控制LED显示器的字型,表1.4给出了段码与字型的关系,假定a、b、c、d、e、f、g、DP分别对应D0、D1、D2、D3、D4、D5、D6、D7。表1.4段码与字型的关系段码D7DPD6gD5FD4eD3dD2cD2bD0a字形3FH00111111006H0000001015BH0101101124FH01001111366H0110011046DH0110110157DH01111101607H0000011177FH0111111186FH0110111191.6数字电压表的原理结构1.6.1数据采集接口电路图1.12数据采集接口电路1.6.2LED显示电路图1.13数码管显示电路2软件设计2.1流程图DELAY子程序:开始开始R7=#0FHR6=#0FFHR6-1=DL2?R7-1=DL1?返回NYNY图2.1DELAY子程序流程图GETAD子程序:DPH=DPH_BUFDPH=DPH_BUF(AD_BUF)=AA=(DPTR)DPH_BUF=ADCH1DPH_BUF=DPH_BUF+1开始AD_CNT=1?AD_CNT=8返回NY图2.2GETAD子程序电压变换子程序:A=AD_BUFA=AD_BUFCF_B_H=BDIS_BUF2=CF_S_LCF_C_H=CF_Y_HCF_C_LH=CF_Y_LHCF_B_H=CF_Y_HCF_B_L=CF_Y_LCF_C_H=#00HCF_C_L=#64HDIS_BUF=CF_S_LCF_B_L=A开始DIV16CF_C_H=#27HCF_C_L=#10返回图2.3变换电压变换子程序流程图主程序流程图:倍数=40倍数=40TH0=#030HTL0=#0B0H启动中断T0方式1(DPTR)=AA=#0FFHDPL=#00HDPH=#WEI初始化:DIS_BUF1=#88DIS_BUF2=#88开始CHAIFENDIS8中断子程序GETAD变换电压子程序显示子程序结束图2.4主程序流程图2.2程序设计系统工作原理:当从表笔给ADC0809输入一个0V-5.0V的电压值,经模数转换后输出一个八位二进制数,并将数值传入8051芯片内在经2803芯片在数码管显示出电压值。中断服务程序:CH_TRANS: MOVTH0,#03CH MOVTL0,#0B0H DJNZ BEISHU, T0_OUT MOV BEISHU, #40 LCALL GETAD RETI拆分:XS_CHAIFEN:MOVA,DIS_BUFMOVB,#10DIVABMOV31H,AMOV30H,BRET变换电压子程序:CONVERT: MOV A, AD_BUF MOV CF_B_H, B MOV CF_B_L, A MOV CF_C_H, #27H MOV CF_C_L, #10H;10000 LCALL DIV16 MOV DIS_BUF2, CF_S_L MOV CF_B_H, CF_Y_H MOV CF_B_L, CF_Y_L MOV CF_C_H, #00H MOV CF_C_L, #64H;100 LCALL DIV16 MOV DIS_BUF1, CF_S_L RET3设计总结通过三周的课程设计,使我深刻地认识到学好专业知识的重要性,加深了对单片机理论的理解,也理解了理论联系实际的含义,并且检验了自己在大二下学期学习的单片机知识。也使我认识到我对单片机方面的知识了解太少,对于书本上的很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,虽然在这次设计中对于知识的运用和衔接还不够熟练,我会在以后的学习生活中弥补我的不足。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识很好地应用到实际生活当中去。这个课题虽然看似很简单,但是实际上挺难,对我们的实际动手能力是一个相当大的考验,这也对我们今后的工作敲响了警钟:掌握基础知识,且不能眼高手低。这三周的课程设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的简易数字电压表的设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,更好地处理所遇到的问题,使自己适应于以后的竞争。

参考文献[1]张有德.单片微型机原理、应用与实验.上海:复旦大学出版社,2000.[2]何立民.单片机应用系统设计.北京:北京航空航天大学出版社,2000.[3]李光飞.单片机课程设计实例指导.北京:北京航空航天大学出版社,2004.[4]雷思孝,冯育长.单片机系统设计及工程应用.西安:西安电子科技大学出版社,2005.[5]张俊谟.单片机中级教程原理与应用.北京:北京航空航天大学出版社,2002. 附录A程序清单:WEI EQU 80HADCH1 EQU 70HDUAN EQU 0CHDPH_BUF DATA 38H;DPH缓冲DISCNT DATA 39H;用于显示计数WEI_BUFDATA 40H;位扫描暂存AD_CNT DATA 41H;用于通道计数AD_BUF DATA 42H;用于转换值暂存DIS_BUF1 DATA 43HDIS_BUF2 DATA 44HCF_B_H DATA 45HCF_B_L DATA 46HCF_C_H DATA 47HCF_C_L DATA 48HCF_S_H DATA 49HCF_S_L DATA 4AHCF_Y_H DATA 4BHCF_Y_L DATA 4CHDIG0DATA 30HDIG1DATA 31HDIG2DATA 32HDIG3DATA 33HRUNLED BIT P1.2;端口定义ORG 0000HLJMP MAINORG000BHLJMP CH_TRANSORG 0100HMAIN: MOVDIS_BUF1,#88 MOVDIS_BUF2,#88 LCALL CHAIFEN MOV DPL, #00H MOV DPH, #WEI MOV A, #0FFH MOVX @DPTR, AMOVTMOD,#01H ;启动t0定时器F方式1,产生50毫秒定时 MOVTH0,#03CH MOVTL0,#0B0H MOVBEISHU, #40;定时时间是2s。 MOVDPH_BUF, #ADCH1 MOV AD_CNT, #8 M_LOP: LCALL DIS8 LJMPM_LOPCH_TRANS:;中断子程序 MOVTH0,#03CH;赋初值 MOVTL0,#0B0H DJNZ BEISHU, T0_OUT MOV BEISHU, #

温馨提示

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

评论

0/150

提交评论