基于单片机的温度数据采集系统实验报告_第1页
基于单片机的温度数据采集系统实验报告_第2页
基于单片机的温度数据采集系统实验报告_第3页
基于单片机的温度数据采集系统实验报告_第4页
基于单片机的温度数据采集系统实验报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的温度数据采集系统实验报告班级:电技10 1班姓 名:田波平学 号:1012020108指导老师:仲老师题目:基于单片机的温度数据采集系统一设计要求1被测量温度范围:0120C,温度分辨率为0.5 C。2 被测温度点:2个,每5秒测量一次。3显示器要求:通道号2位,温度4位(精度到小数点后一位)。 显示方式为定点显示和轮流显示。4. 键盘要求:(1) 定点显示设定;(2)轮流显示设定;(3)其他功能键。二. 设计内容1. 单片机及电源模块设计单片机可选用AT89S51及其兼容系列,电源模块可以选用7805等稳压组件, 本机输入电压范围9-12v。2. 存储器设计扩展串行I2C存储器A

2、T24C02。要求:AT24C02 的 SCK 接 P3.2AT24C02 的 SDA 接 P3.42. 传感器及信号转换电路温度传感器可以选用PTC热敏电阻,信号转换电路将 PTC输出阻值转换为 0-5V。3. A/D转换器设计A/D 选用 ADC0832要求:ADC0832 的 CS端接 P3.5ADC083的 DI 端接 P3.6ADC083的 DO端接 P3.7 ADC083的 CLK端接 P2.14. 显示器设计。6位共阳极LED显示器,段选(a-h )由P0 口控制,位选由P2.2-P2.7控制。数码管由2N5401驱动。5. 键盘电路设计。6个按键,P2.2-P2.7接6个按键,

3、P3.4接公共端,采用动态扫描方式检测键盘。6. 系统软件设计。系统初始化模块,键盘扫描模块,数据采集模块,标度变换模块、显示模三. 设计报告要求设计报告应按以下格式书写:(1) 封 面;(2) 设计任务书;(3) 目录;(4) 正文;(5)参考文献。其中正文应包含以下内容:(1)系统总体功能及技术指标描述;(2)各模块电路原理描述;(3)系统各部分电路图及总体电路图(用 PROTE绘制);(4)软件流程图及软件清单;(5)设计总结及体会。四、参考资料1、 李全利,单片机原理及接口技术,高等教育出版社,20042、于永,51单片机常用模块与综合系统设计实例精讲, 电子工业出版社,2007目录一

4、. 项目研究意义二. 项目研究内容1. 单片机及电源模块设计2. 存储器设计3. A/D转换器设计4. 显示器设计5. 键盘电路设计6. 系统软件设计三. 项目心得四. 参考文献项目的研究意义21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了 测量技术的发展,现代控制设备不同于以前,它们在性能和结构发生了翻天覆地 的变化。我们已经进入了高速发展的信息时代, 测量技术是当今社会的主流,广 泛地深入到应用工程的各个领域。温度是工业、农业生产中常见的和最基本的参数之一, 在生产过程中常需对 温度进行检测和监控,采用微型机进行温度检测、数字显示、信息存储及实时控 制,对于提高生产效率和

5、产品质量、节约能源等都有重要的作用。伴随工业科技、 农业科技的发展,温度测量需求越来越多,也越来越重要。但是在一些特定环境 温度监测环境范围大,测点距离远,布线很不方便。这时就要采用无线方式对温度 数据进行采集。本设计是以Atmel公司的AT89C52单片机作为控制核心,通过 ADC0832莫数 转换对所测的温度进行数字量变化,且通过数码管进行相应的温度显示。因为采用微型机进行温度检测、数字显示、信息存储及实时控制,对于提高 生产效率和产品质量、节约能源等都有重要的作用,并且温度参数对工业生产的 重要性,所以温度测量系统的精确度和智能化一直受到企业的重视。所以学习并研究温度测量及相关知识可做为

6、一个较为实用的课题的方向,能获得较实用的知识和方法。因此温度测控技术是一个很实用、也很重要的技术,值得去研究掌握。 它应用的领域也相当广泛,可以应用到消防电气的非破坏性温度检测,电力、电讯设备的过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热 检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温 度过热检测。因此前景是相当的可观。】研究内容1. 单片机及电源模块设计单片机:AT89C52简介如图5.1-1所示为AT89C52芯片的引脚图。兼容标准 MCS-51指令系统的 AT89S52单片机是一个低功耗、高性能 CHMO的单片机,片内含4KB在线可编程 Flash

7、存储器的单片机。它与通用80C51系列单片机的指令系统和引脚兼容。AT89C52单片机片内的Flash可允许在线重新编程,也可用通用非易失性存 储编程器编程;片内数据存储器内含 128字节的RAM有40个引脚,32个外部 双向输入/输出(I/O )端口 ;具有两个16位可编程定时器;中断系统是具有 6 个中断源、5个中断矢量、2级中断优先级的中断结构;震荡器频率 0到33MHZ 因此我们在此选用12MHZ勺晶振是比较合理的;具有片内看门狗定时器;具有断 电标志POF等等。AT89S51具有PDIP、TQFF和PLCC三种封装形式。P1.0(T2)VCCPL1(T2EX)PO.O(ADO)Pl,

8、2PO.1(AD1)PLJP0.2(AD2)PL4PO.3(AD3)Pl.5P0.4(AD-l)Pl.6PO.5(AD5)Pl.7P0.6(AD6)RSTP0-7(AD7)P3.0(RXD)EA(?P)P3.1(TXD)ALEtPROG)P3.2ONT0)PSENP33(INT1)P2.7(A15)P3.4(TO)P2.6(A14)PJ.5(T1)P2.5(A13)P3.6CWR)P2.4(A12)P3,7(RO)P2.3(A11)XTAL2P2.2(A1O)XTAL1P2.1(A9)GNDP2.0(A8)234678910111319201418图5.1-1 AT89S52 引脚图39J83

9、73635343332r 3i30r 292S27262!2423222140上图就是PDIP封装的引脚排列,下面介绍各引脚的功能5.2 AT89C52引脚说明P0 口: 8位、开漏级、双向I/O 口。P0 口可作为通用I/O 口,但须外接上 拉电阻;作为输出口,每各引脚可吸收 8各TTL的灌电流。作为输入时,首先应 将引脚置1。P0也可用做访问外部程序存储器和数据存储器时的低8位地址/数据总线的复用线。在该模式下,P0 口含有内部上拉电阻。在 FLASH编程时,P0 口接收代码字节数据;在编程效验时,P0 口输出代码字节数据(需要外接上拉电 阻)。P1 口: 8位、双向I/O 口,内部含有上

10、拉电阻。P1 口可作普通I/O 口。输 出缓冲器可驱动四个TTL负载;用作输入时,先将引脚置1,由片内上拉电阻将 其抬到高电平。P1 口的引脚可由外部负载拉到低电平,通过上拉电阻提供电流。 在FLASH并行编程和校验时,P1 口可输入低字节地址。在串行编程和效验时, P1.5/MO-SI,P1.6/MISO和P1.7/SCK分别是串行数据输入、输出和移位脉冲引 脚。P2 口:具有内部上拉电阻的8位双向I/O 口。P2 口用做输出口时,可驱动 4各TTL负载;用做输入口时,先将引脚置 1,由内部上拉电阻将其提高到高电 平。若负载为低电平,贝U通过内部上拉电阻向外部输出电流。CPU访问外部16位地

11、址的存储器时,P2 口提供高8位地址。当CPU用 8位地址寻址外部存储时, P2 口为P2特殊功能寄存器的内容。在FLASH并行编程和校验时,P2 口可输入高 字节地址和某些控制信号。P3 口:具有内部上拉电阻的8位双向口。P3 口用做输出口时,输出缓冲器 可吸收4各TTL的灌电流;用做输入口时,首先将引脚置 1,由内部上拉电阻抬 位高电平。若外部的负载是低电平,贝U通过内部上拉电阻向输出电流。在与FLASH 并行编程和校验时,P3 口可输入某些控制信号。P3 口除了通用I/O 口功能外, 还有替代功能,如表5.3-1所示。表5.3-1 P3口的替代功能引脚符号说明P3.0RXD串行口输入P3

12、.1TXD串行口输出P3.2/INT0外部中断0P3.3/INT1外部中断1P3.4T0T0定时器的外部的计数输入P3.5T1T1定时器的外部的计数输入P3.6/WR外部数据存储器的写选通P3.7/RD外部数据存储器的读选通RST复位端。当振荡器工作时,此引脚上出现两个机器周期的高电平将系 统复位。ALE/ h:当访问外部存储器时,ALE(允许地址锁存)是一个用于锁存地 址的低8位字节的书粗脉冲。在Flash编程期间,此引脚也可用于输入编程脉 冲(罰)。在正常操作情况下,ALE以振荡器频率的1/6的固定速率发出脉冲, 它是用作对外输出的时钟,需要注意的是,每当访问外部数据存储器时,将跳过 一个

13、ALE脉冲。如果希望禁止 ALE操作,可通过将特殊功能寄存器中位地址为 8EH那位置的“ 0”来实现。该位置的“ 1”后。ALE仅在MOV或MOV指令期间 激活,否则ALE引脚将被略微拉高。若微控制器在外部执行方式,ALE禁止位无效。=:外部程序存储器读选取通信号。当 AT89S51在读取外部程序时, 每 个机器周期 将PSEN激活两次。在此期间内,每当访问外部数据存储器时,将跳 过两个二7信号。匕/Vpp :访问外部程序存储器允许端。为了能够从外部程序存储器的0000H至FFFFH单元中取指令,匕必须接地,然而要注意的是,若对加密位1进行编程, 则在复位时,匕的状态在内部被锁存。执行内部程序

14、匝应接VCC不当选择12V编程电源时,在Flash编程期间, 这个引脚可接12V编程电压。XTAL1振荡器反向放大器输入端和内部时钟发生器的输入端。XTAL2振荡器反相放大器输出端9。电源模块:电源电路电源变压器是将交流电网220V的电压变为所需要的电压值。交流电经过二 极管整流之后,方向单一了,但是电流强度大小还是处在不断地变化之中。这种脉动直流一般是不能直接用来给集成电路供电的, 而要通过整流电路将交流电变 成脉动的直流电压。由于此脉动的直流电压还含有较大的纹波, 必须通过滤波电 路加以滤除,从而得到平滑的直流电压。滤波的任务,就是把整流器输出电压中 的波动成分尽可能地减小,改造成接近稳恒

15、的直流电。但这样的电压还随电网电 压波动,一般有0%左右的波动,负载和温度的变化而变化,因而在整流、滤 波电路之后,还需要接稳压电路。稳压电路的作用是当电网电压波动,负载和温度变化时,维持输出直流电压 稳定。220V交流电通过9V变压器变为9V的交流电,9V交流电通过四个二极 管的全桥整流后变为9V直流电,然后经过电解电容(470H)进行一级滤波, 以去除直流电里面的杂波,防止干扰。9V直流电出来后再经过三端稳压器 LM7805稳压成为稳定的5V电源,其中7805的Vin脚是输入脚,接9V直流电 源正极,GND是接地脚,接9V直流电源负极,Vout为输出脚,它和接地脚的 电压就是+5V 了。5

16、V电源出来再经过电解电容的二级滤波,使 5V电源更加稳 定可靠。同时在5V稳压电源加上一个10K的电阻和一个红色发光二极管,当上 电后,红色发光二极管点亮,表示电源工作正常。此时一个稳定输出5V的电源已经设计好,对于本设计它完全能够满足单片机及集成块所需电源的要求2。电源原理图如图所示。2. 存储器设计本设计采用的是AT24C02外扩存储器工作电压:1.8V5.5V输入/输出引脚兼容5V 应用在内部结构:128x8(1K),256x8(2K),512x8(4K),1024x8(8K),2048x8(16K)二线串行接口输入引脚经施密特触发器滤波抑制噪声双向数据传输协议兼容400KHz( 1.8

17、V,2.5V,2.7V,3.6V)支持硬件写保护高可靠性:读写次数:1,000,000次-数据保存:100年T引脚说明串行时钟信号引脚(SCL):在SCL输入时钟信号的上升沿将数据送入 EEPRO件, 并在时钟的下降沿将数据读出。串行数据输入/输出引脚(SDA): SDA引脚可实现双向串行数据传输。该引脚为开 漏输出,可与其它多个开漏输出器件或开集电极器件线或连接。24C04仅使用A2、A1作为硬件连接的器件地址输入引脚, 在一个总线上最多可 寻址四个4K器件。A0引脚内部未连接。器件操作时钟及数据传输:SD引I脚通常被外围器件拉高。SD/引脚的数据应在SCL为低 时变化;当数据在SCL为高时

18、变化,将视为下文所述的一个起始或停止命令。起始命令:当SCL为咼,SDA咼到低的变化被视为起始命令,必须以起始命令 作为任何一次读/写操作命令的开始(参见图5)。停止命令:当SCL为高,SDA由低到高的变化被视为停止命令,在一个读操作后, 停止命令会使EEPROM1入等待态低功耗模式(参见图5)。应答:所有的地址和数据字节都是以8位为一组串行输入和输出的。每收到一 组8位的数据后,EEPRO都会在第9个时钟周期时返回应答信号。每当主控器 件接收到一组8位的数据后,应当在第9个时钟周期向EEPROM1回一个应答信号。收到该应答信号后,EEPROM会继续输出下一组8位的数据。若此时没有得到主控器件

19、的应答信号,EEPROM停止读出数据,直到主控器件返回一个停止命令来结束读周期。等待模式:24C01/02/04/08/16特有一个低功耗的等待模式。可以通过以下方法 进入该模式:(a)上电()收到停止位并且结束所有的内部操作后。器件复位:在协议中断、下电或系统复位后,器件可通过以下步骤复位:(1)连续输入9个时钟;(2)在每个时钟周期中确保当SCL为高时SDA也为高;(3) 建立一个起始条件。总线时序图Z SCL;串行时钟输入,SDA:串行数据输入/输出程序设计如下:void start()开始信号sda=1;delay();sck=1;delay();sda=0;delay();void

20、stop()/结束信号sda=0;delay();sck=1;delay();sda=1;delay();void resp on s()/应答uchar i;sck=1;delay(); while(sda=1)&i250)i+;sck=O;delay();void in it() 初始化 sda=1;delay();sck=1;delay();void write_byte(uchar date)/写 字节 _uchar i,temp; temp=date; for(i=0;i8;i+) temp=temp1; sck=0;delay();sda=CY;delay();sck=1;dela

21、y();sck=0;delay();sda=1;delay();uchar read_byte()/渎字节 _uchar i,k;sck=0;delay();sda=1;delay();for(i=0;i8;i+)sck=1;delay();k=(k1)|sda;sck=0;delay();return k;void write_add(uchar address,uchar date)写 入外存储器中start();write_byte(OxaO);resp on s();write_byte(address);resp on s();write_byte(date);resp on s()

22、;stop();uchar read_add(uchar address从外存储器中读出数据 _uchar date;start();write_byte(OxaO);resp on s();write_byte(address);resp on s();start();write_byte(0xa1);resp on s();date=read_byte();stop();return date;3. A/D转换器设计ADC083是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。 由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用

23、ADC083可是使我们了解A/D转换器的原理,有助 于我们单片机技术水平的提高。ADC0832具有以下特点:位分辨率;双通道A/D转换;输入输出电平与TTL/CMOS相兼容; 5V电源供电时输入电压在05V之间;工作频率为250KHZ,转换时间为32卩S 一般功耗仅为15mW; 8P 14P DIP (双列直插)、PICC多种封装;商用级芯片温宽为0C to +70 C,工业级芯片温宽为40C to +85C引脚图cs_片选使能.低电平芯片使能,CH0模拟输入通道0.或作为IN*-使用CH1模拟输入通道1或作为M/-使用、GND芯片参考0电位(地人DI数据倍号输入*选择通道控制DO数据倍号输出

24、.转换数据输出.CLK芯片时钟输入。Vcc/REF电源输入最参考电压输入,亘用!引脚功能如下:芯片接口说明ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模 拟量转换要求。其内部电源输入与参考电压的复用, 使得芯片的模拟电压输入在 05V之间。芯片转换时间仅为32 uS据有双数据输出可作为数据校验,以减少 数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处 理器控制变的更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。功能时序图CLKADCD832610111213*16?Q*1CSStart cm 4 SignBit 沁叭Dl(A

25、DCW32 only)-DOSettling Tinre1户1JE.LSBILMSBJMSB-Firsr Da|n LSB-Iirat DataHi-Z6fl 16 2当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第 1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉 之前DI端应输入2位数据(SGL、Odd)用于选择

26、通道功能,当此2位数据为1”、 0”时,只对CH0进行单通道转换。当2位数据为1”、1”时,只对CH1进行单通 道转换。当2位数据为0”、0”时,将CH0作为正输入端IN+,CH1作为负输入端 IN-进行输入。当2位数据为0”、1”时,将CH0作为负输入端IN-,CH1作为正输 入端IN+进行输入。在完成输入启动位、通道选择之后,就可以开始读出数据, 转换得到的数据会被送出二次,一次高位在前传送,一次低位在前传送,连续送 出。在程序读取二个数据后,我们可以加上检验来看看数据是否被正确读取。下面 程序如下:un sig ned char GetValueO832(bit Cha nn el)/A

27、D专换后的数据 un sig ned char i,data1=0,data2=0;clk=0;d0=1;di=1;cs=O;/cs=0寸 ADC0832 有效clk=1;delay();clk=0;/第一个脉冲,开始位d0=1;di=1;clk=1;/delay();clk=0;/第二个脉冲,模式选择di=Cha nn el;d0=cha nn el;/通 道选择clk=1;/delay();clk=0; /第三个脉冲,通道选择d0=1;di=1;for(i=0;i8;i+) /第一次读数从高到低,时钟下降沿有效 clk=1;clk=0;if(d0=1 &di=1)data1|=0x80i;

28、for(i=0;i8;i+)/第二次从低到高读数,下降沿有效 if(d0=1 &di=1) data2|=0x01i;clk=1;delay();clk=0;cs=1;d0=1;di=1;clk=1;if(data 1=data2)return(datal);5.键盘电路设计6个按键,P2.2-P2.7接6个按键,P3.4接公共端,采用 动态扫描方式检测键盘。4些A04O4O6.uint keysca n() uchar temp;P33=0;temp=P2&0 xf0; if(temp!=0xf0)Delayms(10); temp=P2&0 xf0; if(temp!=0xf0)switc

29、h(temp)case 0x70:retur n 1;break; case 0xb0:retur n 2;break; case 0xd0:retur n 3;break; case 0xe0:retur n 4;break; 显示模块采用6个共阳极数码管,采用动态扫描的方式进行示。电路图如下:图6:显示模块void Display(void)/显示温度的函数P27=0; /选中第一个位选P0 =LEDucADC/2/100; ; / 显示Delayms(1);delay1(200);P27=1;P26=0; /选中第一个位选P0 = LEDucADC/2%100/10; 显示/Delayms(1);delay1(200);P26=1;P2

温馨提示

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

评论

0/150

提交评论