单片机智能电子温度计设计(电路图+原理图+源代码)课程设计_第1页
单片机智能电子温度计设计(电路图+原理图+源代码)课程设计_第2页
单片机智能电子温度计设计(电路图+原理图+源代码)课程设计_第3页
单片机智能电子温度计设计(电路图+原理图+源代码)课程设计_第4页
单片机智能电子温度计设计(电路图+原理图+源代码)课程设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机智能电子温度计设计(电路图+原理图+源代码)-课程设计单片机智能电子温度计设计(电路图+原理图+源代码)智能电子温度计,要求显示温度和时间,能实现异常温度报警,温度和时间可设置。自己构思系统的功能,成分发挥想象力和创造力,尽可能实现较多的功能,并能实现功能的扩展。1.根据课题,查阅相关资料;2.画出系统的原理框图;3.画出单元电路图;4.编写相应部分程序;5.撰写说明书。1.靳达.单片机应用系统开发实例导航.北京:人民邮电出版社,2003.10。2.张俊谟。单片机中级教程.原理与应用北京:北京航空航天大学出版社,200.6。3.何立民.mcs-51系列单片机应用系统设计(系统配置与接口技

2、术)。目 录单片机课程设计任务书2智能体温计的设计7一、主要模块的方案论证与比较71.1 温度传感器的选择71.2 ad转换器的选择71.3 时间模块8二、总系统设计方案102.1 总系统方案设计描述102.2 系统电路原理图102.2.1电源电路模块102.2.2 温度检测、放大模块112.2.3 a/d转换模块122.2.4温度设制、显示及报警电路模块152.2.5 时间设制、显示模块16三、系统软件设计173.1系统程序流程图173.2时间设置流程18四、系统测试214.1 硬件测试214.1.1 单元模块的测试214.1.2系统整体测试214.2软件测试214.3 硬件与软件的联机测试

3、21五、测试数据及实验结果235.1 测试数据235.2 测试结果分析23六、总结和体会24七、参 考 文 献25附录126附录2(程序)1068单片机智能电子温度计设计(电路图+原理图+源代码)智能体温计的设计摘要:本智能体温计采用at89s51作为核心器件实现对系统的自动控制,采用双单片机串行处理结构。外界温度经ad590集成温度传感器采集,温度变化转换为线性电压信号,再经由op07构成高精度低温漂的放大电路处理后,作为adc0809的模拟输入信号,由adc0809完成ad转换,得到8位的数字信号送入单片机1(at89s51)。单片机1将采集到温度值在led数码管上显示出来。单片2(at8

4、9s51)设置和调节系统时间。此外温度预制,报警电路模块功能也由单片机1完成。通过系统的设计与实现说明本设计方案切实可以,能够完成题目所要求的基本功能部分,并留有相应的接口,为完成扩展功能打下基础。关键字:单片机 ad590 adc0809一、主要模块的方案论证与比较1.1 温度传感器的选择方案一:采用热敏电阻。热敏电阻价格便宜,对温度灵敏,原理简单,但线性度不好,如不进行线性补偿,对于本设计归一化输出的要求,难于达到设计精度;如要对非线性进行补偿,则电路结构复杂,难于调整。故不采用。方案二:采用热电偶。热电偶在测温范围内热电性质稳定,不随时间变化而变化,电阻温度系数小,导电率高,比热小,但热

5、电偶一般体积较大,使用不方便,价格相对较高。作为一个智能体温计的温度传感器,要求体积小,使用方便,便于携带,故此方案不合适。方案三:采用集成温度传感器。集成温度传感器一般且有具有线性好、精度高、灵敏度高、体积小、使用方便等优点。根据实验室现有材料可选取ad590。ad590的测温范围为-55+150,能满足本设计的050度测量要求。根据相关技术资料:ad590线性电流输出为1 a/k,正比于绝对温度;ad590的电源电压范围为4v30v,并可承受44v正向电压和20v反向电压,因而器件反接也不会被损坏。该方案能完全满足此设计的要求,故采用此方案。1.2 ad转换器的选择方案一:选用ad574。

6、ad574的数字量位数可设成8位也可以设为12位,且无需外接clock时钟,转换时间达到25s,输出模拟电压可以是单极性的010v或020v,也可以是双极性的5v或10v之间。ad574精度高,但与8位的单片机接口较复杂,且价格昂贵,考虑到体温计是对温度的测量,其响应时间的要求不高。故不选用此方案。方案二:选用icl7135。这类芯片比较适合于低速测量仪器,适用于精度高,速度要求不高的系统设计中。icl7135的输出为动态扫描bcd码,与单片机的接口较复杂。且它的满量程输入为2v电压,如在本设计中使用要进行衰减,较难保证转换精度。方案三:选用adc0809。adc0809数字量是8位,转换时间

7、为100s,输入模拟电压为单极性的05v。由于本设计的要求精度不是很高,adc0809可以达到要求,故选用此方案。1.3 时间模块方案一: 8279扩展。该方案方框图如图1.2.1所示,8279是一种可编程的键盘/显示接口专用芯片,它含有键盘输入和显示输出两种功能,键扫描程序和动态显示程序全由8279硬件自动完成,此种方案能以比较简单的硬件 电路和较少的软件开销实现单片机与键盘、led显示器的接口。方案二: 8155扩展,led动态显示。 该方案方框图如图1.2.2所示,8155是一块可编程的接口芯片,与单片机的接口非常简单,它的键盘、显示共用一个接口电路,可节省i/o口。但动态扫描方式需占用

8、cpu较多的时间,在单片机没有太多实时测控任务的情况下可以采用。方案三: 串口扩展,led静态显示。该方案方框图如图1.2.3所示,独立式键盘配置灵活,软件结构简单,按键较多时不宜采用。静态显示占用口资源少,采用串口传输实现静态显示, led数码管与单片机之间通过6个移位寄存器相连,显示亮度有保证,但此方案的硬件开销大,电路复杂,信息刷新速度慢,比较适用于并行口资源较少的场合。方案四: 独立式按键,led动态显示。 该方案方框图如图1.2.4所示,独立式按键直接与单片机i/o口相连构成键盘,每个按键不会相互影响,因本系统用到的按键比较少,采用独立式键盘不会浪费i/o口线,所以本系统采用独立式键

9、盘。动态显示的亮度虽然不如静态显示,但其硬件电路较简单,可节省硬件成本,虽然动态扫描需占用cpu较多的时间,但本系统中的单片机没有很多实时测控任务,因此,本系统采用此种方案。 单片机智能电子温度计设计(电路图+原理图+源代码)二、总系统设计方案2.1 总系统方案设计描述 根据题目要求,将系统分为若干模块,以单片机为核心,完成多项功能。图1 系统框图系统框图如图1,ad590把采集的外部温度信号转换成相应的电压,再经过op07运放放大后作为adc0809的模拟输入信号,adc0809将此模拟信号转换成数字信号,通过并口送入到单片机1。单片机1把这些信号处理后通过led数码管显示出来,单片机2控制

10、显示时间。2.2 系统电路原理图 见附录1。如图所示,该电路主要由电源电路,温度检测、放大电路,单片机电路,ad转换电路,按键输入、报警电路,数码管扫描显示电路组成。2.2.1电源电路模块图3 电源电路图如图3所示,220v交流电经变压器市降压、桥式整流、电容滤波后由7812、7805、7905三端集成稳压管分别得到12v、+5v、-5v电压。给整个电路供电。2.2.2 温度检测、放大模块图4 ad590温度检测、放大电路图如图4所示,温度检测、放大电路主要器件的作用:op1:电压跟随器;op2:电压跟随器;op3:差分放大电路;ad590:温度传感器;svr:零位调整。 (1)ad590简介

11、ad590是电流输出型的半导体温度感测组件,主要特性如下:1.具有线性输出电流。2.宽广的操作温度范围(-55150)。3.宽广的工作电压范围(+4v+30v)。4.良好的隔离性。ad590的包装与等效电路如图4所示,是to-52型金属外壳包装。他是两端子的半导体温度感测组件,另有一端子是外壳接脚,可接地以减少噪声干扰。ad590如同一个随温度而改变输出电流的定电流源,输出电流与外壳的开氏(k)温度成正比。开氏温度与摄氏温度的单位相等,0等于273.2k,100等于373.2k。当温度为0时,ad590的输出电流是273.2a。而温度为100时,输出电流是373.2a。温度每升高1,输出电流增

12、加1a,及温度系数为1a/。 图5 ad590包装与等效电路图(2)图2温度检测、放大电路原理ad590当温度增加1时,其输出电流会增加1a。即ad590的温度系数为1a/。所以在t()时的电流i1(t)为 ,而温度每变化1时,v2的电压变化是为 ,表示温度每增加1,v2会增加10mv。在0时v2就已经有电压存在,其值为 ,则t()时 , 。如图3所示,op3组成差动放大器,电压增益为 。零位调整svr1则用于抵补0的电压值,由差动放大器的公式 可得知,若调整svr1使v1的电压为2.732v,则0时,差动放大器的输出vo为0v。也就是说,若温度是在0至50之间,则差动放大器的输出电压是在0v

13、至5v之间,亦即每0.1v的输出代表温度上升1。与设计要求相符合。2.2.3 a/d转换模块如图6:adc0809把从放大电路传送过来的模拟信号转变成数字信号,并行传送给单片机的p0口,让单片机处理。图6 a/d转换电路图(1)adc0809简介adc0809是带有8位a/d转换器、8路多路开关以及微处理机兼容的控制逻辑的cmos组件。它是逐次逼近式a/d转换器,可以和单片机直接接口。 1)adc0809的内部逻辑结构 由下图可知,adc0809由一个8路模拟开关、一个地址锁存与译码器、一个a/d转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用a/d转换

14、器进行转换。三态输出锁器用于锁存a/d转换完的数字量,当oe端为高电平时,才可以从三态输出锁存器取走转换完的数据。图 adc0809的内部逻辑结构图单片机智能电子温度计设计(电路图+原理图+源代码)2) adc0809引脚结构 adc0809各脚功能如下:d7-d0:8位数字量输出引脚。in0-in7:8位模拟量输入引脚。vcc:+5v工作电压。gnd:地。ref(+):参考电压正端。ref(-):参考电压负端。start:a/d转换启动信号输入端。ale:地址锁存允许信号输入端。(以上两种信号用于启动a/d转换).eoc:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。oe:

15、输出允许控制端,用以打开三态数据输出锁存器。clk:时钟信号输入端(一般为500khz)。a、b、c:地址输入线。图7 adc0809引脚图 adc0809对输入模拟量要求:信号单极性,电压范围是05v,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ale为地址锁存允许输入线,高电平有效。当ale线为高电平时,地址锁存与译码器将a,b,c三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。a,b和c为地址输入线,用于选通in0in7上的一路模拟量输入。通道选择表如下表所示。cb

16、a选择的通道000in0001in1010in2011in3100in4101in5110in6111in7数字量输出及控制线:11条 st为转换启动信号。当st上跳沿时,所有内部寄存器清零;下跳沿时,开始进行a/d转换;在转换期间,st应保持低电平。eoc为转换结束信号。当eoc为高电平时,表明转换结束;否则,表明正在进行a/d转换。oe为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。oe1,输出转换得到的数据;oe0,输出数据线呈高阻状态。d7d0为数字量输出线。 clk为时钟输入信号线。因adc0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500

17、khz, vref(),vref()为参考电压输入。 2) adc0809应用说明 1) adc0809内部带有输出锁存器,可以与at89s51单片机直接相连。 2) 初始化时,使st和oe信号全为低电平。 3) 送要转换的哪一通道的地址到a,b,c端口上。 4) 在st端给出一个至少有100ns宽的正脉冲信号。 5) 是否转换完毕,我们根据eoc信号来判断。 6) 当eoc变为高电平时,这时给oe为高电平,转换的数据就输出给单片机了。2.2.4温度设制、显示及报警电路模块如图7:通过按键可以事先设定报警温度值,当显示的温度值超过设定的温度值时,单片机就会从int0脚发出一连串脉冲,驱动蜂鸣器

18、发出报警声。图7 温度设制、显示及报警电路图2.2.5 时间设制、显示模块如图7:通过按键可以事先设定时间,并随着系统的运行而变。图9 时间电路图三、系统软件设计3.1系统程序流程图图11 单片机1程序主流程图3.2 时间设置流程 单片机智能电子温度计设计(电路图+原理图+源代码)四、系统测试4.1 硬件测试4.1.1 单元模块的测试(a)电源测试:用数字万用表电压档测量各三端稳压管输出的电压值是否正常。测试相关测试点,三路电压正常。电源设计成功。 (b) 温度采集模块的测试:调节温度变化,测试点的电压值是否有相对应的改变。当温度变化时,测试点的电压与温度之间的线性关系比较好,如表1所示,达到

19、设计要求。(c)ad转换模块的测试:当输入为0v和5v以及中间若干电压输入时,测试a/d转换是否正常。测试发现当输入为0v时,adc0809的输出为00h,为+5v时为0ffh,当输入为2.5v时,输出为0efh,测试结果表明ad转换的功能完全实现。4.1.2系统整体测试测试方法以水温代替人的体温,用一根水银温度计与所制作的体温计探头(捆绑)同时接触被测热水的同一点。(a)准备一杯0摄氏度的冰水混合物和一杯热水。从0度开始记录测试点的电压值与温度计对比较。记完一个数后,往杯中加热水,这样,每测一次,记录一次数据,再加一次热水,这样使水温渐渐升高,一直测到水温为50摄氏度。测试结果如表1所示,说

20、明数码管显示的数值是否与测试点所测值在误差允许范围内是成归一化关系的。(b)检测水温高于50摄氏度时测试点的电压值。看是否为5v。结果显示为+5v,说明保护电路可行。4.2软件测试将各功能子程序进行kail c系统进行软件仿真,全部通过,再进行硬件仿真,也能全部实现所要求实现的功能。 (1)数码管显示的测试:把放大器的输出连接到adc0809的输入端,adc0809与单片机相连接,观察数码管显示的数值是否与测试点所测值成归一化关系。(2)双机串行通信的测试:从主机发送一个8位的二进制数,用示波器观察从机是否接收到。4.3 硬件与软件的联机测试根据前面的测试,说明系统设计的软、硬件设计基本取得成

21、功。将把程序经编译、下载到相应的at89s51芯片中,构建电路测试,比较数码管显示的数值与温度计的值和测试点的值。整体测试结果如表1所示。五、测试数据及实验结果5.1 测试数据按照前述的测试方法,取得到测试结果如表1所示。如表1 数码显示与测试点电压随温度变化的关系温度值(摄氏度) 数码管显示值测试点电压值(v)000.00.010.010.01.00119.019.01.90238.238.23.82148.048.04.80260.550.05.0015.2 测试结果分析根据上述测试结果,此系统的设计基本取得成功。智能体温计在测试温度方面有一定的成效,测试误差较小,显示的误差与实际的温度值

22、误差在 内,在功能上达到了赛题的要求。六、总结和体会本课程设计叙述了智能温度计的设计,包括硬件组成和软件的设计,该系统在硬件设计上主要是通过温度传感器对温度进行采集,把温度转换成变化的电压,然后由放大器将信号放大,通过a/d转换器,mc14433将模拟温度电压信号转化为对应的数字温度信号电压。其硬件设计中最核心的器件是单片机89c51,它一方面控制a/d转换器实现模拟信号到数字信号的转换,另一方面,将采集到的数字温度电压值经计算机处理得到相应的温度值,送到led显示器,以数字形式显示测量的温度。整个系统的软件编程就是通过汇编语言对单片机mt89c51实现其控制功能。整个系统结构紧凑,简单可靠,

23、操作灵活,功能强大,性能价格比高,较好的满足了现代农业生产和科研的需要。通过本次的设计,参考了大量的资料,让我认识到了单片机功能的强大,让我学到了很多,受益匪浅!七、参 考 文 献1.李朝青pc机及单片机数据通信技术 m 北京航空航天大学出版社,20002.何立民单片机应用技术选编m 北京航空航天大学出版社,19933.周明德微型计算机硬件软件及其应用m 清华大学出版社。19804.金伟正.单线数字温度传感器的原理与应用j.电子技术应用2000(6):6668.5.李广弟.单片机基础m.北京航空大学出版社.1994年6月6.何立民。 单片机应用系统设计系统配置与接口技术. 北京:北京航空航天大

24、学出版社。 19957.马明建. 数据采集与处理技术。 西安:西安交通大学出版社. 1997单片机智能电子温度计设计(电路图+原理图+源代码)单片机1/*project name : 智能体温计程序_主机designed by : sc.daidate : 2007.5.30*/#include #include #include #define uchar unsigned char#define uint unsigned intuchar code dis_code10=0xc0,0xf9,0xa4,0xb0,/ 0, 1, 2, 30x99,0x92,0x82,0xf8,0x80,0x

25、90; / 4, 5, 6, 7, 8, 9, off uchar data set_data3=0x00,0x07,0x03; /预设37.0度uchar data ad_data; /ad转换结果uchar data dis_buf3=0x00,0x00,0x00; / 显示缓冲区uchar data bcd_buf3=0x00,0x00,0x00; /十进制bcd码转换存放区uchar data timer0_num;bit timer0_flag;bit data set_flag=0;sbit ale=p24;sbit oe=p25;sbit start=p26;sbit eoc=p

26、27;sbit p30=p30;sbit select0=p37;sbit select1=p36;sbit select2=p35;sbit k1=p20;sbit k2=p21;sbit k3=p22;sbit k4=p23;sbit bep=p33;sbit set_ind=p34;sbit p17=p17; /小数点uint data temp;/*/*函数声明/*/void delay1ms(uchar t); void adc(void);void bcd(void);void keyscan(void);void send_str(void);void beep(void);vo

27、id display(void);/*/*按键蜂鸣函数/*/void beep2(void) uchar data j,k; for(j=26;j0;j-) for(k=254;k0;k-); bep=!bep; bep=1;/*/*蜂鸣报警/*/void beep(void) uchar data j,k; for(j=100;j0;j-) for(k=254;k0;k-) bep=0; bep=1; /关蜂鸣器/*/*延时1ms函数/*/void delay1ms(uchar t) uchar j,k; for(j=0;jt;j+) for(k=0;kset_data2) /报警值检测 b

28、eep();else if(bcd_buf2=set_data2) if(bcd_buf1set_data1) beep(); else if(bcd_buf1=set_data1) if(bcd_buf0set_data0) beep();单片机智能电子温度计设计(电路图+原理图+源代码)/*/*键盘扫描函数/*/void keyscan(void)uchar data m;if(k1=0) /k1设置键 for(m=0;m100;m+) /延时11ms display(); if(k1=0) beep2(); /按键时响一声 set_flag=!set_flag; /设置标志位取反 if(

29、set_flag=1) /若设置键按下,则检测k2-k4 set_ind=0; /设置灯亮 if(k2=0) /k2:十位加1 for(m=0;m100;m+) /延时11ms display(); if(k2=0) beep2(); /按键时响一声 set_data2+; if(set_data2=5) set_data2=0; if(k3=0) /k3:个位加1 for(m=0;m100;m+) /延时11ms display(); if(k3=0) beep2(); /按键时响一声 set_data1+; if(set_data1=10) set_data1=0; if(k4=0) /k

30、4:小数位加1 for(m=0;m100;m+) /延时11ms display(); if(k4=0) beep2(); /按键时响一声 set_data0+; if(set_data0=10) set_data0=0; else set_ind=1;/*/*显示函数/*/void display(void) if(set_flag) /设置键按下,则显示设置的数值 dis_buf0=set_data0; dis_buf1=set_data1; dis_buf2=set_data2; else /否则显示温度值 dis_buf0=bcd_buf0; dis_buf1=bcd_buf1; dis_buf2=bcd_buf2; p1 = 0xff; / 先关闭所有数码管 p1 = dis_codedis_buf0; / 小数显示代码传送到p1口 select2=1;select1=1;select0=0; / 位选 delay1ms(1); /延时1ms p1 = dis_codedis_buf1; / 个位显示代码传送到p1口 selec

温馨提示

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

评论

0/150

提交评论