1 / 8
文档名称:

单片机数据采集系统.pdf

格式:pdf   大小:686KB   页数:8页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机数据采集系统.pdf

上传人:青山代下 2024/3/25 文件大小:686 KB

下载得到文件列表

单片机数据采集系统.pdf

相关文档

文档介绍

文档介绍:该【单片机数据采集系统 】是由【青山代下】上传分享,文档一共【8】页,该文档可以免费在线阅读,需要了解更多关于【单片机数据采集系统 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..单片机原理及系统课程设计专业:自动化班级:动xxx姓名:xxxxxx学号:******xxx指导教师:xxxxxx评语:平时(40)修改(30)报告(30)总成绩兰州交通大学自动化与电气工程学院2012年7月1日:..单片机原理及系统课程设计报告1引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。本次设计是以ADC0808作为A/D转换模块,以AT89C51为核心控制器件,以LED作为输出显示的简易数据采集器,主要功能是检测电压的大小。,电压信号量程0~5V,AD转换精度8位;用LED数码管显示测量值。给出系统硬件电路原理图(用proteus或其它电路图软件画出);给出系统程序流程图、程序清单(加注释);以论文格式给出设计报告。;A/D转换则采用ADC0808实现;与单片机的接口为P1口和P2口的高四位引脚,电压显示采用4位一体的LED数码1:..单片机原理及系统课程设计报告管,LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。硬件电路设计由6个部分组成:A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图1所示。时钟电路A/D转换测量电压AT89C51复位电路显示系统图1数字电压表系统硬件设计框图3硬件设计图2数据采集系统的硬件电路2:..,将该程序划分初始化模块,A/D转换子程序模块,数值转换模块和显示子程序模块,这四个程序模块构成了整个系统软件的主程序,如图12所示。开始初始化A/D转换数值转换否显示显示是否结束?(1)初始化对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。3:..单片机原理及系统课程设计报告(2)A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图13所示。开始数据采集启动转换否A/D转换结束?是输出数据结束图4模数转换结构图(3)显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms[10]。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时。5总结这次单片机课程设计有很多的收获,锻炼了自己的实践动手能力,温****了单片机编程知识,很有意义!在这过程中遇到了很多很多的问题:1、硬件电路的搭建问题。找到了ADC0809,AT89C51,但是显示器不知道用哪个好,前面两个都是自己熟悉的芯片,显示器很陌生,这是遇到的第一个问题,最后想了想,上网查了些资料,学****了显示的芯片,最终解决问题。2、芯片选择好了后发现屏幕不4:..单片机原理及系统课程设计报告会亮,很纠结,刚开始想着是程序出了问题,但是最终没能找出错误,又再看了显示器芯片的介绍,最终发现是没接显示亮度的端口。总的来说,这次能够独立的做一个单输入的电压器,培养和锻炼了自己,很有意义,以后要多做这样的练****6参考文献[1][M].成都:西南交通大学出版社2011:233-250[2][M].北京:***出版社,2011:151-158[3][M].兰州:兰州大学出版社,2001:190-1985:..单片机原理及系统课程设计报告7附录#include<>#include<>#defineucharunsignedchar/*定义uchar为无符号字符型*/sbitP2_3=P2^3;/*定义p2_3为P2口的第四位*/sbitOE=P3^0;/*定义OE为p3口的第一位*/sbitEOC=P3^1;/*定义EOC为P3口的第二位*/sbitP2_1=P2^1;/*定义P2_1为P2口的第二位*/sbitP2_2=P2^2;/*定义P2_2为P2口的第三位*/sbitST=P3^2;sbitP3_4=P3^4;sbitP3_5=P3^5;sbitP3_6=P3^6;ucharcodeleddata_dot[]={0x40,0x79,0x24,0x30,0x19,0x12};ucharcodeleddata[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};voiddelay(ucharn)/*延时函数delay*/{uchari,j;for(i=0;i<n;i++)for(j=0;j<125;j++);}voidconvert(ucharvolt_data)/*转换函数*/{uchartemp;P0=leddata_dot[volt_data/51];P2_1=1;delay(3);/*启动延时函数delay*/P2_1=0;if((volt_data%51)<0x19){P0=leddata[(volt_data%51)*10/51];P2_2=1;/**/delay(3);P2_2=0;/**/}else{P0=leddata[(volt_data%51)*10/51+5];/*定义p0口*/P2_2=1;delay(3);P2_2=0;}temp=(((volt_data%51)*10)/51)*10%51;if(temp<0x19){P0=leddata[temp*10/51];/*重新定义P0口*/6:..单片机原理及系统课程设计报告P2_3=1;delay(3);P2_3=0;}else{P0=leddata[temp*10/51+5];/*定义P0口*/P2_3=1;delay(3);P2_3=0;}}voidmain()/*主函数*/{ucharvolt_data;/*定义volt_data为无符号字符型*/P3_4=1;/**/P3_5=1;/**/P3_6=0;/**/while(1)/*无限循环*/{ST=0;_nop_();ST=1;_nop_();ST=0;if(EOC==0)/*当AD转换结束时,就进入到延时程序*/delay(100);while(EOC==0);OE=1;/*输出使能为1时,能输出已转换的数字量*/volt_data=P1;OE=0;/*输出使能为0,AD转换器不输出数据*/convert(volt_data);}}7