基于单片机的多路数据采集系统设计本科生毕业论文.docx

上传人:b****8 文档编号:13115836 上传时间:2023-06-11 格式:DOCX 页数:34 大小:318.66KB
下载 相关 举报
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第1页
第1页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第2页
第2页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第3页
第3页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第4页
第4页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第5页
第5页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第6页
第6页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第7页
第7页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第8页
第8页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第9页
第9页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第10页
第10页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第11页
第11页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第12页
第12页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第13页
第13页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第14页
第14页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第15页
第15页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第16页
第16页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第17页
第17页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第18页
第18页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第19页
第19页 / 共34页
基于单片机的多路数据采集系统设计本科生毕业论文.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的多路数据采集系统设计本科生毕业论文.docx

《基于单片机的多路数据采集系统设计本科生毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的多路数据采集系统设计本科生毕业论文.docx(34页珍藏版)》请在冰点文库上搜索。

基于单片机的多路数据采集系统设计本科生毕业论文.docx

基于单片机的多路数据采集系统设计本科生毕业论文

 

基于单片机的多路数据采集系统设计

 

摘要:

本文介绍了基于单片机的数据采集的硬件设计和软件设计,数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有着非常重要的作用。

本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机。

数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机AT89S52来实现,硬件部分是以单片机为核心,还包括A/D模数转换模块,显示模块,和串行接口部分。

该系统从机负责数据采集并应答主机的命令。

8路被测电压通过模数转换器ADC0809进行模数转换,实现对采集到的数据进行模拟量到数字量的转换,并将转换后的数据通过串行口MAX232传输到上位机,由上位机负责数据的接受、处理和显示,并用LED数码显示器来显示所采集的结果。

软件部分应用VC++编写控制软件,对数据采集系统、模数转换系统、数据显示、数据通信等程序进行了设计。

关键词:

数据采集;89C52单片机;ADC0809;MAX232

TheDesignOfMulti-channelDataAcquisitionSystemBasedOnSCM

LiZhe

CollegeofPhysicsandElectronicInformationElectronicinformationscienceandtechnologyNo:

010414055

Tutor:

ZhaiYan-Lei

Abstract:

Thisarticledescribesthehardwaredesignandsoftwaredesignofthedataonwhichbasedonsignal-chipmicrocomputer.Thedatacollectionsystemisthelinkbetweenthedigitaldomainandanalogdomain.Ithasanveryimportantfunction.Theintroductivepointofthistextisadatatocollectthesystem.Thehardwareofthesystemfocusesonsignal-chipmicrocomputer.Datacollectionandcommunicationcontrolusemodulardesign.Thedatacollectedtocontrolwithcorrespondencetoadoptamachine8051tocarryout.Thepartofhardware’scoreisAT89S52,isalsoincludesA/Dconversionmodule,displaymodule,andtheserialinterface.Slavemachineisresponsiblefordataacquisitionandansweringthehostmachine.8roadsweremeasuredtheelectricvoltagetopasstheingeneralusemold-fewconversionofADC0809,therealizationcarriesontheconversionthatimitatestomeasurethenumeraltomeasuretowardsthedatathatcollect.ThensendthedatatothehostmachinethroughMAX232.thehostmachineisresponsiblefordataanddisplay,LEDdigitaldisplayisresponsibledisplaythedata.ThesoftwareispartlyprogrammedwithVC++.Thesoftwarecanrealizethefunctionofmonitoringandcontrollingthewholesystem.Itdesignsmuchprogramlikedata-acquisitiontreatment,data-displayanddata-communicationect.

Keywords:

AT89C52;ADC0809;MAX232

 

1引言

1.1研究背景及其目的意义

近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。

数据采集系统起始于20世纪50年代,1956年美国首先研究了用在军事上的测试系统,目标是测试中不依靠相关的测试文。

20世纪70年代后期,数据采集系统发展过程中逐渐分为两类,一类是实验室数据采集系统,一类是工业现场数据采集系统[1]。

20世纪80年代随着计算机的普及应用,数据采集系统得到了很大的发展,开始出现了通用的数据采集与自动测试系统。

该阶段的数据采集系统主要有两类,一类以仪表仪器和采集器、通用接口总线和计算机组成。

第二类以数据采集卡、标准总线和计算机构成。

20世纪90年代至今,该阶段的数据采集系统采用模块式结构,根据不同的应用要求,通过简单的增加和更改模块,并结合系统编程,就可扩展或修改系统,迅速组成一个新的系统。

1.2国内外研究现状

数据采集系统是通过采集传感器输出的模拟信号并转换成数字信号,并进行分析、处理、传输、显示、存储和显示。

它起始于20世纪中期,在过去的几十年里,随着信息领域各种技术的发展,在数据采集方面的技术也取得了长足的进步,采集数据的信息化是目前社会的发展主流方向。

1.3该课题研究的主要内容内容

数据采集技术是信息科学的重要分支之一,它研究信息数据的采集、存储、处理以及控制等问题。

 

本系统采用下位机负责模拟数据的采集,从单片机负责采集八路数据,并应答主机发送的命令,上位机即主机是负责处理接受过来的数字量的处理及显示,主机和从机之间用RS-232进行通信。

2数据采集

2.1数据采集系统

数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。

数据采集技术广泛引用在各个领域。

在该系统中需要将模拟量转换为数据量,而A/D是将模拟量转换为数字量的器件。

在该系统中采用的是8051系列的单片机。

它完成数据读取、处理及逻辑控制,数据传输等一系列的任务。

双机通信的串行口可以采用RS232C标准接口,由芯片MAX232实现双机的通信。

而数据的显示则采用的是LED数码管,在生活中接触也较多[2]。

完成毕业设计所需要的系统框图如图2.1所示:

图1系统框图

2.2方案器件选择

2.2.1A/D模数转换的选择:

在本设计选用的是逐渐逼近式A/D转换器——ADC0809.

2.2.2单片机的选择:

而本设计选用的是AT89C52.

2.2.3串行口的选择:

该串行口我选用了标准RS-232C接口,常用的芯片是MAX232。

2.2.4显示部分:

本设计选用的是八段发光二极管数码显示器。

采用动态扫描显示法。

2.2.5按键

键盘是一种常见的输入设备,用户可以向计算机输入数据或命令。

非编码键盘有两种方法:

一种是独立按键接口;另一种是矩阵式按键接口。

该系统曹勇矩阵式按键。

3硬件电路

3.1主机电路

该系统是一个主从式多路数据采集系统,它的主机包括按键和显示两部分。

3.1.1主机电路原理图设计

图2主机电路原理图

3.1.2单片机

P0口用来显示显示数据,由于P0口输出两路数据,所以需要连接74HC573,进行数据的锁存和传输,并由P2.6和p2.7控制。

P1口接按键进行采集通道的选择。

3.1.3LED数码显示器的应用原理

简单的讲,LED数码显示器就是由发光二极管组成的LED数码显示器有两种连接方式:

共阴极接法;共阳极接法。

该系统上采用共阴极接法[3]。

3.2从机电路

3.2.1从机电路原理图设计

从机单片机P1.0-P1.2口接ADC0809的A、B、C端,进行地址的选择。

P2口接ADC0809的OUT1-OUT8。

单片机ALE接四分频,四分频输出接ADC0809的CLK端。

P1.4接OE,P1.5接EOC,P1.6接ADC0809的START和ALE端。

图3从机电路设计图

3.2.2单片机之间的通信

单片机与MAX232的连接如图3.6所示

图4单片机与MAX232的连接图

3.2.3模数转换器ADC0809

1、ADC0809时序图

图5ADC0809的时序图

4软件部分

4.1简介KeilUvision2

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组合在一起。

其使用的过程为:

新建工程、新建程序文件、把程序文件添加到工程文件开始调试[4]。

4.2主机程序设计

本软件系统有一个主程序,五个子程序,五个子程序分别为向串口发送数据子程序putc_to_serialport()键盘扫描子程序Keys_Scan()、LED显示子程序Display_Result(intd)、延时子程序Delay()主机串口接收中断子程序Serial_INT()interrupt4[5]。

图6主程序

图7向串口发送数据子程序putc_to_serialport()

图8LED显示程序Display_Result(intd)

图9键盘扫描子程序Keys_Scan()

图10主机串口接受中断子程序Serial_INT()interrupt4

4.3从机程序设计

该部分的程序包括一个主程序、三个子程序,三个子程序分别为从机串口接收中断函数Serial_INT()interrupt4、向串口发送数据子程序putc_to_SerialPort(ucharc)和模数转换子程序ADCON。

串口发送数据子程序如图7

图11主程序

图12模数转换子程序ADCON

图13从机串口接收中断函数Serial_INT()interrupt4

5调试结果

在整个系统中,主机用到了9个按键,按键0按下后,发送一个00H的数据给从机,而从机接收到这个信号就开始调用一个循环采集方式,按键1-8用于选择采集方式,分别送相应的采集线路的通道号给从机,然后再将从机转换好的数据和采集线路的通道号发送给主机并用LED数据显示器显示出来;当主机没有按键按下时,则发送一个数F给LED[6]。

6总结

在翟老师充分了解每个学生对知识掌握程度的基础上,通过对论文知识体系以及框架结构的精心筛选,最终确定了我的论文设计内容。

在具体的设计过程中,翟老师不厌其烦的给与设计上的指导方案,实践、修正,再实践、再修正,反反复复最后设计完成。

这些给了我极大地帮助和动力。

这些总能让我在困惑的时候看到光明。

在此感谢翟老师的悉心指导,使我的毕业设计一步步走向完善,取得今天的成功。

参考文献

[1]严洁.单片机原理及其接口技术[M].机械工业出版社,2010:

65-105.

[2]范红刚.51单片机自学笔记[M].北京航空航天大学出版社,2009:

116-130.

[3]高云.基于MSP430的温室多路数据采集系统[M].西安电子科技大学出版社,2009:

No.8.

[4]常铁原,王欣,陈文军.多路数据采集系统的设计[M].电子工业出版社,2008:

No.11.

[5]李丽敏.基于单片机的多路数据采集系统的设计[M].电子科技大学出版社,2008:

No.4.

[6]彭伟.单片机C语言程序设计实训100例[M].电子工业出版社,2009:

104-110.

附录1

系统硬件电路仿真图:

附录2

主机电路程序

#include

#defineucharunsignedchar

#defineuintunsignedint

uintKeyNo;

sbitsmgd=P2^6;

sbitsmgk=P2^7;

ucharcodeLEDData[]={0X3F,0X06,0X5B,0X4F,0X66,

0X6D,0X7D,0X07,0X7F,

0X6F,0X77,

0X7C,0X39,0X5E,0X79,0X71};

voidDelay(uintt)//定义延时函数

{

registeruintbt;

for(;t;t--)

for(bt=0;bt<124;bt++);

}

/**************LED显示子程序***************/

voidDisplay_Result(intd)

{

smgk=1;

P0=0X7E;

smgk=0;

smgd=1;

P0=LEDData[d/100];

smgd=0;//显示百位

Delay(5);

smgk=1;

P0=0X7D;

smgk=0;

smgd=1;

P0=LEDData[(d%100)/10];//显示十位

smgd=0;

Delay(5);

smgk=1;

P0=0x7B;

smgk=0;

smgd=1;

P0=LEDData[d%100%10];//显示个位

smgd=0;

Delay(5);

smgk=1;

P0=0X77;

smgk=0;

smgd=1;

P0=0x80;

smgd=0;//显示小数点

Delay(5);

}

/************键盘扫描子程序**************/

voidKeys_Scan()

{ucharTmp,An;

P1=0XF0;//低四位置1,放入4行

Delay

(1);

An=P1^0XF0;//按键后11110000将变成XXXX0000,X中有一个为0,3个仍为1,而异或操作会把3个1变成0,唯一的0变成1

Tmp=An>>4;//该表达式将高4位移到低四位

switch(Tmp)//判断按键发生在哪列

{

case1:

KeyNo=0;break;

case2:

KeyNo=1;break;

case4:

KeyNo=2;break;

case8:

KeyNo=3;break;

default:

KeyNo=16;//无键按下

}

P1=0X0F;//高4位置0,放入4列

Delay

(1);

Tmp=P1^0x0F;//改过处##//按键后00001111将变成0000XXXX,X中有一个为0,3个仍为1,而异或操作会把3个1变成0,唯一的0变成1

switch(Tmp)//0-3行分别附加起始值0,4,8,12

{case1:

KeyNo+=0;break;

case2:

KeyNo+=4;break;

case4:

KeyNo+=8;break;

case8:

KeyNo+=12;break;

}

}

/********向串口发送数据子程序*********/

voidputc_to_serialport(ucharC)

{SBUF=C;

while(TI==0);//改过处

TI=0;

}

Display()

{smgk=1;

P0=0X07;

smgk=0;

smgd=1;

P0=0X0F;

smgd=0;

}

/*******主程序*******/

voidmain()

{P0=0x00;

SCON=0x50;//串口工作于方式1

TMOD=0x20;//T1工作于模式2

PCON=0x00;//波特率不加倍

TH1=0xFD;//波特率为9600

TL1=0xFD;

TI=RI=0;

TR1=1;//启动定时器1

IE=0x90;//允许串口中断

while

(1)

{Delay(100);

if(P1!

=0X0F)

Keys_Scan();

else

{switch(KeyNo)

{

case0:

putc_to_serialport(0X00);//循环按键即4列1行

break;

case1:

putc_to_serialport(0XF8);

break;

case2:

putc_to_serialport(0XF9);

break;

case3:

putc_to_serialport(0XFA);

break;

case4:

putc_to_serialport(0XFB);

break;

case5:

putc_to_serialport(0XFC);

break;

case6:

putc_to_serialport(0XFD);

break;

case7:

putc_to_serialport(0XFE);

break;

case8:

putc_to_serialport(0XFF);

break;

case16:

Display();

}

}

}

}

/*******主机串口接收中断函数*********/

voidSerial_INT()interrupt4

{inti,j,m;

longintn;

ucharc;

if(RI)

{RI=0;

c=SBUF;

Display_Result(c);

}}

从机电路程序

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitOE=P1^4;

sbitEOC=P1^5;

sbitST=P1^6;

voidDelay(uintx)

{

uchari;

while(x--)for(i=0;i<120;i++);

}

/********向串口发送数据子程序********/

voidputc_to_SerialPort(ucharc)

{SBUF=c;

while(TI==0);TI=0;

}

/*********A/D转换子程序*********/

voidAdcon()

{intj,m=0XF8;

ucharn;

for(j=0;j<8,P1=m;j++)

{ST=0;ST=1;ST=0;

while(EOC==0);

OE=1;

n=P2;

OE=0;

putc_to_SerialPort(n);

m++;

Delay(255);

}

}

/*******主程序*******/

voidmain()

{

TMOD=0X20;//T1工作于模式2

SCON=0X50;//串口工作于方式1

PCON=0X00;//波特率不加倍

TH1=0XFD;

TL1=0XFD;

TI=RI=0;

IE=0X90;//允许串口中断

TR1=1;//启动定时器1

while

(1)

{

}

}

/********从机串口接收中断函数********/

voidserial_INT()interrupt4

{uinti,c;

ucharval;

if(RI)

{

RI=0;

c=SBUF;

i=c&0X08;//判断接收到的第四位是否为1,如果为1,则按选定的通道采集,否则就是循环采集

switch(i)

{

case0:

Adcon();break;

case8:

P1=c;

ST=0;ST=1;ST=0;

while(EOC==0);

OE=1;

val=P2;

OE=0;

putc_to_SerialPort(val);

break;

}

}

}

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

注意事项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:

引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:

理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:

任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。

图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印

4)图表应绘制于

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2