基于ADC0832的单片机数据采集系统设计课程设计.docx
- 文档编号:24282492
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:43
- 大小:1.03MB
基于ADC0832的单片机数据采集系统设计课程设计.docx
《基于ADC0832的单片机数据采集系统设计课程设计.docx》由会员分享,可在线阅读,更多相关《基于ADC0832的单片机数据采集系统设计课程设计.docx(43页珍藏版)》请在冰豆网上搜索。
基于ADC0832的单片机数据采集系统设计课程设计
合肥学院
创新课程设计报告
题目:
基于ADC0832的单片机数据采集系统设计
系别:
__电子信息与电气工程系__
设计
题目
《通信技术创新课程设计》任务书
基于ADC0832的单片机数据采集系统设计
设计类型
导师姓名
主要内容及目标
基于8位串行模数转换器ADC0832,设计完成一个单片机数据采集系统。
要求:
1、设计实现ADC0832模数转换电路,将单片机采集到得0~5V电压信号用数码管显示。
2、要求绘制系统原理框图、电路原理图、PCB版图和程序流程图。
3、认真进行系统软硬件设计、实施、调试,观察实验结果。
4、详细记录实施过程中所遇到的问题及问题产生的原因并制定解决方案。
具有的设计条件
器材需要相关电子元器件、实验板。
实验仪器需要计算机、示波器、万用表等。
计划学生数及任务
计划需要3人
1人主要进行系统方案设计,组织实施;
1人主要进行硬件设计实施调试;
1人主要进行软件设计实施调试。
计划设计进程
1、从接题开始收集资料、准备设计。
2、第1周查阅文献,制定设计方案,绘制系统原理框图、电路原理图等。
3、第2周绘制电路PCB版图,完成系统所有硬件电路和程序编制工作。
4、第3周系统调试和完善,同时编写完成设计报告。
参考文献
1、余锡存等.单片机原理及接口技术[M].西安:
西安电子科技大学出版社,2000.
2、赵亮等.单片机C语言编程与实例[M].北京:
人民邮电出版社,2003.
3、赵晶.protel99高级应用[M]北京:
人民邮电出版社出版,2000年.
4、梁明亮等.单片机与ADC0832的接口技术[J].河南科技,2006,(8):
48-49.
5、李庭贵等.基于DAC0832和AT89S52的信号发生器设计[J].电子科技,2012,25(6):
104-106.
摘要
随着时代的进步,用指针式万用表测量小幅度直流电压已经显得有些不太方便。
因为指针式的测量不够精确,随着长时间的使用可能会造成欧姆调零以及机械调零的磨损,这都会对数据的测量造成很多困难,而采用数字式电压表来测量就可以避免这种情况的发生,而且操作更加方便。
下面本文将介绍一种由数字电路以及单片机构成的简易数字电压表的设计方法。
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表
本设计运用89C52和ADC0832进行A/D转换,根据数据采集的工作原理,设计实现数字电压表,最后完成单片机与PC的数据通信,传送所测量的电压值。
该数字电压表测量电压类型是直流,测量范围是0-51V(本设计量程为0-5V)。
电路包括:
数据采集电路的单片机最小化设计、单片机与PC接口电路、单片机钟电路、复位电路等。
下位机采用89C52芯片,A/D转换采用ADC0832芯片。
通过RS232行口与PC进行通信,传送所测量的直流电压数据。
关键词:
STC89C52单片机ADC0832模数转换器LCD1602
第一章绪论
1.1系统设计任务分析
本设计由A/D转换、数据处理及显示控制等组成,测量0~5V范围内的输入电压值,由LCD1602扫描显示,最大分辨率0.1V,误差±0.02V。
数字电压表的核心为ST89C52单片机和ADC0832A/D转换集成芯片。
本系统的核心控制芯片选用的是STC89C52RC。
单片机在各个技术领域中的迅猛发展,与单片机所构成的计算机应用系统的特点有关:
1单片机构成的应用系统有较大的可靠性。
2系统构建简洁、易行,能方便的实现系统功能。
3由于构成的系统是一个计算机系统,相当多的功能由软件实现,故具有柔性特点和优异的性能价格比。
第二章总体方案设计与选择的论证
2.1单片机最小系统
2.1.1单片机的说明
单片机的原名叫Microcontroller,即微型控制器。
顾名思义,单片机有别于通用微型计算机,它是专门为控制和智能仪器设计的一种集成度很高的微型计算机。
其控制功能强,有优异的性能/价格比,有很高的可靠性。
因而,单片机的应用范围在不断的扩大,它已经成了人类生活中不可缺少的工具。
下面介绍单片机在几个方面的典型应用。
2.1.2单片机的应用
(1)单片机在智能仪器中的应用
单片机广泛的用于各种仪器仪表中,使仪器仪表数字化、微型化和智能化,提高它们的测量速度、测量精度和自动化程度,简化仪器仪表的硬件结构,便于使用、维修和改进,提高其性能/价格比。
(2)单片机在机电一体化产品中的应用
机电一体化是机械工业发展的方向。
机电一体化产品是指,集机械技术、微电子技术、计算机技术和控制技术于一体,具有智能化特征的机电产品。
例如,微机控制的数控机床、机器人等。
单片机作为机电产品中的控制器,能充分的发挥它的体积小、可靠性高、功能强等优点,大大提高了机器的自动化、智能化程度。
(3)单片机在过程控制中的应用
过程控制是微型机应用最多、最有效的方面之一,单片机广泛的应用于过程控制。
它既可以作为主机控制,也可以作为分布式控制系统的前端机,对现场的信息进行实时的测量和控制。
单片机可用于开关量控制、顺序控制及逻辑控制等。
如锅炉控制、电机控制、机器人控制、交通信号灯控制、造纸纸浆浓度控制、纸张定量水分及厚薄控制、雷达与导弹控制以及航天导航系统鱼雷制导系统控制等。
(4)单片机在计算机网络及通信中的应用
由于高性能单片机中集成有SDLC通信接口,因而使其在计算机网络及通信设备中得到了广泛的应用。
例如:
Intel公司的8044,由8051单片机及SDLC通信接口组合而成,用高性能的串行接口单元SIU代替传统的UART,采用双绞线、半双工通信形式,特别适合远距离通信。
以8044位基础组成的位总线是一种高性能、低价格的分布式控制系统,传送距离可达1200m,传送速度为2.4Mbit/s,网络节点为28个。
此外,单片机在自动拨号无线电话网、串行自动呼叫应答设备、程控电话、无线电遥控等方面都有广泛的应用。
(5)单片机在家用电器方面的应用
单片机广泛的应用于家用电器产品中,例如:
洗衣机、电冰箱、微波炉、电饭煲、高级智能玩具、收录机等配上单片机后,大大提高了产品的性能,倍受人们的喜爱。
可以说,单片机在人们日常生活中应用所受到的限制主要不是技术问题,而是创造力和技巧上的问题。
2.1.3单片机的结构特点
控制电路设计是系统的控制和数据处理的核心,而作为控制核心的单片机种类很多,如PIC等等。
根据任务书的要求以及系统实际的需要,本次毕业设计采用STC89C52RC作为系统的微控制器芯片。
特点是,STC89C52RC的内核和AT51系列单片机一样,故引脚也相同。
但是STC89C52RC可以通过STC_ISP软件下载进行烧录。
2.1.4单片机引脚配置
图2.1引脚配置图
鉴于STC89C52RC与MCS-51单片机类似,现介绍MCS-51单片机如下文。
MCS-51单片机采用40引脚双列直插封装(DIP)形式。
对于CHMOS单片机除采用DIP形式外,还采用方形封装工艺。
由于受到引脚数目的限制,所以有部分引脚具有第二功能。
在单片机的40条引脚中,有2条用于主电源的引脚,2条外接晶体的引脚,控制或其他电源复用引脚RST/Vpd、ALE、和VPP,32条输入/输出引脚。
下面就本系统用到的引脚分别说明这些引脚的名称和功能。
(1)主电源引脚VCC和GND
VCC:
接+5V电源
GND:
接电源地
(2)钟电路引脚XTAL1和XTAL2
XTAL1:
接外部晶体的一端。
在单片机内部,它是反相放大器的输入端,该放大器构成了片内振荡器。
在采用外部时钟电路时,对于HMOS单片机,此引脚必须接地;对CHMOS单片机,此引脚作为驱动端。
XTAL2:
接外部晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端,振荡器的频率是晶体振荡频率。
若采用外部时钟电路时,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬空。
(3)信号引脚RST/Vpd
RST/Vpd:
复位/备用电源输入端。
单片机上电后,只要在该引脚上输入24个振荡周期(2个机器周期)宽度以上的高电平就会使单片机复位;若在RST与VCC之间接一个10μF的电容,而在RST与GND之间接一个8.2KΩ的下拉电阻,则可实现单片机上电自动复位。
RST/Vpd具有复用功能,在主电源VCC掉电期间,该引脚可接上+5V备用电源。
当VCC下掉到低于规定的电平,而Vpd在其规定的电压范围内时,Vpd就向片内RAM提供备用电源,以保持片内RAM中的信息不丢失,复电后能继续正常运行。
(4)输入/输出(I/O)引脚P0、P1、P2和P3
MCS-51单片机有4个双向并行的8位I/O口P0~P3,P0口为三态双向口,可驱动8个TTL电路,P1、P2、P3口为准双向口(作为输入时,口线被拉成高电平,故称为准双向口),其负载能力为4个TTL电路。
P0.0--P0.7:
P0口是一个8位双向I/O端口。
在访问片外存储器时,它分时提供低8位地址和作8位双向数据总线。
在EPROM编程时,从P0口输入指令字节;在验证程序时,则输出指令字节(验证时,要外接上拉电阻)。
P0口能以吸收电流的方式驱动8个LSTTL负载。
图2.2P0口1位结构图
P1.0--P1.7:
P1口是8位准双向I/O端口。
在EPROM编程和程序验证时,它输入低8位地址。
P1口能驱动4个LSTTL负载。
图2.3P1口1位结构图
P2.0--P2.7:
P2口是一个8位准双向I/O端口。
在CPU访问外部存储器时,它输出高8位地址。
在对EPROM编程和程序验证时,它输入高8位地址。
P2口可驱动4个LSTTL负载。
图2.4P2口1位结构图
P3.0--P3.7:
P3口是8位准双向I/O端口。
它是一个复用功能口。
作为第一功能使用时,为普通I/O口,其功能和操作方法与P1口相同。
作为第二功能使用时,各引脚的定义如表3-1所示。
P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
P3口能驱动4个LSTTL负载。
图2.5P3口1位结构图
表2.1:
口线
第二功能
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD(串行口输入)
TXD(串行口输出)
INT0(外部中断0输入)
INT1(外部中断1输入)
T0(定时器0的外部输入)
T1(定时器1的外部输入)
WR(外部数据存储器“写”信号输出)
RD(外部数据存储器“读”信号输出)
2.2模数转换模块介绍
2.2.ADC0832概述
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
学习并使用ADC0832可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。
ADC0832主要特性如下:
8位分辨率;
逐次逼近式A/D转换器;
双通道A/D转换;
输入输出电平与TTL/CMOS相兼容;
5V电源供电时输入电压在0~5V之间;
工作频率为250KHZ,转换时间为32μS;
一般功耗仅为15mW;
8P、14P—DIP(双列直插)、PICC多种封装;
商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C;
2.2.2引脚功能及描述
ADC0832的引脚如图所示。
各引脚功能如下:
图2.6ADC0832的引脚图
CS:
片选使能,低电平芯片使能。
CH0:
模拟输入通道0,或作为IN+/-使用。
CH1:
模拟输入通道1,或作为IN+/-使用。
GND:
芯片参考0电位(地)。
DI:
数据信号输入,选择通道控制。
DO:
数据信号输出,转换数据输出。
CLK:
芯片时钟输入。
Vcc/REF:
电源输入及参考电压输入(复用)。
2.2.3工作模式
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
图2.7ADC0832工作模式的选取
2.2.4单片机对ADC0832的控制原理
正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。
在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能,其功能项见官方资料。
如资料所示,当此2位数据为“1”、“0”时,只对CH0进行单通道转换。
当2位数据为“1”、“1”时,只对CH1进行单通道转换。
当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行
输入。
到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。
从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。
直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。
也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。
随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。
最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。
作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。
如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。
但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。
2.2.5ADC0832应用原理框图
图2.8ADC0832时序图
2.3LCD1602显示
2.3.1LCD1602的基本结构
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
图2.9LCD1602引脚图
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
2.3.2LCD1602的指令表
指令1:
清显示,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移,S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
R/L,高向左,低向右。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电
平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
(有些模块是DL:
高电平时为8位总线,低电平时为4位总线)
指令7:
字符发生器RAM地址设置,地址:
字符地址*8+字符行数。
(将一个字符分成5*8点阵,一次写入一行,8行就组成一个字符)
指令8:
置显示地址,第一行为:
00H——0FH,第二行为:
40H——4FH。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
第三章软件设计报告
3.1单片机软件设计
3.1.1模数转换软件设计
单片机对ADC0832模数转换模块进行初始化之后,读取电压数据。
然后经过处理之后在LCD1602显示。
该部分代码见附录。
3.1.2LCD1602显示软件设计
该部分代码见附录。
3.2流程图设计
3.2.1主程序流程图
图3.1主程序流程图
3.2.2液晶模块流程图
图3.2液晶模块流程图
3.2.3电压显示流程图
图3.3电压显示流程图
3.3原理图设计
图3.4电路原理图
3.4proteus仿真图
图3.5仿真图
3.5PCB版图
图3.6PCB版图
3.6实物图
图3.7实物图
第四章疑难问题及解答
疑问1:
怎么用Proteus添加元器件?
答:
先用Keil软件对原程序进行了一下调试,如果程序没有错误再进行原理图的绘制,先点击左侧device栏上的P按钮,就会弹出元器件选择对话框。
写上关键字就可以找到相应的元件,双击需要的元件就可以将此元件加到当前的device栏中,在device栏中选中需要放置的元件,这样就可以放置了。
疑问2:
怎么进行仿真?
答:
用软件仿真调试工具keil编译程序生成文件“基于ADC0832的数字电压表.hex”,用Proteus打开完整的原理图点芯片,在programfile一行选入keil生成“基于的ADC0832的数字电压表.hex”。
疑问3:
怎样检测最终结果?
答:
首先将所有准备工作做好,其次接电源,进行观看结果状况,查看结果同时调节电位器,是否LCD1602显示器电压变化,如果变化则成功,否则进行检测出错原因。
疑问4:
程序下载后LCD1602为何无显示?
答:
首先要排除是否是硬件及连接问题;若不是硬件问题,则检查软件代码是否与硬件相匹配,细到各个端口的引脚。
最终在同学的协助下,确认了是软件代码的问题,对代码进行了修改,问题得以解决。
第五章总结与致谢
总结
通过这次对基于ADC0832的单片机数据采集系统设计,让我们了解了设计电路的程序,也让我们了解了关于数据采集系统的原理与设计理念,。
通过这次学习,让我们对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。
除了学会了许多专业知识外,在遇到困难时,积极地去请教我的指导老师,我们通过看现有的教材、去图书馆查阅资料、去网上搜索相关信息这些方式,不仅完成了我的毕业论文,而且大大增强了我的自学能力和独立能力。
更重要的是,我拓展了思路,开阔了视野,活跃了思想。
这次创新课程设计不仅使我们对相关专业知识有了更深的理解,而且还让我们认识到了理论知识对工作实践的重大意义,学会理论联系实际。
这次的课程设计让我们发挥主观能动性独立的查阅资料、寻找数据、设计实验方案,并将理论知识应用到实践中去。
同时,通过这次设计提高了我们认识问题、分析问题、解决问题的能力。
总之,这次设计既是对我们课程知识的考核,又是对我们思考问题、解决问题能力的考核,更是对我们人格品德的考验,设计让我们受益匪浅!
致谢
首先,我们组的三个人都是考研大军中一份子,由于忙于复习在课程设计上分配的时间不是很多,感谢张老师对我们的理解和支持;其次,在本次设计中我们遇到了很多问题,感谢在设计中对我们提供帮助的热心老师和同学们。
因为有你们,本次设计才得以成功完成,Thankyou!
参考文献
1.《单片机原理及接口技术案例教程》 李春法 编著 机械工业出版社
2.《单片机应用系统与接口技术》 丁向荣 编著 电子工业出版社
3.《8051单片机实践与应用》 吴金戌 沈庆阳 郭庭青 编著 清华大学出版社 4.《单片机应用新技术教程》 朱宇光 编著 北京电子工业出版社
5.《基于C语言编程MCS——51单片机原理与应用》 张陪任 编著 清华大学出版社
6.《单片机微型计算机原理与接口技术》 高峰 编著 北京科学出版社
附录
程序代码:
#include
#include
sbitCS=P3^4;//将CS位定义为P3.4引脚
sbitCLK=P1^0;//将CLK位定义为P1.0引脚
sbitDIO=P1^1;//将DIO位定义为P1.1引脚
//////////////////////////////////////////////////////////////////
unsignedcharcodedigit[10]={"0123456789"};//定义字符数组显示数字
unsignedcharcodeStr1[]={"Volt="};//说明显示的是电压
unsignedcharcodeStr2[]={"Thank.Mr.Zhang"};
/*******************************************************************************
以下是对液晶模块的操作程序
*******************************************************************************/
sbitRS=P2^4;//定义端口
sbitRW=P2^5;
sbitE=P2^6;//使能信号位,将E位定义为P2.2引脚
sbitBF=P0^7;//忙碌标志位,,将BF位定义为P0.7引脚
/*****************************************************
函数功能:
延时1ms
(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒
******************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ADC0832 单片机 数据 采集 系统 设计 课程设计