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

下载本文档

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

文档简介

1、摘 要数字电压表的设计是以AT89C51单片机为中央控制单元,通过ADC0809转换芯片与LCD1602液晶显示器等扩展模块,实现了精确测量直流电压并通过数字的方式显示的功能。该设计主要实现了直流电压的测量,单片机通过ADC0809转换芯片获取需测量的电压并转换为数字信号,而LCD1602液晶显示器则是将单片机处理后的电压值在显示屏上显示出来,而且该电压表还可以通过手动来调节测量电压的量程。而软件则通过C语言编程,将所有模块结合在一起完成数字电压表。经过测试,各模块的功能均能正常实现,同时该电压表还具有操作简单,反应灵敏和测量精确等优点。关键词:单片机; 电压表; A/D转换器Abstract

2、 The digital voltmeter is designed with an AT89C51 single-chip as its central control unit. By use of the ADC0809 converter chip and LCD 1602 display device. we can&

3、#160;realize the function of accurate measurement of DC voltage.The design mainly realized DC voltage measurement.with the help of ADC0809,the microcontroller can obtain the voltage

4、0;that we want to measure,and then convert it to the digital signal. The function of LCD1602 is display the result of the voltage.Moreover,you can adjust this voltmeter&#

5、160;manually.The software is programmed by C language.All the modules are combined to realize the function of the digital voltmeter.After testing ,each module of the voltmeter 

6、;is normal.Besides ,the advantages of this voltmeter can be various.Such as the simple operation ,accurate measurement,and  very sensitive response.Keywords: Micro Controller Unit;voltage meter;A/D Convert

7、ers目录摘 要IAbstractII1 绪论11.1 课题概述11.1.1 数字电压表的发展历程 11.1.2 国内外的发展现状与趋势11.2 课题的意义和目的31.3 本文所作的主要工作32 数字电压表的总体设计42.1 设计指标42.2 系统概述42.2.1 设计方案52.2.2 工作过程简介52.2.3 软件程序设计简介52.3 小结53 数字电压表的硬件设计73.1 A/D转换电路73.1.1 A/D转换芯片的选择73.1.2 ADC0809转换原理介绍73.1.3 ADC0809芯片介绍83.1.4 ADC0809与单片机的接口方法103.2 单片机介绍103.2.1 单片机介绍1

8、03.2.2 采用AT89C51的原因103.2.3 AT89C51芯片主要性能参数103.2.4 功能介绍113.2.5 芯片管脚介绍及分配113.3 电压显示器件133.3.1 1602LCD的基本参数及引脚功能143.3.2 LCD1602与AT89C51单片机之间的连接153.4 小结154 单片机最小系统的介绍164.1 复位电路164.1.1复位电路的用途164.1.2复位电路的工作原理164.2 晶振电路174.3 P0口的上拉电阻184.4 31脚EA/Vpp接电源185 数字电压表的软件设计195.1 软件系统整体设计195.1.1 C51简介195.1.2 程序流程图195

9、.1.3 数据采集模块的设计205.1.4 数据处理模块的设计215.3 小结216 数字电压表的抗干扰设计226.1 硬件系统的可靠性与抗干扰设计226.1.1 供电系统抗干扰措施226.1.2 接地226.1.3 传输通道的抗干扰措施236.2 软件系统的可靠性与抗干扰设计236.3 小结247 电路制作及调试257.1 器件的选择257.2 电源电路的设计257.3 换量程电路的设计257.4 焊接267.4 系统调试及结果分析278 结 论288.1 主要结论288.2 进一步工作及展望29参考文献29致 谢31附录A321 绪论1.1 课题概述1.1.1 数字电压表的发展历程 34数

10、字电压表简称DVM,它是采用数字化测量技术设计的电压表。从性能来看:数字电压表的发展从一九五二年美国NLS公司由四位电子管数字电压表精度千分之一到现在已经出现8位数字电压表。参数可测量直流电压、交流电压、电流、阻抗等。测量自动化程度不断提高,可以和计算机配合显示、计算结果、然后打印出来。目前世界上美国FLUKE公司,在直流和低频交流电量的校准领域居国际先进水平。例如该公司生产的“4700A”多功能校准器和“8505”危机数字多用电压表,可用8位显示,直流精度可达到±5/10-6,读书分辨力为0.1V。带有A/D变换模式、数据输出接口形式IEEE-488。具有比率测量软件校准和有交流电

11、阻、电流选件。还具有高精度电压校准器“5400A”、“5200A”、“5450A”等数字仪表,都是作为一级计量站和国家级计量站使用的标准仪表。还有英国的“7055”数字电压表采用脉冲调制技术。日本横河公司的“2501”型采用三次采样等等在不断的蓬勃发展1。从发展过程来看:数字电压表自1952年问世以来,已有50多年的发展史,大致经历了五代产品。第一代产品是20世纪50年代问世的电子管数字电压表,第二代产品属于20世纪60年代出现的晶体管数字电压表,第三代产品为20世纪70年代研制的中、小规模集成电路的数字电压表。近年来,国内外相继推出有大规模集成电路(LSI)或超大规模集成电路(VLSI)构成

12、的数字电压表、智能数字电压表,分别属于第四代、第五代产品。它们不仅开创了电子测量的先河,更以高准确度、高可靠性、高分辨力、高性价比等优良特性而受到人民的青睐2。1.1.2 国内外的发展现状与趋势数字电压表作为电压表的一个分支,在近五十年间得到巨大发展,构成数字电压表的核心器件已从早期的中小规模电路跨入到大规模ASIC(专用集成电路)阶段。数字电压表涉及的范围也从传统的测量扩展至自动控制、传感、通信等领域,展示了广阔的应用前景。传统电压表的设计思路主要分为:用电流计和电阻构成的电压表;用中小规模集成电路构成的电压表;用大规模ASIC(专用集成电路)构成的电压表。这几种电压表设计方式各有优势和缺点

13、,分别适用于几种特定的应用环境,同时,也为很多新颖的电压表的设计所借鉴和依据2。进入21世纪,随着信息技术一日千里的发展,电压表也必经历从单一测量向数据处理、自动控制等多功能过度的这一历程,特别是计算机技术的发展必将出现智能化技术。因此,把电压表和计算机技术相结合的智能化电压表就将成为21世纪的新课题。目前,数字化仪器与微处理器取得令人瞩目的进展,就其技术背景而言,一个内藏微处理器的仪表意味着计算机技术向仪器仪表的移植,它所具有的软件功能使仪器 呈现出有某种延伸,强化的作用。这相对于过去传统的、纯硬件的仪器来说是一种新的突破,其发展潜力十分巨大,这已为70年代以来仪表发展的历史所证实。概括起来

14、,具有微处理器的仪表具有以下特点:测量过程的软件控制对测量数据进行存储及运算的数据处理功能是仪表最突出的特点;在仪器的测量过程中综合了软件控制及数据处理功能,使一机多用或仪器的多功能化易于实现,成为这类仪器的又一特点;以其软件为主体的智能仪器不仅在使用方便、功能多样化等方面呈现很大的灵活性3。下面从5个方面阐述新型数字仪表的发展趋向。(1)广泛采用新技术,不断开发新产品 随着科学技术的发展,新技术的广泛应用,新器件的不断出现。首先是A/D转换器:20世纪90年代世界各国相继研发了新的A/D转换技术。例如,四斜率A/D转换技术(美国)、余数再循环技术(美国)、自动校准技术(英国)、固态真有效值转

15、换技术(英国)、约瑟夫森效应基准源(2个纳米稳定度)、智能化专用芯片(80C51系列,荷兰)等,这些新技术使数字电压表向高准确度、高可靠性及智能化、低成本方向发展。另外,集成电路的发展使电压表只在外围配置少量元器件,即可构成完整的智能仪表,可以完成储存、计算、比较、控制等多项功能4。(2)广泛采用新工艺新一代数字仪表正朝着标准模块化的方向发展。预计在不久的将来,更多的数字仪表将由标准化、通用化、系列化的模块所构成,给电路设计、安装调试和维修带来极大方便。(3)多从显示仪表为彻底解决数字仪表不便于观察连续变化量的技术难题;“数字/模拟条图”双显示仪表已成为国际流行款式,它兼有数字仪表准确度高、模

16、拟式仪表便于观察被测量的变化过程及变化趋势这两大优点。(4)提高安全性仪器仪表在设计和使用中的安全性,对生产厂家和广大用户都至关重要。一方面厂家必须为仪表设计安全保护电路,并使之符合国家标准;另一方面用户必须安全操作,时刻注意仪表上的各种安全警告指示。(5)操作简单化集成电路的发展使电压表只在外围配置少量元件,即可构成完整的智能仪表,可以完成储存、计算、比较、控制等多项功能。这使的按键变少,操作简单。但是数字电压表并不能完全取代指针式的电压表,在反映电压的连续变化和变化趋势方面不如指针表的直观。为克服这种缺憾,20世纪90年代初,一种“数字/光柱”的双重显示仪表已经出现,并成功地应用于生产实践

17、中5。综上所述,十几年来智能仪器虽然有了很大的发展,但总的看来,人们还是较习惯于从硬件的角度做工作,这是由于设计者的(硬件)技术背景,LSI器件不断迅速更新的冲击以及在现阶段仪器硬件更新的数量还很大等因素所造成的。这种趋势虽然仍会继续下去,但从智能仪表的内涵,从软件的角度上看,软件的作用还远未发挥出来,这里有许多的领域等待着去开发。智能仪表最终必然会与人工智能联系起来开创出全新的仪器。从这个观点看,目前的智能仪器尚处于“幼年时期”。所以,就仪表的发展看来电压表会朝着具有微控制处理单元的智能仪表方向发展。1.2 课题的意义和目的数字电压表是诸多数字化仪表的核心与基础。以数字电压表为核心,可以扩展

18、成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:温度计,湿度计,酸度计,重量,厚度仪等),几乎覆盖了电子电工测量,工业测量,自动化仪表等各个领域。除此之外,数字电压还有着传统指针电压表无可比拟的优点:读数直观、准确,显示范围宽、分辨力高,转入阻抗高,功耗小、抗干扰强等3。因此 对数字电压表作全面深入的了解是很有必要的。但是传统的数字电压表设计通常以大规模ASIC(专用集成电路)为核心器件,并辅以少量中规模集成电路及显示器件构成,可是这种设计方法灵活性差,系统功能固定,难以更新扩展,不能满足日益发展的电子工业要求6。而应用微处理器(单片机)为核心单元的数字电压表,其灵活性高、系统功

19、能扩展简单,性能稳定可靠。在这些背景下,设计一种以单片机为基础、结构简单、工作可靠、灵活性好的数字电压表是很有意义的。1.3 本文所作的主要工作 (1)对系统总体框架进行分析,根据系统所要实现的目标,设计基于单片机的数字电压表的硬件系统,以模块设计法为依据进行系统各个部分的具体设计。(2)设计基于单片机的数字控制系统,发挥单片机的处理功能强大,运算速度快的特点,对被测电压进行实时检测和显示。(3)制作印刷电路板,使硬件电路的设计更加清晰,同时使系统的抗干扰能力进一不加强。(4)针对系统的总体框架和硬件设计的特点,设计相应的软件系统,更合理的去完成系统测电压的目的。(5)对系统进行整机调试,使得

20、基于单片机的数字电压表的实验结果尽可能的满足设计指标。2 数字电压表的总体设计2.1 设计指标在日常维修、教学和科研中,电压表是不可缺少的,传统的数字电压表设计通常以大规模ASIC(专用集成电路)为核心器件,并辅以少量中规模集成电路及显示器件构成,但是这种设计方法灵活性差,系统功能固定,难以更新扩展,不能满足日益发展的电子工业要求。而应用微处理器(单片机)为核心单元,其灵活性高、系统功能扩展简单,性能稳定可靠。本课题目的就是以单片机为基础设计出一种结构简单、工作可靠、灵活性好的直流数字电压表。要求多量程,误差为±0.1V。2.2 系统概述本课题所设计的数字电压表主要包括两部分:硬件电

21、路及软件程序。而硬件电路采用ATMEL公司的AT89C51作为主处理器,系统主要由信号采集、A/D转换、数据处理输出、驱动显示等几个功能模块组成。各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用C语言编程,利用Keil 软件对其编译和仿真,详细的设计算法将会在程序设计部分详细介绍。系统框图(图2.1)如下:A/D转换单元数据处理单元显示单元 被测电压 图2.1 硬件原理框图被测直流电压由A/D转换单元采集后被量化,再由单片机对A/D转换的结果进行标度变换,得到被测电压的数值,通过单片机对数次转换结果求平均值,由单片机完成译码,并用液晶显示器显示。2.2.1 设计方案方案一:

22、使用STC89C51单片机,将A/D转换单元和数据处理单元糅合在单片机中,通过编程来实现A/D转换,数据显示单元使用数码管显示电压值;方案二:使用ADC0809芯片对直流电压进行A/D转换,然后用AT89C51单片机对转换后的数据进行处理,再将处理完成的数据通过LCD1602液晶显示器显示。而方案一虽然需要的材料比较少,但太过简单,无法起到良好的学习作用,而且数码管显示太过简单,不能显示量程的切换,方案二有很多的学习空间,多了一个ADC0809需要考虑的东西变多,考验我的能力,而且使用液晶显示器能够更清楚明白的显示出量程和数值。2.2.2 工作过程简介电压表的数字化是将连续模拟的电压量经A/D

23、转化后变为不连续的离散的数字量并加以显示7。在设计过程中采用分模块设计,按照图2.1把电路分A/D转换、数据处理输出、显示三个个单元,分别设计。A/D转换器选用的是八位模/数转换器ADC0809。其次,计算机中的数字都是十六进制数,而我们习惯于十进制数的读写,因此,在软件设计中则要把十六进制数转换成十进制数。在显示的时候也是如此。本装置的输出用LCD1602显示,因此在软件设计中还要解决数字输出与LCD1602的接口问题。硬件则需要将输出线接到LCD1602上8。ADC0809通过IN0、IN1、IN2采集电压信号并送给单片机,单片机将采集来的信号进行一定的处理然后通过LCD1602显示采集的

24、电压值。2.2.3 软件程序设计简介开机后首先初始化,使LCD1602显示为“0.00”然后调用A/D转换子程序启动A/D转换器,单片机等待查询转换结束信号,如果有信号则通过并行口读取转换数据后进行标度变化之后并存储,就这样连着读取五次数据后选取中间的三次并求平均值,经译码在LCD1602液晶显示器上显示。而量程的切换则通过手动切换,具体方法和程序见程序设计部分和附录A。2.3 小结 在电路设计和软件设计中都采用了分模块设计,这种设计方法清晰的电路的功能,为设计和以后的调试和维修带来了极大的方便。特别是在软件设计中,这中方法曾强了程序的可移植性,为以后的功能扩展奠定了基础。3 数字电压表的硬件

25、设计3.1 A/D转换电路3.1.1 A/D转换芯片的选择A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前最常用的是双积分和逐次逼近式。双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0

26、808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。本设计中,要求精度小于0.5%,则选用分辨率为8位的芯片,如ADC0809,ADC0801,ADC0808就能满足设计要求。本电路采用ADC0809。3.1.2 ADC0809转换原理介绍ADC是一种基本的外围扩展器件,其种类很多,工作原理也不仅相同,比较有代表性的是:单积分型,双积分型,脉宽调制型和逐次比较型(逐次逼近型)。从产品性价比、转换速度和精度等方面综合分析,逐次比较型ADC是相对应用比较广的类型之一。所以有着广泛的应用。逐次逼近型ADC实际采用的方

27、法上从高到底开始逐位设定,比较模拟量输出,再来确定原设定位的正确与否。逐次比较型ADC原理结构如图3.1所示。其主要由采集保持电路、电压比较器、逐次比较寄存器、数/模转换器ADC和锁存器等部分组成。GOCPADIF=1被测电压Ui逐次比较寄存器+ _Us寄存器模/数转换数字量输出图3.1 逐次比较型ADC结构其工作原理如下:首先,被测模拟电压Ui通过逐次比较寄存器,将传递进的脉冲CP信号转换成数字信号,该数字量再经过数/模转换器生成对应的模拟量Us。当获得模拟量Us的数值达到并接近被测电压所对应Ui后,就可以检测出电压比较器完成最后的反转。此时,逐次比较寄存器的计数值就是被测电压Ui所对应的数

28、字量,从而完成模拟量的转换。以上的分析表明,逐次比较的模/数转换方法,归根到底是数/模转换,采用逐次与模拟量进行比较后得到最终的数字标定值。3.1.3 ADC0809芯片介绍ADC0809是一种8位逐次逼近型A/D转换器。带8个模拟量输入通道,芯片内有通道地址译码锁存器,有输出三态数据锁存器,启动信号为脉冲启动方式,每个通道的转换时间大约为100s,可以和单片机直接接口。ADC0809的引脚图如图3.2所示。图 3.2 ADC0809引脚图由图3.3可知,ADC0809由一个8路模拟开关,一个地址锁存与译码器、一个8位A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道IN0IN7

29、,允许8路模拟分量输入,共用A/D转换器 进行转换。三态输出锁存器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。IN0IN7:8条模拟量输入通道。ADC0809对输入模拟量的要求是信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应保持不变,如若模拟信号变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条,ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转化器进行转换。A,B,C为地址输入线,用于选通IN0IN

30、7上的一路模拟量输入。通道选择如表3.1所示。表3.1 地址通道对应表地址编码被选通道ABC000IN0001IN2010IN2011IN3100IN4101IN5110IN6111IN7 数字量输出及控制线: 11条。START为上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换:在转换期间,START应保持底电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束,否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据。OE=0,输出数据线呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号线。由于A

31、DC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHz,最大不能超过1280KHz。VREF(+),VREF(-)为参考电压输入,决定了输入模拟量的范围。一般情况VREF(-)接地,VREF(+)接+5V电源。3.1.4 ADC0809与单片机的接口方法 ADC0809的D0-D7口与单片机的P1口相连,将转换过的数字量输入到单片机中,而A、B、C端口接入P3口,通过单片机查询后控制ADC0809芯片的接入口,对应的IN0、IN2、IN5。而且通过查询法判断A/D转换是否完成。ADC0809的频率则是由单片机给予。3.2 单片机介绍3.2.1 单片机介绍单片微型

32、计算机简称单片机,又称微型控制或嵌入式控制器,是将计算机的基本部件微型化,使之集成在一块芯片上的微机。单片机有着体积小,功耗低,功能强,性能价格比高、易于推广应用等显著优点,在自动化装置、智能化仪器仪表、过程控制和家用电器等领域得到日益广泛的应用。3.2.2 采用AT89C51的原因在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用,它是由北京集成电路设计中心在MSC-51单片机的基础上精心设计,由美国生产的至今为止世界上最新型的高性能八位单片机。它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改

33、写,一般专为 ATMEL AT89Cx 做的编程器均带有这些功能。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。3.2.3 AT89C51芯片主要性能参数(1)与MCS51产品指令系统完全兼容 (2)4K字节的可重擦写Flash闪速存储器(3)1000次擦写周期(4)全静态操作:0Hz24Hz(5)三级加密程序存储器(6)128×8字节内部RAM(7)32个可编程I/O口线(8)2个16位定时/记数器(9)6个中断源(10)可编程串行UART通道(11)底功耗空闲和掉电模式 3.2.4 功能介绍AT89C51是一种低损耗、高性能、CMOS八位微处理器,片内有4K字节的

34、在线可重复编程快擦快写存储器,能重复写入/擦除1000次,数据保存时间为十年。它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51单片机,而且能使系统具有许多MCS-51系列产品没有的功能。AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。只要程序长度小于4K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多

35、嵌入式控制领域。工作电压范围宽2.7V-6V,全静态工作,工作频率宽,在0M Hz-24M Hz内,比8751/87C51等51系列的6MHz-12 MHz更具有灵活性,系统能快能慢。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。另外,AT89C51还具有MCS-51系列单片机的所有优点。128×8位内部RAM,32位双向输入输出线,两个十六位定时/计数器,5个中断源,两级中断优先级,一个全双工异步串行口及时钟发生器等。3.2.5 芯片管脚介绍及分配VCC:电源GND:电源地P0口:P0口是一组8位漏极开路双向I/O口,也既

36、地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(底8位)和数据总线服用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可操作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉底时会输出一个电流(IIL)

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

38、或校验时,P2亦接收高位地址和其他控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉底的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表3.2所示:表 3.2 P3口第二功能表端口引脚第二功能 P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2INT0(外部中断0) P3.3INT1(外部中断1) P3.4T0(定时/记数器0) P3.5T1(定时/记数器1)

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

40、存器(SFR)区中的8EH的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVE和MOVX指令ALE才会被激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序存贮允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,既输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持底电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如

41、EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该脚加上+12V的编程允许电源VCC,当然这必须是该器件是使用12V编程电压VPP。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.3 电压显示器件在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,不如

42、液晶显示器美观,且比较清楚明白,而LCD1602是其中比较有代表性的器件,所以我使用LCD1602。 在单片机系统中应用晶液显示器作为输出器件有以下几个优点:(1)显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。(2)数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。(3)体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。(4)功耗低相对而言,液晶显示器的功耗主要消耗在其内部

43、的电极和驱动IC上,因而耗电量比其它显示器要少得多。3.3.1 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。(1)1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm(2)引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3.3所示:表3.3 引脚接口说明表编号符号引脚说明编号符号引

44、脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为

45、低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.3.2 LCD1602与AT89C51单片机之间的连接 图3.4 LCD1602与51单片机之间的连接图其中D0-D7输入端接单片机的P0输出端,接收数据,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,一般使用时可以通过一个10K的电位器调整对比度。而我直接在上下接一个

46、10K电阻与1K电阻,确定了对比度。RS与RW则接收来自单片机的操作命令,显示相应的字符。3.4 小结在满足设计要求的前提下,为保证电路造价和维修的方便,在设计中我尽可能的用电路制作中的常用元件。另外除了上述器件外,其他的元件如电阻,电容的选择都是由一些典型电路经测试调节确定的。所以电路显得更于理解和分析,这一点给也将给最后的调试带来很大的方便。4 单片机最小系统的介绍单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。下面给出一个51单片机的最小系统电路图。图4.1 51单片机的最小系统电路

47、图4.1 复位电路4.1.1复位电路的用途 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。 4.1.2复位电路的工作原理51单片机要复位只需要在第9引脚接个高电平持续2s就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。开机的时候为什么会复位:在电路图中,电容的的大小是10F,电阻的大小是

48、10K。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10F=0.1s。也就是说在单片机启动的0.1s内,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少(串联电路各处电压之和为总电压)。所以在0.1s内,RST引脚所接收到的电压是5V1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1s内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1s左右)。按键按下的时候为什么会复位:在单片机启动0.1s

49、后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1s内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。4.2 晶振电路晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。电工学上这个网络有两个谐振点,以频率的高低分其中较

50、低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感 所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路,这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路。由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地 这

51、两个电容串联的容量值就应该等于负载电容,需注意一般IC的引脚都有等效输入电容。一般的晶振的负载电容为15pF或12.5pF,如果再考虑元件引脚的等效输入电容,则两个22pF的电容构成晶振的振荡电路就是比较好的选择 。如图4.1,晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度,比如12MHz晶振,单片机工作速度就是每秒12M。当然,单片机的工作频率是有范围的,不能太大,一般24M就不上去了,不然不稳定。晶振与单片机的脚XTAL0和脚XTAL1构成的振荡电路中会产生偕波(也就是不希望存在的其他频率的波),这个波对电路的影响不大,但会降低电路的时钟振荡器的稳定性。为了电路的

52、稳定性起见,ATMEL公司只是建议在晶振的两引脚处接入两个10pF-50pF的瓷片电容接地来削减偕波对电路的稳定性的影响,所以晶振所配的电容在10pF-50pF之间都可以的。4.3 P0口的上拉电阻P0口作为I/O口输出的时候时,输出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态)。也就是说P0 口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻(一电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流。 由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉

53、电阻的。 (1)一般51单片机的P0口在作为地址/数据复用时不接上拉电阻。  (2)作为一般的I/O口时用时,由于内部没有上拉电阻,故要接上上拉电阻。 (3)当P0口用来驱动PNP管子的时候,就不需要上拉电阻,因为此时的低电平有效;(4)当P0口用来驱动NPN管子的时候,就需要上拉电阻的,因为此时只有当P0为1时候,才能够使后级端导通。4.4 31脚EA/Vpp接电源STC89C51/52或其他51系列兼容单片机特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行,当接低电平时,复位后直接从外部ROM的000

54、0H开始执行。5 数字电压表的软件设计5.1 软件系统整体设计系统的软件流程如下:开始时首先初始化1602LCD,使数码管显示为“0.000”,然后调用A/D转换子程序启动ADC0809。单片机等待查询转换结束信号,如果有信号则通过并行口读取转换数据并存储,就这样连着读取五次数据后求平均值。再将所求得的结果进行运算Dout100/51,将运算后的结果除以10得到千分位,再把商除以10得到百分位,再除以10又分别得到十分位和个位,最后把个位,十分位,百分位和千分位经译码后送至LCD1602液晶显示器显示,此时LCD1602液晶显示器显示的就是ADC0809采集的电压值。5.1.1 C51简介C语

55、言是今年来在国内外得到迅速推广应用的一种计算机语言。C语言功能丰富,表达力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又有低级语言的许多特点。因此,C语言特别适合于编写系统软件。C语言诞生后,许多原来用汇编语言编写的软件,现在可以用C语言编写了,而学习和使用C语言要比学习和使用汇编语言容易得多。51 的编程语言常用的有二种,一种是汇编语言,一种是C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C 语言还可以嵌入汇编来解决高时

56、效性的代码编写问题。对于开发周期来说,中大型的软件编写用C 语言的开发周期通常要小于汇编语言很多。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。设计步骤:(1)建立一个新的项目;(2)选择所用单片机;(3)在新建立的项目中加入程序;(4)保存运行;(5)编译是否通过。5.1.2 程序流程图系统软件的总体框架如图5.1所示

温馨提示

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

评论

0/150

提交评论