单片机应用实践报告.docx
《单片机应用实践报告.docx》由会员分享,可在线阅读,更多相关《单片机应用实践报告.docx(13页珍藏版)》请在冰豆网上搜索。
单片机应用实践报告
单片机与ADC0808的接口技术
摘要:
以ADC0809和8051为核心,该系统有三个部分:
数据采集,数据处理和显示,终端接收。
具体包括控制、显示、A/D转换器、电平转换接口、个人计算机等。
设计中用ADC0809进行8路数据的采样,利用MCS-51单片机的串行口发送和接收数据。
显示部分由8155、75452、7407和LED数码显示器构成。
硬件设计应用电子设计自动化工具,软件设计采用模块化编程方法。
关键字:
数据采集,ADC0808,AT89C51,示波器
一、系统总体概述
1.1设计题目、内容、要求:
设计的题目:
简易数字电压表的设计。
设计内容:
1.可以测量0~5V范围内的8路直流电压值。
2.在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,8路用数字表示分别为0-7。
3.测量最小分辨率为0.02V。
设计要求:
1.进行系统总体设计。
2.完成系统硬件电路设计。
3.完成系统软件设计。
4.撰写设计说明书。
1.2概述
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
1.3系统原理及基本框图
如图1-1所示,模拟电压经过滑动变阻器切换到不同的分压电路后,送到A/D
转换器进行A/D转换,然后送到单片机中进行数据处理。
处理后的数据,通过P0口传输送到LED中显示。
1.4方案说明
系统首先通过按键逐路选择八路通道中的一路或是循环显示,将该路某一路电压送入ADC0808相应通道,单片机软件设置ADC0808开始A/D转换,转换结束ADC0808的EOC端口产生高电平,同时将ADC0808的EO端口置为高电平,单片机将转换后结果存如片内RAM。
系统调出计算子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调用显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。
二、硬件电路设计及描述
在AT89S51的控制下,指定某通道将电位器产生的输入电压信号输入AD0809转换器,转换成数值信号后输入到AT89S51进行数据处理,然后输出并行信号。
使用四位数码显示管来做独立的显示设备将输出信号显示出来。
采用电位器产生可变电压(0-5V),我个人和小组内成员觉得使用电位器较电压信号更加简单,具有很强的可操作性,可在后期工作中将电位器集成在电路板上,使模拟信号有良好的可移动性。
1、设计方案的框图
2、工作原理
模拟信号有电位器产生0-5V的可调电压。
上电以后,AT89S51输出启动信号给ADC0809,ADC0809开始转换第一通道的模拟信号。
转换完成以后发出完成信号给AT89S51,转换后的并行数据由P1口输入单片机,单片机接收数据后由程序按温度值T(˚C)与电压U(V)对应关系:
T=15.4V完成换算,最后由P0口输出显示数据,由四位数码显示管显示。
ADC0809内部自带8路数据选择器,由单片机控制片选信号,完成按键选择信号的功能。
3、双积A/D转换器的工作原理
如图2-1所示:
对输入模拟电压和基准电压进行两次积分,先对输入模拟电压进行积分,将其变换成与输入模拟电压成正比的时间间隔T1,再利用计数器测出。
此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理。
在常用的A/D转换芯片(如ADC-0809、ICL7135、ICL7109等)中,ICL7135与其余几种有所不同,它是一种四位半的双积分A/D转换器,具有精度高(精度相当于14位二进制数)、价格低廉、抗干扰能力强等优点。
4、A/DC0808的转换流程图
数字量电压值输入89C51
启动ADC0808
等待转换是否结束
将结果转换成BCD码并输出
图2-3A/DC0808的转换流程图图2-3A/DC0808的转换电路图
5、原理图及连接关系
5.1数据输入模块
本次采集器设计的输入的模拟信号比较简单,采用滑动变阻器,外接+5V电压作为输入模拟信号,标示为RV1分别接入模数转换芯片ADC0809的IN0-IN7(26,27,28,1,2,3,4,5号管脚)。
完全符合输入模拟信号0-5V的调节范围,有效可靠的模拟电压信号。
5.2模数转换模块
模拟信号通过输入端IN0~IN7:
8路模拟量输入端。
ADDA,ADDB,ADDC三个是数据选择控制端输入片选信号与P3.1,P3.2,P3.3连在一起,由A,B,C和IN0-IN7构成3-8数据器,通过AT89S51中的按键程序控制片选信号。
START是A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
ALE是地址锁存允许信号,输入,高电平有效。
将ALE和START连在一起与P3.4相连,在A/D转换完成后正脉冲的处于高电平,即可控制地址锁存器。
该脉冲依靠编写的单片机中断程序模拟一个正脉冲控制。
OE端口是数据输出允许信号,由单片机输入高电平控制。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
OUT1-OUT8是A/D转换的输出数字端口,与P1口相连。
连接方式是OUT1-OUT2和P1.7-P1.0。
12和16号管脚是接基准电压分别接VCC和GND。
另外10号端口是时钟频率大小不得超过640KHZ。
本次设计中我们采用终端输出脉冲来模拟这个时钟脉冲,但是效果不好,所以采用外接500KHZ的信号。
5.3主控电路-单片机
这是单片部分的复位电路和时钟脉冲电路。
复位电路采用电平复位的方式,晶振的频率为11.0592MHZ。
连接方式如图分别连到单片机的19,18,9好脚。
这是单片主控部分的解法,其中P3.1到P3.7与A/D转换芯片相连,做控制口。
在A/D部分已经详细介绍了连法。
P2.0-P2.3是四位数码显示管的控制端。
P2.5和P2.6是按键的控制端。
P0.0-P0.7是显示的数据输出端与四位数码管的A-G相连。
这个是简单的按键部分,P2.4按键选通转换那一路,执行的方式是按一下显示下一路,按0-7路的方式循环。
P2.5是做的循环显示,按一下这循环显示0-7路的温度。
5.4显示部分
显示部分我们使用的是四位数码管(共阳极),其中标示的是P0.0-P0.7和A-DP的连接方式,是数据输出端。
P2.0-P2.3与1-4相连,做控制端口,控制那一位显示。
RP1是排阻,阻值单个是1K。
因为PO口是用来做数据端的,必须串上拉电阻。
三、软件设计流程
程序源代码:
org0
ljmpstar
org03h
ljmpint_0
org100h
star:
movdptr,#0fe00h
movie,#81h
movtcon,#0
movx@dptr,a
loop:
clrp3.4
clrp3.5
sjmploop
int_0:
movxa,@dptr
mov30h,a
cjnea,#255,QA
QA:
jncQB
clrp3.3
sjmpQC
QB:
setbp3.3
QC:
movb,#51
divab
anla,#0fh
lcallseg7
setbp3.5
clrp3.4
movp1,a
setbp1.7
lcalldly
clrp3.5
mova,30h
movb,#51
divab
anla,#0f0h
swapa
lcallseg7
setbp3.4
clrp3.5
movp1,a
clrp1.7
lcalldly
movx@dptr,a
reti
seg7:
inca
movca,@a+pc
ret
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h
db80h,90h,88h,83h,0c6h,0a1h,86h,8eh
dly:
movr7,#2
d1:
movr6,#249
djnzr6,$
djnzr7,d1
ret
end
电路设计框图:
数字电压表设计电路:
系统工作过程:
首先通过按键或开关选择要测量的电压地址,即几路电压,若通过按键逐路选择,则要通过计数器74LS161记录按键次数,从而对电压地址加一,从而实现地址的转移,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,之后数据经过处理,就可以在数码管上显示系统通过调节滑动变阻器可以调节测量电压,如上图。
四、测试
在仿真成功以后,我们开始进行对电路板开始布线,并检查元器件时候有损坏。
完成了检查工作之后,便开始焊接元件。
在电路焊接完成后,在没有加电的情况下对电路进行测试,对照电路原理图检查电路中是否有虚焊和漏焊。
在完成了上述基本的检查之后,给电路上电,对各个部分的电路进行了检查。
1、模拟信号的测试
模拟信号采用的是8个电位器,电源接0-5V,输出的电压经过电压表的测试与设计要求中的相符合。
当电位器值满时,理论电压为5V,用电压表测出值为4.98V。
与所要求的值误差不大。
2、单片机电路测试
在接上电源以后,首先对整个电路的核心部位AT89S51进行了测试,他的稳定是至关重要的,因为他控制着整个电路板的运行。
AT89S51的电压输入点测试电压为3.44V,说明其驱动的电压是正常的。
3、数据采集电路的测试
给系统接上电源以后,对本次设计的核心内容进行了测试。
电位器构成的可调电压输入ADC0808中,经过单片机控制采集并进行处理后显示在数码管上。
在接电源以前先将已经写好的程序烧入单片机中。
当调节电位器的阻值时,温度由0到76.6变化。
说明我们的数据采集器已经完成了采集数据的功能。
五、总结
本次课程设计用AT89S51和ADC0808以及四位数码显示管为主要元件,设计出了简单,实用的数据采集器。
本文详细介绍了各个芯片的功能和特点,以及介绍了各芯片之间的连接方式。
还编写了实现数据采集器的相应程序。
本数据采集器最大的优点是结构简单,成本低,且具有很强的可移植性。
为数据采集系统提供了一个可靠的解决方案。
经过本次课程设计,使我深深的体会到了理论应用在实际中的存在相当多的问题。
要把所学的知识融会贯通也不是一件容易的事情。
比如尽管通过Proteus仿真出结果,但是仿真和实际电子元器件依然存在很大的差距。
要学会如何矫正这些误差,实现系统的功能着实不容易。
在焊接元件的时候一不小心也容易出差错。
为后期造成很大的困难,因为等焊接完成后,在密密麻麻的线上查找错误很困难。
这次课程设计也让我学到了很多东西,比如对Proteus的使用。
学会如何制作仿真图,调用库元件。
掌握了如何使用示波器以及其他电子设备。
这次实习让我受益匪浅,无论从知识上还是其他的各个方面。
上课的时候的学习从来没有接触过真正的单片机,只是从理论的角度去理解枯燥乏味。
但在实习中模拟使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。
在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会相互讨论或者帮助。