数字电压表仿真设计

合集下载

基于Proteus的数字电压表仿真设计

基于Proteus的数字电压表仿真设计

+,-./01 ] ^ _ ` SDKE/>./, a b c . + d e f g h i j
01 k c .l m ] n o p q r s t u + QR% 0 1 v w x d yz{E |%> }~%> 01 t K %> T i j + 01 v w k V/=H W+S%X K c . + z { + TPU S %¡ ¢ + £ ¤ ¥ } ¦ § ¨ © U ª %&'()*6 K « Z ¬ ­ ® : +,-./01 0 1 2 3 < ¯ S d ° ~ %¡ ± + '( ² A ³ ~ % ¡ ± + ' (A ´ 4 µ ¶ · ¯ ¸ +,-./01 v w ¹ K « Z i j + ' ( A ´ ? + < :£
ï P6 ð
ï4\
FGDE@H
\-H]P4
:-]4
QH/E.,->=E R/1=J> Q>J=>//,=>J
P742 ñ 4 ò <D>] P742
基于 !"#$%&' 的数字电压表仿真设计
! "
#$ % &' & ( )* + , -. / * + # $ 0 1 !"#$$$ !" 2 34 5 6 78 9 : ;< = > ?@ A 4 B3 C D E %&'()*" F G H 2I J K L 9 M N +,-./01 O P Q ) R ST 6 78 U V WX Y Z [\ 3 S T6 7 8 R] ^ _ `U V > a^ b c d e f g h +,-./01 a ^ i j 3 O P k l m n 8o p U VR S T _7 8 m qr F ? @A s f tu v s R: ; < = w x y zo 3 +,-./01 O Pa ^ R {h | Eu } ~ F G R #$ % ST _ 7 8 +,-./01 O P U V F G H &' ( )* &+23' + , -. / % + 01 * 43!53#23 #$62 7"874##872

数字电压表设计与仿真

数字电压表设计与仿真

数字电压表设计与仿真摘要:本文简要的阐述了EDA,分析了VHDL语言的基本特色,阐述了VHDL语言所具有的强大设计功能合广泛的应用领域,并将其应用于具体数字电路设计。

目前电子技术的发展主要体现在EDA领域,数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。

电子设计自动化是近几年迅速发展起来的将计算机软件、硬件、微电子技术交叉运用的现代电子设计学科。

其中EDA设计语言中的VHDL语言是一种快速的电路设计工具,功能涵盖了电路描述、电路合成、电路仿真等三大电路设计工作。

本电压表的电路设计正是用VHDL语言完成的。

此次设计主要应用的软件是美国ALTERA公司自行设计的一种EDA软件工具,即MAX+PLUS Ⅱ。

本次所设计的电压表的测量范围是-24V~+24V,精度为0.19V。

本文设计的VHDL语言程序已在MAXPLUS II工具软件上进行了编译、仿真和调试。

经过实验验证,本设计是正确的,其电压显示值误差没有超过量化台阶上限(0.19V)。

本文给出的设计思想也适用于其他基于FPGA芯片的系统设计;本设计具有工程应用价值。

关键词:数字电压表;VHDL语言;ADC0804;FLEX 10KThe Design and Stimulation of Digital V oltmeter MeterAbstract:EDA technology is briefly introduced,VHDL language and its basic features ane analyzed.This article introduces VHDL which has a strong designal function and extensive application and applies it in concrete circuit design. The develop of the current electronic technology is incarnated the EDA realm. The design of digital system is becoming faster, bulkier, smaller and lighter than before. Electronic design automation is in the last few years quickly develop, it makes use of software, hardware, micro-electronics technology to form a course of electronic design. Among them, the VHDL language of EDA is a kind of tool of fast circuit design , the function covered the circuit describe, the circuit synthesize, the circuit imitate the true etc. The circuit of this design that use VHDL language to complete. The this time design is primarily the applied software is MAX+ PLUS Ⅱ which is made by the United States ALTERA company.This system’s range is-24v to +24v and precision is 0.19v.The designed VHDL language process in paper has been coded, stimulated and adjusted in MAXPLUS IT, and through the experiment, it is proved to been correct, as the voltage value doesn't exceed upper limit of quantified step(0.19V). The design idea in paper also can be applied in other system design which based on FPGA chip; and the design has engineering application value.Keywords:Digital Meter;VHDL language;ADC0804;FLEX 10K第1章绪言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

数字电压表设计与仿真

数字电压表设计与仿真

文献综述一、引言数字仪表是把连续的被测量模拟量自动地变成断续的、用数字编码方式并以十进制数字自动显示测量结果的一种测量仪表。

这是一种新型仪表,它把电子技术、计算机技术、自动化技术与精密电测量技术密切得结合在一起,成为仪器仪表领域中一个独立的分支。

数字仪表的种类很多,应用场合各不相同,其内部结构也相差很大。

根据仪表的用途(即被测量的性质)分为:数字电压表、数字电阻表、数字电流表、数字功率表、数字Q(品质因素)表、数字静电计、数字电桥及电子计数器等。

经过适当变换,还可以制成测量多种非电量的仪表,如数字温度表、数字转速表、数字位移表、数字钟、数字秤、数字测厚仪及数字高斯计等,还有许多其他数字式测量仪器和测量装置。

在各种数字仪表中,数字电压表的用途居于较为突出的地位,它不但用来测量各种电量,而且还广泛用来进行各种非电量的电测量,同时在实现工业自动化,生产过程的自动控制以及测量本身的自动化等方面,都起着很重要的作用。

数字电压表(DVM)是一个具有数字显示功能的多量程仪表,它是测量仪表(可测量电压、电流和电阻)中最常用的一个测试功能项、一旦测量仪表的范围和方式选定,即可测量直流信号(DC)也可测量交流信号(AC)的参数。

有些数字表的设计是由电池驱动且可携带,而另外一些是基于主机(计算机)驱动且由磁盘安装的。

数字式仪表与模拟式仪表相比,使用零件少,集成度高,稳定性和可靠性相对较高,输入阻抗高,提高了测量精度。

数字电压表的设计通常以ASIC芯片为控制核心,在A/D转换器、显示器等外围器件的配合下工作。

A/D转换器在控制核心ASIC所提供的时序信号作用下,对输入模拟信号进行转换,制核心再对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。

这种设计方法的缺陷是:控制核心的灵活性不高,系统功能难以更新和扩展。

如果用可编程逻辑器件FPGA代替ASIC芯片,用硬件描述语言决定系统功能,就可在硬件不变的情况下修改程序以更新和扩展功能,使其灵活性和适应性显著提高。

基于AT89C51单片机的数字电压表的Proteus仿真设计与应用

基于AT89C51单片机的数字电压表的Proteus仿真设计与应用

基于AT89C51单片机的数字电压表的Proteus仿真设计与应用一、本文概述本文旨在深入探讨基于AT89C51单片机的数字电压表的Proteus 仿真设计与应用。

我们将从AT89C51单片机的特点出发,分析其在数字电压表设计中的优势,并详细阐述如何利用Proteus仿真软件进行电路设计与仿真的全过程。

通过本文的阐述,读者将能够对基于AT89C51单片机的数字电压表的设计原理、电路构建、仿真测试等方面有全面的了解,并能在实践中应用所学知识,实现数字电压表的开发与优化。

本文将首先介绍AT89C51单片机的基本特性,包括其内部结构、功能特点以及适用场景。

接着,我们将详细解析数字电压表的设计原理,包括电压信号的采集、处理与转换等关键步骤。

在此基础上,我们将深入探讨如何利用Proteus仿真软件进行电路设计与仿真,包括电路元件的选择、电路连接、仿真参数设置等具体操作。

通过Proteus仿真软件的应用,我们能够在虚拟环境中对数字电压表进行仿真测试,从而验证电路设计的正确性,预测实际运行效果,优化电路设计。

Proteus仿真软件还具有操作简便、可视化程度高、仿真速度快等优点,使得电路设计与调试过程更加高效便捷。

本文将总结基于AT89C51单片机的数字电压表的Proteus仿真设计与应用过程中的经验教训,为读者在实际开发中提供参考与借鉴。

通过本文的学习与实践,读者将能够掌握数字电压表的设计与开发技能,为未来的电子工程设计与实践奠定坚实的基础。

二、AT89C51单片机概述AT89C51是Atmel公司生产的一款8位低功耗、高性能的CMOS微控制器,它属于AT89系列单片机。

AT89C51单片机内部集成了4KB 的可反复擦写的Flash只读程序存储器,这使得它具备了程序存储空间的持久性和可修改性,大大简化了程序的更新和维护过程。

它还拥有128字节的内部RAM,用于程序执行过程中的数据存储和临时变量存储。

AT89C51单片机采用了32个可编程的I/O口线,满足了大多数基本外设的接口需求。

《数字电压表仿真》实验报告1

《数字电压表仿真》实验报告1

成都理工大学工程技术学院《单片机仿真》课程设计报告题目:数字电压表的设计姓名:杨青昀学号: 201020305125专业: 10电气传动一班【实验准备】在实验前,我通过上网、上图书馆查找了一些关于单片机AT89S51的硬件及指令系统的资料和ADC0808输出口的应用的资料,结合单片机所学的中断、定时器和AT89S51扩展I/O接口芯片ADC0808的工作方式的知识,并对电路板各个元器件、接线等的清楚认识,完成了对电路板仿真图的绘制,以及初步的程序,并实现了初步的仿真效果。

【设计内容】设计一个数字电压表。

【设计要求】所设计的数字电压表可以测量0~5的电压,并在四位LED数码管上显示出来。

CPU为AT89S51,利用并行口P0口、P2口、P3口,并运用了单片机的扩展输入-输出口以及接口芯片ADC0808。

【设计方案】一、实验原理方框图:本程序设计意在展示数字电压表的测量。

通过对一些相关书籍资料的查阅及网上各种作品和代码的浏览,对各种实现代码的比较和优化,总结出本程序,以较优秀的代码实现各种可控的“数字电压表”功能。

硬件系统部分包括显示部分、控制P口的方式部分和控制芯片。

1、系统框图如下:开始初始化及输入通道设定启动A/D转化A/D转化是否结束?调用数据处理子程序调用显示子程序N Y二、电路结构1、芯片的接线电路原理图:(1)、ADC0808的21~17引脚作为数字电压表的输出口(2)、D0~D7—数据输出线。

(3)、START—转换启动信号。

(4)、OE—输出允许信号(5)、EOC—转换结束状态信号EOC=0,正在进行转换。

EOC=1,转换结束。

(6)、VCC—+5V电源。

(7)、V REF(+)、V REF(-)—基准参考电压。

(8)、A、B、C—模拟通道地址线。

A 为低地址,C 为高地址。

2、AT89C51芯片分析ATMEL 的AT89C51是一种高效微控制器,将多功能8位CPU 和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

基于Proteus的数字电压表仿真

基于Proteus的数字电压表仿真

锁 存 信 号 与 转 换 启 动 信 号 都 接
A 8C 1 T 9 5 的P .; E 出允许信号接 3 O 输 0
P .;E C 转 换 结束 信 号接 P .; 31 O 3 2
O I O T 接 A 8C 1 P UT ~ U 8 T 9 5 的 0口。 图 1 AD 0 0 结 构 图 C 88
信号, 在其 上跳变 时, 所有 内部寄存器清 0 在其下跳变时, ,
开始进行 AD转换 ; E为输 出允许信号, E I , O O = 时 允许输 出。O T ~ U 8为数据输 出线 ; U 10 T
在 Poe s rt 软件 中设 置 A 8C 1 片 机 的 晶振 频 率 为 u T95 单
1 z 2MH 。本电路 E 接高电平,没有扩展片外 R M。 A O
A 8 C 1 P 端 口作为四位 L D 数码管动态显示的段 T95 的 1 E 码控制,24 P . P. 2 ~ 7引脚作为四位 L D数码管动态显示的 E 位码控制 。 D A、 D 、 D C模拟通道地址线全接地 , A D AD B A D 即 选 中 模 拟 输 入 通 道 I ;V e N0 r f ()5 += V,V e (: ;时钟信号外接 rf . 0 ) 5k z的方波信 号; DC 8 8的地址 0H A 00 一 一
电压表 工作过程 , 效果 良好 。 关键词 数字 电压表 A D转换 仿真 ・
文章编号 :0 27 6 ( 0 0 0 —160 10 .6 12 1 )60 2 .1
二、 数字 电压表 的软件设计 系统复位状态 , 初始化单片 机,初始化 A C 8 8的启动地 D 00 址, 数码管显示关闭, 开始启动 A
16 2

实验七 直流数字电压表设计ex7

实验七  直流数字电压表设计ex7

实验七直流数字电压表设计一、实验目的:掌握LED动态显示和A/D 转换接口设计方法。

二、实验原理:实验电路原理图如图A..94所示。

图中显示器采用4位共阴极数码管,并按动态显示方式接线。

A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。

电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。

调节电位器可使数码管的显示值发生相应变化。

图A.94 实验7的电路原理图三、实验内容:(1)、学习使用Proteus软件,掌握原理图绘图方法;(2)、学习使用Keil C软件,掌握C51程序编写与调试方法;(3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。

四、实验步骤:(1)、在Proteus中绘制电路原理图,按照表A.9将元件添加到编辑环境中;(2)、在Keil中编写C51程序,并使之编译通过;(3)、在Proteus中加载程序,观察仿真结果。

五、实验要求:提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。

表A.9 实验7的元器件清单(2)、仿真结果:图1图2图3实验结果分析:本实验是使用A/D转换器将模拟信号(电位器输出电压)转换为数字信号,A/D转换器与80C51接在一起,转换结果通过80C51以十进制形式动态显示在四个共阴极数码管上,通过改变模拟信号大小可以显示0~255之间任意数据。

其中A/D转换器启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生。

如图1,显示器显示“102”,当按RW1的右键时,显示器显示“99”;当按RW1的左键时,显示器显示“105”。

六、实验小结:通过这次实验了解了A/D转换器的工作原理和工作过程,掌握了数码管动态显示程序的编写,更加熟练了Proteus软件的使用和程序的编写。

基于单片机的数字电压表设计与仿真

基于单片机的数字电压表设计与仿真

基于单片机的数字电压表设计与仿真杨建成【摘要】The complex structure, low precision and high price of hardware-only digital voltmeter and high frequency of use in daily usage result in frequent damage and high failure rate, which bring a lot of inconvenience. The combination method of AT89C52 single chip microcomputer and ADC0809 analog-to-digital conversion is adopted in the design of a digital voltmeter with high precision. A lot of Proteus simulation experiments are made, and the measurement results which the ordinary pure hardware digital voltmeter can not achieve are obtained. The experimental results show that the digital voltmeter using the combination method of software and hardware has the advantages of simple structure, high accuracy and low failure rate.%由于纯硬件数字电压表结构复杂,测量精度低,价格高,而在日常使用中,使用频率高,导致万用表经常损坏,故障率高,给使用和维修带来很多不便.为了设计一种高精度数字电压表,采用AT89C52单片机和ADC0809模/数转换相结合的方法,做了大量Proteus仿真实验,获得了普通纯硬件数字电压表无法达到的测量效果.实验结果证明,使用软硬件相结合设计的数字电压表,具有结构简单,测量精度高,故障率低等功能.【期刊名称】《现代电子技术》【年(卷),期】2012(035)021【总页数】3页(P170-172)【关键词】数字电压表;测量精度;AT89C52;ADC0809【作者】杨建成【作者单位】台州学院物理与电子工程学院,浙江台州 318000【正文语种】中文【中图分类】TN02-34;TP2730 引言在电子测量中,电压值的测量显得尤其重要[1]。

数字电压表的仿真设计

数字电压表的仿真设计

目录引言 (3)第一章单片机概述 (4)1.1 单片机的简介 (4)1.2 单片机的应用领域 (4)1.3 单片机的发展趋势 (5)第二章 AT89C51单片机组成原理 (7)2.1 单片机AT89C51 (7)2.2AT89C51的特点 (7)2.3 ADC0808内部逻辑结构 (11)第三章 PROTUES和KEIL软件介绍 (12)3.1 PROTUES软件的介绍 (12)3.2 KEIL软件介绍 (14)第四章数字电压表的设计方案 (16)4.1 总体设计思路 (16)4.2 设计意义 (16)4.3 数字电压表的功能要求 (17)第五章数字电压表的仿真设计 (18)5.1 数字电压表的硬件电路 (18)5.2 数字电压表的软件设计 (19)5.3数字电压表的仿真调试 (20)总结 (21)致谢 (21)参考文献 (22)数字电压表的仿真设计田乐乐[摘要]:设计采用AT89C51单片机、A/D转换器ADC0808和共阳极数码管为主要硬件,分析了数字电压表Proteus软件仿真电路设计及编程方法。

将单片机应用于测量技术中,采用ADC0808将模拟信号转化为数字信号,用AT89C51实现数据的处理,通过数码管以扫描的方式完成显示。

设计的数字电压表可以测量0~5 V的电压值,AT89C51为8位单片机,当ADC0808的输入电压为5 V时,输出数字量值为+4.99 V。

本设计电路简单、成本低、性能稳定。

数字电压表主要分为四部分:测量部分、显示部分、脉冲部分、供电部分。

测量部分是通过4位半双积分式A/D转换器ICL7135芯片实现。

ICL7135对模拟电压进行A/D转换,输出BCD码,并自动输出极性判断信号,同时ICL7135用动态扫描传送数据使数码管亮灭的时间间隔短,保证了测量结果的稳定显示。

74LS47和共阳数码管是显示部分,74LS74译码器接收ICL135的BCD码译码成控制信号去点亮数码管,从而显示出所测的模拟电压值。

基于Proteus的数字电压表的仿真设计

基于Proteus的数字电压表的仿真设计

基于Proteus的数字电压表的仿真设计军械⼯程学院本科毕业论⽂基于Proteus的数字电压表的仿真设计⽕⼒指挥与控制⼯程指导教员:学员:教学班次:军械⼯程学院⼆○⼀五年六⽉基于单⽚机的数字电压表仿真设计第1章绪论选题的意义是设计的⽬的,本次设计正是为了解决存在的问题⽽进⾏的。

在国内外⼤的研究背景下,我们紧跟时代发展的脚步,致⼒于开发创新的道路,这⼀章主要介绍了这两个内容,同时简要介绍了设计所使⽤的⼯具。

1.1 研究的背景数字电压表出现在上世纪50年代,60年代末发展起来,它采⽤的是数字化测量技术。

数字电压表之所以出现,⼀⽅⾯是为了实时控制和处理数据的要求;另⼀⽅⾯,也是电⼦计算机的发展,带动了脉冲数字电路技术的发展,为数字化仪表的出现提供了条件。

因此,数字化测量仪表的出现与发展和电⼦计算机的发展是密切相关的。

数字电压表最初是伺服步进电⼦管⽐较式,它的优点是准确度⾼,但是采样速度慢,体积⼤,后来⼜出现了谐波式电压表,它在速度⽅⾯稍有提⾼,但是准确度下降,稳定性差。

再后来出现了⽐较式的改进型,它不仅继承了准确度⾼的优点,⽽且速度也有了较⼤提⾼,但是它抗⼲扰能⼒差,很容易受到外界因素的影响。

随后,在谐波式的基础上引申出阶梯波式,它唯⼀的进步就是降低了成本,但是准确度、速度、抗⼲扰能⼒都没有提⾼。

发展到数字电压表,各⽅⾯的性能都有了很⼤提⾼,读数速度达到每秒⼏万次,⽽且价格⼤⼤降低。

上海乾丰电⼦仪器有限公司⽣产的PZ158A系列直流数字电压表,可以测量0.1uV~1000V直流电压,该表采⽤了微处理器和脉冲调宽模数转换技术,采⽤⼋位LED 显⽰。

⽬前,实现电压数字化测量的⽅法主要是模数(A/D)转换,数字电压表种类较多,⼀般根据原理的不同⼤致分为:⽐较式、电压——时间变换式、积分式。

1.2 选题的意义1.1.数字电压表(Digital Voltmeter)简称DVM,采⽤数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式显⽰出来的仪器。

直流数字电压表的设计仿真与制作

直流数字电压表的设计仿真与制作

学号:课程设计题目学院专业班级姓名指导教师年月日课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 直流数字电压表的设计仿真与制作初始条件:利用集成3位半或4位半的A/D转换器及显示译码驱动电路设计实现直流数字电压表的基本功能(也可以利用FPGA或单片机系统设计实现)。

要求完成的主要任务:(包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周内完成对数控电压源的设计、仿真、装配与调试。

2、技术要求:输入电压介于+—2v之间。

①用电阻、电位器构成一个简单的输入电压Vx调节电路;②用3位半MC14433/CD14433或4位半ICL7135ADC实现A/D转换;③设计4个或5个数码管的动态显示驱动电路实现测量电压的显示;④确定设计方案,按功能模块的划分分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。

3、查阅至少5篇参考文献。

按《武汉理工大学课程设计工作规范》要求撰写设计报告书,全文用A4纸打印,图纸应符合绘图规范。

时间安排:1)第1-2天,查阅相关资料,学习设计原理。

2)第3-4天,方案选择和电路设计仿真。

3)第4-5天,电路调试和设计说明书撰写。

4)第6天,上交课程设计成果及报告,同时进行答辩。

指导教师签名:年月日系主任(或责任教师)签名:年月日目录课程设计任务书....................................................................................................... - 2 -1 Proteus软件简介................................................................................................... - 4 -2方案论证和确定.................................................................................................... - 6 -2.1 设计目标................................................................................................... - 6 -2.2 方案论证................................................................................................... - 6 -2.3 总体设计 .................................................................................................. - 8 -3 硬件系统的设计................................................................................................... - 9 -3.1 硬件系统设计原则................................................................................... - 9 -3.2 A/D转换电路........................................................................................... - 9 -3.2.1 双积分A/D转换器的工作原理.................................................... - 9 -3.2.2 ICL7135芯片介绍 ....................................................................... - 10 -3.3 电压反向电路.................................................................................. - 16 -3.4 数码显示模块电路................................................................................... - 18 -3.5 输入电路................................................................................................. - 20 -4 系统的软件设计................................................................................................. - 21 -4.1 应用软件设计原则................................................................................. - 21 -4.2 系统主程序设计..................................................................................... - 21 -5 制作与调试......................................................................................................... - 25 -5.1 调试........................................................................................................... - 25 -5.1.1 软件调试......................................................................................... - 25 -5.1.2 硬件调试....................................................................................... - 25 -8 原件清单............................................................................................................. - 28 -9参考文献.............................................................................................................. - 29 -1 Proteus软件简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。

数字电压表的仿真电路设计

数字电压表的仿真电路设计

数字电压表的仿真电路设计
本文采用ADC0808对输入模拟信号进行转换,控制核心AT89C51
单片机对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号,通过Proteus仿真软件实现接口电路设计,并进行实时仿真。

Proteus软件是一种电路分析和实物模拟仿真软件。

它运行于Windows操作系统上,可以进行仿真、分析(SPICE)各种模拟器件和集成电路,是集单片机和SPICE分析于一身的仿真软件,功能强大,具有系统资源丰富、硬件投入少、形象直观等优点,近年来受到广大用户的青睐。

1 系统概述
1.1 设计任务
利用单片机AT89C51与ADC0808设计一个数字电压表,将模拟信。

数字电压表的仿真设计测控刘萌萌

数字电压表的仿真设计测控刘萌萌

单片机系统课程设计题目名称:数字电压表的仿真设计专业班级:测控1201班学生姓名:刘萌萌学号:201223030121指导教师:郭广灵成绩:评语:指导老师签名:单片机系统课程设计课程设计名称:数字电压表的仿真设计专业班级:测控1201班学生姓名:刘萌萌学号: 201223030121 指导教师:郭广灵课程设计地点:31 号楼课程设计时间:2014-12-9~2014-12-20单片机系统课程设计任务书学生姓名刘萌萌专业班级测控1201班学号201223030121 题目数字电压表的仿真设计课题性质工程设计课题来源自拟指导教师郭广灵主要内容(参数)该数字电压表是利用单片机C51与ADC0808设计一个数字电压表,将模拟信号0~5V之间的电压值转换成数字量信号,以两位数码管显示,并通过虚拟电压表观察ADC0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。

任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。

第3-4天:按照确定的方案设计单元电路。

要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。

第5-6天:软件设计,编写程序。

第7-8天:程序调试。

第9-12天:撰写课程设计报告。

要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确。

主要参考资料【1】单片微型计算机原理及接口技术审查意见系(教研室)主任签字:年月日目录一系统概述 (1)1.1 课题设计的目的 (1)1.2 课程设计内容 (1)1.3 课程设计实现的目标 (1)二设计方案 (1)2.1总体设计思路 (1)2.2 数字电压表的PROTEUS软件仿真电路设计 (2)三、数字电压表的程序设计 (3)3.1 程序流程图 (3)3.2 程序编译设计 (5)四数字电压表的软件设计 (6)4.1 数字电压表的硬件电路 (6)4.2 C51单片机和数码管显示电路的接口设计 (8)4.3 A/D转换电路的接口设计 (8)五数字电压表的系统仿真调试 (9)六设计心得 (11)参考文献 (11)附录1 (13)附录2 (14)一系统概述1.1 课题设计的目的.1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。

基于Proteus的数字电压表设计与仿真

基于Proteus的数字电压表设计与仿真

微型计算机接口技术大作业2013-6基于Proteus的数字电压表设计与仿真1 绪论随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。

同时随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命[1]。

由于使用的是高效单片机作为核心的测量系统,以及灵敏度和精度较高的A/D转换器,使本直流电压表具有精度高、灵敏度强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平[2]。

数字电压表相对于指针表而言读数直观准确,电压表的数字化是将连续的模拟量转换成不连续的离散的数字形式并加以显示。

这有别于传统的以指针与刻度盘进行读数的方法,避免了读数的视差和视觉疲劳[3]。

2 系统方案设计利用MCS-51系列单片机设计简易数字电压表测量0~5v的8路输入电压值,并在四位LED 数码管上轮流显示或单路选择显示。

测量误差约为±0.02V。

系统设计方框图如图1所示。

图1系统设计方框图3 硬件电路设计3.1时钟电路XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。

内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。

晶振的频率可以在1MHz-24MHz内选择。

电容取30PF 左右。

系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路如图2所示[2]。

图2时钟电路图3.2复位电路复位电路如下图3所示,按键没有按下时,RST端接电容下极板是低电平,按键按下时,RST端接在电阻上端变为高电平,达到复位的目的[2]。

图3复位电路图3.3数据采集模块通过ADC0809采集数据,输入到单片机内,如图4所示:图4数据采集模块电路图3.4显示电路通过4位数码管来显示,如图5所示:图5显示电路图4 软件设计4.1主程序流程图主程序流程图如图6所示:开始初始化调用A/D转化程序调用数据处理程序调用显示程序图6主程序流程图4.2显示子程序流程图显示子程序流程图如图7所示:图7显示子程序流程图4.3 A/D转换子程序流程图A/D转换子程序流程图,如图8所示:图8A/D转换子程序流程图4.4数据处理子程序流程图数据处理子程序流程图,如图98所示:图9数据处理子程序流程图5 源代码LED1 EQU 30H ;初始化定义LED2 EQU 31HLED3 EQU 32H ;存放三个数码管的段码ADC EQU 35H ;存放转换后的数据ST BIT P3.2OE BIT P3.0EOC BIT P3.1 ;定义ADC0809的功能控制引脚ORG 0000HLJMP MAIN ;跳转到主程序执行ORG 0030HMAIN: MOV LED1,#00HMOV LED2,#00HMOV LED3,#00H ;寄存器初始化CLR P3.4SETB P3.5CLR P3.6 ;选择ADC0809的通道2 WAIT: CLR STSETB STCLR ST ;在脉冲下降沿启动转换JNB EOC,$ ;等待转换结束SETB OE ;允许输出信号MOV ADC,P1 ;暂存A/D转换结果CLR OE ;关闭输出MOV A,ADC ;将转换结果放入A中,准备个位数据转换MOV B,#50 ;变换个位调整值50送BDIV ABMOV LED1,A ;将变换后的个位值送显示缓冲区LED1MOV A,B ;将变换结果的余数放入A中,准备十分位变换MOV B,#5 ;变换十分位调整值5送BDIV ABMOV LED2,A ;将变换后的十分位值送LED2MOV LED3,B ;最后的余数作百分位值送LED3LCALL DISP ;调用显示程序AJMP W AITDISP:MOV R1,#LED1 ; 显示子程序CJNE @R1,#5,GO ;@R1=5V?是往下执行,否,则到GOMOV LED2,#0H ;是5V,即最高值,将小数的十分位清零MOV LED3,#0H ;将小数的百分位清零GO:MOV R2,#3 ;显示位数赋初值,用到3位数码管MOV R3,#0FDH ;扫描初值送R3DISP1:MOV P2,#0FFH ;关闭显示,目的防止乱码MOV A,@R1 ;显示值送AMOV DPTR,#TAB ;送表首地址给DPTRMOVC A,@A+DPTR ;查表取段码CJNE R2,#3,GO1 ;判断是否个位数码管?否则跳到GO1ORL A,#80H ;将整数的数码管显示小数点GO1:MOV P0,A ;送段码给P0口MOV A,R3MOV P2,A ;送位码给P2口LCALL DELAY ;调用延时MOV R3,ARL A ;改变位码MOV R3,AINC R1 ;改变段码DJNZ R2,DISP1 ;三位是否显示完?否则调到DISP1RETDELAY:MOV R6,#10 ;延时5S程序:D1:MOV R7,#250DJNZ R7,$DJNZ R6,D1RETTAB: DB 3FH, 06H,5BH,4FH,66H;共阴极数码管显示0-4 ;显示数据表:DB 6DH,7DH,07H,7FH,6FH;显示5-9END6电路原理图电路原理图如图10所示:图10电路原理图7 仿真图调节滑动变阻器的位置,可以测出相应的电压值,如图11所示。

基于AT89C51单片机的数字电压表的仿真设计论文要点

基于AT89C51单片机的数字电压表的仿真设计论文要点

黄河科技学院课程设计报告书题目: 基于AT89C51单片机的数字电压表设计课程:单片机应用技术课程设计专业:机电班级:机电三班学号:168168168姓名:徐枫指导教师:朱煜钰2014年 11 月 5 日目录1 引言 (1)2 设计总体方案 (2)2.1设计要求 (2)2.2 设计思路 (2)2.3 设计方案 (2)3 硬件电路设计 (3)3.1 A/D转换模块 (3)3.2 单片机系统 (7)3.3 复位电路和时钟电路 (9)3.4 LED显示系统设计 (10)3.5 总体电路设计 (13)4 程序设计 (14)4.1 程序设计总方案 (14)4.2 系统子程序设计 (15)5 仿真 (16)5.1 软件调试 (16)5.2 显示结果及误差分析 (17)结论 (19)参考文献 (20)附录程序代码 (21)致谢 (24)1 引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。

而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。

数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。

由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。

传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。

采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。

数字电压表是诸多数字化仪表的核心与基础[2]。

以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。

目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。

最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。

数字电压表的设计与仿真毕业论文

数字电压表的设计与仿真毕业论文

数字电压表的设计与仿真毕业论文数字电压表的设计与仿真毕业论文目录1 数字电压表简介 (1)2 设计方案 (3)2.1 由数字电路及芯片构建 (3)2.2 由单片机系统及A/D转换芯片构建 (3)3 元件的选取 (5)3.1 单片机简介及本设计单片机的选择 (5)3.1.1 常用单片机的特点比较及本设计单片机的选择 (5) 3.1.2 本设计使用的单片机的简介 (5)3.2各种显示器件的介绍和选择 (7)3.2.1 常用显示器件简介 (7)3.2.2 1602液晶的参数资料 (7)3.3 模数(A/D)转换芯片的选择 (10)3.3.1常用的A/D芯片简介 (10)3.3.2 模数(A/D)芯片TLC2543的资料 (11)4. 总体设计 (14)4.1 技术要求 (14)4.2硬件电路系统模块的设计 (15)4.3 系统软件的设计 (19)4.3.1 汇编语言和C语言的特点及选择 (19)4.3.2 主程序设计 (19)5 系统的调试 (29)6 仿真结果 (31)7 总结 (31)参考文献 (32)致谢 (33)1 数字电压表简介数字电压表出现在50年代初,60年代末发起来的电压测量仪表,简称DVM,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。

这种电子测量的仪表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要[3],也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。

所以,数字化测量仪表的产生与发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的繁琐和旧方式也催促了它的飞速发展,如今,它又成为向智能化仪表发展的必要桥梁。

如今,数字电压表已绝大部分已取代了传统的模拟指针式电压表。

因为传统的模拟指针式电压表功能单一,精度低,读数的时候也非常不方便,很容易出错。

数字电压表仿真设计

数字电压表仿真设计
且认真地编写,之后再调试程序,因此,它也提高了我的编程能力以及细心
的科学态度。
在 Proteus 仿真软件操作过程中,主要需要根据程序和设计目的,设计硬 件电路,所以必须细心、正确地连接电路,并且各个元器件摆放尽量合理、
美观。然后硬件电路连接好之后,加载编写的程序,进行系统的整体调试,
并且解决调试中出现的问题,直至达到设计调试结果正确无误。
sbit RW=P2^1; //读写选择位,将 RW 位定义为 P2.1 引脚
sbit E=P2^2; //使能信号位,将 E 位定义为 P2.2 引脚
sbit BF=P0^7; //忙碌标志位,,将 BF 位定义为 P0.7 引脚
unsigned char code digit[ ]={"0123456789"}; //定义字符数组显示数字
/CS:芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作。 /WR:启动 ADC0804 进行 ADC 采样,该信号低电平有效,即/WR 信号 由高电平变成低电平时,触发一次 ADC 转换。 /RD 低电平有效,/RD=0 时,可通过端口 DB0~DB7 读出采样结果。 UIN(+)和 UIN(-):模拟电压输入端。 VREF/2:参考电压引脚,接外界电压,其参考电压为该外界电压的两倍。 CLKR 和 CLKIN:外接 RC 电路产生模数转换器所需的时钟信号,时钟 频率 CLK = 1/1.1RC,一般要求频率范围 100KHz~1.28MHz。 AGND 和 DGND:分别接模拟地和数字地。 /INT:中断请求信号输出引脚,该引脚低电平有效,当一次 A/D 转换完 成后,将引起/INT=0,。 DB0~DB7:输出 A/D 转换后的 8 位二进制
12864 液晶具有更强大的功能,不过限于本设计中需要显示的内容并不丰 富,所以选用了与其类似且功能满足要求的 LCD1602. 2、问题分析

数字电压表程序及仿真图

数字电压表程序及仿真图

//************************************************//**用adc0809进行电压测量,lcd1602显示,精度0.001v**//************************************************#include "reg51.h"#include "intrins.h"#define uchar unsigned char#define uint unsigned intuchar code table []="ID: " ; //欢迎显示,包括空格在内<=16 uchar code table1 []="Name: " ;//欢迎显示,包括空格在内<=16//************管脚定义************************sbit ADC_OE = P3^0; //ADC输入允许信号端口sbit ADC_EOC = P3^1; //ADC转换结束信号输出端sbit ADC_START= P3^2; //ADC启动转换信号输入端sbit ADC_CLK = P3^3; //ADC时钟输入端sbit lcd_rs = P3^4; //液晶数据命令选择端sbit lcd_en = P3^5; //液晶使能//************参数定义************************uchar num; //LCD1602开机显示数组数uchar AD_data; //AD转换原始数据uchar dis1[] = " Current Voltage";uchar dis2[] = {' ',' ',' ',' ','V','=','0','.','0','0','0','v',' ',' ',' ',' ',}; //初始化数组,用来保存电压显示//************子函数定义************************void delay(uchar z); //delay延时子程序void init_lcd(); //LCD1602初始化函数void InitTimer0(); //定时器0初始化函数void write_com(uchar com); //LCD1602写指令函数void write_data(uchar date); //LCD1602写数据函数void write_welcome(); //LCD1602开启显示欢迎函数void init_ADC(); //ADC初始化函数void AD_covert(); //AD转换子程序void ADC_change(); //ADC转换函数void write_adc(); //ADC显示函数//************主函数************************void main(){init_lcd(); //LCD1602初始化write_welcome(); //LCD1602开启显示欢迎InitTimer0(); //定时器0初始化init_lcd(); //LCD1602初始化init_ADC(); //ADC初始化while(1){AD_covert(); //AD转换ADC_change(); //ADC转换函数write_adc(); //ADC显示}}//************delay延时子程序************************void delay(uchar z){uchar x,y;for(x=0;x<z;x++)for(y=0;y<114;y++);}//************LCD1602初始化函数************************void init_lcd(){lcd_en = 0; // 将使能端置0write_com(0x38); //设置16*2显示,5*7点阵,8位数据接口write_com(0x08); //写一个字符后地址指针加1write_com(0x01); //显示清零,数据指针清零write_com(0x06); //写一个字符后地址指针加1write_com(0x0c); //关显示,光标不显示不闪烁}//************定时器0初始化函数************************void InitTimer0(){TMOD = 0x02; //定时器0工作方式2TH0 = 0x14; //初值位20TL0 = 0x14;EA = 1; //开总中断ET0 = 1; //允许T0中断TR0 = 1; //启动T0}//************LCD1602写指令函数************************void write_com(uchar com){lcd_rs = 0; // 选择写指令P2 = com; // 将要写的命令送到数据总线上delay(5); // 延时5ms,待数据稳定lcd_en = 1; // 由于初始化已将lcd_en置为0,使能端给一个高脉冲,delay(5); // 延时5ms,待数据稳定lcd_en = 0; // 将使能端置0以完成脉冲}//************LCD1602写数据函数************************void write_data(uchar date){lcd_rs = 1; // 选择写数据P2 = date; // 将要写的数据送到数据总线上delay(5); // 延时5ms,待数据稳定lcd_en = 1; // 由于初始化已将lcd_en置为0,使能端给一个高脉冲,delay(5); // 延时5ms,待数据稳定lcd_en = 0; // 将使能端置0以完成脉冲}//************LCD1602开启显示欢迎函数******************void write_welcome(){write_com(0x80); // 现将数据指针定位到第一行第一个字处for(num=0;num<16;num++) //做简短延时{write_data(table[num]);delay(5);}write_com(0x80+0x40); // 现将数据指针定位到第二行第一个字处for(num=0;num<16;num++) //做简短延时{write_data(table1[num]);delay(20);}delay(50000);}//************中断函数************************void Timer0()interrupt 1{ADC_CLK = ~ADC_CLK; //时钟不断取反}//***********ADC初始化函数************************void init_ADC(){ADC_OE = 0; //ADC输入允许信号端口置1ADC_EOC = 1; //ADC转换结束信号输出端置1ADC_START= 1; //ADC启动转换信号输入端置1ADC_CLK = 1; //ADC时钟输入端置1}//***********AD转换子程序***********************void AD_covert(){ADC_START= 0;ADC_CLK = 0;_nop_(); //延时空循环,一个机器指令的时间ADC_START= 1;ADC_CLK = 1;_nop_(); //延时空循环,一个机器指令的时间ADC_START= 0;ADC_CLK = 0; //在START上产生一个正脉冲while(ADC_EOC); //等待上次转换完成_nop_();delay(100);while(ADC_EOC == 0){ADC_CLK = 1;delay(1);ADC_CLK = 0;delay(1);}P1 = 0xff;_nop_();ADC_OE = 1;_nop_();AD_data = P1;ADC_OE = 0;}//***********ADC转换函数************************void ADC_change(){double v;uchar val_integer;uint val_decimal;v = AD_data*0.0196078; //5v时输出的数字量是2.55,为使5v时输出5.00 val_integer = (uchar)v; //电压整数部分val_decimal = (uint)((v-val_integer)*1000);//将电压小数点后三位转换为整数(dis2[6]) = val_integer+0x30; //电压整数转换为ASSII(dis2[8]) = val_decimal/100+0x30; //电压小数第一位转换为ASSII(dis2[9]) = val_decimal/10%10+0x30; //电压小数第二位转换为ASSII(dis2[10]) = val_decimal/10%10+0x30; //电压小数第三位转换为ASSII}//************LCD1602显示adc函数******************void write_adc(){write_com(0x80); // 现将数据指针定位到第一行第一个字处for(num=0;num<16;num++)//做简短延时{write_data(dis1[num]);delay(1);}write_com(0x80+0x40); // 现将数据指针定位到第二行第一个字处for(num=0;num<16;num++)//做简短延时{write_data(dis2[num]);delay(1);}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RW=1;
E=1;
//E=1,才允许读写
_nop_(); _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间
result=BF; //将忙碌标志电平赋给 result
E=0;
//将 E 恢复低电平
return result;
}
/********函数功能:将模式设置指令或显示地址写入液晶模块***/
单片机及 DSP 课程设计报告
数字电压表设计与虚拟仿真
友情提示:本文旨在分享设计思路,希望读 者真正理解并设计属于自己的作品,而不是 直接下载使用。
专 业:
电子信息
班 级:
信息 102 班
姓 名:
学 号:
指导教师:
时 间: 2013-06-17~28
通信与电子工程学院
1
数字电压表设计与虚拟仿真
摘要:
关键字:51 单片机 模数转换 Proteus 一、系统介绍
本部分将整体地介绍数字电压表设计方案的工作流程、电路仿真、 程序设计。 1、系统流程图
待测电压
LCD1602 显示
ADC0804
AT89C52 单片机
复位电路
图 1:系统流程图 待测电压范围为 0~5V,此电压可以直接被 ADC0804 模数转换器转 换为数字量,并且并行输出至单片机,单片机通过对数字量处理,将 其显示到 LCD1602 液晶上显示,此外,电路中还设计了复位模块,以 保证程序发生故障时可以重新运行。
void WriteInstruction (unsigned char dictate)
{
while(BusyTest()==1); //如果忙就等待
RS=0;
//根据规定,RS 和 R/W 同时为低电平时,可以写入指令
RW=0;
E=0;
//E 置低电平(写指令时,E 为高脉冲,
// 就是让 E 从 0 到 1 发生正跳变,所以应先置"0"
sbit RW=P2^1; //读写选择位,将 RW 位定义为 P2.1 引脚
sbit E=P2^2; //使能信号位,将 E 位定义为 P2.2 引脚
sbit BF=P0^7; //忙碌标志位,,将 BF 位定义为 P0.7 引脚
unsigned char code digit[ ]={"0123456789"}; //定义字符数组显示数字
for(i=0;i<n;i++)
delay1ms();
}
/**********函数功能:判断液晶模块的忙碌状态
返回值:result。result=1,忙碌;result=0,不忙********/
unsigned char BusyTest(void)
{
bit rLeabharlann sult;RS=0;//根据规定,RS 为低电平,RW 为高电平时,可以读状态
R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写
入数据。
6-E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。
7~14-D0~D7 为 8 位双向数据线。
15-背光源正极。 16-背光源负极。
5
三、讨论与分析
1、方案讨论 在仿真中 A/D 转换芯片开始试图采用 PCF8591,PCF8591 是一个单片集
本设计采用 AT89C52 作为主控芯片,通过 ADC0804 模数转换器, 将模拟电压实时地显示在 LCD1602 液晶屏幕上,其标准量程为 0~5V, 并可通过电路连接实现更大的测量范围,测量误差可控制在±0.01V 内。其中 AT89C52 是 ATMEL 公司一个低电压,高性能 CMOS 8 位单片 机,它在电子行业中有着广泛的应用。
unsigned char code string[ ]={"ni hao LML !"}; //定义字符数组显示提示信息
#define ad1_7 P1
//AD 数据口
sbit adcs=P2^3;
//芯片选择信号,控制芯片的启动和结果读取,低电平有效
sbit adrd=P2^4;
//读数据控制,低电平有效
2
2、电路仿真图 在设计过程中,学习了 Proteus 仿真软件,并且在电路仿真中利
用 Proteus 进行了电路图的绘制与系统的仿真,所以方便和正确的完 成了设计的要求。电路仿真图如下:
3、程序流程图
图 2:电路仿真图
设计过程中利用 Keil uVision3
编程软件,并根据设计要求和实现
功能编写和调试程序,其程序内容
7
附录 1 源程序
#include<reg52.h>
#include<intrins.h> //包含_nop_()函数定义的头文件
#define uint unsigned int
#define uchar unsigned char
sbit RS=P2^0; //寄存器选择位,将 RS 位定义为 P2.0 引脚
成、8-bit CMOS 数据获取器件,具有 4 个模拟输入、1 个模拟输出和 1 个串 行 I2C 总线接口,51 单片机通过与其连接的双线双向 I2C 总线以串行的方式 交互信息。不过 PCF8591 需要更加严格的时序控制,在 Proteus 仿真中不易 实现,其程序开销也比较大,并且 ADC0804 足以满足要求,所以放弃了选 用 PCF8591 作为 A/D 转换芯片的方案。
{adcs=0; //允许进行 A/D 转换
adwr=0;
delay_50us(2);
adwr=1;//WR 由低变高时,AD 开始转换
//adcs=1; //停止 AD 转换
delay_50us(10);
}
//读 A/D 数据子程序////
uint read_ad()
{ uint ad_data;
6
四、收获与体会
在设计过程中,首先我学习了 51 单片机的基本原理及其接口,电路系统 原理、指令以及编程实现等内容,更加了解了用单片机控制外围设备以达到
实际应用目的的设计过程。
此外,在设计过程中还学习了 Keil uVision3 编程软件和 Proteus 仿真软 件,通过用 Keil 软件编写 51 单片机的 C 语言程序,实现了 51 单片机可以 按照我的设计思路运行的目的,这个过程需要编程者结合科学正确的思路并
sbit adwr=P2^5;
//AD 转换起动控制,上升沿有效
sbit adint=P2^6;
void delay_50us(uint t)
{ uchar j;
for(;t>0;t--)
for(j=19;j>0;j--);
}
void start_adc0804(void) //启动 AD 转换子程序////////
E=0;
//当 E 由高电平跳变成低电平时,液晶模块开始执行命令
}
/****************函数功能:指定字符显示的实际地址***/
void WriteAddress(unsigned char x)
{
WriteInstruction(x|0x80); //显示位置的确定方法规定为"80H+地址码 x"
4
2、LCD1602 介绍
部分引脚说明:
图 5:LCD 引脚及电路连接图
3 -VL 为液晶显示器对比度调整端。
4-RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
5-R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS
和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平
通过这次的设计,我收获很多,也深刻地体会到设计一个项目需要我们
有着丰富的知识储备和较强的实践能力,比如资料的搜集与整理,软件的学
习和操作,程序的编写与调试等,这些能力对于我们以后的学习和工作也是
非常必要的,将让我们在以后的项目中展现出更高的水平。
参考文献:
[1]余新拴,李建忠. 消失模充型速度测试的虚拟仿真[J].微计算机信息,2007,4(23): 278- 280. [2]胡汉才.单片机原理及其接口技术[M]. 北京:清华大学出版社,1996. [3]张友德.单片机原理应用与实验[M]. 天津:复旦大学出版社,1992. [4]陈小忠,黄宁,赵小侠. 单片机接口技术实用子程序 [M].北京:人民邮电出版 社,2005. [5]杨金岩,郑应强,张振仁. 8051 单片机数据传输接口扩展技术与应用实例[M].北 京:人民邮电出版社,2005\
}
/***函数功能:延时 1ms*****/
void delay1ms()
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++)
;
}
/*****函数功能:延时若干毫秒**********/
void delay(unsigned char n)
{
unsigned char i;
如附录 1,流程图如图 3:
开始 LCD 初始化
显示字符 启动 A/D 转换 数据读取、处理
显示数据
LCD 初始化
启动 A/D 转换
图 3:程序流程图
3
二、系统硬件设计
1、ADC0804 芯片介绍
图 4:ADC0804 规格及连接图 本设计中采用的 A/D 芯片为 ADC0804,它是 CMOS 8 位单通道逐次渐近 型的模/数转换器,其规格及引脚图如图 4 所示,引脚介绍如下:
相关文档
最新文档