智能仪器课程设计基于单片机数据采集及显示功能.docx
- 文档编号:25930734
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:24
- 大小:389.71KB
智能仪器课程设计基于单片机数据采集及显示功能.docx
《智能仪器课程设计基于单片机数据采集及显示功能.docx》由会员分享,可在线阅读,更多相关《智能仪器课程设计基于单片机数据采集及显示功能.docx(24页珍藏版)》请在冰豆网上搜索。
智能仪器课程设计基于单片机数据采集及显示功能
第1章概述
1.1设计目的及意义
本设计的主要目的是实现单片机的数据采集及显示功能,为实现该功能,进行了有关的硬件电路设计与软件编程设计。
硬件电路设计中,运用protel99,在已给实验板和实验板原理图的基础上,选择实验板上所用于本设计的器件,并进行了设计硬件原理图的设计以及实验的硬件连接。
软件编程设计中,运用keil3编程环境,对设计要实现的功能进行编程,整体程序可分成一个主程序和多个子程序,子程序有基于ADC0832的A/D转换程序、基于AT89C52的标度转换程序和基于74LS164的静态显示程序。
通过自己完成设计,让我们对数据采集有了清晰的认识,对单片机数据采集及处理数据的原理也有了更深的了解,达到学习与实践相结合,学以致用的目的。
1.2设计内容
本设计运用单片机STC89C52进行数据采集的设计,让电压模拟量(0-5V)通过模拟量/数字量转换芯片(ADC0832),送入单片机,进行数据处理之后,通过移位寄存器(74LS164),静态显示在LED显示数码管上。
实验的模拟量数据是通过一个可调电位器输出0-5V的模拟量,显示是0-100摄氏度的静态显示。
第2章总体方案设计
2.1数据采集系统功能
数据采集系统是结合基于计算机的测量软硬件产品来实现灵活的、用户自定义的测量系统。
数据采集系统通过采集传感器输出的模拟信号并转换成数字信号,并进行分析、处理、传输、显示、存储和显示。
它起始于20世纪中期,在过去的几十年里,随着信息领域各种技术的发展,在数据采集方面的技术也取得了长足的进步,采集数据的信息化是目前社会的发展主流方向。
各种领域都用到了数据采集,在石油勘探、科学实验、飞机飞行、地震数据采集领域已经得到应用。
数据采集技术是对传感器信号的测量与处理,以微型计算机等高技术为基础而形成的一门综合应用技术。
数据采集也是从一个或多个信号获取对象信息的过程。
随着微型计算机技术的飞速发展和普及,数据采集监测已成为日益重要的检测技术,广泛应用于工农业等需要同时监控温度、湿度和压力等场合。
数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。
尽管现在以微机为核心的可编程数据采集与处理技术作为数据采集技术的发展方向得到了迅速的发展,并且适于通用微机使用的板卡级数据采集产品也已大量出现,组成一个数据采集系统简单到只需要一块数据采集卡,把它插在微机的扩展槽内,并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响,因为单片机功能强大、抗干扰能力强、可靠性高、灵活性好、开发容易等优点,使得基于单片机为核心的数据采集系统在许多领域得到了广泛的应用。
本系统采用A/D转换器送入模拟信号,而单片机负责处理接受过来的数字量的处理及显示,主机和板卡之间用RS-232进行通信。
这样就可以在计算机上编程序,然后下载到单片机内进行处理。
系统框图如图2.1所示:
图2.1系统框图
2.2方案论证
2.2.1单片机的选择
单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。
此系统是由CPU、随即存取数据存储器、只读程序存储器、输入输出电路(I/O口),还包括串行通信口、显示驱动电路(LED驱动电路)、脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一个单块芯片上,构成了一个最小但完善的计算机任务。
单片机要使用特定的组译和编译软件编译程序,再用keiluvision2把程序下载到单片机内。
而本设计选用的是STC89C52。
2.2.2A/D模数转换器选择
A/D转换器是将模拟量转换为数字量的器件。
A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。
位数越高其分辨率就越高,价格也就越贵。
A/D转换器型号很多,而其转换时间和转换误差也各不相同。
(1)逐渐逼近式A/D转换器:
它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间。
(2)双积分A/D转换器:
它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。
(3)并行式A/D转换器:
它又被称为flash(快速)型,它的转换数度很高,但她采用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域。
本设计选用的是逐渐逼近式A/D转换器——ADC0832。
2.2.3串行口选择
该串行口选用了标准RS-232C接口,它是电平与TTL电平转换驱动电路。
常用的芯片是MAX232,MAX232的优点是:
(1)一片芯片可以完成发送转换和接收转换的双重功能。
(2)单一电源+5V供电
(3)它的电路设计与连接比较简单而且功能齐全。
2.2.4显示单元选择
LED数码显示管是一种由LED发光二极管组合显示字符的显示器件。
它使用了8个LED显示管,其中7个用于显示字符,1个用来显示小数点,故通常称之为八段发光二极管数码显示器。
对LED数码显示器的控制可以采用按时间向它提供具有一定驱动能力的位选和段选信号。
LED数码显示有动态扫描显示法和静态显示。
本设计采用LED静态显示。
2.2.5按键
在单片机中,如果所需的按键较少,一般采用独立式键盘。
每只按键接单片机的一条I/O线,通过对线的查询,即可识别各按键的状态。
如图2.2所示。
4只按键分别宇单片机的P1.0~P1.3I/O线上。
无按键按下时,P1.0~P1.3线上均输入高电平。
当某按键按下时,与其相连的I/O线将得到低电平输入。
图2.2独立按键接口
第3章硬件系统设计
3.1硬件系统原理
该系统主要原理如图3.1所示,它由STC89C52、MAX232、LED数码显示器组成。
3.1系统流程图
3.2电路设计
3.2.1单片机选型
该系统所用单片机型号为STC89C52此芯片加密性强、无法解密,超强抗干扰,大大降低单片机时钟对外部电路的电磁辐射,超低的功耗。
其指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择[8]。
该芯片由8位通用中央处理器、程序存储器、随机读写数据存储器及常用外设电路等部件组成。
在该芯片中,P0口、P2口可作为一般的I/O引脚使用,当需要再扩展外部存储器时,P0口将作为低8位地址总线或数据总线使用,P2口作为高8位地址总线使用。
由于定时/计数器、串行通信、中断控制器等外围电路集成在CPU芯片内,因而STC89C52的芯片内部也就包含了这些外围电路的控制寄存器、状态寄存器以及数据输入/输出寄存器,这些外围电路的接口寄存器构成了STC89C52的特殊功能寄存器[9]。
对于各引脚,VCC是指电源引脚,GND为电源地,RST为复位信号输入端,X1和X2分别为片内晶振放大电路反相放大器的输入端和输出端,P0口、P1口、P2口都是I/O引脚。
P3口也是I/O引脚,不过有所不同的是,P3口还具有其他的特殊功能,例如:
P3.6又是外部数据存储器写选通信号(低电平有效),P3.7是外部数据存储器读选通信号(低电平有效),P3.0为串行数据接收端,P3.1为串行数据发送端[10]。
在本设计中,ADC832的片选端接单片机的P2.0端,时钟脉冲端单片机的P3.6端,转换好的数字量则与单片机的P3.7端相连。
数据经过处理,从单片机的P1.0端输出至下一个环节,P1.1供给74LS164时钟脉冲。
单片机STC89C52的引脚图如图3.2所示:
图3.2单片机STC89C52的引脚图
3.2.2模数转换电路
ADC0832的输入通道是CH0和CH1,本设计模拟信号从CH0通道送入,所以CH0和CH1短接一起连到电位器;CS_片选使能,低电平芯片使能,连接AT89C52的P2.0;CLK芯片时钟输入,接AT89C52的P3.6;DI数据信号输入端,DO数据信号输出端,但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时将DO和DI并联在一根数据线上使用,连接AT89C52的P3.7。
模数转换电路如图3.3所示:
3.3ADC0832引脚图
3.2.3显示电路
LED数码管是单片机控制系统中最常用的显示器件之一,它以抗震性能好、可靠性高、寿命长、工作电压低、功耗小及响应速度快等优点在单片机应用系统中得到了广泛的应用。
对于数码管来说,一般分为两种,即共阴极和共阳极,其使用方法基本相同。
不同之处在于显示方式方面。
根据LED显示译码方式分,可以分为硬件译码和软件译码两种。
所谓硬件译码,就是用硬件译码器代替软件求得显示代码,这样不仅可以节省计算机的时间,而且程序设计简单,只要把BCD码(或十六进制码)从相应的端口输出即可完成显示;如果用软件的方法来直接将BCD码(或十六进制码)转换成自身的段码即为软件译码。
根据LED显示驱动连接方式,可以分为静态显示驱动和动态显示驱动。
静态显示就是每一个数码管都由一组数据线控制,所有的数码管都同时亮,而动态显示就是所有要显示的数码管一次循环逐个显示,只要频率足够高,肉眼就看不出闪烁,好像所有的同时显示一样。
在本设计中,由移位寄存器74LS164和LED数码管共同组成显示单元。
74LS164是串行输入并行输出的移位寄存器。
它具有两个串行输入端(A和B)和8位并行输出端(Qa—Qh)。
CLR为异步清零端,当其为低电平时,可使74LS164清零(复位)。
因本设计不需要复位,所以将其接+5V。
CLK为时钟脉冲接收端,用以控制移位寄存器的移位节奏[15]。
LED数码管引脚图如图3.4所示:
图3.4LED数码管
移位寄存器74LS164如图3.5所示:
图3.574LS164引脚图
3.2.4复位电路
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
在该设计中,RST引脚为复位输入端,STC89C52采用高电平复位方式。
电路方面采用的是由RC分立元件构成的外部复位电路。
复位电路如图3.6所示:
图3.6复位电路图
按下复位按钮时,电容C103通过R1放电,当电容放电结束后,RST引脚电位由R2、R1分压比决定。
由于R1< 松开复位按钮后,电容充电,RST引脚电位下降,使单片机脱离复位状态。 R1的作用在于限制复位按钮按下瞬间电容C103的放电电流,避免产生火花,以保护按钮的触点。 3.2.5串口电路 计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。 由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。 在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。 RS-232-C接口是目前最常用的一种串行通讯接口。 实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9条引线。 RS-232-C最常用的9条引线的信号内容。 在RS-232-C中任何一条信号线的电压均为负逻辑关系。 即: 逻辑“1”,-5—-15V;逻辑“0”+5—+15V。 噪声容量为2V。 即要求接收器能识别低至+3V的信号作为逻辑“0”,高于—3V的信号作为逻辑“1”。 MAX232芯片是专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电,可以实现TTL电平与RS-232C电平相互转换的IC芯片。 串口电路图连接如图3.7所示: 图3.7串口电路图 3.2.6晶振电路 晶振电路如图3.8所示: 图3.8晶振电路 当使用片内振荡电路时,X1、X2与晶体振荡器(简称晶振)及电容C1、C2图3.5所示的方式连接构成晶振电路。 在该电路中,晶振、电容C1、C2以及片内与非门(起反馈放大作用的元件,类似于电容三点式振荡电路中的三极管)构成了电容三点式振荡器。 振荡电容C1和C2的取值范围与晶振的种类及频率有关。 为了减少寄生电容对振荡频率的影响,在印制板上电容C1和C2应尽可能靠近CPU芯片的X1和X2引脚,必要时可以采用温度系数较小的NPO电容。 3.3原理图设计 根据以上各部分电路的设计,原理图如附录A所示。 第4章软件系统设计 4.1KeilUvision2简介 KeilUvision2提供了C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些组合在一起。 KielUvision2有以下几个特点: 1、全功能的源代码编辑器; 2、器件库用来配置开发工具设置; 3、项目管理器用来创建和维护用户的项目; 4、集成的MAKE工具可以汇编、编译和连接用户嵌入式应用; 5、所有开发工具的设置都是对话框形式的; 6、高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信 4.2程序设计 整个设计分为三大块,A/D转换程序、LED显示程序、主程序。 按设计方法的思路将A/D转换程序以子程序调用的形式出现,LED显示程序设为库文件,然后由主程序调用子程序和头文件(#include 4.2.1主程序设计 主程序只做调用别的程序作用,其流程图如图4.1所示。 主程序一开始就进入循环状态(while (1)),首先调用A/D转换程序,接收转换数字信号,进行数据处理,然后调用LED初始化程序,最后调用LED显示程序,完成显示。 图4.1主程序流程图 4.2.2A/D转换程序设计 A/D转换程序的功能是: 当通过电位器将模拟信号送入ADC0832后,ADC0832将模拟信号转换为数字信号,通过程序将得到到数字信号返回,以便主程序调用。 在程序中应依照ADC0832芯片的管脚功能以及单片机对它的控制原理,使能芯片、产生时钟信号、设置好通道选择,以便芯片正确转换数据。 流程图如图4.2所示: 图4.2A/D转换程序流程图 4.2.3LED显示程序设计 LED显示程序功能是将经过单片机处理过的信号实时显示出来,程序流程图如图4.3所示: 图4.3LED显示流程图 第5章: 系统调试 5.1程序调试 5.1.1硬件调试 硬件调试的主要任务是排除硬件故障,其中包括设计的错误和工艺性故障等。 检查所设计的硬件电路板所有的器件和引脚是否正确,尤其是电源的连接是否正确;检查各总线是否有短路的故障。 检查开关/按键是否正常,是否连接正确,为了保护芯片,应先对各IC座电位进行检查,确认无误后再插入芯片。 将40芯片的仿真插头插入单片机插座进行调试,检查各接口是否满足设计的要求,用正常的程序测试硬件电路的好坏。 5.1.2软件调试 软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序的错误,同时也能发现硬件的故障。 软件调试是一个模块一个模块进行的。 首先单独调试各子程序是否能够按照预期的功能,接口电路的控制是否正常。 最后调试整个程序。 尤其注意的是各模块间能否正确的传递参数。 1)检查数码管显示模块程序。 在主程序中调用display()和displed()函数,观察在数码管上是否能够显示相应的字符。 如果不能,则在相关的子程序中设计断点,反复调试直到能够显示。 2)检查A/D转换模块程序。 可以在硬件电路的输入端输入已知的几个电压,分别观察数码管是否显示相应的电压值。 3)检查数据的转换模块程序。 可以拨动硬件电路的档位开关,输入相应的电压,观察液晶显示的电压值是否一致。 如果一致,则数据转换的算法正确的。 4)总调试。 当相应的各模块环节都正确后,可程序下载到单片机。 接上电源运行。 再检查所有功能,观察是否能预期的一样。 如果一样,说明设计成功完成。 5.2程序下载 启动程序STC-ISPV391.exe后(在stc-isp下载编程软件.rar里面),第一步就是选择器件。 软件支持STC全系列的51单片机芯片,因此,第一步必须选择相对应的型号。 如图5.1所示: 图5.1单片机型号选择 第二步就应该选择将要被烧录的HEX机器码文件。 HEX文件由单片机开发环境输入、编辑代码,最后编绎产生。 (用户可以先烧一个流水灯的hex文件看看)如图5.2所示: 图5.2选择机器码文件 选好了文件后,可以发现“文件校验和”中的数据发生了变化,可以通过留意这个数据是否变化来确定打开文件是否成功,或者文件刷新是否有更改。 当然,文件打开后,会显示在右边的数据区,大家也可以观查右边数据区是否有更改。 不过,当数据太多时,更改的地方又很少时,观查“文件校验和”会更快更准确。 选好了器件,选好了文件,第三步就可以设置串口和串口通信速度了。 串口是一个九针的插座,老式的鼠标口就是串口。 为了让通信可靠,我们可以适当的选低一些的速度,这个串口线较长时非常重要。 烧录过程中,如果出现失败,可以考虑将串口通信速度降低再试,这是由于机器配置以及当地环境因素决定的,当供电电源偏低(用USB供电的一般都会偏低)和环境干扰过大时,必需选低一点的波特率(即通信速率)。 下载成功与失败,可以从信息区的提示看出。 如图5.3所示: 图5.3选择串口 选择并设置好串口后(一般不需更改),进入第四步,而这一步基本上不用更改。 设置时钟倍频主要是为了提高工作速度,设置时钟增益是为了降低电磁幅射。 这些,对于高级工程人员和最终产品会很有用,对于初学者来说,只当没有看见就行了。 最后一步,点击“Download/下载”,就可以进入烧录状态。 如图5.4所示: 图5.4下载 注意: 点击“Re-Download/重复下载”也可以,这常用于大批量的编程,不必每次都去点“Download/下载”。 出现以下图状态时,给实验板通电就可以完成编程过程(如果实验板已经通电,则必须关掉电源5秒钟再次通电)。 一定要是先断电——再点下载——再开电。 如图5.5所示: 图5.5停止 总结 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整五星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 课程设计激发了学习的积极性,把学过的过程控制和自动控制原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解和培养实践动手能力。 由于本设计使用的是高效的51系列单片机作为核心的测量系统,以及高精度,高速度,高抗干扰的A/D转换器。 使得本直流电压表具体精度高,灵敏度强,性能可靠,电路简单,成本低的特点。 。 通过这次智能仪器课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。 创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 这次课程设计让我受益匪浅,无论从知识上还是其他的各个方面。 上课的时候的学习从来没有接触过真正的单片机,只是从理论的角度去理解枯燥乏味。 但在实习中模拟使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。 在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会相互讨论或者帮助。 团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。 参考文献 [1]阎石.数字电子技术基础.高等教育出版社,2006. [2]周雪.模拟电子技术[M]西安电子科技大学出版社,2004. [3]周向红.51系列单片机应用与实践教程.北京航空航天大学出版社,2008. [4]胡辉.单片机原理与应用.中国水利水电出版社,2007. [5]徐瑞华.单片机原理与接口技术.人民邮电出版社,2008. [6]李光飞.单片机C程序设计.北京航空航天大学出版社,2005. [7]张毅刚.新编MCS-51单片机应用设计.哈尔滨工业大学出版社,2003. [8]潘新民.微型计算机控制技术.人民邮电出版社 [9]谢自美.电子线路设计实验测试.华中理工大学出版社,1992. [10]楼然苗.单片机课程设计指导.北京航空航天大学出版社,2007. [11]付家才.单片机控制工程实践技术.北京化学工业出版社2004. [12]程武山.智能控制理论与应用[M].上海交通大学出版社,2006. [13]沈鸿星.LED交通信号灯系统的硬件设计[J],电子工程师,2004. [14]徐爱均.智能化测量控制仪表原理与设计.北京航空航天大学出版社. [15]胡汉才.单片机原理及接口技术设计[M].清华大学出版社. 附录A: 硬件原理图 附录B: 源程序 #include #include #include #defineucharunsignedchar #defineuintunsignedint sbitP3_0=P1^0; sbitP3_1=P1^1; sbitsw1=P1^4; sbitsw2=P1^5; sbitsw3=P1^6; sbitsw4=P1^7; sbitP0_0=P0^0; sbitP0_1=P0^1; sbitclk_adc0832=P3^6; sbitcs_adc0832=P2^0; sbitdi_adc0832=P3^7; sbitdo_adc0832=P3^7; floattemp; uchari; unsignedchardisp_buffer[4]; unsignedchardis[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsignedcharpoint[]={0x00,0x00,0x00}; unsignedchard[4]; uchargetvalue0832(bitchannel) { uchari,dat1=0,dat2=0; clk_adc0832=0;di_adc0832=1;cs_adc0832=0; clk_adc0832=1;clk_adc0832=0; di_adc0832=1;clk_adc0832=1;clk_adc0832=0; di_adc0832=channel; clk_adc0832=1;clk_adc0832=0; di_adc0832=1; for(i=0;i<8;i++) { clk_adc0832=1; clk_adc0832=0; if(do_adc0832)dat1|=0x80>>i; } for(i=0;i<8;i++) { if(do_adc0832)dat2|=0x01< clk_adc0832=1; clk_adc0832=0; } cs_adc0832=1;di_adc0832=1;clk_adc0832=1; if(dat1==dat2) returndat1; } intChange(ucharNx) { floatAm; int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 仪器 课程设计 基于 单片机 数据 采集 显示 功能