1、 2013 届 本 科 毕 业 设 计基于 AT89C51 单片机的数字电压表设计学 院 : 物 理 与 电 子 工 程 学 院 专 业 班 级 : 电 子 信 息 09-11 班 学 生 姓 名 : XXX 指 导 教 师 : 吴 剑 英 老师 答 辩 日 期 : 2013 年 5 月 11 日 XXXXX 大学教务处 新疆师范大学 2013 届本科毕业生毕业设计1目 录0 引言 .11 系统整体设计思路及方案 .11.1 设计思路 .11.2 设计方案 .12 数字电压表的硬件设计 .22.1 主控制模块的设计 .22.1.1 AT89C51 性能简介.22.1.2 AT89C51 各引脚
2、功能.22.1.3 AT89C51 的复位电路和时钟电路.42.2 A/D 转换模块的设计.52.2.1 ADC0808 的主要特性 .62.2.2 ADC0808 各引脚功能.62.3 显示电路的设计 .72.4 总体电路设计图 .93 数字电压表的软件设计 .103.1 设计流程图 .103.2 各子程序简介 .114 仿真 .114.1 软件调试 .114.2 误差分析 .115 结论 .12参考文献 .13附录 .14致谢 .16新疆师范大学 2013 届本科毕业生毕业设计1基于 AT89C51 单片机的数字电压表设计摘要:数字电压表是常用的对电子电路进行检测的较精密仪器之一。本文的设
3、计思想是一种基于单片机的数字电压表设计方式。该设计主要由三个模块组成:A/D 转换模块、数据处理主控模块和显示模块。A/D 转换模块主要由芯片ADC0808 来完成,它负责将采集到的模拟量转换为相应的数字量传送到数据处理模块(单片机)。数据处理主控模块由单片机 AT89C51 来完成,它负责将ADC0808 传送过来的数字量经过一定的数据处理,产生相对应的显示码传送到显示模块进行显示。此外,它还控制芯片 ADC0808 的工作。经过仿真软件结果表明本设计中的电压表电路简单,所用元件较少,成本低且测量精度高。此电压表可以测量 05V 的模拟输入电压值,并通过一个四位一体的 7 段数码管显示出来。
4、关键词:数字电压表;单片机;A/D 转换;AT89C51;ADC0808新疆师范大学 2013 届本科毕业生毕业设计2The design of digital voltage meter based on AT89C51 single chip microcomputerAbstract: digital voltage meter is one of the more commonly used detection precision instrument for electronic circuit. The design is a design method based on sing
5、le chip digital voltage meter. The design consists of three modules: A/D module, data processing, the main control module and display module. The A/D conversion module is mainly completed by the ADC0808, which is responsible for converting the collected analog to digital quantity corresponding to a
6、data processing module (MCU). Data processing by the MCU AT89C51 to complete the main control module, which is responsible for the digital ADC0808 transmission after data processing, generate the corresponding display code is sent to the display module for displaying. In addition, it also control ch
7、ip ADC0808 work. The design of the voltage meter circuit is simple, less elements used, low cost and high measurement accuracy. The analog input voltage can be measured in 0 5V of the value of the voltage meter, and through 7 digital tubes a four integrated display. Keywords: digital voltage meter;M
8、CU ; A/D;AT89C51 ;ADC0808新疆师范大学 2013 届本科毕业生毕业设计10 引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表(Digital Voltmeter)简称 DAM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,有精度高、抗干扰能力强、集成方便,还可与 PC 进行实时通信等优点 1。目前,由各种单
9、片机和 A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等领域,显示出了它极强的生命力。与此同时,由 DVM 扩展而成的各种通用及专用数字仪表仪器,也把电量及非电量技术提高到崭新水平 2。新型数字电压表以其高准确度、高可靠性、高分辨率、高性价比等优良特性备受人们的青睐。本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D 转换采用 ADC0808 对输入的模拟信号进行转换,控制核心 AT89C51 再对转换的结果进行运算处理,最后驱动输出装置 LED 显示数字电压信号 3。1 系统整体设计思路
10、及方案1.1 设计思路1)根据设计要求,选择 AT89C51 单片机为核心控制器件。2)A/D 转换采用 ADC0808 实现,连接单片机的 P0 口和 P3 口的低四位引脚。3)电压显示采用 4 位一体的 LED 数码管。4)LED 数码管的段码输入由端口 P1 产生;位码输入用端口 P2 高四位产生。1.2 设计方案本设计选择 AT89C51 单片机作为核心控制器件。A/D 转换采用 ADC0808 来实现。电压显示采用 4 位一体的 LED 数码管,LED 数码管的段码输人由端口 P1输出,位码输人由端口 P2 高四位输出。硬件电路设计由 6 个部分组成: A/D 转换电路,AT89C5
11、1 单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计如图 1-1 所示。 新疆师范大学 2013 届本科毕业生毕业设计2时钟电路 复位电路A/D 转换 测量电压显示系统AT89C51 P0 P3 P2 P1 P2 P1 图 1-1 系统设计框图2 数字电压表的硬件设计2.1 单片机主控制模块的设计2.1.1 AT89C51 性能简介AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含有 4KB 的可反复擦写的只读程序存储器和 128 字节的随机存储器。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MC
12、S-51 指令集和输出管脚相兼容,由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL的 AT89C51 是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 4。AT89C51 功能性能:与 MCS-51 成品指令系统完全兼容;4KB 可编程闪速存储器;寿命:1000 次写/擦循环;数据保留时间:10 年;全静态工作:0-24MHz;三级程序存储器锁定;128*8B 内部 RAM;32 个可编程 I/O 口线;2 个 16 位定时/计数器;5 个中断源;可编程串行 UART 通道;片内震荡器和掉电模式 5。2.1.2 AT89C51 各引脚功能AT89C
13、51 提供以下标准功能:4KB 的 Flash 闪速存储器,128B 内部 RAM,32个 I/O 口线,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51 可降至 0Hz 静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存 RAM 中的新疆师范大学 2013 届本科毕业生毕业设计3内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。AT89C51采用 PDIP 封装形式,引脚配置如图 2-1 所示 6。图 2-1 AT
14、89C51 引脚图AT89C51 芯片的各引脚功能为:P0 口:这组引脚共有 8 条,P0.0 为最低位。这 8 个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是 89C51 不带外存储器,P0 口可以为通用I/O 口使用,P0.0-P0.7 用于传送 CPU 的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是 89C51 带片外存储器,P0.0-P0.7 在 CPU 访问片外存储器时先传送片外存储器的低 8 位地址,然后传送 CPU 对片外存储器的读/写数据。P0 口为开漏输出,在作为通用 I/O 使用时,需
15、要在外部用电阻上拉。P1 口:这 8 个引脚和 P0 口的 8 个引脚类似,P1.7 为最高位,P1.0 为最低位,当 P1 口作为通用 I/O 口使用时,P1.0-P1.7 的功能和 P0 口的第一功能相同,也用于传送用户的输入和输出数据。P2 口:这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用 I/O 口使用,它的第一功能和 P0 口引脚的第二功能相配合,用于输出片外存储器的高 8 位地址,共同选中片外存储器单元,但不像 P0 口那样传送存储器新疆师范大学 2013 届本科毕业生毕业设计4的读/写数据。P3 口:这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制
16、功能,每个引脚并不完全相同,如下表 2-1 所示:表 2-1 P3 口各位的第二功能P3 口各位 第二功能P3.0 RXT(串行口输入)P3.1 TXD(串行口输出)P3.2 /INT0(外部中断 0 输入)P3.3 /INT1(外部中断 1 输入)P3.4 T0(定时器/计数器 0 的外部输入)P3.5 T1(定时器/计数器 1 的外部输入)P3.6 /WR(片外数据存储器写允许)P3.7 /RD(片外数据存储器读允许)Vcc 为+5V 电源线,GND 接地。ALE:地址锁存允许线,配合 P0 口的第二功能使用,在访问外部存储器时,89C51 的 CPU 在 P0.0-P0.7 引脚线去传送
17、随后而来的片外存储器读/写数据。在不访问片外存储器时,89C51 自动在 ALE 线上输出频率为 1/6 震荡器频率的脉冲序列。该脉冲序列可以作为外部时钟源或定时脉冲使用。/EA:片外存储器访问选择线,可以控制 89C51 使用片内 ROM 或使用片外ROM,若/EA=1,则允许使用片内 ROM, 若/EA=0,则只使用片外 ROM。/PSEN:片外 ROM 的选通线,在访问片外 ROM 时,89C51 自动在/PSEN 线上产生一个负脉冲,作为片外 ROM 芯片的读选通信号。RST:复位线,可以使 89C51 处于复位(即初始化)工作状态。通常 89C51 复位有自动上电复位和人工按键复位两
18、种。XTAL1 和 XTAL2:片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接 89C51 片内 OSC(震荡器)的定时反馈回路。2.1.3 AT89C51 的复位电路和时钟电路单片机中 CPU 每执行一条指令,都必须在统一的时钟脉冲的控制下严格按新疆师范大学 2013 届本科毕业生毕业设计5时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU 执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51 单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1 为该放大器的输入端,XTAL2 为该放大器输出端,但形成时钟电路还需附加其他电路
19、 7。单片机 AT89C51 的时钟电路如图 2-2 所示,主要由电容 C1- C3、电阻 R1、晶振 X1 等组成。AT 89C51 的 18 脚(XTAL2)和 19 脚(XTAL1)接时钟电路,其中19 脚是 AT89C51 内部振荡器倒相放大器的输入端,用于接外部晶振和微调电容的一端;18 脚是 AT89C51 内部振荡器倒相放大器输出端,用于接外部晶振和微调电容的另一端。图 2-2 AT89C51 的时钟电路图单片机在启动运行时都需要复位,使 CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51 单片机有一个复位引脚 RST,采用施密特触发输入。当震
20、荡器起振后,只要该引脚上出现 2 个机器周期以上的高电平即可确保时器件复位。复位完成后,如果 RST 端继续保持高电平,MCS-51 就一直处于复位状态,只要 RST 恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图 2-2 是 51 系列单片机统常用的上电复位和手动复位组合电路。图 2-3 AT89C51 的复位电路新疆师范大学 2013 届本科毕业生毕业设计62.2 A/D 转换电路设计 现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D 转换器) ,A/D 转换器是单片机数据采集系统的关键接口电路,按照各种 A/D
21、芯片的转化原理可分为逐次逼近型,双重积分型等等。双积分式A/D 转换器具有抗干扰能力强、转换精度高、价格便宜等优点。与双积分相比,逐次逼近式 A/D 转换的转换速度更快,而且精度更高,比如 ADC0809、ADC0808等,它们通常具有 8 路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。一个 n 位的逐次逼近型A/D 转换器只需要比较 n 次,转换时间只取决于位数和时钟周期,逐次逼近型A/D 转换器转换速度快,因而在实际中广泛使用 8。2.2.1 ADC0808 的主要特性ADC0808 是 CMOS 单片型逐次逼近式 A/D 转换器,带有使
22、能控制端,与微机直接接口,片内带有锁存功能的 8 路模拟多路开关,可以对 8 路 0-5V 输入模拟电压信号分时进行转换,由于 ADC0808 设计时考虑到若干种模/数变换技术的长处,所以该芯片适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。ADC0808 是分辨率为 8 位的、以逐次逼近原理进行模/数转换的器件。其内部有一个 8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通 8 路模拟输入信号中的一个进行 A/D 转换。ADC0808 是 ADC0809 的简化版本,功能基本相同。一般硬件仿真时采用 ADC0808 进行 A/D 转换,实际使用时采用ADC0809 进行 A/D 转换 9。 2.2.2 ADC0808 各引脚功能