基于单片机的数字电能表设计(共40页)

上传人:n85ho7****4h85bh 文档编号:52224994 上传时间:2022-02-07 格式:DOC 页数:41 大小:998.50KB
收藏 版权申诉 举报 下载
基于单片机的数字电能表设计(共40页)_第1页
第1页 / 共41页
基于单片机的数字电能表设计(共40页)_第2页
第2页 / 共41页
基于单片机的数字电能表设计(共40页)_第3页
第3页 / 共41页
资源描述:

《基于单片机的数字电能表设计(共40页)》由会员分享,可在线阅读,更多相关《基于单片机的数字电能表设计(共40页)(41页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上 毕业设计(论文) 题目名称:基于单片机的数字电能表设计就读学校:河南工学院专 业:工业自动化学生姓名:指导教师: 中原工学院继续教育学院2016年4月论文编号:3 基于单片机的数字电能表设计The design of digital watt-hour meter based on single chip microcomputer就读学校:河南工学院专 业:工业自动化学生姓名:指导教师: 2016年4月专心-专注-专业摘 要19世纪三四十年代,中国人民的照明途径还是主要由煤油灯为主,而在经济飞速发展的,科技产品日新月异的今天,电的应用已经深入中国人民的日常生活。电

2、灯、冰箱、空调等等,统统都与电有着密切的关系。电在当今社会不可或缺,同样也涌现出了对电量的计量,从而出现了电能表这一计量仪表。电能表的发展历程主要是由最初的单一费率电能表到如今的复费率电能表。这与我国的多费率用电政策有关,旨在消峰镇谷,平衡用电。同样,在现在科技飞速发展,各种电器,仪表都逐渐趋近于自动化、人性化和智能化。而这些电气设备大都含单片机或者是CPU控制器。 在本次设计中将智能化技术融入电能表中,电能表作为重要的计量仪表,准确性、稳定性都是很重要的。而数字电能表具有精度高、测量准确、读数直观、使用方便等优点。本设计以AT89C51单片机为核心,以逐次比较型A/D转换器ADC0809、八

3、段数码管为主体,构造了一款简易的数字电能表,能够实现同时测量8路0.005.00V的直流电压,最小分辨率为0.02V。关键词:AT89C51;ADC0809;数字电能表;八段数码管ABSTRACTThirties and 19th century, the Chinese peoples way of illumination is mainly composed of kerosene lamp is given priority to, and with the rapid economic development, science and technology products with

4、 each passing day today, the applications of electricity have the Chinese Peoples Daily life. Lights, refrigerator, air conditioner and so on, all has close relationship with electricity. Electricity is essential in todays society, and also emerged for the measurement of the power, thus appeared the

5、 watt-hour meter measuring instrument. The developing course of watt-hour meter is mainly composed of a single rate, initial watt-hour meter in todays complex rate watt-hour meter. This is associated with rate more electricity policy of our country, aimed at peak valley town, balance of power. Also,

6、 in what is now the rapid development of science and technology, all kinds of electrical appliances, instrument has gradually tend to be automated, humanization and intelligent. But most of these electrical equipment including microcontroller or CPU controller.We will integrate the intelligent watt-

7、hour meter in the design of watt-hour meter as important measuring instrument, the accuracy, stability is very important. And digital watt-hour meter with high precision, measurement accuracy, reading the advantages of intuitive and easy to use. This design USES AT89C51 single-chip microcomputer as

8、the core, to compare successive type A/D converter ADC0809, eight digital tube as the main body, constructed A simple digital watt-hour meter, can be achieved at the same time measuring 8 road from 0.00 V to 5.00 V dc voltage, minimum resolution of 0.02 V.Keywords: AT89C51;ADC0809;Digital watt-hour

9、meter;Eight digital tube目 录第1章 绪论在当前经济高速发展的时代,社会各个方面的用电量都急速上升,为电网系统的稳定造成了很大困扰。我国采用的是多费率用电政策,旨在消峰镇谷,平衡用电。单一费率电能表逐渐被复费率电能表大规模取代。在当前单片机应用急速发展的时代,以单片机为主要控制芯片的数字电能表已经占领了主要市场。同样,应继续研究,降低成本价格,提高稳定性、可靠性和抗干扰能力。数字电能表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电能表。较之于一般的模拟电能表,数字电能表具有精度高、测量准确、读数直观、

10、使用方便等优点。在测量仪器中,电能表是必须的,而且电能表的好坏直接影响到测量精度。具有一个精度高、转换速度快、性能稳定的电能表才能符合测量的要求。为此,我们设计了数字电能表,此设计主要由A/D转换器和单片机AT89C51构成,A/D转换器在单片机的控制下完成对模拟信号的采集和转换功能,最后由数码管显示采集的电压值。电能表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电能表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D转换的方式可分为两类:积分式和逐次逼近式。积分式A/D转换器是先

11、用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。在高精度数字电能表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以AT89C51单片机为核心,以逐次比较型A/D转换器ADC0809、七段数码管为主体,构造了一款简易的数字电能表,能够实现测量8路0.005.00V的电压,最小分辨率为0.02V。第2章 总体方案设计2.1 方案一:由数字电路及芯片

12、构建。这种设计方案是由模拟电路与数字电路两大部分组成,模拟部分包括输入放大器、A/D转换器和基准电压源;数字部分包括计数器、译码器、逻辑控制器、振荡器和显示器。其中,A/D转换器是它的核心器件,它将输入的模拟量转换成数字量。模拟电路和数字电路是相互联系的,由逻辑控制电路产生控制信号,按规定的时序将A/D转换器中几组模拟开关接通或断开,保证A/D转换正常进行。A/D转换结果通过计数译码电路变换成段码,最后驱动显示器显示出相应的数值。此方案设计的优点是设计成本低,能够满足一般的电压测量。但设计不灵活,都是采用纯硬件电路,很难将其在原有的基础上进行扩展。2.2 方案二:由单片机系统及A/D转换芯片构

13、建。这种方案是利用单片机系统与模数转换芯片、显示模块等的结合构建数字电能表。由于单片机的发展已经成熟,利用单片机系统的软硬件结合,可以组装出许多的应用电路来。此方案的原理是模/数(A/D)转换芯片的基准电压源,被测量电压输入端分别输入基准电压和被测电压。模/数(A/D)转换芯片将被被测量电压输入端所采集到的模拟电压信号转换成相应的数字信号,然后通过对单片机系统进行软件编程,使单片机系统能按规定的时序来采集这些数字信号,通过一定的算法计算出被测量电压的值。最后单片机系统将计算好了的被测电压值按一定的时序送入显示电路模块加以显示。此方案不仅能够继承方案一的各种优点,还能改进方案一设计的不灵活,可以

14、在原有的基础上进行扩展。综合比较以上两种设计方案的各方面的优点及现在所设计的电能表的实用性,选择第二种电能表的设计方案,及由单片机及数字芯片构建的方法来实现数字电能表的设计。设计思路设计主要采用AT89C51单片机芯片和ADC0809模/数转换芯片来完成一个简易的数字电能表,能够对输入的8路0V5V的模拟直流电压进行测量,并通过四位LED数码管进行显示,测量误差小于0.02 V。设计电路主要通过ADC0809芯片的模拟电压输入端输入的0V5V的模拟量电压,产生相应的数字量经过其输出通道D0D7传送给AT89C51芯片的P0口。该电能表的测量电路主要由四个模块组成:A/D转换模块、数据处理及控制

15、模块、显示控制模块。A/D转换主要由芯片ADC0809来完成,主要负责把输入的模拟量转换为相应的数字量再传送到数据处理模块,数据处理则由单片机AT89C51来完成,其负责把ADC0809传送来的数字量经数据处理后,产生相应的显示码送到显示模块进行显示,显示模块主要由四位LED数码管组成,完成显示测量到的电压值。设计方案AD转换模块测量电压输入时钟与复位电路显示模块AT89C51本设计是以单片机AT89C51和A/D转换器ADC0809为核心,测量连续信号的数字电能表。硬件主要由:单片机AT89C51,AD转换模块,显示模块,时钟与复位电路组成。总体设计框图如图2-1所示:图2-1 系统总体框图

16、第3章 硬件设计3.1芯片选型本次设计采用的芯片是AT89C51。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。它可与MCS-51兼容,寿命较长且数据可保留10年。拥有低功耗的闲置和掉电模式,并带有片内振荡器和时钟电路,且价格相对较低。而本设计中的电能表因需要普及,需要价格、稳定性、数据保留时间等多方面的要求,故选此款单片机。3.1.1 AT89C51芯片主要性能参数与MCS51产品指令系统完全兼容 4K字节的可重擦写Flash闪速存储器1000次擦写周期全静态操作:0Hz24Hz三级加密程序存储器1288字节内部RAM32个可编程I/O口线2个

17、16位定时/记数器6个中断源可编程串行UART通道底功耗空闲和掉电模式 3.1.2 功能介绍AT89C51是一种低损耗、高性能、CMOS八位微处理器,片内有4K字节的在线可重复编程快擦快写存储器,能重复写入/擦除1000次,数据保存时间为十年。它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51单片机,而且能使系统具有许多MCS-51系列产品没有的功能。AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。只要程序长度小于4K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时

18、间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。工作电压范围宽2.7V-6V,全静态工作,工作频率宽,在0M Hz-24M Hz内,比8751/87C51等51系列的6MHz-12 MHz更具有灵活性,系统能快能慢。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。另外,AT89C51还具有MCS-51系列单片机的所有优点。1288位内部RAM,32位双向输入输出线,两个十六位定时/计数器,5个中断源,两级

19、中断优先级,一个全双工异步串行口及时钟发生器等。3.1.3 芯片管脚介绍及分配图3-1 AT89C51管脚引脚描述:VCC:电源GND:电源地P0口:P0口是一组8位漏极开路双向I/O口,也既地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在Flash编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可操作输入口。作输

20、入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,P1接收底8位地址。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对断口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVE DPTR)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVERI指令)时,P2口线上的内容也即特殊

21、功能存储器(SFR)区中R2寄存器的内容,在整个访问期间不改变。在Flash编程或校验时,P2亦接收高位地址和其他控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表3-1所示:表3-1 P3口第二功能表 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断0) P3.3

22、INT1(外部中断1) P3.4 T0(定时/记数器0) P3.5 T1(定时/记数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) P3口还接受一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RET引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的底8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外部输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉

23、冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVE和MOVX指令ALE才会被激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序存贮允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,既输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH)

24、,EA端必须保持底电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2 A/D转换模块设计3.2.1 A/D转换器介绍现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近

25、型,双重积分型等等。双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用。1.逐次逼近型A/D转换器原理逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。它利用内部的寄存器从高位到低位一次开始逐位试探比较。转换过程

26、如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量。其原理框图如图3-2所示:输入数字输入电压逐渐逼近寄存器顺序脉冲发生器ADC电压比较器图3-2 逐次逼近型A/D转换器原理图2.A/D转换器的性能指标(1)分辨率:分辨率用来表示ADC对于输入模拟信号的分辨能力,即ADC输出的数字编码能够反应多么微小的模拟信号变化。转换器的分辨率的定义为满量程电压与2n之比

27、,其中为输出的数字编码位数。(2)转换速率(Conversion Rate):是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。积分型AD的转换时间是毫秒级属低速AD,逐次比 较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。则是另外一个概念,是指两次转换的间隔。为了保证转换的正确完成,采样速率(Sample Rate)必须小于或等于转换速率。因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是ksps和Msps,表示每秒采样千/百万次(kilo / Million Samples per Second)。 (3)量化误差(Quantizing Error

28、):由于AD的有限分辩率而引起的误差,即有限分辩率AD的阶梯状转移特性曲线与无限分辩率AD(理想AD)的转移特 性曲线(直线)之间的最大偏差。通常是一个或半个最小数字量的模拟变化量,表示为1LSB、1/2LSB。 (4)偏移误差(Offset Error):输入信号为零时输出信号不为零的值,可外接电位器调至最小。 (5)满刻度误差(Full Scale Error):满度输出时对应的输入信号与理想输入信号值之差。(6)量程 量程是指输入模拟电压的变化范围。(7)线性度(Linearity):实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。 (8)精度:精度是转换器结果相对于实际值

29、的偏差。精度有以下两种表示方法:1)绝对精度:用二进制最低位(LSB)的倍数来表示。2)相对精度:用绝对精度除以满量程值的百分数来表示。(9)线性度误差:理想的转换器特性应该是线性的,即模拟量输入与数字量输出成线性关系。线性度误差是转换器实际的模拟数字转换关系与理想的直线关系不同而出现的误差,通常用多少表示。(10)转换时间:从发出启动转换信号开始直至获得稳定的二进制代码所需时间称为转换时间。转换时间与转换器的工作原理及其位数有关。同种工作原理的转换器,通常位数越多,其转换时间越长。3.2.2 ADC0809引脚介绍ADC0809是八通道的八位逐次逼近式A/D转换器。由单一的5V电源供电,片内

30、带有锁存功能的8选1的模拟开关。由C、B、A的编码来决定所选的模拟通道。转换时间为100us。转换误差为1/2LSB。1.ADC0809引脚功能ADC0809的引脚如图3-3所示,下面对引脚功能做简要说明:图3-3 ADC0809引脚IN0IN7:8个模拟量的输入端。D0D7:8位数字量输出端。START:启动A/D转换,加正脉冲后A/D转换开始。本信号有时也简称ST。EOC:转换结束信号。转换开始时,EOC信号变低电平;转换结束时,EOC信号返回高电平。该信号可以作为CPU查询A/D转换是否完成的信号,也可以作为向CPU发出中断申请的信号。OE:输出允许信号,输入高电平有效。OE端的电平由低

31、变高时,转换结果被送到数据线上。此信号有效时,CPU可以从ADC0809中读取数据,同时也可以作为ADC0809的片选信号。CLK:实时时钟,频率范围为10KHZ1280KHZ,典型值为640KHZ。ALE:通道地址锁存允许信号,输入高电平有效。在ALE=1时,锁存ADDAADDC,选中模拟量输入。ADDCADDC:通道地址选择输入,其排列顺序从低到高依次为ADDA 、ADDB、 ADDC。该地址与8个模拟量输入,通道的对应关系如表1所示:VREF+、VREF-正负参考电压。一般情况下,VREF+接+5V,VREF-接地。此时的转换关系如表2所示:VCCGND:工作电源和接地 (1)8路模拟通

32、道选择模拟通道选择信号A,B,C分别接最低三位地址A0,A1,A2即(P0.0,P0.1,P0.2),而地址锁存允许信号ALE由P2.7控制,则8路模拟通道的地址为0FEF8H0FEFFH。此外,通道地址选择以/WR作写选通信号,把ALE信号和START信号接一起,这样连接使得在ALE信号的前沿写入地址信号,紧接着在其后沿就启动转换。地址与模拟通道之间的对应关系如表3所示:通过单片机内部的程序对P0的不同编码,其中低三位地址经过内部译码器电路得到不同的信号,作为锁存ADC0809转换通道的地址,转换电路把数字电压量送到该部分电路的输出端口,等待单片机输入口接收数据。(2)完成后转换数据的传送以

33、及转换A/D转换过程中的时间配合通过对A,B,C送入不同的编码来实现对数据的储存。在ALE端接到高电平的同时,ADC0809的START端也得到高电平,开始对输入的模拟电压进行转换当转换完成后ADC0809把EOC端置为高电平,作为触发中断的信号,送入单片机的外部中断1,启动中断对接收的数据进行数字量的处理,把测得的电压对应的编码传输给单片机与数码管所连接的端口,通过数码管的驱动电路来驱动数码管来显示不同的电压值,不同的为选编码,是不同的数码管亮或者灭,从而实现数码管的动态显示,是我们所看到的电压稳定。2.ADC0809A/D转换芯片的原理ADC0809的工作过程是:首先输入3位地址,并使AL

34、E=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。由图3-4可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。图3-4 ADC0809的内部逻辑结

35、构3.ADC0809时序图ADC0809的时序图如图3-5所示: 图3-5 ADC0809的时序图其工作过程是:ALE的上升沿将A、B、C端选择的通道地址锁存到8位A/D转换器的输入端。START的下降验启动8位A/D转换器进行转换。A/D转换开始使EOC端输出低电平。A/D转换结束,EOC输出高电平。该信号通常可作为中断申请信号。OE为读出数据允许信号。OE端为高电平时,可以读出转换的数字量。硬件电路设计时,需根据时序关系及软件进行设计。表3-2 ADC0809的输入输出关系 输入模拟电压 输出数字量 输入模拟量 输出数字量 0 0000 0000B . . . . 5 1111 2.5 1

36、000 0000B表3-3 地址与模拟量通道之间的对应关系 ADDC ADDB ADDA选中通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN74.ADC0809的应用指导 (1)ADC0809的应用说明1)ADC0809内部带有输出锁存器,可以与AT89C51单片机直接相连。 2)初始化时,使ST和OE信号全为低电平。 3)送要转换的哪一通道的地址到A,B,C端口上。 4)在ST端给出一个至少有100ns宽的正脉冲信号。 5)是否转换完毕,我们根据EOC信号来判断。 6)当EOC变

37、为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。 (2)ADC0809转换结束的判断方法在ADC0809编写程序时,首要问题是如何判断一次A/D转换何时结束,在此基础上才能正确读取转换结果。常用的判断一次A/D转换结束时间的方法有三种。1)软件延时法 软件延时法是指用软件延时等待一次A/D转换结束。延时时间取决于计算和调试而获得的ADC完成一次转换所需要的时间。 2)中断法 中断法利用EOC作为向89C51申请中断信号。在主程序中启动A/D转换,在继续执行主程序。在中断服务程序中读取转换结果。 3)查询法 查询法将EOC接至89C51的某端口I/O口线。启动A/D转换后,利用查询该

38、I/O口线引脚电平是否为0的方法读取转换结果。 (3)ADC0809编程方法应用ADC0809进行程序设计时,一般要包含以下基本步骤:1)初始化设置ADC0809的IN0IN7通道地址,设置存放结果的首单元地址和通道数。2)启动ADC0809先送通道地址到ADDAADDC,由ALE锁存通道号地址,再让START有效启动A/D转换。3)判断A/D转换是否结束4)读取转换结果A/D转换完成后,EOC端会发出一个正脉冲,接着产生RD信号,使OE端有效,打开锁存器三态门,8位数据就读入单片机中。3.2.3 转换器ADC0809与单片机的接口电路单片机的P0口作为地址、数据总线分时使用,P3口的片外读写

39、端子通过指令控制ADC0809启动、停止、数据的读取等,ADC0809的ALE锁定选通的通道进行转换,START是启动转换,ALE信号和START信号是接一起的,CLOCK是转换速度控制器,通过脉冲频率的大小来控制速度,ADC0809的信号有外部提供500KHZ,P2.7口作读/写口的选通地址线。 下图7为ADC0809和AT89C51单片机的连线图。将8位A/D转换芯片ADC0809与单片机进行如此连接,其目的有二:一是为了利用单片机的信息处理能力,在总线上或由总线经过功能芯片,设置满足ADC0809芯片启动过程的时序信号,将启动A/D转换置于单片机的控制之下,这时ADC0809芯片的地址锁

40、存器可以视为I/O接口中的只写寄存器;二是将A/D转换结果数据读入CPU,这时ADC0809芯片中的输出数据寄存器可以作为普通I/O接口中的只读寄存器对待。图3-6 ADC0809和AT89C51单片机的连线图3.2.4 其他相关芯片介绍1.关于74LS02,74LS04 图 3-7 74LS02引脚 图3-8 74LS04引脚四相2路输入或非门74LS02和六反相器74LS04均是基本的集成门电路,输出幅度大,带负载能力强,抗干扰能力强,其工作电压为318V。2. 74LS373的概述(1)引脚图如图3-9;(2)工作原理1)1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3

41、、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q1)、5(Q2)、6(Q3)、9(Q4)、12(Q5)、15(Q6)、16(Q7)、19(Q8)全部呈现高阻状态(或者叫浮空状态)。 图3-9 74LS373引脚2)当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q1)、5(Q2)、6(Q3)、9(Q4)、12(Q5)、15(Q6)、16(Q7)、19(Q8)立即呈现输入脚3、4、7、8、13、14、17、18的状态.锁存端LE 由高变低时,输出端8 位信息被锁存,直到LE 端再次有效。 当三态门使能信号OE为低电平时,三态门导通,

42、允许Q1Q8输出,OE为高电平时,输出悬空。(3)74LS373真值表表3-4 真值表 G /OE 输出Q 0 0 保持原输入 1 0 输出=输入 X 1 高阻状态0低电平; 1高电平; X不定态;Q0建立稳态前Q的电平; G数据锁存控制端,与80C51ALE连高电平,畅通无阻低电平,关门锁存。 /OE使能端,接地。当G=1时,锁存器输出端同输入端;当G由“1”变为“0”时,数据输入锁存器中。OE为输出允许端;当OE=“0”时,三态门打开;当OE=“1”时,三态门关闭,输出呈高阻状态。(4)74LS373在单片机系统中的应用当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端G为

43、高电平时,输出Q1Q8 状态与输入端D18状态相同;当G发生负的跳变时,输入端D1D8 数据锁入Q1Q8。51单片机的ALE信号可以直接与74LS373的G连接。在MCS-51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法如上图所示。其中输入端D1D8接至单片机的P0口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信号ALE。输出允许端OE接地,表示输出三态门一直打开。3.3 显示模块设计3.3.1 显示器的选择本次设计中有显示模块,设计要求显示最后电压的数字值,采用的是八段数码管。数码管是一类显示屏,它的特点是显示清晰、使用简单、价格相对便宜,特别是在家电领域应用

44、极为广泛。其工作原理是通过对其不同的管脚输入相对的电流 会使其发亮 从而显示出 数字能够显示时间、日期、温度等所有可用数字表示的参数。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的

45、阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端

46、口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮

47、流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。总上所述,在该设计中采用共阳LED数码管,动态显示。3.3.2 显示器与单片机接口电路图3-10 LED与单片机接口电路LED数码管采用动态扫描方式连接,通过P1口和P2口控制。P1口为LED数码管的字段码输出口,P2.0-P2.3为LED数码管的位选

48、码输出端如图3-10所示显示接口用来显示系统的状态,命令或采集的电压数据。本设计显示部分用的是LED数码管显示模块。采用八段数码管分别显示每个通道的电压及被测电压所在的通道。八段数码管采用的是共阳极,具体的电路是采用了把数码管的字形码与单片机的输出端口P1相连接。当单片机的输出端口不停地把8个通道经过处理的数字电压信号逐个输出时,通过对每个数码管公共端的控制,就可以选择数码管亮或者灭。具体的字形由单片机的输出口送出的代码决定。从而实现了数字电能表的轮流动态显示。并且有一位代表了被测电压的通道数,方便了电压的确定。3.4 复位电路和时钟电路3.4.1 复位电路单片机在启动运行时都需要复位,使CP

49、U和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图3-11是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作。 图3-11 复位电路3.4.2 时钟电路时钟电路是计算机最核心的部分,它控制着计算机的工作MCS-51单片机允

50、许的时钟频率典型值12MHZ。单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和 2个电容即可,如图3-12所示。图3-12 时钟电路电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容

51、器C1和C2对震荡频率有微调作用,通常的取值范围是3010pF,在这个系统中选择了30pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。第4章 软件设计4.1编程语言的选择及介绍1.编程语言和语言的特点及选择本设计是硬件电路和软件编程相结合的设计方案,选择合适的语言是一个重要的环节。设计方案,选择合适的编程语言是一个在单片机的应用系统程序设计时,常用的是汇编语言和C语言。汇编语言的特点是占用内存单元少,执行效率高。执行速度快。但它依赖于计算机硬件,程序可读性和可抑制性比较差。而C语言虽然执行效率

52、没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。 由于现在单片机的发展已经达到了很高的水平,内部的各种资源相当的丰富,的处理速度非常的快。用C语言来控制单片机无疑是一个理想的选择。所以在本设计中采用C语言编写软件程序。2.C51简介C语言是今年来在国内外得到迅速推广应用的一种计算机语言。C语言功能丰富,表达力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又有低级语言的许多特点。因此,C语言特别适合于编写系统软件。C语言诞生后,许多原来用汇编语言编写

53、的软件,现在可以用C语言编写了,而学习和使用C语言要比学习和使用汇编语言容易得多。51的编程语言常用的有二种,一种是汇编语言,一种是C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C 语言的开发周期通常要小于汇编语言很多。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil C51软件提供丰富的库函数和功能强大的集成开发

54、调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。设计步骤:(1)建立一个新的项目;(2)选择所用单片机;(3)在新建立的项目中加入程序;(4)保存运行;(5)编译是否通过;4.2 程序流程4.2.1 系统主程序流程图主程序主要完成初始化,开CPU中断,开外部中断,调用启动转换子程序,调用A/D转换子程序和调用显示子程序等等。流程图如下图4-1:开始初始化允许CPU中断允许外部中断调用A/D转换程序 图4-1 主程序流程图4.2.2

55、 各子程序流程图1.外部中断子程序外部中断子程序是用于接收ADC0809送入单片机的电压数字量,并调用转换子程序和调用显示子程序等。当ADC0809转换完成后在其EOC端置为高电平,该信号经过74LS04和一个非门转换为低电平,触发单片机的外部中断,进入中断子程序。流程图如图4-2:2.A/D转换子程序首先通过单片机的P0口的低三位经过一个74LS373锁存器给ADC0809的地址选通端送入一个地址,初始地址为000,即为ADC0809的IN0的通道地址。然后通过单片机的P3.6端口置低电平和P2.7口的低电平一起经过一个74LS02转换为可以触发ADC0809的高电平。由于ALE端和STAR

56、T端是连接在一起的改变P3.6口电平形成一个脉冲,就启动了ADC0809的转换,同时在转换结束时将EOC端置为高电平。在地址译码器作用下选通地址选通通道,转换后的数字量送出到单片机的输入端口。每完成一次启动后改变通道的地址指向下一个通道。流程图如图4-3:开始开始地址数小于8?通道值是8?数据存储区首地址启动1次转换首地址A/D转换结束EOC=1取数据(OE=0) 数据存储区地址加1(OE=1)启动中断子程序数据存储区地址加1通道值加1调用数据显示子程序结束结束图4-2 外部中断子程序流程图 图4-3 A/D转换子程序流程图3.显示子转换程序LED数码管采用软件译码动态扫描方式。在显示子程序中

57、实现多路循环显示程序。多路循环显示把8个存储单元的数值依次取出送到4位数码管上显示。每一路显示1秒,每次送出数据的同时把通道的地址也送出到数码管电路。每路数据显示时需经过转换变成十进制BCD码,放于4个数码管的显示缓冲中。流程图如图4-4:地址小于8?当前通道数据转换四位数据显示通道值加1通道值置0x00开始图4-4 显示子转换程序流程图第5章 系统的调试5.1 硬件电路的调试硬件电路的调试主要是对硬件电路进行检查,使用万用表、示波器等常规工具检查电路制作是否正确,并核对元器件规格、型号,检查芯片间连线是否正确,是否有短路、虚焊、极性接错等故障,尤其应该注意芯片放置方向是否有误,各个芯片的接地

58、线与电源线的连接是否有误。除此之外,硬件电路运行是否正常,还可通过测定一些重要的波形来确定。5.2 软件调试5.2.1 PROTEUS软件简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:1.实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。2.支持主流单片机系统的仿真。

59、目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。3.提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。4.具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。5.2.2 KEIL简介1.系统概述 Keil C51是美国Keil Software公司出品的51

60、系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 2. Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tSco

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!