四路数字电压表.doc

上传人:夺命阿水 文档编号:23000 上传时间:2022-07-16 格式:DOC 页数:15 大小:58.50KB
返回 下载 相关 举报
四路数字电压表.doc_第1页
第1页 / 共15页
四路数字电压表.doc_第2页
第2页 / 共15页
四路数字电压表.doc_第3页
第3页 / 共15页
四路数字电压表.doc_第4页
第4页 / 共15页
四路数字电压表.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《四路数字电压表.doc》由会员分享,可在线阅读,更多相关《四路数字电压表.doc(15页珍藏版)》请在课桌文档上搜索。

1、四路数字电压表设计摘要随着微电子技术的不断开展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成 CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。数字电压表就是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。本课程设计是基于单片机的数字电压表的设计,该设计主要由三个模块组成:A/D 转换模块,数据处理模块及显示模块。A/D 转换主要由芯片 ADC0808 来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理模块则由芯片 AT89C51 来完成,其负责把 ADC0808

2、传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进展显示。此数字电压表电路相对简单,所用的元件较少,本钱低,且测量精度和可靠性较高。关键词:A/D 转换器, AT89C51, ADC0808目 录1 绪论 11.1 课题描述 11.2 根本工作原理及框图 12 相关芯片及硬件电路设计 22.1 AT89C51 芯片 22.2 ADC0808 芯片 22.2.1 ADC0808 芯片介绍 22.2.2 ADC0808 转换原理 32.3 时钟电路 42.4 复位电路 42.5 A/D 转换电路 52.6 数码显示电路 62.7 总电路 73 软件设计 73.1 程序设计总方案 73

3、.2 系统子程序设计 83.2.1 初始化程序 83.2.2 A/D 转换子程序 83.2.3 显示子程序 93.3 程序设计 94 调试仿真 11总结 13致 14参考文献 151 绪论1.1 课题描述数字电压表的诞生打破了传统电子测量仪器的模式和格局。它显示清晰直观、读数准确,采用了先进的数显技术,大减少了因人为因素所造成的测量误差事件。数字电压表是把连续的模拟量直流输入电压转换成不连续、离散的数字形式,并加以显示的仪表。数字电压表把电子技术、计算技术、自动化技术的成果与精细电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创

4、了现代电子测量技术的先河1。本课程设计就是利用单片机和 A/D 转换器设计的一个四路数字电压表。1.2 根本工作原理及框图本实验采用 AT89C51 单片机芯片配合 ADC0808 模/数转换芯片构成一个简易的四路数字电压表。它是由硬件电路和软件所组成,而硬件电路又可分为 A/D 转换模块,数据处理模块及数码管显示模块。其工作过程:模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到 A/D 转换器进展 A/D 转换。然后送到数据处理模块中进展数据处理,处理后的数据送到 LED 数码管中显示。通过调节滑动变阻器的值可以改变各路模拟电压的值2。其根本工作原理框图如图 1 所示。模拟电压A/

5、D转换模块数据处理模块 数码管显示模块图 1 根本工作原理框图2 相关芯片及硬件电路设计2.1AT89C51 芯片AT89C51 是 51 系列单片机的一个型号,它是 ATMEL 公司生产的。AT89C51 是一个低电压、高性能 CMOS 8 位单片机。将通用的微处理器和 Flash 存储器结合在一起,可反复擦写的 Flash 存储器可有效地降低开发本钱。AT89C51 有 PDIP、PQFP/TQFP及 PLCC 等三种封装形式,以适应不同产品的需求3。其引脚图如图 2 所示。图 2AT89C51 引脚图AT89C51 提供以下标准功能:4K 字节 Flash 闪速存储器,128 字节部 R

6、AM,32 个I/O 口线,两个十六位定时/计数器,一个 5 向量两级中断构造,一个全双工串行通信口,片振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停顿 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的容,但振荡器停顿工作并制止其他所有部件工作直到下一个硬件复位。2.2ADC0808 芯片芯片介绍ADC 0808 采用逐次比较的方法完成 A/D 转换,由单一的+5V 电源供电。片带有锁存功能的 8 路选 1 的模拟开关,由 A、B、C 的编码来决定所选的通道。ADC080

7、8 完成一次转换需 100s 左右,它具有输出 TTL 三态锁存缓冲器,可直接连接到 AT89C51的数据总线上。通过适当的外接电路,ADC0808 可对 05V 的模拟信号进展转换4。其引脚图如图 3 所示。图 3 ADC0808 引脚图引脚说明:1IN0IN7:8 路模拟量输入端。2D0D7:8 位数字量输出端口。3START:A/D 转换启动信号输入端。4ALE:地址锁存允许信号,高电平有效。5EOC:输出允许控制信号,高电平有效。6OE:输出允许控制信号,高电平有效。7CLK:时钟信号输入端。8A、B、C:转换通道地址,控制 8 路模拟通道的切换。ADC0808 转换原理ADC 是一种

8、根本的外围扩展器件,其种类很多,工作原理也不仅一样,比较有代表性的是:单积分型,双积分型,脉宽调制型和逐次比较型逐次逼近型 。从产品性价比、转换速度和精度等方面综合分析,逐次比较型 ADC 是相对应用比较广的类型之一。逐次逼近型 ADC 实际采用的方法上从高到底开场逐位设定,比较模拟量输出,再来确定原设定位的正确与否5。逐次比较型 ADC 原理构造如图 4 所示。图 4 ADC 原理构造图其工作原理如下:首先,被测模拟电压 ui 通过逐次比较存放器,将传递进的脉冲CP 信号转换成数字信号,该数字量再经过数/模转换器生成对应的模拟量 Us。当获得模拟量 Us 的数值到达并接近被测电压所对应 ui

9、 后,就可以检测出电压比较器完成最后的反转。此时,逐次比较积存器的计数值就是被测电压 ui 所对应的数字量,从而完成模拟量的转换。2.3 时钟电路单片机工作的时间基准是由时钟电路提供的,在单片机的*TAL.1 和*TAL.2 两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器 C1 和 C2 对振荡频率有微调作用,通常取(3010)pF 石英晶体选择 6MHz 或 12MHz 都可以6。其电路图如图 5 所示。图 5 时钟电路图2.4 复位电路AT89C51 单片机要求至少两个高电平,以便单片机做好准备工作。当上电时,由于电容的电压不能突变,会输出高电平,当电容充电到一定程度,

10、就会输出低电平,单片机利用输出高电平的这段时间复位7。电阻和电容的值选择要适宜,在这要求R1R2,所以选取 R10=1K,R9=10K。当按下开关按钮即可使单片机复位,其电路图如图 6 所示。图 6 复位电路图2.5A/D 转换电路如图 7 所示是 ADC0809 与 AT89C51 单片机的转换电路。ADC0808 的数据OUT0-OUT7 直接与单片机的总线 P0 相连,通道 IN0-IN3 接四路模拟电压 RV1-RV4 对输入的电压进展模数转换,其他通道直接悬空。时钟 CLK 由单片机的 ALE 取得,对于晶振为 12MHz 的单片机 ALE 输出为 2MHz 的方波,但前面提到 AD

11、C0808 的时钟频率一般为 500KHz,最大能超过 1280KHz,但在实际应用中 2MHz 的信号也可以使ADC0808 正常工作。START、ALE 和 OE 分别由单片机的 WR、RD 和 P2.7 经或非门接入、这样主要是满足 ADC0808 的信号电平与时序的要求。图 7 A/D 转换电路图按此图 7 中的片选接法,8 个模拟输入通道IN0-IN7的地址分别为 7FF8H-7FFFH。由于 EOC 未接入单片机,故只能采用延时等待的方法来读取 A/D 转换的结果即当单片机启动 ADC0808 后延时一段时间再主动去读 ADC0808 的转换结果 。但是如果单片机在进展 A/D 转

12、换时还要执行其他的程序可以将 EOC 接在单片机的中断上,这样当 A/D 转换完后 EOC 可以对单片机产生中断使其读取 A/D 转换的结果。2.6 数码显示电路单片机对 ADC0808 的转换的结果采用查询方式进展读取,通过计算,可以在显示器上将模拟量的结果显示出来。显示子程序采用动态扫描法用 4-LED 显示器实现四位数码管的数值显示。4-LED 显示器是一个共阴极接法的 4 位 LED 数码显示管,其中a,b,c,e,f,g 为 4 位 LED 各段的公共输出端,1、2、3、4 分别是每一位的位数选端,dp 是小数点引出端,4 位一体 LED 数码显示管的部构造是由 4 个单独的 LED

13、 组成,每个 LED 的段输出引脚在部都并联后,引出到器件的外部。为了简化数字式直流电压表的电路设计,在数码管显示电路的设计上采用 P3 口作为 LED 的段码输出信号,P1 口的低四位作为 LED 位码的输出控制信号。该电路的工作原理:当 P3 口输出段码信号的 BCD 码后,输出具有一定驱动能力的七段字形码,由于 4-LED 的段码输入管脚是并联在一起的,所以每一位 LED 的段码输入管脚都能获得这个段码信号。假设要控制在每一时刻只有一位 LED 被点亮,必须靠位码信号控制。P1 口低四位输出位码信号后接到 LED 的位码控制端,因此 P1 口的低四位的位码信号在每一时刻只有一位是1,其他

14、位全为0,然后按时间顺序改变输出1的位置,控制在每一时刻只有一位 LED 被点亮,到达动态显示的目的。图 8 数码显示电路2.7 总电路总体电路图如图 9 所示。该电路通过 ADC0808 芯片采样输入口 IN0IN3 输入的05 V 的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道OUT0OUT7 传送给 AT89C51 芯片的 P0.0 和 P0.7 口。AT89C51 负责把接收到的数字量经过数据处理,产生正确的 7 段数码管的显示段码,并通过其 P1.0P1.2 口传送给数码管,由数码管显示各路的模拟电压值。图 10 总体电路图3 软件设计3.1 程序设计总方案根据模块的

15、划分原则,将该程序划分初始化模块,A/D 转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图 11 所示。图 11 主程序框图3.2 系统子程序设计3.2.1 初始化程序所谓初始化,是对将要用到的 MCS-51 系列单片机部部件或扩展芯片进展初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和翻开定时器等转换子程序A/D 转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的存单元,其转换流程图如图 12 所示。图 13 A/D 转换流程图3.2.3 显示子程序子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方

16、式时,要使得 LED 显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在 70HZ 左右时,能够产生比较好的显示效果,一般可以采用间隔 10ms 对 LED 进展动态扫描一次,每一位 LED 的显示时间为 1ms。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器 0 溢出中断功能实现 11s 定时,通过软件延时程序来实现 5ms 的延时3.3 程序设计根据以上分析,在 Keil4 编写控制程序如下所示。*includeunsigned char a16=0*3f,0*06,0*5b,0*4f,0*66,0*6d,0*7d,0*07,0*7f,0*6f,0*77

17、,0*7c,0*39,0*5e,0*79,0*71,b4,c=0*01;sbit START=P24;sbit OE=P26;sbit EOC=P25;sbit add_a=P22;sbit add_b=P21;sbit add_c=P20;sbit led=P27;sbit buzzer=P23;void Delay1ms(unsigned int count); unsigned int i,j; for(i=0;icount;i+)for(j=0;j120;j+);void show() unsigned int r; for(r=0;r4;r+) P1=(c=0*40)for(i=0;

18、i=100;i+) led=led;buzzer=buzzer; led=1; buzzer=1; else led=0; buzzer=0;addata=addata*1.96;OE=0;b0=aaddata%10; b1=aaddata/10%10;b2=aaddata/100%10;b3=aaddata/1000;for(i=0;i=0*80) for(i=0;i=100;i+) led=led; buzzer=buzzer; led=1; buzzer=1;else led=0;buzzer=0;addata=addata*1.96; OE=0; b0=aaddata%10; b1=a

19、addata/10%10; b2=aaddata/100%10;b3=aaddata/1000;for(i=0;i=200;i+) show(); 4 调试仿真利用 Proteus 仿真软件画出电路图,并在 Keil4 上编写控制程序,并编译生成.he*文件,将,he*文件加载到 AT89C51 上,然后进展仿真。通过调节可调电阻 RV 可改变模拟电压的大小,于是将其四路模拟电压分别设定为+0.00V、+2.50V、+3.50V、+4.99V 进展调试,调试仿真图如图 14 所示。其调试结果分别为00.00V、02.48V、03.48V、04.99V,通过屡次模拟调试比照数码管显示电压与标准电

20、压表上的电压可以发现数字电压表能够实现四路模拟信号的 A/D 转换,并将转换结果在数码管上显示到小数点后 2 位,而且可以通过调节可调电阻输入模拟电压的大小,其绝对误差为 0.02V 在误差-0.02V+0.02V 围。故本四路数字电压表符合了本次课程设计的要求。图14 调试仿真图总 结本次课程设计主要实现了数字电压表测量四路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。在本次设计采用了 AT89C51 单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。此外,在设计中还用到了模/数转换芯片 ADC0808,使数据采集与转换更加容易。以前在学单片机课程时只是对其理论知识有了初步的理解,通过这次设计,我对单片机的工作原理有了更深的理解。无论是在硬件连接方面,还是在软件编程方面,我都得到很大提高。参考文献 1 胡汉才单片机原理与接口技术M:清华大学,1995.6 2楼然苗等51 系列单片机设计实例M:航空航天,2003.3 3何立民. 单片机高级教程M:航空航天大学,2001 4 毅刚单片机原理与应用设计M:电子工业,2008 5 吕运朋MCS-51 单片机原理、接口机应用M:理工大学,2009 6伟单片机 C 语言程序设计实例 100 例M:电子工业,2010 7于凤明单片机原理及接口技术M:中国轻工业1998

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号