基于单片机的温度采集系统设计 毕业设计(论文)中期报告.docx

上传人:极速器 文档编号:75511 上传时间:2025-07-10 格式:DOCX 页数:12 大小:81.49KB
下载 相关 举报
基于单片机的温度采集系统设计 毕业设计(论文)中期报告.docx_第1页
第1页 / 共12页
基于单片机的温度采集系统设计 毕业设计(论文)中期报告.docx_第2页
第2页 / 共12页
基于单片机的温度采集系统设计 毕业设计(论文)中期报告.docx_第3页
第3页 / 共12页
基于单片机的温度采集系统设计 毕业设计(论文)中期报告.docx_第4页
第4页 / 共12页
基于单片机的温度采集系统设计 毕业设计(论文)中期报告.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、基于单片机的温度采集系统设计毕业设计(论文)中期报告题目:1 .设计(论文)进展状况在这段时间里,我主要学习了温度传感器AD590的工作原理,连接方法;如何使用ADa)809进行数模转换;KeiIUViSion2开发软件的使用;以及如何在KeiluVision2环境下的编程实现及调试。同时,对实现带有小数的温度检测进行了具体学习和编程。具体工作如下:(1) AD590的具体工作原理与工作方式AD590,它是一种半导体感受式的,由测温电阻、二极管和集成电路器件成。AD590是一种单片集成的两端式温度敏感电流源,它有金属壳,小型的扁平封装芯片和不锈钢等几种封装形式,实验平台利用IC温度传感器AD5

2、90作为测温器,AD590是一种精度和线性度较好的双端集成温度传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1A最大电流的变化或1摄氏度等效误差。上图给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路,当温度有I(TC的变化时输出电压变化为20mV,即该电路M点电压随温度变化为2mVoCo将温度传感器输出的小信号跟随放大19.2倍左右后,送至8位A/D转换器转换成数字量。(2) A/D转换模数转换采用ADa)809,它是芯片输出端具有可控的三态门,这种芯片的输出端可以直接和系统总线相连,由读信号控制三态门,转换结束后,CPU执行一条输入指令,从而产生读信号,将数据从

3、A/D转换器取出。ADCO809是典型的8位8通道逐次逼近式A/D转换器,CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存译码电路,其转换时间为100s左右。STARTCLKADCO809内部结构如图班示图_由聿路开关近选通_a仝槿拟通道?允许8八路模拟量输入拟址由INO8路模拟量开关OcE路模、地输出器用于存放利I1I(3)在KeiluVija4BCj程序如下地址锁存与译码态出神三输帽位Q8A转Z八路模拟量输出VrefVref(+)(一)#include#includesbitcp,l64=P26;/164的脉冲控制引脚sbitdata_164=P2

4、7;/164的串行数据引脚floatxiaoshu;inttemperl,c,temper2;/保存实际温度的变量,只考虑温度为正且取整数数据端口sbitDQ=P24;voiddelay(unsignedinti)(while(i-);)初始化函数Init_DS18B20(void)(unsignedcharx=0;DQ=I;/DQ复位delay(8);稍做延时DQ=0;单片机将DQ拉低delay(80);/精确延时大于480usDQ=1;拉高总线delay(14);x=DQ;稍做延时后如果x=0则初始化成功x=l则初始化失败delay(20);读一个字节ReadOneChar(Void)(u

5、nsignedchari=0;unsignedchardat=O;for(i=8;i0;i-)(DQ=0;/给脉冲信号dat=l;DQ=I;/给脉冲信号if(DQ=l)dat=dat0x80;delay(4);)retum(dat);)写一个字节WriteOneChar(unsignedchardat)(unsignedchari=0;for(i=8;i0;i-)DQ=O;DQ=dat&OxOl;delay(5);DQ=I;dat=l;读取温度ReadTemperature(Void)unsignedchara=0;unsignedcharb=0;unsignedchart=0;Init_DS

6、18B20();WriteOneChar(OxCC);/跳过读序号列号的操作WriteOneChar(Ox44);/启动温度转换Init_DS18B20();WriteoneChar(OXCC);跳过读序号歹U号的操作WriteoneChar(OXBE);/读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t=8;t=ta;temperl=t16;temper2=t%16;xiaoshu=temper2/16.0;c=xiaoshu*10000;以下是显示两位的函数,参数X是两位整数voidled_2(unsignedch

7、arx)unsignedcharzixing10=0x03,0x9f,0x25,OxOd,0x99,0x49,0x4l,0xlf,x1,0x09,字型代码unsignedchari,zixing2;zixing2=zixingx%10;以下显示X的低位for(i=0;il;)ZiXing2=zixingx10;/以下显示X的高位for(i=0;il;/*以下是顺序显示a,b,c的函数,共显示6位,abc均是两位整数*/voidled_6(unsignedchara,unsignedcharb,unsignedcharc)(led.2(c);led.2(b);led.2(八);)main()(u

8、nsignedinti=0;while(l)(ReadTemperatureO;/读温度led_6(temperl,c100,c%l00);for(i=0;i40000;i+);for(i=0;i40000;i+);程序仿真图如下:Ready.L130Q34INUMRW除此之外我通过微机原理一书找到了如何使用以8088CPU系统为核心设计一个温度采集系统并在三位LED显示器上显示当前温度。他实现起来较为简单,所需要的芯片清单及器件为:CPU8088ADC0809接口芯片8255温度传感器AD59074LS138译码器74LS273段码锁存器DM7407N8282锁存器晶振运算放大器数码管三个电

9、容电阻若干。程序流程图开始数据处理分别求首位,个位,十位并送入缓冲区显示一定时间程序清单为:PORTAEQU020H;定义端口地址PORTBEQU021HPORTCEQU022HPORTDEQU023HDATASEGMENTTABLEDB40HDB4FHDB24HDB30HDB19HDB12HDB02HDB78HDBOOHDBIOHBUFDAlDB?BUFDA2DB?BUFDA3DB?DATAENDSCODESEGMENTASSUMECS:CoDE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,98HOUTPORTD,AL;8255的初始化,*MOVAL9OlOUT

10、PORTC,ALMOVAL,OOOUTPORTC,AL;PeO为O,启动A/D转换FIND:INAL,PORTCTESTAL9OlOHJNZFIND;读PC4的值,如为1则继续查询MOVAL9OlOUTPORTC,AL;使PeO为1,撤消启动信号INAL9PORTA;读取转换数据,*MOVCL9100;计算百位,十位,个位DIVCLMOVBUFDAl,ALXORAL,ALMOVCL,10MOVBL9AHMOVAL5BLMOVAH9ODIVCLMOVBUFDA2,ALMOVBUFDA3,AHDISPLAY:MOVbx,offsettableMOVAL,DI+0XLAT;换码MOVDX9PORTB

11、OUTDX,ALMOVCX,30H;延迟程序DELAY:LOOPDELAYRETMOVCX,30HDisplayiiMOVal,06hOUTPORTD,ALMOVAL,05HOUTPORTD,ALMOVAL,03HOUTPORTD,ALMOVDI,OFFSETBUFDAlCALLDISPLAY;使LEDO工作MOVAL,07HOUTPORTD,ALMOVAL,04HOUTPORTD,ALMOVAL,03HOUTPORTD,ALMOVDI,OFFSETBUFDA2CALLDISPLAY;使LEDI工作MOVAL,07HOUTPORTD,ALMOVAL,05HOUTPORTD,ALMOVAL,02

12、HOUTPORTD,ALMOVDI,OFFSETBUFDA3CALLDISPLAY;使LED2工作loopDisplayi;延迟,*M0VAH,4CHINT21HCODEENDSENDSTARTLED的输出通过微机原理的学习我明白了由于输出的电压量范围是05V即转换为数字量后为OFF之间。所以,要使温度表示范围为085C,需把OFF除以3。经过CPU未经处理过的数值是以ASCII码的方式显示在电脑屏幕上的,还需将ASCII码转换成十进制显示。为了便于读数。在LED灯上的显示将设计为8421码的方式显示。转换方法在程序中已注明。2 .存在问题及解决措施在学习和程序编写过程中遇到了一些问题:主要是

13、开始对KeiluVisio2软件的使用以及汇编语言的掌握问题,在程序编写过程中,出现了一些错误,比如语法使用错误,程序格式错误以及仿真时属性设置错误等原因,在后来的深入学习后,这些问题得到解决。在编程过程中,对于如何使用语言在KeiluVisio2环境下充分完成部件功能较为棘手,后来经过深入分析,以及对开发环境的学习得以解决。3 .后期工作安排在KeilUViSiOn环境下已基本学习了如何实现温度采集的编程,下一步的工作是深入学习硬件连接,编写出完整的程序,同时,应尽量搭配硬件进行测试,对比显示结果,验证程序的正确性。同时,开始着手论文的撰写,主要是准备足够的前期资料和程序编写调试过程中记录好调试的过程和仿真的结果,为论文积累素材。注:1、正文:宋体小四号字,行距22磅。2、中期报告由各系集中归档保存,不装订入册。

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

当前位置:首页 > 论文 > 毕业论文

宁ICP备18001539号-1