基于AT89C51单片机的数字电压表设计_第1页
基于AT89C51单片机的数字电压表设计_第2页
基于AT89C51单片机的数字电压表设计_第3页
基于AT89C51单片机的数字电压表设计_第4页
基于AT89C51单片机的数字电压表设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片机课程设计报告基于at89c51的数字电压表设计设计课题: 专业班级: 学生姓名: 指导教师: 设计时间: 基于at89c51单片机的数字电压表设计摘要数字电压表是常用的对电子电路进行检测的较精密仪器之一。本文的设计思想是一种基于单片机的数字电压表设计方式。该设计主要由三个模块组成:a/d转换模块、数据处理主控模块和显示模块。a/d转换模块主要由芯片adc0808来完成,它负责将采集到的模拟量转换为相应的数字量传送到数据处理模块(单片机)。数据处理主控模块由单片机at89c51来完成,它负责将adc0808传送过来的数字量经过一定的数据处理,产生相对应的显示码传送到显示模块进行显示。此外

2、,它还控制芯片adc0808的工作。经过仿真软件结果表明本设计中的电压表电路简单,所用元件较少,成本低且测量精度高。此电压表可以测量05v的模拟输入电压值,并通过一个四位一体的共阴数码管显示出来。关键词:数字电压表,单片机,a/d转换,at89c51,adc0808目 录第1章 绪论1第2章 系统整体设计思路及方案22.1 设计题目22.2 设计思路22.3 设计方案2第3章 数字电压表的硬件设计33.1 单片机主控制模块的设计33.1.1 at89c51性能简介33.1.2 at89c51各引脚功能33.1.3 at89c51的复位电路和时钟电路53.2 a/d转换电路设计63.2.1 ad

3、c0808的主要特性73.2.2 adc0808各引脚功能73.3 显示电路的设计83.4 总体电路设计10第4章 数字电压表的软件设计114.1 设计流程图114.2 各子程序简介12第5章 软件调试135.1 软件调试135.2 误差分析13结论15参考文献16附录 程序截图及解释17第1章 绪论 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表(digital voltmeter)简称dam,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的

4、数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,有精度高、抗干扰能力强、集成方便,还可与pc进行实时通信等优点。 目前,由各种单片机和a/d转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等领域,显示出了它极强的生命力。与此同时,由dvm扩展而成的各种通用及专用数字仪表仪器,也把电量及非电量技术提高到崭新水平。新型数字电压表以其高准确度、高可靠性、高分辨率、高性价比等优良特性备受人们的青睐。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,

5、a/d转换采用adc0808对输入的模拟信号进行转换,控制核心at89c51再对转换的结果进行运算处理,最后驱动输出装置led显示数字电压信号。 第2章 系统整体设计思路及方案2.1 设计题目 基于单片机at89c51数字电压表的设计2.2 设计思路(1)根据设计题目,选择at89c51单片机为核心控制器件。(2)a/d转换采用adc0808实现,连接单片机的p1口和p3口的四位引脚。(3)电压显示采用4位一体的led数码管。(4)led数码管的段码输入由端口p0产生;位码输入用端口p2产生。2.3 设计方案 本设计选择at89c51单片机作为核心控制器件。a/d转换采用adc0808来实现。

6、输入采用05v的直流电压源,电压显示采用4位一体的led数码管,led数码管的段码输人由端口p0输出,位码输人由端口 p2输出。时钟电路 复位电路a/d转换测量电压显示系统统at89c51 p1 p3 p0p2 p1 硬件电路设计由6个部分组成: a/d转换电路,at89c51单片机系统,led显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计如图2-1所示。 图2-1 系统设计框图第3章 数字电压表的硬件设计3.1 单片机主控制模块的设计3.1.1 at89c51性能简介 at89c51是美国atmel公司生产的低电压,高性能cmos8位单片机,片内含有4kb的可反复擦写的只读程

7、序存储器和128字节的随机存储器。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容,由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 at89c51功能性能:与mcs-51成品指令系统完全兼容;4kb可编程闪速存储器;寿命:1000次写/擦循环;数据保留时间:10年;全静态工作:0-24mhz;三级程序存储器锁定;128*8b内部ram;32个可编程i/o口线;2个16位定时/计数器;5个中断源;可编程串行uart通道;片内震荡器和掉电模式。

8、3.1.2 at89c51各引脚功能 at89c51提供以下标准功能:4kb的flash闪速存储器,128b内部ram,32个i/o口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,at89c51可降至0hz静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止cpu的工作,但允许ram,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存ram中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。at89c51采用pdip封装形式,引脚配置如图3-1所示。图3-1 at89c51引脚图at89c51芯片的各引脚功能为:

9、 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使用时,需要在外部用电阻上拉。 p1口:这8个引脚和p0口的8个引脚类似,p1.7为最高位,p1.0为最低位,当

10、p1口作为通用i/o口使用时,p1.0-p1.7的功能和p0口的第一功能相同,也用于传送用户的输入和输出数据。 p2口:这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用i/o口使用,它的第一功能和p0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但不像p0口那样传送存储器的读/写数据。 p3口:这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表3-1所示:表3-1 p3口各位的第二功能p3口各位第二功能p3.0 rxt(串行口输入)p3.1 txd(串行口输出)p3.2/int0(外部中断0输入)p3

11、.3/int1(外部中断1输入)p3.4t0(定时器/计数器0的外部输入)p3.5t1(定时器/计数器1的外部输入)p3.6/wr(片外数据存储器写允许) p3.7/rd(片外数据存储器读允许) vcc为+5v电源线,gnd接地。 ale:地址锁存允许线,配合p0口的第二功能使用,在访问外部存储器时,89c51的cpu在p0.0-p0.7引脚线去传送随后而来的片外存储器读/写数据。在不访问片外存储器时,89c51自动在ale线上输出频率为1/6震荡器频率的脉冲序列。该脉冲序列可以作为外部时钟源或定时脉冲使用。 ea:片外存储器访问选择线,可以控制89c51使用片内rom或使用片外rom,若ea

12、=1,则允许使用片内rom, 若ea=0,则只使用片外rom。 psen:片外rom的选通线,在访问片外rom时,89c51自动在psen线上产生一个负脉冲,作为片外rom芯片的读选通信号。 rst:复位线,可以使89c51处于复位(即初始化)工作状态。通常89c51复位有自动上电复位和人工按键复位两种。 xtal1和xtal2:片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89c51片内osc(震荡器)的定时反馈回路。3.1.3 at89c51的复位电路和时钟电路 单片机中cpu每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制

13、中的时序电路发出的。cpu执行一条指令的各个微操作所对应时间顺序称为单片机的时序。mcs-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,xtal1为该放大器的输入端,xtal2为该放大器输出端,但形成时钟电路还需附加其他电路。单片机at89c51的时钟电路如图3-2所示,主要由电容c1- c3、电阻r1、晶振x1等组成。at 89c51的18脚(xtal2)和19脚(xtal1)接时钟电路,其中19脚是at89c51内部振荡器倒相放大器的输入端,用于接外部晶振和微调电容的一端;18脚是at89c51内部振荡器倒相放大器输出端,用于接外部晶振和微调电容的另一端。图3-2 at89c5

14、1的时钟电路图 单片机在启动运行时都需要复位,使cpu和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。mcs-51单片机有一个复位引脚rst,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。复位完成后,如果rst端继续保持高电平,mcs-51就一直处于复位状态,只要rst恢复低电平后,单片机才能进入其他工作状态。图3-3是51系列单片机统常用的复位电路。图3-3 at89c51的复位电路3.2 a/d转换电路设计 现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(a/d转换器),a/d转换器是单片机数据采

15、集系统的关键接口电路,按照各种a/d芯片的转化原理可分为逐次逼近型,双重积分型等等。双积分式a/d转换器具有抗干扰能力强、转换精度高、价格便宜等优点。与双积分相比,逐次逼近式a/d转换的转换速度更快,而且精度更高,如adc0809、adc0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。一个n位的逐次逼近型a/d转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型a/d转换器转换速度快,因而在实际中广泛使用。3.2.1 adc0808的主要特性 adc0808是cmos单片型逐次逼近式a/d转换器,带有使能控

16、制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5v输入模拟电压信号分时进行转换,由于adc0808设计时考虑到若干种模/数变换技术的长处,所以该芯片适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。 adc0808是分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行a/d转换。adc0808是adc0809的简化版本,功能基本相同。一般硬件仿真时采用adc0808进行a/d转换,实际使用时采用adc0809进行a/d转换。 3.2.2 adc0808各

17、引脚功能图3-4 adc0808引脚图 adc0808芯片有28条引脚,采用双列直插式封装,其引脚图如图3-4所示。下面说明各个引脚功能: in0-in7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。 ale:地址锁存允许输入线,高电平有效,当ale为高电平时,为地址输入线,用于选择in0-in7上那一条模拟电压送给比较器进行a/d转换。adda,addb,addc:3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表3-2所示:表3-2 adc0808通道选择表地址码 对应的输入通道 c b a 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0

18、 1 0 1 0 1 in0 in1 in2 in3 in4 in5 in6 in7 start:start为“启动脉冲”输入法,该线上正脉冲由cpu送来,宽度应大于100ns,上升沿清零sar,下降沿启动adc工作。 eoc: eoc为转换结束输出线,该线上高电平表示a/d转换已结束,数字量已锁入三态输出锁存器。oe:数据输出允许信号,输入,高电平有效。当a/d转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 ref+、ref-:参考电压输入量,给电阻阶梯网络供给标准电压。 vcc、gnd: vcc为主电源输入端,gnd为接地端,一般ref+与vcc连接在一起,ref-与gn

19、d连接在一起. clk:时钟输入端。3.3 显示电路的设计 led是发光二极管显示器的缩写。led由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。led显示器是由若干个发光二极管组成显示字段的显示器件。在单片机中使用最多的是七段数码显示器。 在应用系统中,设计要求不同,使用的led显示器的位数也不同,因此就生产了位数,尺寸,型号不同的led显示器供选择,在本设计中,选择4位一体的数码型led显示器,简称“4-led”。本系统中前一位显示电压的整数位,即个位,后三位显示电压的小数位。4-led显示器引脚如图3-5所示,是一个共阴极接法的4位led数码显示管,其中a,b,c,e,f,

20、g为4位led各段的公共输出端,1、2、3、4分别是每一位位数选端,dp是小数点引出端,4位一体led数码显示管的内部结构是由4个单独的led组成,每个led的段输出引脚在内部都并联后,引出到器件的外部。图3-5 4位led引脚本设计中led和单片机的连接如图3-6,图中可以看出,本设计用单片机的p0.0p0.7作为led显示的片选端口,p2端口作为led的位选信号。图3-6 显示电路连接图3.4 总体电路设计经过以上的设计过程,可设计出基于单片机的简易数字电压表硬件电路原理 图如图3-7所示。图3-7 设计电路总图此电路的工作原理是:+5v模拟电压信号通过变阻器rv1分压后由in0进入adc

21、0808,经过a/d转换后,读取转换后的采样值,通过公式:电压=采样值/采样精度*参考电压,将通过公式计算后的数字量经过其输出通道a0-a7传送给at89c51芯片的p1口,at89c51负责把接收到的数字量经过数据处理,产生正确的显示段码通过p0口传送给共阴数码管,p2.0、p2.1、p2.2、p2.3产生位选信号控制数码管的亮灭。at89c51通过p3.4给adc0808的clock提供时钟信号,当给单片机的p3.0输出一个正脉冲,利用其下降沿可启动ad转换,由p3.2检测a/d转换是否完成,转换完成后,通过p3.1使输出允许控制端oe置为高电平,允许单片机读取转换数据,将转换结果送给共阴

22、数码管显示出来。 第4章 数字电压表的软件设计4.1 设计流程图 主程序主要完成信号存储、信号处理、a/ d转换以及调用显示等。主程流程如图4-1所示:程序首先从org0000h开始,然后无条件件跳转至主程序的首地址开始,初始化后,先调用模数转换程序进行输入信号的数字化,然后调用显示子程序将处理后的数字输出,一次数据结束后,循环执行调用的两个子程序。图4-1 主程序流程图a/d转换子程序如图4-2所示:首先进行开始模数转化,执行后,如果检测到转化没有完成则继续转化,如果转化完成,执行下一条指令,将取得模数转化结果并转换为工程量,然后显示转换结果,此为一次模数转换,如此循环可转换下一组数据,全部

23、转换完毕后,结束。图4-2 a/d转换子程序流程图4.2 各子程序简介 初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。 a/d转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元。显示子程序采用动态扫描实现四位数码管的数值显示,在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0方式2产生40ms定时,通过软件延时程序来实现10ms的延时。 第5章 软件调试5.1 软件调试 软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。proteus软

24、件可以对基于微控制器的设计连同所有的周围电子器件一起仿真。proteus支持的微处理芯片包括8051系列、avr系列、pic系列、hc11系列及z80等等。proteus可以完成单片机系统原理图电路绘制、pcb设计,更为显著的特点是可以与u visions3 ide工具软件结合进行编程仿真调试。 本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是proteus软件,程序方面,采用的是c语言,用keil软件将程序写入单片机。5.2 误差分析 由于单片机at89c51为8位处理器,当输入电压为5.00v时,adc0808输出数据值为255(ffh),因此单片机最高的数值分辨率为0.

25、0196v(5/255)。这就决定了电压表的最高分辨率只能到0.0196v,从下表可看到,测试电压以接近0.01v的幅度变化。本文的数字电压表可以测量0-5v的电压值,最大分辩率为0.001v。通过仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表。本次设计的电压表误差分析采用多次测量求绝对差值的方法,并把各组数据列成表格,这样能更加清晰地看出误差的波动范围及大小,如下表5-1所示: 标准电压(v)0.000.501.001.502.002.503.003.504.004.505.00测量电压(v)0.000.5091.0001.5092.0002.4903.0003.4904.0

26、004.4905.000绝对误差(v)00.00900.00900.01000.01000.0100表5-1 误差分析 从上表可以看出,简易数字电压表测得的值和标准电压值偏差在0-0.02v,这可以通过校正adc0808的基准电压来解决。因为该电压表设计时直接用5v的供电电源作为电压,所以电压可能有偏差。 结论 经过近段时间的努力,基于at89c51单片机的数字电压表设计基本完成。但设计中仍然存在许多不足之处。这次设计是我第一次设计电路,并用proteus实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了proteus和keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图电路图的仿真的设计流程,积累了不少经验。 基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了论文的预期要求,本文设计主要实现了简易数字电压表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论