单片机数据采集课程设计_第1页
单片机数据采集课程设计_第2页
单片机数据采集课程设计_第3页
单片机数据采集课程设计_第4页
单片机数据采集课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、0.前言11课程设计的目的和要求2课程设计的目的2课程设计要求22.总体设计3系统框图3设计原理43.硬件设计5芯片介绍5相应的命令控制字格式9硬件连接图104.软件设计10程序框图10程序清单145.实验数据140通道数据分析表14程序运行图146结束语147.参考文献15附录一:硬件图连接16附录二:程序清单17附录三:程序运行图22单片机数据采集控制系统单片机的应用简介单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换

2、器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备

3、的智能化管理及过程控制等领域,大致可分如下几个范畴: (1).在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。 (2).在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级

4、控制系统等。 (3).在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 (4).在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 (5).单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛

5、,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 (6).在各种大型电器中的模块化应用 某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。 在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。 (7).单片机在汽车设备领域中的应用 单片机在汽车电子中的应用非常广泛,例如汽车

6、中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。1课程设计的目的和要求1.1课程设计的目的运用单片机原理及其应用等课程知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识的理解, 把学过的比较零碎的知识系统化,比较系统的学习开发单片机应用系统的基本步骤和基本方法,使学生应用知识能力、设计能力、调试能力以及报告撰写能力等有一定的提高。1.2课程设计要求用8051单片机设计数据采集控制系统,基本要求如下:1、 可实现8路数据的采集,假设路信号均为

7、0-5V的电压信号;2、3、 可通过键盘设置采集方式;(单点采集、多路巡测、采集时间间隔*)4、 具有异常数据声音报警功能:对第一路数据可设置正常数据的上限值和下限值,当采集的数据出现异常,发出报警信号。5、 可输出8路顺序控制信号,设每路顺序控制信号为一位,顺序控制的流程为:6、 可输出频率为1kHZ的方波,三角波,正弦波*。选做功能:1、 异常数据音乐报警2、 输出方波,三角波,正弦波频率可调系统框图设计原理数据采集系统,从严格的意义上来说,应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行存储、处理、分析计算以及从检测的数据中提取可用的信息,供显示、记录、打印或描绘的系统

8、。数据采集形同一般有数据输入通道,数据存储与管理,数据处理,数据输出及显示这五个部分组成。输入通道要实现对被测对象的检测,采样和信号转换工作。数据存储与管理要用数据存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。数据处理就是从采集到原始数据中,删除有关干扰噪声,无关信息和必要的信息,提取出反应被测对象特征的重要信息。另外,就是对数据进行统计分析,以便于检索;或者吧数据恢复成原来物理量的形式,以可输出的形态在输出设备上输出,例如打印,显示,绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。本课程设计以单片机AT89C51芯片为控制核心和数据采集电路、LED数码管显示电

9、路以及供电系统四大部分构成数据采集和功能显示。当有模拟信号输入时,单片机控制A/D转换器,把要输入的模拟信号转换成相应的数字信号存入到单片机的内存中,再控制LCD显示驱动器把内存中的数字信号显示出来。通过键盘来改变LCD中显示的数据,把改变的数据通过控制D/A转换器输出成相应的模拟信号。芯片介绍(1)ADC0809芯片介绍ADC0809是采样频率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。主要特性:1)8路8位AD转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100s4

10、)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 内部结构 : ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换、外部特性(引脚功能) :ADC0809芯片有28条引脚,采用双列直插式封装,如图1323所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA ADDB ADDC:3位地址输入线,用于选通8路模拟输入的一路ALE:地址锁存允许信号,输入,高电平有效。 STAR

11、T: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变

12、低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平是,输出三态门打开,转换结果的数字量输出到数据总线上(2)MCS-51MCS-51系列单片机是美国Intel公司开发的8位单片机,又可以分为多个子系列。MCS-51系列单片机共有40条引脚,包括32条I/O接口引脚、4条控制引脚、2条电源引脚、2条时钟引脚。 引脚说明: P0.0P0.7:P0口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时的地址/数据复用口。 P1.0P1.7:P1口8位口线,通用I/O接口无第二功能。 P2.0P2.7:P

13、2口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时传送高8位地址。 P3.0P3.7:P3口8位口线,第一功能作为通用I/O接口,第二功能作为为单片机的控制信号。ALE/ PROG:地址锁存允许/编程脉冲输入信号线(输出信号)PSEN:片外程序存储器开发信号引脚(输出信号)EA/Vpp:片外程序存储器使用信号引脚/编程电源输入引脚RST/VPD:复位/备用电源引脚(3)DAC0832芯片介绍:DAC0832是美国数据公司的8位D/A转化器,片内带数据锁存器,电流输出,输出电流稳定时间为1m,功耗为20mW,其引脚说明如下: D0D7:数据输入线,TTL电平 ILE:数据锁存允许

14、控制信号线 CS:片选信号线,低电平有效 WR1:数据锁存器写选通输入线,负脉冲有效 XFER:数据传输控制信号输入线,低电平有效 WR2:DAC寄存器写选通输入线,低电平有效 IOUT1:电流输出线,当DAC寄存器为全1时电流最大 IOUT2:电流输出线,其值与IOUT1之和为一常数Rfb:反馈信号输入线,调整Rfb端外接电阻值可以调整转换满量程精度Vcc:电源电压线,为5V15范围VREF:基准电压输入线,范围为:10V10VAGND:模拟地DGND:数字地(4)74LS13874LS138是一个3-8译码器,共16个引脚,其引脚说明如下: A、B、C:选择端即信号输入端 E1、E2、E3

15、:使能端,其中E1、E2低电平有效,E3高电平有效 Y0Y7:译码输出信号,始终只有一个为低电平 Vcc:电源端,5V GND:线路地(5)74LS273管脚功能:74LS73中文资料:是带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。 CPU 的ALE信号必须经过反相器反相之后才能与74LS273的控制端CLK 端相连。1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;(2).当1脚为高电平时,11

16、(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.第一脚WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);CP(CLK):触发端,上升沿触发,即当CP从低到高电平时,D0D7的数据通过芯片,为0时将数据锁存,D0D7的数据不变(6)74LS24574LS245是我们常用的芯片,用来驱动led或者其他的设备,用法很简单如上图,这里简单的给出一些资料,他是8路同

17、相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。(7)8255芯片说明:8255A是Intel公司生产的可编程输入输出接口芯片,它具有3个8位的并行I/O口,具有三种工作方式,可通过程序改变其功能,因而使用灵活,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8255有三种

18、基本工作方式,PC口被分为两个部分,上半部分随PA口称为A组,下半部分随PPA口可工作与方式0、1和2,而PB口只能工作在方式0和1。8255共有40个引脚,采用双列直插式封装,各引脚功能如下:D0-D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。CS:片选信号线,低电平有效,表示芯片被选中。RD:读出信号线,低电平有效,控制数据的读出。WR:写入信号线,低电平有效,控制数据的写入。Vcc:+5V电源。PA0-PA7:A口输入/输出线。PB0-PB7:B口输入/输出线。PC0-PC7:C口输入/输出线。RESET:复位信号线。A1、A0:地址线,用来选择8255内部端口。GND:

19、地线。相应的命令控制字格式其中定时/计数器工作方式控制字TMOD格式如下:TMOD 字节地址:89HD7 D6 D5 D4 D3 D2 D1 D0GATEC/TM1M0GATEC/TM1M0 T1方式字 T0方式字其中,M1、M0为方式选择,C/T为定时/计数选择,GATE为定时器/计数器工作方式选择中断允许寄存器IE格式如下:IE 字节地址:A8HD7 D6 D5 D4 D3 D2 D1 D0EAESET1EX1ET0EX01FH ACHABH AAH A9H A8HEA为开中断标志 ES串口中断允许标志ET0/ET1:定时器/计数器T0/T1中断允许标志位EX0/EX1:INT0/INT1

20、中断允许位3.3硬件连接图(详见附录一)程序框图子程序流程图图4 显示子程序流程图.4.2程序清单(详见附录二)5.10通道数据分析表显示值测量值绝对误差相对误差0.50 0.50 0.00 0.00%1.00 0.92 0.08 8.00%1.50 1.42 0.08 5.33%2.00 1.88 0.12 6.00%2.50 2.35 0.15 6.00%3.00 2.80 0.20 6.67%3.50 3.28 0.22 6.29%4.00 3.72 0.28 7.00%4.50 4.21 0.29 6.44%5.00 4.68 0.32 6.40% 表 1 十进制转换误差分析表由表中数

21、据可以得出,显示值与实际值的误差还比较大,通过采用查表法来转换十进制数将可以减小此次转换的误差。5.2程序运行图(详见附件三)6结束语通过本次实验,基本上等于对我们做了一次系统的集中式培训,加深了我们对单片机知识的了解。在这次实验的软件编程上,我们运用到了ADC0809的A/D转换程序、DAC0832的D/A转换程序、键盘扫描的程序、十六进制与十进制转换的程序、中断程序及报警的相应程序设计,在原有的基础上巩固了我们编写类似程序的能力。在硬件上运用到了MCS-51单片机、ADCA0809 A/D转换器、DAC0832 D/A转换器,8255定时器,LED数码管,LS138译码器等芯片,加深了我们

22、对硬件电路的了解。虽然此次编写完成的程序精度不够高,误差偏大,但是我们已经掌握了改进的方法,比如用查表法来十进制转换就能大大提高精度,这里由于时间关系没能来的及改正,相信在以后的实习过程中,我们将能更好的运用各类方法来完成任务。1 徐爱卿,孙涵芳,盛焕鸣 单片机微型计算机应用和开发系统 背景航空航天大学出版社 1992年2 张毅刚,彭喜元,孟升卫,刘兆庆 MCS-51 单片机使用子程序设计(第二版) 哈尔滨工业大学出版社 2003年3 陈建铎 单片机应用技术(第一版) 陕西科学技术出版社 1991年4 陈建铎 0809单片机原理及应用技术(第一版)电子工业出版社 1995年5 胡汉才 单片机原

23、理及接口技术(第二版)清华大学出版社 2004年附录一:硬件图连接附录二:程序清单ORG 0000HJMP STARTORG 000BHLJMP INTO ORG 05A0HSTART: SETB EASETB TR0SETB ET0MOV TMOD,#01HMOV TL0,#0F0HMOV TH0,#0D8H ;中断初始化SE11: MOV SP,#53H ;定义指针地址 MOV 7EH,#0CH MOV 7DH,#00H MOV 7CH,#00H MOV 7BH,#15H MOV 7AH,#10H MOV 79H,#10H ;显示缓冲区初值(放六个数码管的数据缓冲区) MOV 7FH,#0

24、0H MOV R5,#00H OUTBIT equ 0ffddh ;位控制口/键扫口 OUTSEG equ 0ffdch ;段控制口 IN equ 0ffdeh ;键盘读入口 LedBuf equ 60h ;显示缓冲LO18: CALL DIS ;显示 CALL SCANKEY ;键盘扫描 MOV DPTR,#0FFE0H ;0809地址为0FFE0H,选择输入控制口为Y0 CJNE A,#20H,LO20 ;判断键盘是否有按键按下,没有则保存数据显示,有则跳至LO20LO19: MOV R5,7CH ;将通道号保存到R5 CALL DIS ;显示 MOV 7CH,R5 ;将通道号得值返回给缓

25、存区7CH MOV A,R5 ;通道号得值给A MOVX DPTR,A ;0809的通道采样 MOVX A,DPTR ;取出采样值 CALL ALERM ;判断是否超出特定范围进行报警 MOV R0,#7AH ;定义R0的地址为#7AH,存放电压值 CALL PTDS ;采样值送显示缓冲区 SJMP LO18 ;循环 ;-键盘有按键按下时的显示LO20: MOV 71H,A SUBB A,#07H ;判断按键值是否大于07,是则选择多路巡测,不是则单点采集 JC LO21JMP LO22LO21: MOV A,71H ;进行单点采集 MOV 7CH,A ;将通道号的值存到7CH缓存区 MOVX

26、 DPTR,A ;0809的通道采样 CALL DIS ;显示 MOVX A,DPTR ;取出采样值 MOV R0,#7AH ;定义R0的地址为#7AH,存放电压值 CALL PTDS ;采样值送显示缓冲区 SJMP LO18 ;循环LO22: CALL DIS ;显示 MOV A,7FH ;R7内存放通道号 MOV DPTR,#0FFE0H ;选择Y0输入控制 MOVX DPTR,A ;0809的0通道采样LO23:CALL DIS ;显示 MOVX A,DPTR ;取出采样值 CALL ALERM MOV R0,#7AH MOV 7CH,7FH ;通道号值存入7CH缓存区 MOV R6,7

27、FH CALL PTDS ;采样值送显示缓冲区 CJNE R6,#07H,LO22 MOV 7FH,#00H MOV 7CH,7FH SJMP LO18 ;循环;-中断程序INTO: PUSH PSW PUSH ACC MOV TL0,#0F0H MOV TH0,#0D8H INC R6 CJNE R6,#64H,L01 ;延时1s MOV R7,7FH INC R7 ;R7+1,即通道号自动加1 CJNE R7,#08H,L0 ;判断8路通道是否循环完成,完成则从0通道重新开始 MOV 7FH,#00H MOV R7,7FHL0: MOV 7FH,R7L01: POP ACC POP PSW

28、 RETI;-PTDS: MOV B,#51 ;A/255=x/5 DIV AB MOV R0,A ;将原十六进制数除以51,得到的商即为转换后十进制电压的整数位的值 DEC R0 ;地址减1,即到存放电压小数位地址 CLR A MOV R6,B MOV A,R6 MOV B,#5 DIV AB MOV R0,A ;将余数除以5得到电压小数位的值 SUBB A,#0AH JNZ L1 ;判断小数位是否溢出,没有则子程序结束 INC R0 MOV R5,7AH MOV A,R5 INC A MOV R0,A ;溢出后返回整数位给整数值加1 DEC R0 MOV 79H,#00H ;小数位清零 M

29、OV A,79HL1: RETDIS: PUSH DPH PUSH DPL ;压栈 SETB RS1 ;Rs0,Rs1表示R0R7分为四个区,默认为0007H的0区(00),2区为080F,3区为1017H,4区为181F(这里表示用10的三区) MOV R0,#7EH ;显示缓冲区 MOV R2,#20H ;从左边开始显示 MOV R3,#00H MOV DPTR,#LS0 ;八段管显示码首地址LS2: CJNE R2,#02H,LS4 ; 判断是否到了第五个数码管显示位 MOV DPTR,#LS3 ;是则送点亮了小数点的八段管显示码首地址 SJMP LS5LS4: CJNE R2,#01H

30、,LS5 ;不是则继续判断是否到了最后一个数码管显示位 MOV DPTR,#LS0 ;是则将八段管显示码首地址改为LS0LS5: MOV A,R0 ;R0内数据表示在所查表中的第几位 MOVC A,A+DPTR ;读取表中对应的数值 MOV R1,#0DCH ;段选,字形口地址 MOVX R1,A ;将A/D转换结果存于R1寄存器内 MOV A,R2 ;位选(哪个数码管点亮) INC R1 ;字形口地址+1 MOVX R1,A ;位选值送到字形口LS1: DJNZ R3,LS1 ;延时 CLR C RRC A ;A右移一位,到下一位数码管显示 MOV R2,A ;位选地址存于R2 DEC R0 ;显示缓冲区地址减1 JNZ LS2 ;判断6位数据是否显示完,没有则跳到LS2继续循环 MOVX R0,A ;将位选地址存在R0内 DEC R0 ;R0-1 CPL A ;A按位取反 MOVX R0,A ;A的值存到R0内 CLR RS1 ;清空RS1 POP DPL POP DPH ;出栈 RETALERM: MOV 70H,A JC ALERM1 ;大于报警,A<08H时跳到ALERM1 CLR P3.0 ;亮灯报警ALERM1: JC ALERM2 ;再次判断电压值是否大于2.5V,大于则继续报警,小于则关闭报警灯 JMP ALARM3ALARM3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论