单片机的数字电压表设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本设计由于采用双通道输入的方式,所以可以选择不同的量程,分别为 0~5V 和 5~10V。这个操作由选择开关 K1、K2 来完成,但是如果 K1、K2 同时 闭合,报警提示灯点亮。电路如图 2-7 所示:
图 2-7 量程选择和报警电路图
7
2.4 LCD1602 显示电路设计 本次设计中采用 LCD1602 作为显示器,与以前的 LED 数码管显示相比,
3.1 初始化程序
所谓初始化,将利用到单片机内部各部件或扩展芯片进行初始工作状态设 定,其主要负责设置定时器模式、初始设定、开中断和打开定时器等,对于液 晶 1602 同样也要进行初始化,其中包括清除显示屏、显示开/关控制、功能设 置、进入模式设置等。其中部分初始化程序如下:
9
w_comd(0x0c); w_comd(0x06); ET0=1;
图 2-5 时钟电路图
由图 2-4 可知,晶体的振荡频率通常取取 12MHz,对于 11.0592MHz 一般
在单片机串行通信时使用。这时单片机一个时钟周期为:
T
1 12 106
12s
1us
(2-1)
图电容 C1 和 C2,它们和晶振的主要作用是结合单片机内部振荡电路实现
相位的 180°移相,这样晶振才能够起振。同时对电路中所需的电容储电量要
ADC0808 内部结构主要有 8 路模拟通道选择开关、地址锁存与译码器和 8 位 A/D 转换器、三态输出锁存器等构成,其引脚及连接电路如图 2-1 所示:
3
图 2-1 ADC0808 引脚图
由图 2-1 所示,其中 IN0~IN7 为模拟量输入通道,其输入电压范围均为 0~5V。此次设计分为两通道输入分别为 IN0(0-5V)和 IN1(5-10V),并且采 用开关 K1、K2 来选择。A、B、C 为模拟量输入通道的选择端,是与单片机的 P1 相连并通过软件的编程产生控制信号。ALE、START 为地址锁存允许信号 和转换启动信号,它们都有单片机 P3 口产生控制信号。转换器的 CLK 由单片 机的中断程序产生,主要是完成输入数据的扫描。EOC 是 ADC0808 转换结束 信号端口,只有等到 EOC 变为高电平,数据转换才结束。实现这个过程,就需 要使用程序设计来完成。OE 是输出允许信号,只有 OE 为低电平时,才能输出 转换得到的数据。程序中先让 OE 为 0,然后为 1,这样把数据送入单片机 P2 口。VREF(+)、VREF(—)是芯片的电源接口。 2.2 电压输入电路
其显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动 电路。同时可以满足不同的输入、移位要求,而且接口方式简单、可靠。LCD1602 模块的引脚及连接电路如图 2-8 所示:
图 2-8 LCD1602 引脚
其中 D0~D7 数据接收端口与单片机 P0 口相连。E 端为使能端,当它由 0 变为 1,LCD1602 才能进行读写操作,它和单片机 P3.5 相连,并由其输出控制 信号。RS、RW 是 1602 的读写控制端,它们分别与单片机的 P3.6、P3.7 相对 应,这样使用 LCD 显示时可由单片机的程序完成控制。VDD、VSS 为液晶屏 的电源端口,VEE 端电压信号的大小可以改变液晶屏的亮度。由于 P0 口作为 输出口时,它没有高电平的状态所以仿真电路时需要加上拉电阻 RP1,这样 P0 口就有高电平状态。
由于 ADC0808 芯片采用逐次逼近式 A/D 转换原理,因此本设计便运用其 进行模/数转换,它可以实现 8 路模拟信号的选择采集,而且它的转换时间为 100us。此次使用的是 12MHz 的晶振,因此它能够提供转换的时钟即满足设计 的需要。
对于 n 位的 A/D 转换器,它的分辨率是满量程输入电压和 2n 之比。ADC0808 的满量程为 5V。则其分辨率为 0.02V。
求不高,均为 30pF。若过高或过低都会对振荡产生影响。
2.4.2 复位电路
AT89C51 单片机的 RST 为复位引脚,复位信号高电平有效,并且其有效时 间应该延续出现 2 个机器周期以上即可确保系统复位,复位操作完成后,RST 端一直保持高电平,那么单片机就始终处于复位状态,当 RST 恢复低电平后单
清屏
功能设置
调用延时
显示状态设 置
延时程序
输入方式设 置
结束
图 3-5 LCD 初始化流程图
该设计主要使用了 LCD1602 的读忙操作、写数据操作、写命令操作和写字 符操作。其中每个操作都需要使能端 RW、RS 的控制信号,当 RS、RW 均为 0 的情况下,可以进行读、写操作,而读忙只有 RS=0、RW=1 时,才能进行此操 作。LCD1602 如果要显示字符,首先要写入显示字符的首地址,此次使用的是 从第一行第四个字符 04 地址开始显示,但是液晶写数据操作时地址最高位 D7 必须为高电平,因此写入数据的时候应该是 00000100(04H)+10000000(80H) =10000100(84H)。
8
3. 系统程序设计
系统的主程序流程如图 3-1 所示:
开始
初始化
m>1000? N Y
接收并处理 数据
选择量程
显示电压值
显示MAX
等待下一次数据
图 3-1 系统主程序流程图
本设计程序设计主要分为几个模块:初始化程序设计、A/D 采样程序设计、 测量参数数据处理程序设计、量程选择和报警程序设计、LCD1602 显示程序设 计。下面逐个介绍各个模块的程序设计。
11
4.
4.1 显示结果及误差分析 4.2.1 显示结果
1.当输入电压为 4.55V 时,显示结果如图 4-1 所示,实际电压为 4.54V。
图 4-1 输入电压为 4.55V 时,LCD 显示结果
2.当输入电压为 9.97V 时,显示结果如图 4.2 所示,实际电压为 9.96V。
1.2 设计方案
总体设计电路有以下几部分组成:AT89C51 单片机、A/D 转换电路、液晶 LCD 显示电路、时钟电路、复位电路、被测电压输入电路及量程选择和报警电 路。总体硬件设计框图如图 1-1 所示:
时钟电路 复位电路
AT89C51
P1
A/D转换电路
输 入 直 流 电 压
量程选择
显示电路 P2
ADC0808 的基准电压为+5V,所以当要测量的电压值超过 5V 时则需要由 开关选择衰减电路,经过衰减后输入转换采集器。输入电路如图 2-4 所示:
4
图 2-4 输入电路图
当要测试的电压为 0~5V 时,选择 IN0 输入,在仿真中运用滑动变阻器分 压的原理产生 0-5V 的电压来代表实际电压。而当超过 5V 时则选择左边的电路, 由于实际的电压变允许适当的超量程,所以图中 R5 和 R6 的电阻值分别为 6k、 3k,这样就把电压衰减为原来电压值的 1/3,同时由于 RV5 分压的原理可以得 到 5~10V 的电压来模拟实际要测试的电压值。同时其最高测量电压允许适当超 过 10V。这样本电压表就有两个量程即 0~5V 和 5V~10V。需要变换量程时,由 选侧开关 K1、K2 相互切换。由于本此设计采用手动调节电压档位的方式,因 此在测量电压时应该先对被测电压进行估算,同时先由较大量程进行测量,如 果值过小,再调节档位。不然不容易超量程损坏仪器。直流电压输入时,由于 尖峰的出现,也就需要对输入的电压进行滤波,电容 C4、C5 在次的作用就是 进行滤波
1
系统硬件设计总体方案
1.1 设计要求
以 MCS-51 单片机为关键部件,制作一个简易的数字电压表。 (1)使用双通道可选择直流电压输入,能够测量 0-5V 和 5-10V 之间的直流电 压。当电压值超过 5V 时,选择通道 2(5-10V 通道)采集电压。 (2)使用 LCD1602 来完成电压的液晶显示。 (3)使用较少的元器件,尽可能降低功率损耗,同时准确、快速完成测量。 (4)由于电压表允许过载,因此所测电压允许适当超过量程。
5
2.3 接口电路
对于本设计,主要的接口电路有时钟电路、复位电路、电压量程选择和报 警电路。
2.4.1 时钟电路
单片机 89C51 芯片中有一个内部时钟,其中引脚 18 为输入端,19 为输出 端引脚,这两个引脚连接一个 12MHz 的晶振,同时再连接两个瓷片电容,这 样便提供片内相移的条件,时钟电路如图 2-5 所示:
液晶 LCD 初始化主要就是在液晶显示器的每一个寄存器的初始设置,也就 是向 LCD 中的各个寄存器写入要设定的数据。该设计的初始化过程为先上电,
10
然后进行判忙操作,最后再进行各个功能的设置,其中包括显示状态的设置(行、 位的起始位置)、输入方式的设置。初始化过程如图 3-5 所示:
上电 开始
调用延时
6
片机才能进入其他操作。单片机复位电路有几种类,本次设计主要采用手动复 位电路,这样可以人为的操作,简单方便。电路如图 2-6 所示:
图 2-6 复位电路
由上图 2-6 可知,只有 RST 端维持 2 个周期以上高电平才能完成复位操作。 电容 C3 两端在单片机启动时持续充电为 5V,由于按键未按下,电阻 R1 两端 电压为 0,此时 RST 处于低电平系统工作正常,当按键摁下时,电阻 R2 所在 的支路导通,与 C3 形成一个回路,电容 C3 开始释放之前所充的电量,在很短 的时间内,其电压值由 5V 变为 1.0V,甚至更小些,与此同时,RST 又收到高 电平,这时系统自动复位。 2.4.3 量程选择和报警电路
图 1-1 硬件电路设计框图
2
1百度文库3
2. 系统硬件电路设计
2.1 A/D 转换模块 日常生活中的物理量都是模拟量,为了能够方便的分析各个量,就需要把
模拟量转换成数字量的器件。现在越来越多的设备都需要进行模数转换,把复 杂的模拟信号转换成已明白的数字信号,因此 A/D 转换器也得到了更深一层的 研究。按照不同的 A/D 转换芯片的转换原理可把其分为逐次逼近行、双积分型 等。其中双积分式 A/D 转换器抗干扰能力强、转换精度高、价格便宜。但与双 积分相比,逐次逼近式 A/D 转换的转换速度更快,而且精度更高,它们可以与 单片机系统连接,将数字量送入单片机进行分析和显示。一个 n 位的逐次逼近 型转换器只需要比较 n 次,这样大大节省了时间,而且逐次逼近型转换速度快, 因而在实际中得到广泛的使用。
基于单片机的数字电压表的设计
摘要
近些年来,数字电压表逐渐进入人们的视线中,它主要采取数字化测量技 术。与传统的指针式仪表相比,它的功能有了进一步的完善,并且精度也有了 很大的提高。数字电压表主要采用单片机和模/数转换模块,这样不仅提高了测 量速度,而且抗干扰能力强、使用便捷、可扩展性强、测量准确。
本文主要采用 AT89C51 单片机和 ADC0808 芯片制作的简易数字电压表, 可以采集 0~5V 和 5~10V 的模拟直流电压进行测量,其测量结果在液晶 LCD1602 上显示。该设计硬件电路主要有三个模块组成:A/D 转换模块、数据处 理模块及输出显示模块。数据处理由单片机 AT89C51 来完成,它主要把 ADC0808 传送来的数值经一定的数据处理,然后送至显示模块进行显示,同时 控制显示芯片 1602 的工作。程序设计上有各模块初始化操作、电压档位选择和 LCD1602 液晶显示程序等。 关键词:单片机;数字电压表;LCD1602;ADC0808;AT89C51
//开显示屏,关光标; //字符进入模式:屏幕不动,字符后移; //开定时中断;
3.2 A/D 转换程序
模/数转换流程图如图 3-2 所示。
开始
启动转换器
N
EOC=1?
Y
输出数据
数值转换
图 3-2 A/D 转换流程图
由图可知,A/D 转换程序首先定义启动信号、输出允许信号、输入地址锁 存信号、A/D 转换结束信号及 CLK 时钟信号的变量。然后利用 AT89C51 中定 时器 T0 的工作方式 2 产生 CLK 信号,供 A/D 转换器使用,START 信号的上 升沿启动 A/D 转换,等待转换结束,即 EOC 从 0 变为 1,同时 OE 是输出使能 信号端,其信号从高到低电平,输出转换数据并将其进行数值转换分别求出百、 十、个位,再送入 LCD 进行数据显示。 3.3 LCD1602 显示程序 3.3.1 LCD1602 初始化
相关文档
最新文档