




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、键入文字摘要数字电压表是对电子电路进行现场检测的常用仪表,本文讨论了一种基于单片机的设计方式,将检测到的数据送入微计算机系统,完成计算、存储、控制和显示等功能。本文中数字电压表的控制系统采用at89c51单片机,a/d转换器采用adc0809为主要硬件,实现简易数字式直流电压表的硬件电路与软件设计。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。数字电压表可以测量05v的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。关键词:单片机、数字电压表、a/d转换、at89c51、adc0808- ii -abstractin modern measurin
2、g technology,it is ofen required to conduct site measuring with a digital voltmeter,the data measured will then be input into the micro-computer system to execute such functions like calculating,storing,controlling and displaying.the simple digital voltmeter control system described in this paper ma
3、kes use of at89c51 sc computer and adc0808 a/d converter to fulfill the designing of the software as well as the electrical circuit.the voitmeter features in simple electrical circuit,lower use of elements,low cost ,moreover,its measuring precision and reliability.the meter is capable of measuring v
4、oltage inputs from 1 routes ranging from 0 to 5 volt,and displaying the measurements though an digital code tube of 7 pieces of led.keywords: microcontroller unit、digital voltmeter、a/d converter、at89c51、adc0808目 录目录第一章 引言21.1 概述21.1.1 课题选择的背景和意义21.1.2 课题研究的现状和发展趋势21.2 课题研究的重点3第二章 系统总体方案设计42.1 设计功能要求
5、42.2 设计思路42.3 总体设计方案4第3章 系统硬件设计53.1 单片机的选择53.1.1 at89c51的结构与性能53.1.2 at89c51功能性能63.1.3 at89c51功能特性概述63.1.4 at89c51的引脚功能说明63.2 a/d转换器adc080893.2.1 逐次逼近型a/d转换器原理93.2.2 adc0808 主要特性103.2.3 adc0808的外部引脚特性103.2.4 adc0808的内部结构及工作流程123.3 时钟与复位电路133.3.1 时钟电路设计133.3.2 复位电路设计143.4 led显示系统设计143.4.1 led工作原理及基本结
6、构153.4.2 led显示器的选择163.4.3 led的显示方式163.4.4 led显示器与单片机接口设计173.4.5 led译码方式173.5 系统硬件电路设计18第4章 软件设计214.1 软件设计方案214.1.1 系统软件设计方案框图214.2 系统应用程序设计224.2.1 初始化程序224.2.2 a/d转换子程序224.2.3 led显示子程序23第5章 系统的仿真实现255.1 软件调试255.2 调试中的问题及解决方法255.3 显示结果分析25第6章 结论29参考文献30致谢31附录 基于单片机的数字式直流电压表32附录1 电路图32附录2 程序代码33外文资料原文
7、36译文37- iv -第1章 引言第一章 引言1.1 概述电压表自从1952年问世以来,随着电子技术的发展,提别是目前,作为测量仪表、模拟指示仪表的数字化以及测量的系统,而得到了很大的发展。1.1.1 课题选择的背景和意义传统的指针式刻度电压表功能单一,精度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需求。采用单片机的数字电压表,将连续的模拟量如直流电压转化成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与pc实时通信。数字电压表是诸多数字化仪表的核心与基础。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。
8、目前,由各种单片机和a/d转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域。显示出强大的生命力。与此同时,由dvm扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新的水平。因此对数字电压表作全面深入的了解是很有必要的。1.1.2 课题研究的现状和发展趋势 最近的十几年来,随着半导体技术、集成电路 (ic)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的日新月异,并不断出现新的类型。 数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管的型式发展到了现在的全固态化
9、、集成化(ic化,另一方面,精度也从0.1%提高到了现在的0.01%0.005%,而且从实验中空用的“高价样品”开始已发展到了现在为厂矿企业广所使用的的“廉价型”,进而出现了能够用于安装板上作指示仪表的“安装型”。目前,数字电压表的内部核心部件是a/d转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。1.2 课题研究的重点本文是以简易数字式直流电压表的设计为研究内容。本系统主要包括三大模块:控制模块、控制模块及显示模块。其中,a/d转换采用adc0808对输入的模拟信号进行转换,控制核心at89c51再对转换的结果进行运算和处理,
10、最后驱动输出装置显示数字电压信号。- 43 -第二章 系统总体方案设计第二章 系统总体方案设计2.1 设计功能要求l 以mcs-51系列单片机为核心器件,组成一个简单的直流数字电压表。l 采用1路模拟量输入,能够测量05v之间的直流电压值。l 电压显示采用4位一体的led数码管显示,至少能够显示两位小数。l 尽量使用较少的元器件。2.2 设计思路l 根据设计要求,选择at89c51单片机作为核心控制器件。l a/d转换采用adc0808实现。与单片机的接口为p1口和p2端口的高四位引脚。l 电压显示采用4位一体的led数码管。l led数码管的段码输入,由并行端口p0产生;位码输入,由并行端口
11、p2低四位产生。2.3 总体设计方案由于adc0808是逐次逼近式、并行8位a/d转换器,因而,此简易式数字电压表成本低易实现,测量速度较快,可测量电压的最小分辨率为0.02v。硬件电路设计由6个部分组成:89c51单片机系统,a/d转换电路,led显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图2.1所示。单片机4位一体的led显示系统时钟电路测量电压输入复位电路a/d转换图2.1 系统硬件设计框图第3章 系统硬件设计第3章 系统硬件设计单片机应用系统的硬件设计包括两方面的内容:一是功能模块的设计,如信号测量、控制、人-机交互接口、通信功能模块等的设计;二是根据功能的需
12、要,选择合适的单片机型号,并设计相应的扩展电路,包括存储器扩展和接口扩展。本系统的硬件电路设计共由6个具有实现一定独立功能的模块组成,本章将详细阐述各个模块的设计过程,并且通过各模块的设计来完成最终的系统硬件电路设计。3.1 单片机的选择at89c51单片机是结合了mcs-51内核和atmel公司flash闪存技术的at89系列单片机,在国内应用非常广泛。at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。该器件采用atmel高密
13、度非易失存储器制造技术制造,与工业标准的mcs-51 指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。根据初步设计方案,选择带有eprom的单片机,其应用程序直接存储在片内,不用在外部扩展程序存储器,这样可以将电路简化。intel公司的8051和8751芯片均可以选用。at89c××系列与mcs-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。它以较小的体积
14、、良好的性能价格比倍受青睐,在家电产品、工业控制、医疗器械、汽车工业等应用方面成为用户降低成本的首选器件。因此,选用at89c51单片机作为系统的主控制器。3.1.1 at89c51的结构与性能at89c51是美国atmel公司生产的低电压、高性能cmos8位单片机,片内含有4kb的可反复擦写的只读程序存储器和128字节的随机存取数据存储器(ram),该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的
15、方案。3.1.2 at89c51功能性能 与mcs-51产品指令系统完全兼容; 4kb可编程闪速存储器; 寿命:1000次写/擦循环; 数据保留时间:10年; 全静态工作:024mhz; 三级程序存储器锁定; 128×8b内部ram; 32个可编程i/o口线; 2个16位定时/计数器; 5个中断源; 可编程串行uart通道; 片内振荡器和时钟电路; 低功耗的闲置和掉电模式。3.1.3 at89c51功能特性概述at89c51提供以下标准功能:4kb的flash闪速存储器,128b内部ram,32个i/o口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振
16、荡器及时钟电路。同时,at89c51可降至0hz静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止cpu的工作,但允许ram、定时/计数器,串行通信口及中断系统继续工作。掉电方式保存ram中的内容,但振荡器停止工作并禁止其他所有不见工作直到下一个硬件复位。3.1.4 at89c51的引脚功能说明at89c51芯片采用pdip封装形式,引脚配置如图3.1所示。图3.1 at89c51的引脚图at89c51芯片的各引脚功能为:(1)端口线(4*8=32条) p0.0p0.7 这组引脚共有8条,为p0口所专用,其中p0.7为最高位,p0.0为最低位。这8个引脚有两种不同的功能,分别适用于两
17、种不同的情况。第一种情况是89c51不带外存储器,p0口可以作为通用i/o口使用,p0.0p0.7用于传送cpu的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89c51带片外存储器,p0.0p0.7在cpu 访问片外存储器时先传送片外存储器的低8位地址,然后传送cpu对片外存储器的读/写数据。p0口为开漏输出,在作为通用i/o使用时,需要在外部用电阻上拉。 p1.0p1.7这8个引脚和p0口的8个引脚类似,p1.7为最高位,p1.0为最低位。当p1口作为通用i/o口使用时,p1.0p1.7的功能和p0口的第一功能相同
18、,也用于传送用户的输入和输出数据。 p2.0p2.7这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用i/o口使用。它的第二功能和p0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像p0口那样传送存储器的读/写数据。 p3.0p3.7这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同。如下表3.1所示。表3.1 p3口各位的第二功能p3口各位第二功能 p3.0rxt(串行口输入) p3.1txd(串行口输出)p3.2/int0(外部中断0输入)p3.3/int1(外部中断1输入)p3.4t0(定时器/计
19、数器0的外部输入)p3.5t1(定时器/计数器1的外部输入)p3.6/wr(片外数据存储器写允许)p3.7/rd(片外数据存储器读允许)(2)电源线(2条)vcc为+5v电源线,vss接地。(3)控制线(6条)ale:地址锁存允许线,配合p0口的第二功能使用。在访问外部存储器时,89c51的cpu在p0.0p0.7引脚线上输出片外存储器低8位地址的同时,还在ale线上输出一个高电平脉冲,用于把这个片外存储器的低8位地址锁存到外部专用地址锁存器,以便空出p0.0p0.7引脚线去传送随后而来的片外存储器读/写数据。在不访问片外存储器时,89c51自动在ale线上输出频率为1/6振荡器频率的脉冲序列
20、。该脉冲序列可以作为外部时钟源或定时脉冲源使用。/ea:片外存储器访问选择线,可以控制89c51使用片内rom或使用片外rom。若/ea=1,则允许使用片内rom, 若/ea=0,则只使用片外rom。/psen:片外rom的选通线。在访问片外rom时,89c51自动在/psen线上产生一个负脉冲,作为片外rom芯片的读选通信号。rst:复位线,可以使89c51处于复位(即初始化)工作状态。通常89c51复位有自动上电复位和人工按键复位两种。xtal1和xtal2:片内振荡电路输入线。这两个端子用来外接石英晶体和微调电容,即用来连接89c51片内osc(振荡器)的定时反馈回路。 3.2 a/d转
21、换器adc0808在工业生产和科学技术研究的各行各业中,常常利用pc或工控机对各种数据进行采集如液位、温度、压力、频率等物理量。现在常用的采集方式是通过数据采集板卡。采用板卡不仅安装麻烦,易受机箱环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而单片机数据采集系统的出现,很好的解决了以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集,现实世界的物理量都是模拟量,能把模拟量转化为数字量的器件称为模/数转换器(a/d转换器)。a/d转换器是单片机数据采集系统的关键接口电路,按照各种a/d芯片的转换原理可分为主次逼近型、双重积分型等等。一个n位的逐次逼近型a
22、/d转换器只需要比较n次,转换时间只取决于位数和时钟周期。逐次逼近型a/d转换器转换速度快,因而在实际中广泛使用。3.2.1 逐次逼近型a/d转换器原理逐次逼近型a/d转换器是由一个比较器、d/a转换器、寄存器及控制电路组成。它利用内部的寄存器从高位到低位一次开始逐位试探比较。转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入a/d转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量。其原理框图如图3.2所
23、示。图 3.2 逐次逼近式 a/d 转换器原理框图3.2.2 adc0808 主要特性adc0808是cmos单片型逐次逼近式ad转换器,带有使能控制端,可以与微机直接接口。片内带有锁存功能的8路模拟多路开关,可以对8路05v输入模拟电压信号分时进行转换。由于adc0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适用于过程控制、微控制器输入通道的接口电路、智能仪器和机床控制等领域。adc0808主要特性如下:l 8路8位a/d转换器,即分辨率8位;l 具有锁存控制的8路模拟开关;l 易与各种微控制器接口;l 可锁存三态输出,输出与ttl兼容;l 转换时间(f=500khz):12
24、8sl 转换精度:0.2%l 单个5v电源供电;l 模拟输入电压范围05v,无需外部零点和满度调整;l 低功耗,约15mw。3.2.3 adc0808的外部引脚特性adc0808芯片有28条引脚,采用双列直插式封装。其引脚图如图3.2所示。图3.2 adc0808引脚图下面说明各引脚功能。(1)in0in7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。(2)地址输入和控制(4条): ale:地址锁存允许输入线,高电平有效。当ale 为高电平时,为地址输入线,用于选择in0in7上那一路模拟电压送给比较器进行a/d转换。 adda、addb、addc:3位地址输入线,用于选通8路模
25、拟输入中的一路。其对应关系如表3.2所示。表3.2 adc0808通道选择表地址码对应的输入通道cba000011110011001101010101in0in1in2in3in4in5in6in7(3)数字量输出及控制线(11条) start:start 为 “启动脉冲”输入端,该线上正脉冲由cpu送来,宽度应大于100ns,上升沿清零sar,下降沿启动adc工作。 eoc:eoc为转换结束输出线,该线上高电平表示a/d转换已结束,数字量已锁入三态输出锁存器。 2-12-8:数字量输出端,2-1为最高位。 oe :oe为输出允许端,高电平时能使2-12-8引脚上输出转换后的数字量。(4)电源
26、线及其他(5条) ref(+)、ref(-):参考电压输入端,给电阻阶梯网络供给标准电压。 vcc、gnd:vcc为主电源输入端,gnd为接地端。一般ref(+)与vcc连接在一起,ref(-)与gnd连接在一起。 clk:时钟输入端。3.2.4 adc0808的内部结构及工作流程adc0808由8路模拟通道选择开关、地址锁存与译码器、比较器、8位开关树型d/a转换器、逐次逼近型寄存器、定时和控制电路和三态输出锁存器等组成。其内部结构如图3.3所示。图3.3 adc0808的内部结构其中: 8路模拟通道选择开关实现从8路输入模拟量中选择一路送给后面的比较器进行比较; 地址锁存与译码器用于当al
27、e信号有效时,锁存从adda、addb、addc 3根地址线上送来的3位地址,译码后产生通道选择信号,从8路模拟通道中选择当前模拟通道; 比较器、8位开关树型d/a转换器、逐次逼近型寄存器、定时和控制电路组成8位a/d转换器,当start信号有效时,就开始对宿儒的当前通道的模拟量进行转换,转换完成后,把转换得到的数字量送到8位三态锁存器,同时通过引脚送出转换结束信号; 三态输出锁存器保存当前模拟通道转换得到的数字量,当oe信号有效时,把转换的结果送出。adc0808的工作流程为:(1)输入3位地址,并使ale=1,将地址存入地址锁存器中,经地址译码器从8路模拟通道中选通1路模拟量送到比较器。(
28、2)送start一高脉冲,start的上升沿使逐次逼近寄存器复位,下降沿启动a/d转换,并使eoc信号为低电平。(3)当转换结束时,转换的结果送入到输出三态锁存器中,并使eoc信号回到高电平,通知cpu已转换结束。(4)当cpu执行一读数据指令时,使oe为高电平,则从输出端d0d7读出数据。3.3 时钟与复位电路3.3.1 时钟电路设计单片机工作是在统一的时钟脉冲下一拍一拍的进行的,这个脉冲是单片机控制中的时序电路发出的。单片机的时序就是cpu在执行指令时所需控制信号的时间顺序。为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地按时序进行工作。89c51内部有一个高增益反相放
29、大器,用于构成振荡器,但要形成时钟脉冲,外部还需要附加电路。89c51的时钟产生方法有两种:一种是内部时钟方式,一种是外部时钟方式。本设计系统采用内部时钟方式,利用单片机内部的高增益反相反相放大器,外部电路简单,只需要一个晶振和2个电容即可。如图3.5 所示。图 3.4 时钟电路电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数。电路中,电容器c1和c2对振荡频率由微调作用,通常的取值范围是30±10pf,在这个系统中选择了33pf;石英晶体选择范围最高可选24mhz,它决定了单片机电路产生的时钟信号的振荡频率,在本系统中选择的是12mhz,因而时钟信号的振荡频率为
30、12 mhz。3.3.2 复位电路设计复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位,其作用是使cpu和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作,单片机复位后(rst从高电平变为低电平),从0000h地址开始执行指令。单片机的rst引脚为主机提供一个外部复位信号输入端口。复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。单片机的复位方式有上电自动复位和手工复位两种,图3.6是51系列单片机常用的上电复位和手动复位组合电路,只要vcc上升时间不超过1ms(在此设计系统中即为一个机器周期),它们都能很好的工作。图 3.5 复位电路阻容器件的参考值
31、如图中所示,即r0=10k,c3=10uf。rst按键可以选择专门的复位按键,也可以选择轻触开关。3.4 led显示系统设计单片机应用系统中,通常都需要进行人-机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。显示电路就是用来完成人-机对话活动的人-机通道。3.4.1 led工作原理及基本结构led显示器是发光二极管显示字段的显示器件,也可称为数码管。单片机系统中通常使用8段led数码显示器,其外形及引脚图如图3.6(a)所示,由图可见8段led显示器由8个发光二极管组成。其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右
32、下角作为显示小数点用,其通过不同的组合可用来显示各种数字。3.6(a) 引脚排列led显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起,称为共阳极led显示器;另一种是8个发光二极管的阴极都连在一起,称为共阴极led显示器。如图3.6(b)所示。3.6(b) 共阴极8段数码显示管(左图)和共阳极8段数码显示管(右图) 共阴极和共阳极结构的led显示器各笔画段名和安排位置是相同的,当二极管导通时,相应的笔画段发亮,由发亮的笔画段组合从而显示各种字符。8个笔画段dpgfedcba对应于1b(8位)的d7、d6、d5、d4、d3、d2、d1、d0,于是用8位二进制码就可以表示要显示字符的
33、字形代码。3.4.2 led显示器的选择在应用系统中,设计要求不同,使用的led显示器的位数也不同,因此生产就生产了位数、尺寸、型号不同的led显示器供选择。在本设计中,选择4位一体的数码型led显示器,简称“4-led”。本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。4-led显示器引脚如图3.7所示,是一个共阴极接法的4位led数码显示管。其中a、b、c、d、e、f、g为4位led各段的公共输出端。1、2、3、4分别是每一位的位选端,dp是小数点引出端。4位一体led数码显示管的内部结构是由4个单独的led组成,每个led的段输出引脚在内部并联后,引出到器件的外部。图3.
34、6 4位led引脚对于这种结构的led显示器,它的体积和结构都符合设计要求,由于4位led阴极的各段已经在内部接在一起,所以必须使用动态扫描方式。3.4.3 led的显示方式led显示器的显示控制方式分为静态显示和动态显示两种。led静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段选线分别与i/o接口相连。因而显示结构简单,显示方便,直接在i/o线上发送相应的字段码,即可显示相应的字符。但当数码管较多时,需要占用较多的i/o线。led动态显示是将所有数码管的段选线并接在一起,用一个i/o接口控制,公共端不是直接接地(共阴极)或接电源(共阳极),而是通过相应的i/o接口线控制。因而
35、,所占用的i/o接口信号线少,大大简化了硬件线路。为了简化电路设计,本系统采用动态显示方式来实现。因而在软件设计当中,每输出一位数字,就需要周期性的对单片机控制led的位选端口进行刷新。如: clr p2.3 ;对单片机的p2.3口进行清零clr p2.2 ;对单片机的p2.2口进行清零clr p2.1 ;对单片机的p2.1口进行清零3.4.4 led显示器与单片机接口设计由于单片机的并行口不能直接驱动led显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作;如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损
36、坏。因此,led显示器的驱动电路设计是一个非常重要的问题。为了简化数字式直流电压表的电路设计,在led驱动电路的设计上,可以利用单片机p0口上外接的上拉电阻来实现,即将led的ag(段显示引脚)和dp(小数点显示引脚)并联到p0口与上拉电阻之间(上拉电阻阻值为1k),这样,就可以加大p0口作为输出口的驱动能力,使得led能按照正常的亮度显示出数字。如图3.8所示。图3.7 led与单片机接口间的设计3.4.5 led译码方式译码方式是指由显示字符转换得到对应的字段码的方式。对于led数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。硬件译码是指利用专门的硬件电路来实现显示字符到字段码的
37、转换。软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码。译码程序通常为查表程序。本设计系统中为了简化硬件线路设计,lde译码采用软件编程来实现。由于本设计采用的是共阴极led,其对应的字符和字段码如下表3.3所示。表3.3共阴极字段码表显示字符共阴极字段码03fh106h25bh34fh466h56dh67dh707h87fh96fh3.5 系统硬件电路设计通过前面几节的设计过程,可设计出简易数字式直流电压表硬件电路原理图如图3.9所示。图3.8 简易数字式直流电压表硬件原理图该电路的工作原理是:+5v的模拟电压信号通过变阻器vr1分压后由adc0808的in0通道进入(由
38、于使用的in0通道,所以adda、addb、addc均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道d0d7传送给at89c51芯片的p1口。at89c51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位led。同时它还通过其四位i/o口p2.0、p2.1、p2.2、p2.3产生位选信号,控制数码管的亮灭。另外,at89c51还控制着adc0808的工作。其中,单片机at89c51通过定时器中断从p2.4输出方波,接到adc0808的clock,p2.6发正脉冲启动a/d转换,p2.5检测a/d转换是否完成,转换完成后,p2.7置高从p1口读取转换结果送
39、给led显示出来。至此已经设计完成了数字直流电压表的硬件电路的设计工作,就可以选取相应的芯片和元器件,利用proteus软件绘制出硬件的原理图,并仔细地检查修改,直至形成完善的硬件原理图。但要使该电路真正实现对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。第4章 软件设计第4章 软件设计在进行系统的总体设计时,软件设计和硬件设计实际上需要统一考虑,并协同进行开发,当系统的硬件电路设计定型后,软件设计的任务就明确了。由前面一章的硬件电路设计可知,系统的应用软件设计主要包括初始化程序、a/d转换子程序、显示子程序的3部分的设计。本章将详细介绍各模块的软件设计。4.1 软件设计方
40、案进行应用软件可采用模块化程序设计方法,其优点是: 每个模块的程序结构简单、任务明确,易于编写、调试和修改; 程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,便于功能扩充和版本升级; 对于使用频繁的子程序可以建立子程序库,便于多个模块调用; 便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。4.1.1 系统软件设计方案框图根据设计要求,首先要确定软件设计方案,即确定该软件应该完成哪些功能;其次是规划为了完成这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。模块的划分有很大的灵活性,但也不能随意划分。划分模块时应遵循下述原则: 每个模块应具有独
41、立的功能,能产生一个明确的结果。 模块之间的控制参数应尽量简单,数据参数应尽量少。控制参数是指模块进入和退出的条件及方式;数据参数是指模块间的信息交换(传递)方式、交换量的多少及交换的频繁程度。 模块长度适中。模块语句的长度通常在20100条较合适。模块长度太长时,分析和调试比较困难,失去了模块化程序结构的优越性;模块太短则信息交换太频繁,也不合适。根据模块的划分原则,将该程序划分初始化模块、a/d转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序。如图4.1所示。开始初始化调用a/d转换子程序调用显示子程序图4.1 数字式直流电压表主程序框图4.2 系统应用程序设计4.2.1
42、初始化程序所谓初始化,是对将要用到的mcs-51系列单片机内部部件或扩展芯片进行初始工作状态设定。初始化子程序的主要工作是设置定时器的工作模式、初值预置、开中断和打开定时器等。在本设计中,使用了1个中断,即int_t0。int_t0中断采用外部中断工作方式,完成adc0808时钟信号的输入功能(由于adc0808的clock是接在at89c51单片机的p2.4端口上的,这就要求从p2.4输出clcok信号供adc0808使用,因此clock信号就要用软件来产生)。4.2.2 a/d转换子程序a/d转换子程序用来控制对输入的模拟电压信号的采集测量,并将对应的数值存入相应的内存单元。其转换流程图如
43、图4.2所示。开始启动转换a/d转换结束?输出转换结果数值转换显示图4.2 a/d转换流程图4.2.3 led显示子程序显示子程序采用动态扫描实现四位数码管的数值显示。在采用动态扫描显示方式时,要使得led显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率。当扫描频率在70hz左右时,能够产生足够的图形和较好的显示效果。一般可以采用间隔10ms对led进行动态扫描一次,每一位led的显示时间为1ms。在单片机中,定时功能既可以由硬件(定时/计数器)实现,也可以通过软件定时程序实现。软件延时程序占用cpu的时间,因此,它降低了cpu的利用率;硬件定时是利用单片机内定时器定时,启动以后定时器可
44、与cpu并行工作,不占用cpu的时间,使cpu工作有较高的工作效率。由于本设计简单,可靠性较高,因而采用软件实现的方式对cpu的影响不大。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11us定时,通过软件延时程序来实现5ms的延时。1. t0定时器中断服务程序的功能:从显示缓冲区分别取出4为led显示器显示数据的位码和段码,送到p1口,依次显示每一位,每一位的显示时间为5ms,显示4位需要20ms的时间。2. 定时器t0的计数初值设时钟频率为12mhz,1个机器周期时间为1us 。t0定时器产生11us的定时,可以计算出计数值和计数初值:计数值=定时时间/
45、机器周期时间=11us/1us=11计数初值256-11 = 245初值寄存器的初值为:th0 = 245;tl0 = 00h工作方式寄存器tmod = ××××0010b = ×2h,t0定时器,工作方式2,最大定时值为256 us。第5章 系统的仿真实现第5章 系统的仿真实现系统制作好了并非意味着到这里一切工作都结束了,实际上系统能一次性通过测试达到最终目标的很少,都需要进行多次的软硬件调试修改才能实现各项功能要求的。5.1 软件调试调试的主要任务是排查错误,错误主要包括逻辑错误和功能错误,这些错误有些是显性的,而有些是隐形的。可以通过仿真
46、开发系统来发现并逐步改正。proteus软件是英国的labcenter electronics公司推出的,它可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如led/lcd、键盘、rs232终端等动态外设模型来对设计进行交互仿真。proteus支持的微处理芯片(microprocessors ics)包括8051系列、avr系列、pic系列、hc11系列、arm7/lpc2000系列以及z80等等。proteus可以完成单片机系统原理图电路绘制、pcb设计,更为显著的特点是可以与uvisions3 ide工具软件结合进行编程仿真调试。本系统的调试主要以软件为主,其
47、中,系统电路图的绘制和仿真我采用的是proteus软件,而程序方面,我采用的是汇编语言,用keil软件实现。通过软件调试能得到测量电压值,而且在电压变化时(如手动调节变阻器的输入值)显示电压能改变就基本完成。5.2 调试中的问题及解决方法虽然proteus功能强大,人机界面友好,但在设计过程中往往遇到一些问题。如在用proteus绘制电路图时,虽然一般型号的元器件在元件器库中均能找到,但有些元件由于没有预先定义,导致在电路仿真时系统会提示“no model specified for”,这表明该元器件在封装时没有定义其工作模式,不能完全调入。解决方法有:1. 重新定义或添加该元件;2. 选用具
48、有相同引脚功能的其他等同元件。5.3 显示结果分析1. 当输入变阻器的值为0,即直接输入向ino口输入5v电压时,显示结果如图5.1所示。测量误差为0v。图5.1 输入电压为5v时,led的显示结果3. 当输入变阻器的值为 ,即将输入端口in0直接接地时,显示结果如图5.2所示。测量误差为0v。图5.2输入电压接近0v时,led的显示结果4. 当输入变阻器的输入电压为3.84v时,显示结果如图5.3所示。测量误差为0.01v。图5.3输入电压为 v时,led的显示结果综上测试显示结果可知,本设计系统的测量结果符合设计要求,达到了预期设计的目标。第6章 结论第6章 结论经过近两个个月的努力,我的
49、毕业设计简易数字式直流电压表(单片机的应用)已经基本完成。在设计过程中,力求系统的实现电路简单、成本低,系统的功能快捷易用并且完善。但是由于一些条件的限制,所设计系统仍然存在一些不足,有待改进。本测量系统实用性强、结构简单、成本低、外接元件少。在实际应用中工作性能稳定,测量电压准确,精度较高。系统功能、指标达到了课题的预期要求。系统在硬件设计上充分考虑到了可扩展性,经过一定的添加或改造,很容易增加功能,如在的模拟信号输入前端加一个信号衰减,可以完成对更大的模拟信号的测控,那么其使用范围将更加广泛。本文介绍了基于单片机的简易数字式直流电压表系统的设计与实现,详细阐述了从原理图的设计和绘制、电路图
50、仿真到软件的调试。这是我第一次利用单片机来实现一个应用系统的设计,通过实践,我对汇编语言和单片机有了新的认识和理解,并且学会了proteus和keil软件的使用,掌握了从系统的需求、方案论证、功能模块的划分、原理图的设计和绘制、电路图仿真、程序设计到软件仿真调试的设计流程,积累了硬件设计的经验。基于电路的设计方法有利于电子电路初学者加深对电路原理、器件资料、电路板设计和电路的硬件调试认识和理解。由于初次接触单片机类的设计项目,在设计过程中也出现了一些问题,以前学习的专业知识掌握的不够好,对电路的理解不是很透彻,设计的电路布局布线不是很合理,理论联系实际的能力还需要进一步的加强。还由于元器件的多
51、样性和可选型号的广泛性,在此系统中运用的型号的芯片不一定是最佳的。现在电子器件发展日新月异,新的器件如雨后春笋般出现,也不可能一一尝试,所以还肯定有很多值得改进的地方。在以后的实践中,我将继续努力学习电子电路设计,力争取得更大的进步。致谢参考文献(1) 康光华.电子技术基础.数字部分(第四版).北京:高等教育出版社,2000年(2) 张齐、朱宁西. 单片机应用系统设计技术基于c51单片机的proteus仿真(第二版).北京:电子工业出版社,2009年(3) 于殿泓、王新年. 单片机原理与程序设计实验教程.西安:西安电子科技大学出版社, 2007年(4) 谢维成、杨加国. 单片机原理与应用及c51程序设计实例.北京: 清华大学出版社,2006年
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级上册数学教案-3.2儿童乐园 |北师大版
- 2025年合同付款明细表模板
- 三年级下册数学教案 - 5.6 求简单的经过时间 丨苏教版
- 五年级上册数学教案-5 小数除以整数|苏教版
- 学习2025年雷锋精神62周年主题活动实施方案 汇编3份
- 人教PEP版三年级上册期中检测英语试卷(含听力)(含解析)-
- 《南乡子 登京口北固亭有怀》历年中考古诗欣赏试题汇编(截至2023年)
- 2025年甘肃建筑职业技术学院单招职业适应性测试题库学生专用
- 2025年湖北体育职业学院单招职业倾向性测试题库学生专用
- 2025年广东工贸职业技术学院单招职业适应性测试题库完整版
- 中小学领导班子包级包组包班制度
- 汽车挂靠经营合同协议书模板
- 基坑土方开挖专项施工方案(完整版)
- 电网工程设备材料信息参考价(2024年第四季度)
- 2025年江苏农牧科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 数据中心运维服务投标方案(技术标)
- 瑞幸对赌协议
- 部编人教版四年级下册道德与法治全册教案
- 2024年湖南铁道职业技术学院单招职业技能测试题库及答案解析word版
- 健康保险学PPT完整全套教学课件
- 大学生心理健康教育高职PPT完整全套教学课件
评论
0/150
提交评论